[
  {
    "path": ".github/dependabot.yml",
    "content": "version: 2\nupdates:\n# Disable gomod update\n# See https://github.com/kubernetes/kube-openapi/pull/474?issuecomment-2305023746#issuecomment-2305023746\n# kube-openapi directly affects the kubernetes/kubernetes API surface and we need to insulate ourselves from \n# breaking the API as part of dependency bumps.\n#  - package-ecosystem: gomod\n#    directories:\n#      - \"**/*\"\n#    schedule:\n#      interval: daily\n\n  - package-ecosystem: github-actions\n    directory: /\n    schedule:\n      interval: daily\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: ci-pipeline\non:\n  push:\n    branches: [ master ]\n  pull_request:\n    branches: [ master ]\njobs:\n  ci:\n    strategy:\n      matrix:\n        go-version: ['1.23', '1.24', '1.25']\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v6\n    - name: Set up Go\n      uses: actions/setup-go@v6\n      with:\n        go-version: ${{ matrix.go-version }}\n    - name: Build\n      run: |\n        go mod tidy && git diff --exit-code\n        go build ./cmd/... ./pkg/...\n    - name: Format\n      run: |\n        diff=$(gofmt -s -d .)\n        if [[ -n \"${diff}\" ]]; then echo \"${diff}\"; exit 1; fi\n    - name: Test\n      run: |\n        go test -race ./cmd/... ./pkg/...\n    - name: Run integration tests\n      run: |\n        cd test/integration\n        go mod tidy && git diff --exit-code\n        go test ./...\n    # We set the maximum version of the go directive here according to\n    # the oldest go directive that exists on our supported release branches\n    # in k/k.\n    - name: Run verify scripts\n      run: |\n        ./hack/verify-go-directive.sh 1.23.0\n  required:\n    # The name of the ci jobs above change based on the golang version.\n    # Use this as a stable required job that depends on the above jobs.\n    # ref: https://github.com/kubernetes/test-infra/pull/27016\n    needs: ci\n    runs-on: ubuntu-latest\n    steps:\n    - run: echo \"Required jobs success!\"\n"
  },
  {
    "path": ".gitignore",
    "content": "# Binaries for programs and plugins\n*.exe\n*.dll\n*.so\n*.dylib\n\n# Test binary, build with `go test -c`\n*.test\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\n\n# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736\n.glide/\n\n# Intellij IDEA files\n.idea/\n*.iml\n.vscode\n\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing\n\nThanks for taking the time to join our community and start contributing!\n\nThe [Contributor Guide](https://github.com/kubernetes/community/blob/master/contributors/guide/README.md)\nprovides detailed instructions on how to get your ideas and bug fixes seen and accepted.\n\nPlease remember to sign the [CNCF CLA](https://github.com/kubernetes/community/blob/master/CLA.md) and\nread and observe the [Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).\n"
  },
  {
    "path": "LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "OWNERS",
    "content": "reviewers:\n- sttts\n- jpbetz\n- jefftree\napprovers:\n- sttts\n- jpbetz\n- jefftree\nemeritus_approvers:\n- mbohlool\n- lavalamp\n- apelisse\n- alexzielenski\n"
  },
  {
    "path": "README.md",
    "content": "# Kube OpenAPI\n\nThis repo is the home for Kubernetes OpenAPI discovery spec generation. The goal \nis to support a subset of OpenAPI features to satisfy kubernetes use-cases but \nimplement that subset with little to no assumption about the structure of the \ncode or routes. Thus, there should be no kubernetes specific code in this repo. \n\n\nThere are two main parts: \n - A model generator that goes through .go files, find and generate model \ndefinitions. \n - The spec generator that is responsible for dynamically generating \nthe final OpenAPI spec using web service routes or combining other \nOpenAPI/Json specs.\n\n## Contributing\n\nPlease see [CONTRIBUTING.md](CONTRIBUTING.md) for instructions on how to contribute.\n"
  },
  {
    "path": "SECURITY.md",
    "content": "# Security Policy\n\n## Security Announcements\n\nJoin the [kubernetes-security-announce] group for security and vulnerability announcements.\n\nYou can also subscribe to an RSS feed of the above using [this link][kubernetes-security-announce-rss].\n\n## Reporting a Vulnerability\n\nInstructions for reporting a vulnerability can be found on the\n[Kubernetes Security and Disclosure Information] page.\n\n## Supported Versions\n\nInformation about supported Kubernetes versions can be found on the\n[Kubernetes version and version skew support policy] page on the Kubernetes website.\n\n[kubernetes-security-announce]: https://groups.google.com/forum/#!forum/kubernetes-security-announce\n[kubernetes-security-announce-rss]: https://groups.google.com/forum/feed/kubernetes-security-announce/msgs/rss_v2_0.xml?num=50\n[Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions\n[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability\n"
  },
  {
    "path": "SECURITY_CONTACTS",
    "content": "# Defined below are the security contacts for this repo.\n#\n# They are the contact point for the Product Security Committee to reach out\n# to for triaging and handling of incoming issues.\n#\n# The below names agree to abide by the\n# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy)\n# and will be removed and replaced if they violate that agreement.\n#\n# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE\n# INSTRUCTIONS AT https://kubernetes.io/security/\n\nsttts\nmbohlool\n"
  },
  {
    "path": "boilerplate/boilerplate.go.txt",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n"
  },
  {
    "path": "cmd/openapi-gen/args/args.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage args\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/spf13/pflag\"\n)\n\ntype Args struct {\n\tOutputDir  string // must be a directory path\n\tOutputPkg  string // must be a Go import-path\n\tOutputFile string\n\n\tGoHeaderFile string\n\n\t// ReportFilename is added to Args for specifying name of report file used\n\t// by API linter. If specified, API rule violations will be printed to report file.\n\t// Otherwise default value \"-\" will be used which indicates stdout.\n\tReportFilename string\n\n\t// OutputModelNameFile is the name of the file to be generated for OpenAPI schema name\n\t// accessor functions. If empty, no model name accessor functions are generated.\n\t// When this is specified, the OpenAPI spec generator will use the function names\n\t// instead of Go type names for schema names.\n\tOutputModelNameFile string\n\n\t// ReadOnlyPkgs is a list of package paths that should be treated as\n\t// read-only. Model name files will not be generated for these packages.\n\t// This prevents the generator from attempting to write into read-only\n\t// dependency packages (e.g. in the Go module cache).\n\tReadOnlyPkgs []string\n}\n\n// New returns default arguments for the generator. Returning the arguments instead\n// of using default flag parsing allows registering custom arguments afterwards\nfunc New() *Args {\n\targs := &Args{}\n\n\t// Default value for report filename is \"-\", which stands for stdout\n\targs.ReportFilename = \"-\"\n\n\treturn args\n}\n\n// AddFlags add the generator flags to the flag set.\nfunc (args *Args) AddFlags(fs *pflag.FlagSet) {\n\tfs.StringVar(&args.OutputDir, \"output-dir\", \"\",\n\t\t\"the base directory under which to generate results\")\n\tfs.StringVar(&args.OutputPkg, \"output-pkg\", \"\",\n\t\t\"the base Go import-path under which to generate results\")\n\tfs.StringVar(&args.OutputFile, \"output-file\", \"generated.openapi.go\",\n\t\t\"the name of the file to be generated\")\n\tfs.StringVar(&args.OutputModelNameFile, \"output-model-name-file\", \"\",\n\t\t`The filename for generated model name accessor functions.\nIf specified, a file with this name will be created in each package containing\na \"+k8s:openapi-model-package\" tag. The generated functions return fully qualified\nmodel names, which are used in the OpenAPI spec as schema references instead of\nGo type names. If empty, no model name accessor functions are generated and names\nare inferred from Go type names.`)\n\tfs.StringSliceVar(&args.ReadOnlyPkgs, \"readonly-pkg\", nil,\n\t\t\"Packages that are read-only dependencies. Model name files will not be generated \"+\n\t\t\t\"for these packages. May be specified multiple times.\")\n\tfs.StringVar(&args.GoHeaderFile, \"go-header-file\", \"\",\n\t\t\"the path to a file containing boilerplate header text; the string \\\"YEAR\\\" will be replaced with the current 4-digit year\")\n\tfs.StringVarP(&args.ReportFilename, \"report-filename\", \"r\", args.ReportFilename,\n\t\t\"Name of report file used by API linter to print API violations. Default \\\"-\\\" stands for standard output. NOTE that if valid filename other than \\\"-\\\" is specified, API linter won't return error on detected API violations. This allows further check of existing API violations without stopping the OpenAPI generation toolchain.\")\n}\n\n// Validate checks the given arguments.\nfunc (args *Args) Validate() error {\n\tif len(args.OutputDir) == 0 {\n\t\treturn fmt.Errorf(\"--output-dir must be specified\")\n\t}\n\tif len(args.OutputPkg) == 0 {\n\t\treturn fmt.Errorf(\"--output-pkg must be specified\")\n\t}\n\tif len(args.OutputFile) == 0 {\n\t\treturn fmt.Errorf(\"--output-file must be specified\")\n\t}\n\tif len(args.ReportFilename) == 0 {\n\t\treturn fmt.Errorf(\"--report-filename must be specified (use \\\"-\\\" for stdout)\")\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "cmd/openapi-gen/openapi-gen.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// This package generates openAPI definition file to be used in open API spec generation on API servers. To generate\n// definition for a specific type or package add \"+k8s:openapi-gen=true\" tag to the type/package comment lines. To\n// exclude a type from a tagged package, add \"+k8s:openapi-gen=false\" tag to the type comment lines.\n\npackage main\n\nimport (\n\t\"flag\"\n\t\"log\"\n\n\t\"github.com/spf13/pflag\"\n\n\t\"k8s.io/gengo/v2\"\n\t\"k8s.io/gengo/v2/generator\"\n\t\"k8s.io/klog/v2\"\n\t\"k8s.io/kube-openapi/cmd/openapi-gen/args\"\n\t\"k8s.io/kube-openapi/pkg/generators\"\n)\n\nfunc main() {\n\tklog.InitFlags(nil)\n\targs := args.New()\n\n\targs.AddFlags(pflag.CommandLine)\n\tflag.Set(\"logtostderr\", \"true\")\n\tpflag.CommandLine.AddGoFlagSet(flag.CommandLine)\n\tpflag.Parse()\n\n\tif err := args.Validate(); err != nil {\n\t\tlog.Fatalf(\"Arguments validation error: %v\", err)\n\t}\n\n\tboilerplate, err := gengo.GoBoilerplate(args.GoHeaderFile, gengo.StdBuildTag, gengo.StdGeneratedBy)\n\tif err != nil {\n\t\tlog.Fatalf(\"Failed loading boilerplate: %v\", err)\n\t}\n\n\t// Generates the code for model name accessors.\n\tif len(args.OutputModelNameFile) > 0 {\n\t\tmodelNameTargets := func(context *generator.Context) []generator.Target {\n\t\t\treturn generators.GetModelNameTargets(context, args, boilerplate)\n\t\t}\n\t\tif err := gengo.Execute(\n\t\t\tgenerators.NameSystems(),\n\t\t\tgenerators.DefaultNameSystem(),\n\t\t\tmodelNameTargets,\n\t\t\tgengo.StdBuildTag,\n\t\t\tpflag.Args(),\n\t\t); err != nil {\n\t\t\tlog.Fatalf(\"Model name code generation error: %v\", err)\n\t\t}\n\t}\n\n\t// Generates the code for the OpenAPIDefinitions.\n\topenAPITargets := func(context *generator.Context) []generator.Target {\n\t\treturn generators.GetOpenAPITargets(context, args, boilerplate)\n\t}\n\tif err := gengo.Execute(\n\t\tgenerators.NameSystems(),\n\t\tgenerators.DefaultNameSystem(),\n\t\topenAPITargets,\n\t\tgengo.StdBuildTag,\n\t\tpflag.Args(),\n\t); err != nil {\n\t\tlog.Fatalf(\"OpenAPI code generation error: %v\", err)\n\t}\n}\n"
  },
  {
    "path": "cmd/openapi2smd/openapi2smd.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage main\n\nimport (\n\t\"io\"\n\t\"log\"\n\t\"os\"\n\n\topenapi_v2 \"github.com/google/gnostic-models/openapiv2\"\n\tyaml \"go.yaml.in/yaml/v2\"\n\n\t\"k8s.io/kube-openapi/pkg/schemaconv\"\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n)\n\nfunc main() {\n\tif len(os.Args) != 1 {\n\t\tlog.Fatal(\"this program takes input on stdin and writes output to stdout.\")\n\t}\n\n\tinput, err := io.ReadAll(os.Stdin)\n\tif err != nil {\n\t\tlog.Fatalf(\"error reading stdin: %v\", err)\n\t}\n\n\tdocument, err := openapi_v2.ParseDocument(input)\n\tif err != nil {\n\t\tlog.Fatalf(\"error interpreting stdin: %v\", err)\n\t}\n\n\tmodels, err := proto.NewOpenAPIData(document)\n\tif err != nil {\n\t\tlog.Fatalf(\"error interpreting models: %v\", err)\n\t}\n\n\tnewSchema, err := schemaconv.ToSchema(models)\n\tif err != nil {\n\t\tlog.Fatalf(\"error converting schema format: %v\", err)\n\t}\n\n\tif err := yaml.NewEncoder(os.Stdout).Encode(newSchema); err != nil {\n\t\tlog.Fatalf(\"error writing new schema: %v\", err)\n\t}\n\n}\n"
  },
  {
    "path": "code-of-conduct.md",
    "content": "# Kubernetes Community Code of Conduct\n\nPlease refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)\n"
  },
  {
    "path": "go.mod",
    "content": "module k8s.io/kube-openapi\n\ngo 1.23.0\n\nrequire (\n\tgithub.com/NYTimes/gziphandler v1.1.1\n\tgithub.com/emicklei/go-restful/v3 v3.11.0\n\tgithub.com/go-openapi/jsonreference v0.20.1\n\tgithub.com/go-openapi/swag v0.23.0\n\tgithub.com/google/gnostic-models v0.7.0\n\tgithub.com/google/go-cmp v0.6.0\n\tgithub.com/google/uuid v1.6.0\n\tgithub.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822\n\tgithub.com/spf13/pflag v1.0.5\n\tgithub.com/stretchr/testify v1.9.0\n\tgo.yaml.in/yaml/v2 v2.4.2\n\tgo.yaml.in/yaml/v3 v3.0.3\n\tgolang.org/x/tools v0.36.0\n\tgolang.org/x/tools/go/packages/packagestest v0.1.1-deprecated\n\tgoogle.golang.org/protobuf v1.35.1\n\tk8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f\n\tk8s.io/klog/v2 v2.130.1\n\tk8s.io/utils v0.0.0-20240711033017-18e509b52bc8\n\tsigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd\n\tsigs.k8s.io/randfill v1.0.0\n\tsigs.k8s.io/structured-merge-diff/v6 v6.2.0\n\tsigs.k8s.io/yaml v1.4.0\n)\n\nrequire (\n\tgithub.com/davecgh/go-spew v1.1.1 // indirect\n\tgithub.com/go-logr/logr v1.4.2 // indirect\n\tgithub.com/go-openapi/jsonpointer v0.21.0 // indirect\n\tgithub.com/josharian/intern v1.0.0 // indirect\n\tgithub.com/json-iterator/go v1.1.12 // indirect\n\tgithub.com/mailru/easyjson v0.7.7 // indirect\n\tgithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect\n\tgithub.com/modern-go/reflect2 v1.0.2 // indirect\n\tgithub.com/pmezard/go-difflib v1.0.0 // indirect\n\tgithub.com/rogpeppe/go-internal v1.12.0 // indirect\n\tgolang.org/x/mod v0.27.0 // indirect\n\tgolang.org/x/sync v0.16.0 // indirect\n\tgolang.org/x/tools/go/expect v0.1.0-deprecated // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n)\n"
  },
  {
    "path": "go.sum",
    "content": "github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=\ngithub.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=\ngithub.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=\ngithub.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=\ngithub.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=\ngithub.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=\ngithub.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=\ngithub.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=\ngithub.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=\ngithub.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=\ngithub.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=\ngithub.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=\ngithub.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=\ngithub.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=\ngithub.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo=\ngithub.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ=\ngithub.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=\ngithub.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=\ngithub.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=\ngithub.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=\ngithub.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=\ngithub.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=\ngithub.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=\ngithub.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=\ngithub.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=\ngithub.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=\ngithub.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=\ngithub.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=\ngithub.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=\ngithub.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=\ngithub.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=\ngithub.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=\ngithub.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=\ngithub.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=\ngithub.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=\ngithub.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=\ngithub.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=\ngithub.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=\ngithub.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=\ngo.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=\ngo.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=\ngo.yaml.in/yaml/v3 v3.0.3 h1:bXOww4E/J3f66rav3pX3m8w6jDE4knZjGOw8b5Y6iNE=\ngo.yaml.in/yaml/v3 v3.0.3/go.mod h1:tBHosrYAkRZjRAOREWbDnBXUf08JOwYq++0QNwQiWzI=\ngolang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=\ngolang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc=\ngolang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=\ngolang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=\ngolang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=\ngolang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=\ngolang.org/x/tools/go/expect v0.1.0-deprecated h1:jY2C5HGYR5lqex3gEniOQL0r7Dq5+VGVgY1nudX5lXY=\ngolang.org/x/tools/go/expect v0.1.0-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY=\ngolang.org/x/tools/go/packages/packagestest v0.1.1-deprecated h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM=\ngolang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod h1:RVAQXBGNv1ib0J382/DPCRS/BPnsGebyM1Gj5VSDpG8=\ngoogle.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=\ngoogle.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\nk8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f h1:SLb+kxmzfA87x4E4brQzB33VBbT2+x7Zq9ROIHmGn9Q=\nk8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU=\nk8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=\nk8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=\nk8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=\nk8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=\nsigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=\nsigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=\nsigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=\nsigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=\nsigs.k8s.io/structured-merge-diff/v6 v6.2.0 h1:msyqjP8Nyd5sF3QSmJouFSzcBIdwq4ct8d1/7VSBHIQ=\nsigs.k8s.io/structured-merge-diff/v6 v6.2.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE=\nsigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=\nsigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=\n"
  },
  {
    "path": "hack/JSON-EXPERIMENTAL-HASH",
    "content": "540f014424240312547dcccddf11a8229ca0f463\n"
  },
  {
    "path": "hack/update-json-library.sh",
    "content": "#!/usr/bin/env bash\n# This script can be called via ./hack/update-json-library.sh` to update the\n# go-json-experiment fork in the repo. \n\n# The HASH parameter may be set as part of the invocation to this script or\n# the default hash from ./hack/JSON-EXPERIMENTAL-HASH will be used.\nHASH=\"${HASH:-$(cat ./hack/JSON-EXPERIMENTAL-HASH)}\"\nGO_JSON_EXPERIMENT_DIR=\"pkg/internal/third_party/go-json-experiment/json\"\nrm -rf $GO_JSON_EXPERIMENT_DIR\ngit clone https://github.com/go-json-experiment/json $GO_JSON_EXPERIMENT_DIR\ncd $GO_JSON_EXPERIMENT_DIR\ngit reset --hard $HASH\n# If HASH was set to a keyword like HEAD, get the actual commit ID\nHASH=$(git rev-parse HEAD)\ncat <<EOF > ../README.md\nForked from: https://github.com/go-json-experiment/json\nCommit Hash: $HASH\n\nThis internal fork exists to prevent dependency issues with go-json-experiment\nuntil its API stabilizes.\nEOF\n\n# Remove git directories \nrm -rf \".git\"\nrm -rf \".github\"\n# Remove images\nrm *.png\n# Remove go.{mod|sum}\n# NOTE: go-json-experiment has no go mod dependencies at the moment.\n#       If this changes, the code will need to be updated.\nrm go.mod go.sum\n# Update references to point to the fork\nfind . -type f -name \"*.go\" -print0 | xargs -0 perl -pi -e \"s#github.com/go-json-experiment/json#k8s.io/kube-openapi/${GO_JSON_EXPERIMENT_DIR}#g\"\n"
  },
  {
    "path": "hack/verify-go-directive.sh",
    "content": "#!/usr/bin/env bash\n\n# Copyright 2024 The Kubernetes Authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nset -o errexit\nset -o nounset\nset -o pipefail\n\nfunction usage {\n  local script=\"$(basename $0)\"\n\n  echo >&2 \"Usage: ${script} <maximum go directive>\nThis script should be run at the root of a module.\n\nCompare the go directive in the local working copy's go.mod\nto the specified maximum version it can be. Versions provided\nhere are of the form 1.x.y, without the 'go' prefix.\nExamples:\n  ${script} 1.20\n  ${script} 1.21.6\n\"\n  exit 1\n}\n\nmax=\"$1\"\n# If max is empty, print usage and error\nif [[ -z \"${max}\" ]]; then\n  usage;\nfi\n\n# Don't specify the version with the go prefix, just 1.x.y will do.\nif [[ ! \"${max}\" =~ ^[0-9]\\.[0-9]+(\\.[0-9]+)?$ ]]; then\n    usage\nfi\n\ncurrent=$(awk '/^go / {print $2;}' go.mod)\nif [[ -z \"${current}\" ]]; then\n  echo >&2 \"FAIL: could not get value of go directive from go.mod\"\n  exit 1\nfi\n\nif ! printf '%s\\n' \"${current}\" \"${max}\" | sort --check=silent --version-sort; then\n    echo >&2 \"FAIL: current Go directive ${current} is greater than ${max}\"\n    exit 1\nfi\n"
  },
  {
    "path": "pkg/aggregator/aggregator.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage aggregator\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"k8s.io/kube-openapi/pkg/schemamutation\"\n\t\"k8s.io/kube-openapi/pkg/util\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nconst gvkKey = \"x-kubernetes-group-version-kind\"\n\n// usedDefinitionForSpec returns a map with all used definitions in the provided spec as keys and true as values.\nfunc usedDefinitionForSpec(root *spec.Swagger) map[string]bool {\n\tusedDefinitions := map[string]bool{}\n\twalkOnAllReferences(func(ref *spec.Ref) {\n\t\tif refStr := ref.String(); refStr != \"\" && strings.HasPrefix(refStr, definitionPrefix) {\n\t\t\tusedDefinitions[refStr[len(definitionPrefix):]] = true\n\t\t}\n\t}, root)\n\treturn usedDefinitions\n}\n\n// FilterSpecByPaths removes unnecessary paths and definitions used by those paths.\n// i.e. if a Path removed by this function, all definitions used by it and not used\n// anywhere else will also be removed.\nfunc FilterSpecByPaths(sp *spec.Swagger, keepPathPrefixes []string) {\n\t*sp = *FilterSpecByPathsWithoutSideEffects(sp, keepPathPrefixes)\n}\n\n// FilterSpecByPathsWithoutSideEffects removes unnecessary paths and definitions used by those paths.\n// i.e. if a Path removed by this function, all definitions used by it and not used\n// anywhere else will also be removed.\n// It does not modify the input, but the output shares data structures with the input.\nfunc FilterSpecByPathsWithoutSideEffects(sp *spec.Swagger, keepPathPrefixes []string) *spec.Swagger {\n\tif sp.Paths == nil {\n\t\treturn sp\n\t}\n\n\t// Walk all references to find all used definitions. This function\n\t// want to only deal with unused definitions resulted from filtering paths.\n\t// Thus a definition will be removed only if it has been used before but\n\t// it is unused because of a path prune.\n\tinitialUsedDefinitions := usedDefinitionForSpec(sp)\n\n\t// First remove unwanted paths\n\tprefixes := util.NewTrie(keepPathPrefixes)\n\tret := *sp\n\tret.Paths = &spec.Paths{\n\t\tVendorExtensible: sp.Paths.VendorExtensible,\n\t\tPaths:            map[string]spec.PathItem{},\n\t}\n\tfor path, pathItem := range sp.Paths.Paths {\n\t\tif !prefixes.HasPrefix(path) {\n\t\t\tcontinue\n\t\t}\n\t\tret.Paths.Paths[path] = pathItem\n\t}\n\n\t// Walk all references to find all definition references.\n\tusedDefinitions := usedDefinitionForSpec(&ret)\n\n\t// Remove unused definitions\n\tret.Definitions = spec.Definitions{}\n\tfor k, v := range sp.Definitions {\n\t\tif usedDefinitions[k] || !initialUsedDefinitions[k] {\n\t\t\tret.Definitions[k] = v\n\t\t}\n\t}\n\n\treturn &ret\n}\n\n// renameDefinitions renames definition references, without mutating the input.\n// The output might share data structures with the input.\nfunc renameDefinitions(s *spec.Swagger, renames map[string]string) *spec.Swagger {\n\trefRenames := make(map[string]string, len(renames))\n\tfoundOne := false\n\tfor k, v := range renames {\n\t\trefRenames[definitionPrefix+k] = definitionPrefix + v\n\t\tif _, ok := s.Definitions[k]; ok {\n\t\t\tfoundOne = true\n\t\t}\n\t}\n\n\tif !foundOne {\n\t\treturn s\n\t}\n\n\tret := &spec.Swagger{}\n\t*ret = *s\n\n\tret = schemamutation.ReplaceReferences(func(ref *spec.Ref) *spec.Ref {\n\t\trefName := ref.String()\n\t\tif newRef, found := refRenames[refName]; found {\n\t\t\tret := spec.MustCreateRef(newRef)\n\t\t\treturn &ret\n\t\t}\n\t\treturn ref\n\t}, ret)\n\n\trenamedDefinitions := make(spec.Definitions, len(ret.Definitions))\n\tfor k, v := range ret.Definitions {\n\t\tif newRef, found := renames[k]; found {\n\t\t\tk = newRef\n\t\t}\n\t\trenamedDefinitions[k] = v\n\t}\n\tret.Definitions = renamedDefinitions\n\n\treturn ret\n}\n\n// renameParameters renames parameter references, without mutating the input.\n// The output might share data structures with the input.\nfunc renameParameters(s *spec.Swagger, renames map[string]string) *spec.Swagger {\n\trefRenames := make(map[string]string, len(renames))\n\tfoundOne := false\n\tfor k, v := range renames {\n\t\trefRenames[parameterPrefix+k] = parameterPrefix + v\n\t\tif _, ok := s.Parameters[k]; ok {\n\t\t\tfoundOne = true\n\t\t}\n\t}\n\n\tif !foundOne {\n\t\treturn s\n\t}\n\n\tret := &spec.Swagger{}\n\t*ret = *s\n\n\tret = schemamutation.ReplaceReferences(func(ref *spec.Ref) *spec.Ref {\n\t\trefName := ref.String()\n\t\tif newRef, found := refRenames[refName]; found {\n\t\t\tret := spec.MustCreateRef(newRef)\n\t\t\treturn &ret\n\t\t}\n\t\treturn ref\n\t}, ret)\n\n\trenamed := make(map[string]spec.Parameter, len(ret.Parameters))\n\tfor k, v := range ret.Parameters {\n\t\tif newRef, found := renames[k]; found {\n\t\t\tk = newRef\n\t\t}\n\t\trenamed[k] = v\n\t}\n\tret.Parameters = renamed\n\n\treturn ret\n}\n\n// MergeSpecsIgnorePathConflictRenamingDefinitionsAndParameters is the same as\n// MergeSpecs except it will ignore any path conflicts by keeping the paths of\n// destination. It will rename definition and parameter conflicts.\nfunc MergeSpecsIgnorePathConflictRenamingDefinitionsAndParameters(dest, source *spec.Swagger) error {\n\treturn mergeSpecs(dest, source, true, true, true)\n}\n\n// MergeSpecsIgnorePathConflictDeprecated is the same as MergeSpecs except it will ignore any path\n// conflicts by keeping the paths of destination. It will rename definition and\n// parameter conflicts.\nfunc MergeSpecsIgnorePathConflictDeprecated(dest, source *spec.Swagger) error {\n\treturn mergeSpecs(dest, source, true, false, true)\n}\n\n// MergeSpecsFailOnDefinitionConflict is different from MergeSpecs as it fails if there is\n// a definition or parameter conflict.\nfunc MergeSpecsFailOnDefinitionConflict(dest, source *spec.Swagger) error {\n\treturn mergeSpecs(dest, source, false, false, false)\n}\n\n// MergeSpecs copies paths, definitions and parameters from source to dest, rename\n// definitions if needed. It will fail on path conflicts.\n//\n// The destination is mutated, the source is not.\nfunc MergeSpecs(dest, source *spec.Swagger) error {\n\treturn mergeSpecs(dest, source, true, true, false)\n}\n\n// mergeSpecs merges source into dest while resolving conflicts.\n// The source is not mutated.\nfunc mergeSpecs(dest, source *spec.Swagger, renameModelConflicts, renameParameterConflicts, ignorePathConflicts bool) (err error) {\n\t// Paths may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering).\n\tif source.Paths == nil {\n\t\t// When a source spec does not have any path, that means none of the definitions\n\t\t// are used thus we should not do anything\n\t\treturn nil\n\t}\n\tif dest.Paths == nil {\n\t\tdest.Paths = &spec.Paths{}\n\t}\n\tif ignorePathConflicts {\n\t\tkeepPaths := []string{}\n\t\thasConflictingPath := false\n\t\tfor k := range source.Paths.Paths {\n\t\t\tif _, found := dest.Paths.Paths[k]; !found {\n\t\t\t\tkeepPaths = append(keepPaths, k)\n\t\t\t} else {\n\t\t\t\thasConflictingPath = true\n\t\t\t}\n\t\t}\n\t\tif len(keepPaths) == 0 {\n\t\t\t// There is nothing to merge. All paths are conflicting.\n\t\t\treturn nil\n\t\t}\n\t\tif hasConflictingPath {\n\t\t\tsource = FilterSpecByPathsWithoutSideEffects(source, keepPaths)\n\t\t}\n\t}\n\n\t// Check for model conflicts and rename to make definitions conflict-free (modulo different GVKs)\n\tusedNames := map[string]bool{}\n\tfor k := range dest.Definitions {\n\t\tusedNames[k] = true\n\t}\n\trenames := map[string]string{}\nDEFINITIONLOOP:\n\tfor k, v := range source.Definitions {\n\t\texisting, found := dest.Definitions[k]\n\t\tif !found || deepEqualDefinitionsModuloGVKs(&existing, &v) {\n\t\t\t// skip for now, we copy them after the rename loop\n\t\t\tcontinue\n\t\t}\n\n\t\tif !renameModelConflicts {\n\t\t\treturn fmt.Errorf(\"model name conflict in merging OpenAPI spec: %s\", k)\n\t\t}\n\n\t\t// Reuse previously renamed model if one exists\n\t\tvar newName string\n\t\ti := 1\n\t\tfor found {\n\t\t\ti++\n\t\t\tnewName = fmt.Sprintf(\"%s_v%d\", k, i)\n\t\t\texisting, found = dest.Definitions[newName]\n\t\t\tif found && deepEqualDefinitionsModuloGVKs(&existing, &v) {\n\t\t\t\trenames[k] = newName\n\t\t\t\tcontinue DEFINITIONLOOP\n\t\t\t}\n\t\t}\n\n\t\t_, foundInSource := source.Definitions[newName]\n\t\tfor usedNames[newName] || foundInSource {\n\t\t\ti++\n\t\t\tnewName = fmt.Sprintf(\"%s_v%d\", k, i)\n\t\t\t_, foundInSource = source.Definitions[newName]\n\t\t}\n\t\trenames[k] = newName\n\t\tusedNames[newName] = true\n\t}\n\tsource = renameDefinitions(source, renames)\n\n\t// Check for parameter conflicts and rename to make parameters conflict-free\n\tusedNames = map[string]bool{}\n\tfor k := range dest.Parameters {\n\t\tusedNames[k] = true\n\t}\n\trenames = map[string]string{}\nPARAMETERLOOP:\n\tfor k, p := range source.Parameters {\n\t\texisting, found := dest.Parameters[k]\n\t\tif !found || reflect.DeepEqual(&existing, &p) {\n\t\t\t// skip for now, we copy them after the rename loop\n\t\t\tcontinue\n\t\t}\n\n\t\tif !renameParameterConflicts {\n\t\t\treturn fmt.Errorf(\"parameter name conflict in merging OpenAPI spec: %s\", k)\n\t\t}\n\n\t\t// Reuse previously renamed parameter if one exists\n\t\tvar newName string\n\t\ti := 1\n\t\tfor found {\n\t\t\ti++\n\t\t\tnewName = fmt.Sprintf(\"%s_v%d\", k, i)\n\t\t\texisting, found = dest.Parameters[newName]\n\t\t\tif found && reflect.DeepEqual(&existing, &p) {\n\t\t\t\trenames[k] = newName\n\t\t\t\tcontinue PARAMETERLOOP\n\t\t\t}\n\t\t}\n\n\t\t_, foundInSource := source.Parameters[newName]\n\t\tfor usedNames[newName] || foundInSource {\n\t\t\ti++\n\t\t\tnewName = fmt.Sprintf(\"%s_v%d\", k, i)\n\t\t\t_, foundInSource = source.Parameters[newName]\n\t\t}\n\t\trenames[k] = newName\n\t\tusedNames[newName] = true\n\t}\n\tsource = renameParameters(source, renames)\n\n\t// Now without conflict (modulo different GVKs), copy definitions to dest\n\tfor k, v := range source.Definitions {\n\t\tif existing, found := dest.Definitions[k]; !found {\n\t\t\tif dest.Definitions == nil {\n\t\t\t\tdest.Definitions = make(spec.Definitions, len(source.Definitions))\n\t\t\t}\n\t\t\tdest.Definitions[k] = v\n\t\t} else if merged, changed, err := mergedGVKs(&existing, &v); err != nil {\n\t\t\treturn err\n\t\t} else if changed {\n\t\t\texisting.Extensions[gvkKey] = merged\n\t\t}\n\t}\n\n\t// Now without conflict, copy parameters to dest\n\tfor k, v := range source.Parameters {\n\t\tif _, found := dest.Parameters[k]; !found {\n\t\t\tif dest.Parameters == nil {\n\t\t\t\tdest.Parameters = make(map[string]spec.Parameter, len(source.Parameters))\n\t\t\t}\n\t\t\tdest.Parameters[k] = v\n\t\t}\n\t}\n\n\t// Check for path conflicts\n\tfor k, v := range source.Paths.Paths {\n\t\tif _, found := dest.Paths.Paths[k]; found {\n\t\t\treturn fmt.Errorf(\"unable to merge: duplicated path %s\", k)\n\t\t}\n\t\t// PathItem may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering).\n\t\tif dest.Paths.Paths == nil {\n\t\t\tdest.Paths.Paths = map[string]spec.PathItem{}\n\t\t}\n\t\tdest.Paths.Paths[k] = v\n\t}\n\n\treturn nil\n}\n\n// deepEqualDefinitionsModuloGVKs compares s1 and s2, but ignores the x-kubernetes-group-version-kind extension.\nfunc deepEqualDefinitionsModuloGVKs(s1, s2 *spec.Schema) bool {\n\tif s1 == nil {\n\t\treturn s2 == nil\n\t} else if s2 == nil {\n\t\treturn false\n\t}\n\tif !reflect.DeepEqual(s1.Extensions, s2.Extensions) {\n\t\tfor k, v := range s1.Extensions {\n\t\t\tif k == gvkKey {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !reflect.DeepEqual(v, s2.Extensions[k]) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tlen1 := len(s1.Extensions)\n\t\tlen2 := len(s2.Extensions)\n\t\tif _, found := s1.Extensions[gvkKey]; found {\n\t\t\tlen1--\n\t\t}\n\t\tif _, found := s2.Extensions[gvkKey]; found {\n\t\t\tlen2--\n\t\t}\n\t\tif len1 != len2 {\n\t\t\treturn false\n\t\t}\n\n\t\tif s1.Extensions != nil {\n\t\t\tshallowCopy := *s1\n\t\t\ts1 = &shallowCopy\n\t\t\ts1.Extensions = nil\n\t\t}\n\t\tif s2.Extensions != nil {\n\t\t\tshallowCopy := *s2\n\t\t\ts2 = &shallowCopy\n\t\t\ts2.Extensions = nil\n\t\t}\n\t}\n\n\treturn reflect.DeepEqual(s1, s2)\n}\n\n// mergedGVKs merges the x-kubernetes-group-version-kind slices and returns the result, and whether\n// s1's x-kubernetes-group-version-kind slice was changed at all.\nfunc mergedGVKs(s1, s2 *spec.Schema) (interface{}, bool, error) {\n\tgvk1, found1 := s1.Extensions[gvkKey]\n\tgvk2, found2 := s2.Extensions[gvkKey]\n\n\tif !found1 {\n\t\treturn gvk2, found2, nil\n\t}\n\tif !found2 {\n\t\treturn gvk1, false, nil\n\t}\n\n\tslice1, ok := gvk1.([]interface{})\n\tif !ok {\n\t\treturn nil, false, fmt.Errorf(\"expected slice of GroupVersionKinds, got: %+v\", slice1)\n\t}\n\tslice2, ok := gvk2.([]interface{})\n\tif !ok {\n\t\treturn nil, false, fmt.Errorf(\"expected slice of GroupVersionKinds, got: %+v\", slice2)\n\t}\n\n\tret := make([]interface{}, len(slice1), len(slice1)+len(slice2))\n\tkeys := make([]string, 0, len(slice1)+len(slice2))\n\tcopy(ret, slice1)\n\tseen := make(map[string]bool, len(slice1))\n\tfor _, x := range slice1 {\n\t\tgvk, ok := x.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn nil, false, fmt.Errorf(`expected {\"group\": <group>, \"kind\": <kind>, \"version\": <version>}, got: %#v`, x)\n\t\t}\n\t\tk := fmt.Sprintf(\"%s/%s.%s\", gvk[\"group\"], gvk[\"version\"], gvk[\"kind\"])\n\t\tkeys = append(keys, k)\n\t\tseen[k] = true\n\t}\n\tchanged := false\n\tfor _, x := range slice2 {\n\t\tgvk, ok := x.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn nil, false, fmt.Errorf(`expected {\"group\": <group>, \"kind\": <kind>, \"version\": <version>}, got: %#v`, x)\n\t\t}\n\t\tk := fmt.Sprintf(\"%s/%s.%s\", gvk[\"group\"], gvk[\"version\"], gvk[\"kind\"])\n\t\tif seen[k] {\n\t\t\tcontinue\n\t\t}\n\t\tret = append(ret, x)\n\t\tkeys = append(keys, k)\n\t\tchanged = true\n\t}\n\n\tif changed {\n\t\tsort.Sort(byKeys{ret, keys})\n\t}\n\n\treturn ret, changed, nil\n}\n\ntype byKeys struct {\n\tvalues []interface{}\n\tkeys   []string\n}\n\nfunc (b byKeys) Len() int {\n\treturn len(b.values)\n}\n\nfunc (b byKeys) Less(i, j int) bool {\n\treturn b.keys[i] < b.keys[j]\n}\n\nfunc (b byKeys) Swap(i, j int) {\n\tb.values[i], b.values[j] = b.values[j], b.values[i]\n\tb.keys[i], b.keys[j] = b.keys[j], b.keys[i]\n}\n"
  },
  {
    "path": "pkg/aggregator/aggregator_test.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage aggregator\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"k8s.io/kube-openapi/pkg/handler\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"sigs.k8s.io/yaml\"\n)\n\ntype DebugSpec struct {\n\t*spec.Swagger\n}\n\nfunc (d DebugSpec) String() string {\n\tbytes, err := d.Swagger.MarshalJSON()\n\tif err != nil {\n\t\treturn fmt.Sprintf(\"DebugSpec.String failed: %s\", err)\n\t}\n\treturn string(bytes)\n}\nfunc TestFilterSpecs(t *testing.T) {\n\tvar spec1, spec1_filtered *spec.Swagger\n\tast := assert.New(t)\n\n\terr := yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      tags:\n      - \"test\"\n      summary: \"Test API\"\n      operationId: \"addTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      responses:\n        405:\n          description: \"Invalid input\"\n          $ref: \"#/definitions/InvalidInput\"\n    delete:\n      summary: \"Test API Delete\"\n      operationId: \"deleteTest\"\n      parameters:\n      - $ref: \"#/parameters/body-deleteoptions\"\n  /othertest:\n    post:\n      tags:\n      - \"test2\"\n      summary: \"Test2 API\"\n      operationId: \"addTest2\"\n      consumes:\n      - \"application/json\"\n      produces:\n      - \"application/xml\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test2 object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test2\"\n    delete:\n      summary: \"Test2 API Delete\"\n      operationId: \"deleteTest2\"\n      parameters:\n      - schema:\n          $ref: \"#/definitions/DeleteOptions\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\n  Test2:\n    type: \"object\"\n    properties:\n      other:\n        $ref: \"#/definitions/Other\"\n  Other:\n    type: \"string\"\n  DeleteOptions:\n    type: \"object\"\n    properties:\n      preconditions:\n        $ref: \"#/definitions/Preconditions\"\n  Preconditions:\n    type: \"string\"\nparameters:\n  body-deleteoptions:\n    name: body\n    in: body\n    schema:\n      $ref: \"#/definitions/DeleteOptions\"\n`), &spec1)\n\n\tast.NoError(err)\n\n\terr = yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      tags:\n      - \"test\"\n      summary: \"Test API\"\n      operationId: \"addTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      responses:\n        405:\n          description: \"Invalid input\"\n          $ref: \"#/definitions/InvalidInput\"\n    delete:\n      summary: \"Test API Delete\"\n      operationId: \"deleteTest\"\n      parameters:\n      - $ref: \"#/parameters/body-deleteoptions\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\n  DeleteOptions:\n    type: \"object\"\n    properties:\n      preconditions:\n        $ref: \"#/definitions/Preconditions\"\n  Preconditions:\n    type: \"string\"\nparameters:\n  body-deleteoptions:\n    name: body\n    in: body\n    schema:\n      $ref: \"#/definitions/DeleteOptions\"\n`), &spec1_filtered)\n\tast.NoError(err)\n\n\torig_spec1, _ := cloneSpec(spec1)\n\tnew_spec1 := FilterSpecByPathsWithoutSideEffects(spec1, []string{\"/test\"})\n\tast.Equal(DebugSpec{spec1_filtered}, DebugSpec{new_spec1})\n\tast.Equal(DebugSpec{orig_spec1}, DebugSpec{spec1}, \"unexpected mutation of input\")\n}\n\nfunc TestFilterSpecsWithUnusedDefinitions(t *testing.T) {\n\tvar spec1, spec1Filtered *spec.Swagger\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      tags:\n      - \"test\"\n      summary: \"Test API\"\n      operationId: \"addTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      responses:\n        405:\n          description: \"Invalid input\"\n          $ref: \"#/definitions/InvalidInput\"\n  /othertest:\n    post:\n      tags:\n      - \"test2\"\n      summary: \"Test2 API\"\n      operationId: \"addTest2\"\n      consumes:\n      - \"application/json\"\n      produces:\n      - \"application/xml\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test2 object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test2\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\n  Test2:\n    type: \"object\"\n    properties:\n      other:\n        $ref: \"#/definitions/Other\"\n  Other:\n    type: \"string\"\n  Unused:\n    type: \"object\"\n`), &spec1)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      tags:\n      - \"test\"\n      summary: \"Test API\"\n      operationId: \"addTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      responses:\n        405:\n          description: \"Invalid input\"\n          $ref: \"#/definitions/InvalidInput\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\n  Unused:\n    type: \"object\"\n`), &spec1Filtered)\n\n\tast := assert.New(t)\n\torig_spec1, _ := cloneSpec(spec1)\n\tnew_spec1 := FilterSpecByPathsWithoutSideEffects(spec1, []string{\"/test\"})\n\tast.Equal(DebugSpec{spec1Filtered}, DebugSpec{new_spec1})\n\tast.Equal(DebugSpec{orig_spec1}, DebugSpec{spec1}, \"unexpected mutation of input\")\n}\n\nfunc TestMergeSpecsSimple(t *testing.T) {\n\tvar spec1, spec2, expected *spec.Swagger\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      tags:\n      - \"test\"\n      summary: \"Test API\"\n      operationId: \"addTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n      responses:\n        405:\n          description: \"Invalid input\"\n          $ref: \"#/definitions/InvalidInput\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n`), &spec1))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /othertest:\n    post:\n      tags:\n      - \"test2\"\n      summary: \"Test2 API\"\n      operationId: \"addTest2\"\n      consumes:\n      - \"application/json\"\n      produces:\n      - \"application/xml\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test2 object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test2\"\n      - $ref: \"#/parameters/b\"\ndefinitions:\n  Test2:\n    type: \"object\"\n    properties:\n      other:\n        $ref: \"#/definitions/Other\"\n  Other:\n    type: \"string\"\nparameters:\n  b:\n    in: query\n    name: b\n    schema:\n      $ref: \"#/definitions/Test2\"\n`), &spec2))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      tags:\n      - \"test\"\n      summary: \"Test API\"\n      operationId: \"addTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n      responses:\n        405:\n          description: \"Invalid input\"\n          $ref: \"#/definitions/InvalidInput\"\n  /othertest:\n    post:\n      tags:\n      - \"test2\"\n      summary: \"Test2 API\"\n      operationId: \"addTest2\"\n      consumes:\n      - \"application/json\"\n      produces:\n      - \"application/xml\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test2 object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test2\"\n      - $ref: \"#/parameters/b\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\n  Test2:\n    type: \"object\"\n    properties:\n      other:\n        $ref: \"#/definitions/Other\"\n  Other:\n    type: \"string\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n      $ref: \"#/definitions/Test\"\n  b:\n    in: query\n    name: b\n    schema:\n      $ref: \"#/definitions/Test2\"\n`), &expected))\n\n\tast := assert.New(t)\n\torig_spec2, _ := cloneSpec(spec2)\n\tif !ast.NoError(MergeSpecs(spec1, spec2)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}.String(), DebugSpec{spec1}.String())\n\tast.Equal(DebugSpec{orig_spec2}.String(), DebugSpec{spec2}.String(), \"unexpected mutation of input\")\n}\n\nfunc TestMergeSpecsEmptyDefinitions(t *testing.T) {\n\tvar spec1, spec2, expected *spec.Swagger\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      tags:\n      - \"test\"\n      summary: \"Test API\"\n      operationId: \"addTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test object\"\n        required: true\n      responses:\n        405:\n          description: \"Invalid input\"\n`), &spec1))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /othertest:\n    post:\n      tags:\n      - \"test2\"\n      summary: \"Test2 API\"\n      operationId: \"addTest2\"\n      consumes:\n      - \"application/json\"\n      produces:\n      - \"application/xml\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test2 object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test2\"\ndefinitions:\n  Test2:\n    type: \"object\"\n    properties:\n      other:\n        $ref: \"#/definitions/Other\"\n  Other:\n    type: \"string\"\n`), &spec2))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      tags:\n      - \"test\"\n      summary: \"Test API\"\n      operationId: \"addTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test object\"\n        required: true\n      responses:\n        405:\n          description: \"Invalid input\"\n  /othertest:\n    post:\n      tags:\n      - \"test2\"\n      summary: \"Test2 API\"\n      operationId: \"addTest2\"\n      consumes:\n      - \"application/json\"\n      produces:\n      - \"application/xml\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test2 object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test2\"\ndefinitions:\n  Test2:\n    type: \"object\"\n    properties:\n      other:\n        $ref: \"#/definitions/Other\"\n  Other:\n    type: \"string\"\n`), &expected))\n\n\tast := assert.New(t)\n\torig_spec2, _ := cloneSpec(spec2)\n\tif !ast.NoError(MergeSpecs(spec1, spec2)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{spec1})\n\tast.Equal(DebugSpec{orig_spec2}, DebugSpec{spec2}, \"unexpected mutation of input\")\n}\n\nfunc TestMergeSpecsEmptyPaths(t *testing.T) {\n\tvar spec1, spec2, expected *spec.Swagger\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\n`), &spec1)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /othertest:\n    post:\n      tags:\n      - \"test2\"\n      summary: \"Test2 API\"\n      operationId: \"addTest2\"\n      consumes:\n      - \"application/json\"\n      produces:\n      - \"application/xml\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test2 object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test2\"\ndefinitions:\n  Test2:\n    type: \"object\"\n    properties:\n      other:\n        $ref: \"#/definitions/Other\"\n  Other:\n    type: \"string\"\n`), &spec2)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /othertest:\n    post:\n      tags:\n      - \"test2\"\n      summary: \"Test2 API\"\n      operationId: \"addTest2\"\n      consumes:\n      - \"application/json\"\n      produces:\n      - \"application/xml\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test2 object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test2\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\n  Test2:\n    type: \"object\"\n    properties:\n      other:\n        $ref: \"#/definitions/Other\"\n  Other:\n    type: \"string\"\n`), &expected)\n\n\tast := assert.New(t)\n\torig_spec2, _ := cloneSpec(spec2)\n\tif !ast.NoError(MergeSpecs(spec1, spec2)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{spec1})\n\tast.Equal(DebugSpec{orig_spec2}, DebugSpec{spec2}, \"unexpected mutation of input\")\n}\n\nfunc TestMergeSpecsReuseModel(t *testing.T) {\n\tvar spec1, spec2, expected *spec.Swagger\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      tags:\n      - \"test\"\n      summary: \"Test API\"\n      operationId: \"addTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n      responses:\n        405:\n          description: \"Invalid input\"\n          $ref: \"#/definitions/InvalidInput\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n`), &spec1))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /othertest:\n    post:\n      tags:\n      - \"test2\"\n      summary: \"Test2 API\"\n      operationId: \"addTest2\"\n      consumes:\n      - \"application/json\"\n      produces:\n      - \"application/xml\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test2 object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n`), &spec2))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      tags:\n      - \"test\"\n      summary: \"Test API\"\n      operationId: \"addTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n      responses:\n        405:\n          description: \"Invalid input\"\n          $ref: \"#/definitions/InvalidInput\"\n  /othertest:\n    post:\n      tags:\n      - \"test2\"\n      summary: \"Test2 API\"\n      operationId: \"addTest2\"\n      consumes:\n      - \"application/json\"\n      produces:\n      - \"application/xml\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test2 object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n`), &expected))\n\n\tast := assert.New(t)\n\torig_spec2, _ := cloneSpec(spec2)\n\tif !ast.NoError(MergeSpecs(spec1, spec2)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{spec1})\n\tast.Equal(DebugSpec{orig_spec2}, DebugSpec{spec2}, \"unexpected mutation of input\")\n}\n\nfunc TestMergeSpecsRenameModel(t *testing.T) {\n\tvar spec1, spec2, expected *spec.Swagger\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      tags:\n      - \"test\"\n      summary: \"Test API\"\n      operationId: \"addTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n      responses:\n        405:\n          description: \"Invalid input\"\n          $ref: \"#/definitions/InvalidInput\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n`), &spec1))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /othertest:\n    post:\n      tags:\n      - \"test2\"\n      summary: \"Test2 API\"\n      operationId: \"addTest2\"\n      consumes:\n      - \"application/json\"\n      produces:\n      - \"application/xml\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test2 object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\ndefinitions:\n  Test:\n    description: \"This Test has a description\"\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n`), &spec2))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      tags:\n      - \"test\"\n      summary: \"Test API\"\n      operationId: \"addTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n      responses:\n        405:\n          description: \"Invalid input\"\n          $ref: \"#/definitions/InvalidInput\"\n  /othertest:\n    post:\n      tags:\n      - \"test2\"\n      summary: \"Test2 API\"\n      operationId: \"addTest2\"\n      consumes:\n      - \"application/json\"\n      produces:\n      - \"application/xml\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"test2 object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Test_v2\"\n      - $ref: \"#/parameters/a_v2\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      status:\n        type: \"string\"\n        description: \"Status\"\n  Test_v2:\n    description: \"This Test has a description\"\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n  InvalidInput:\n    type: \"string\"\n    format: \"string\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n  a_v2:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test_v2\"\n`), &expected))\n\n\tast := assert.New(t)\n\torig_spec2, _ := cloneSpec(spec2)\n\tif !ast.NoError(MergeSpecs(spec1, spec2)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{spec1}, DebugSpec{spec1}.String())\n\tast.Equal(DebugSpec{orig_spec2}, DebugSpec{spec2}, \"unexpected mutation of input\")\n}\n\nfunc TestMergeSpecsRenameModelWithExistingV2InDestination(t *testing.T) {\n\tvar spec1, spec2, expected *spec.Swagger\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n  /testv2:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v2\"\n      - $ref: \"#/parameters/a_v2\"\ndefinitions:\n  Test:\n    type: \"object\"\n  Test_v2:\n    description: \"This is an existing Test_v2 in destination schema\"\n    type: \"object\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n  a_v2:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test_v2\"\n`), &spec1))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /othertest:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\ndefinitions:\n  Test:\n    description: \"This Test has a description\"\n    type: \"object\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n`), &spec2))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n  /testv2:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v2\"\n      - $ref: \"#/parameters/a_v2\"\n  /othertest:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v3\"\n      - $ref: \"#/parameters/a_v3\"\ndefinitions:\n  Test:\n    type: \"object\"\n  Test_v2:\n    description: \"This is an existing Test_v2 in destination schema\"\n    type: \"object\"\n  Test_v3:\n    description: \"This Test has a description\"\n    type: \"object\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n  a_v2:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test_v2\"\n  a_v3:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test_v3\"\n`), &expected))\n\n\tast := assert.New(t)\n\torig_spec2, _ := cloneSpec(spec2)\n\tif !ast.NoError(MergeSpecs(spec1, spec2)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{spec1})\n\tast.Equal(DebugSpec{orig_spec2}, DebugSpec{spec2}, \"unexpected mutation of input\")\n}\n\nfunc TestMergeSpecsMultipleRenamesOfModelsAndLateConflict(t *testing.T) {\n\tvar spec1, spec2, expected *spec.Swagger\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n  /test3:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v3\"\n      - $ref: \"#/parameters/a_v3\"\ndefinitions:\n  Test:\n    description: \"I used to be Test in destination\"\n    type: \"object\"\n  Test_v3:\n    description: \"I used to be Test_v3 in destination\"\n    type: \"object\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n  a_v3:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test_v3\"\n`), &spec1))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /othertest:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n  /othertest2:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v2\"\n      - $ref: \"#/parameters/a_v2\"\ndefinitions:\n  Test:\n    description: \"I used to be Test in source\"\n    type: \"object\"\n  Test_v2:\n    description: \"I used to be Test_v2 in source\"\n    type: \"object\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n  a_v2:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test_v2\"\n`), &spec2))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n  /test3:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v3\"\n      - $ref: \"#/parameters/a_v3\"\n  /othertest2:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v2\"\n      - $ref: \"#/parameters/a_v2\"\n  /othertest:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v4\"\n      - $ref: \"#/parameters/a_v4\"\ndefinitions:\n  Test:\n    description: \"I used to be Test in destination\"\n    type: \"object\"\n  Test_v2:\n    description: \"I used to be Test_v2 in source\"\n    type: \"object\"\n  Test_v3:\n    description: \"I used to be Test_v3 in destination\"\n    type: \"object\"\n  Test_v4:\n    description: \"I used to be Test in source\"\n    type: \"object\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n  a_v2:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test_v2\"\n  a_v3:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test_v3\"\n  a_v4:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test_v4\"\n`), &expected))\n\n\tast := assert.New(t)\n\torig_spec2, _ := cloneSpec(spec2)\n\tif !ast.NoError(MergeSpecs(spec1, spec2)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{spec1})\n\tast.Equal(DebugSpec{orig_spec2}, DebugSpec{spec2}, \"unexpected mutation of input\")\n}\n\nfunc TestMergeSpecsRenameModelWithExistingV2InSource(t *testing.T) {\n\tvar spec1, spec2, expected *spec.Swagger\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\ndefinitions:\n  Test:\n    type: \"object\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n`), &spec1))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /othertest:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n  /testv2:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v2\"\n      - $ref: \"#/parameters/a_v2\"\ndefinitions:\n  Test:\n    description: \"This Test has a description\"\n    type: \"object\"\n  Test_v2:\n    description: \"This is an existing Test_v2 in source schema\"\n    type: \"object\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n       $ref: \"#/definitions/Test\"\n  a_v2:\n    in: query\n    name: a\n    schema:\n      $ref: \"#/definitions/Test_v2\"\n`), &spec2))\n\n\trequire.NoError(t, yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n      - $ref: \"#/parameters/a\"\n  /testv2:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v2\"\n      - $ref: \"#/parameters/a_v2\"\n  /othertest:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v3\"\n      - $ref: \"#/parameters/a_v3\"\ndefinitions:\n  Test:\n    type: \"object\"\n  Test_v2:\n    description: \"This is an existing Test_v2 in source schema\"\n    type: \"object\"\n  Test_v3:\n    description: \"This Test has a description\"\n    type: \"object\"\nparameters:\n  a:\n    in: query\n    name: a\n    schema:\n      $ref: \"#/definitions/Test\"\n  a_v2:\n    in: query\n    name: a\n    schema:\n      $ref: \"#/definitions/Test_v2\"\n  a_v3:\n    in: query\n    name: a\n    schema:\n      $ref: \"#/definitions/Test_v3\"\n`), &expected))\n\n\tast := assert.New(t)\n\torig_spec2, _ := cloneSpec(spec2)\n\tif !ast.NoError(MergeSpecs(spec1, spec2)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{spec1})\n\tast.Equal(DebugSpec{orig_spec2}, DebugSpec{spec2}, \"unexpected mutation of input\")\n}\n\n// This tests if there are three specs, where the first two use the same object definition,\n// while the third one uses its own.\n// We expect the merged schema to contain two versions of the object, not three\nfunc TestTwoMergeSpecsFirstTwoSchemasHaveSameDefinition(t *testing.T) {\n\tvar spec1, spec2, spec3, expected *spec.Swagger\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\ndefinitions:\n  Test:\n    description: \"spec1 and spec2 use the same object definition, while spec3 doesn't\"\n    type: \"object\"\n`), &spec1)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test2:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\ndefinitions:\n  Test:\n    description: \"spec1 and spec2 use the same object definition, while spec3 doesn't\"\n    type: \"object\"\n`), &spec2)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test3:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\ndefinitions:\n  Test:\n    description: \"spec3 has its own definition (the description doesn't match)\"\n    type: \"object\"\n`), &spec3)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n  /test2:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n  /test3:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v2\"\ndefinitions:\n  Test:\n    description: \"spec1 and spec2 use the same object definition, while spec3 doesn't\"\n    type: \"object\"\n  Test_v2:\n    description: \"spec3 has its own definition (the description doesn't match)\"\n    type: \"object\"\n`), &expected)\n\n\tast := assert.New(t)\n\torig_spec2, _ := cloneSpec(spec2)\n\torig_spec3, _ := cloneSpec(spec3)\n\tif !ast.NoError(MergeSpecs(spec1, spec2)) {\n\t\treturn\n\t}\n\tif !ast.NoError(MergeSpecs(spec1, spec3)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{spec1})\n\tast.Equal(DebugSpec{orig_spec2}, DebugSpec{spec2}, \"unexpected mutation of spec2 input\")\n\tast.Equal(DebugSpec{orig_spec3}, DebugSpec{spec3}, \"unexpected mutation of spec3 input\")\n}\n\n// This tests if there are three specs, where the last two use the same object definition,\n// while the first one uses its own.\n// We expect the merged schema to contain two versions of the object, not three\nfunc TestTwoMergeSpecsLastTwoSchemasHaveSameDefinition(t *testing.T) {\n\tvar spec1, spec2, spec3, expected *spec.Swagger\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\ndefinitions:\n  Test:\n    type: \"object\"\n`), &spec1)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /othertest:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\ndefinitions:\n  Test:\n    description: \"spec2 and spec3 use the same object definition, while spec1 doesn't\"\n    type: \"object\"\n`), &spec2)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /othertest2:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\ndefinitions:\n  Test:\n    description: \"spec2 and spec3 use the same object definition, while spec1 doesn't\"\n    type: \"object\"\n`), &spec3)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n  /othertest:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v2\"\n  /othertest2:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test_v2\"\ndefinitions:\n  Test:\n    type: \"object\"\n  Test_v2:\n    description: \"spec2 and spec3 use the same object definition, while spec1 doesn't\"\n    type: \"object\"\n`), &expected)\n\n\tast := assert.New(t)\n\torig_spec2, _ := cloneSpec(spec2)\n\torig_spec3, _ := cloneSpec(spec3)\n\tif !ast.NoError(MergeSpecs(spec1, spec2)) {\n\t\treturn\n\t}\n\tif !ast.NoError(MergeSpecs(spec1, spec3)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{spec1})\n\tast.Equal(DebugSpec{orig_spec2}, DebugSpec{spec2}, \"unexpected mutation of spec2 input\")\n\tast.Equal(DebugSpec{orig_spec3}, DebugSpec{spec3}, \"unexpected mutation of spec3 input\")\n\n}\n\nfunc TestSafeMergeSpecsSimple(t *testing.T) {\n\tvar fooSpec, barSpec, expected *spec.Swagger\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /foo:\n    post:\n      summary: \"Foo API\"\n      operationId: \"fooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n  Foo:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n`), &fooSpec)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /bar:\n    post:\n      summary: \"Bar API\"\n      operationId: \"barTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"bar object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Bar\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n  Bar:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n`), &barSpec)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /foo:\n    post:\n      summary: \"Foo API\"\n      operationId: \"fooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\n  /bar:\n    post:\n      summary: \"Bar API\"\n      operationId: \"barTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"bar object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Bar\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n    Foo:\n      type: \"object\"\n      properties:\n        id:\n          type: \"integer\"\n          format: \"int64\"\n    Bar:\n      type: \"object\"\n      properties:\n        id:\n          type: \"integer\"\n          format: \"int64\"\n  `), &expected)\n\n\tast := assert.New(t)\n\torig_barSpec, err := cloneSpec(barSpec)\n\tif !ast.NoError(err) {\n\t\treturn\n\t}\n\tif !ast.NoError(MergeSpecsFailOnDefinitionConflict(fooSpec, barSpec)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{fooSpec})\n\tast.Equal(DebugSpec{orig_barSpec}, DebugSpec{barSpec}, \"unexpected mutation of input\")\n}\n\nfunc TestSafeMergeSpecsReuseModel(t *testing.T) {\n\tvar fooSpec, barSpec, expected *spec.Swagger\n\tif err := yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /foo:\n    post:\n      summary: \"Foo API\"\n      operationId: \"fooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n  Foo:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n    x-kubernetes-group-version-kind:\n    - group: group1\n      version: v1\n      kind: Foo\n    - group: group3\n      version: v1\n      kind: Foo\n`), &fooSpec); err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tif err := yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /refoo:\n    post:\n      summary: \"Refoo API\"\n      operationId: \"refooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n  Foo:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n    x-kubernetes-group-version-kind:\n    - group: group2\n      version: v1\n      kind: Foo\n`), &barSpec); err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tif err := yaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /foo:\n    post:\n      summary: \"Foo API\"\n      operationId: \"fooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\n  /refoo:\n    post:\n      summary: \"Refoo API\"\n      operationId: \"refooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n    Foo:\n      type: \"object\"\n      properties:\n        id:\n          type: \"integer\"\n          format: \"int64\"\n      x-kubernetes-group-version-kind:\n      - group: group1\n        version: v1\n        kind: Foo\n      - group: group2\n        version: v1\n        kind: Foo\n      - group: group3\n        version: v1\n        kind: Foo\n  `), &expected); err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tast := assert.New(t)\n\torig_barSpec, err := cloneSpec(barSpec)\n\tif !ast.NoError(err) {\n\t\treturn\n\t}\n\tif !ast.NoError(MergeSpecsFailOnDefinitionConflict(fooSpec, barSpec)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{fooSpec})\n\tast.Equal(DebugSpec{orig_barSpec}, DebugSpec{barSpec}, \"unexpected mutation of input\")\n}\n\nfunc TestSafeMergeSpecsReuseModelFails(t *testing.T) {\n\tvar fooSpec, barSpec, expected *spec.Swagger\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /foo:\n    post:\n      summary: \"Foo API\"\n      operationId: \"fooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n  Foo:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n`), &fooSpec)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /refoo:\n    post:\n      summary: \"Refoo API\"\n      operationId: \"refooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n  Foo:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n      new_field:\n        type: \"string\"\n`), &barSpec)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /foo:\n    post:\n      summary: \"Foo API\"\n      operationId: \"fooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\n  /refoo:\n    post:\n      summary: \"Refoo API\"\n      operationId: \"refooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n    Foo:\n      type: \"object\"\n      properties:\n        id:\n          type: \"integer\"\n          format: \"int64\"\n  `), &expected)\n\n\tast := assert.New(t)\n\tast.Error(MergeSpecsFailOnDefinitionConflict(fooSpec, barSpec))\n}\n\nfunc TestMergeSpecsIgnorePathConflicts(t *testing.T) {\n\tvar fooSpec, barSpec, expected *spec.Swagger\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /foo:\n    post:\n      summary: \"Foo API\"\n      operationId: \"fooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n  Foo:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n`), &fooSpec)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /foo:\n    post:\n      summary: \"Should be ignored\"\n  /bar:\n    post:\n      summary: \"Bar API\"\n      operationId: \"barTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"bar object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Bar\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n  Bar:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n`), &barSpec)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /foo:\n    post:\n      summary: \"Foo API\"\n      operationId: \"fooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\n  /bar:\n    post:\n      summary: \"Bar API\"\n      operationId: \"barTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"bar object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Bar\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n    Foo:\n      type: \"object\"\n      properties:\n        id:\n          type: \"integer\"\n          format: \"int64\"\n    Bar:\n      type: \"object\"\n      properties:\n        id:\n          type: \"integer\"\n          format: \"int64\"\n  `), &expected)\n\n\tast := assert.New(t)\n\tactual, _ := cloneSpec(fooSpec)\n\torig_barSpec, _ := cloneSpec(barSpec)\n\tif !ast.Error(MergeSpecs(actual, barSpec)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{orig_barSpec}, DebugSpec{barSpec}, \"unexpected mutation of input\")\n\n\tactual, _ = cloneSpec(fooSpec)\n\tif !ast.NoError(MergeSpecsIgnorePathConflictDeprecated(actual, barSpec)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{actual})\n\tast.Equal(DebugSpec{orig_barSpec}, DebugSpec{barSpec}, \"unexpected mutation of input\")\n}\n\nfunc TestMergeSpecsIgnorePathConflictsAllConflicting(t *testing.T) {\n\tvar fooSpec *spec.Swagger\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /foo:\n    post:\n      summary: \"Foo API\"\n      operationId: \"fooTest\"\n      parameters:\n      - in: \"body\"\n        name: \"body\"\n        description: \"foo object\"\n        required: true\n        schema:\n          $ref: \"#/definitions/Foo\"\n      responses:\n        200:\n          description: \"OK\"\ndefinitions:\n  Foo:\n    type: \"object\"\n    properties:\n      id:\n        type: \"integer\"\n        format: \"int64\"\n`), &fooSpec)\n\n\tast := assert.New(t)\n\tfoo2Spec, _ := cloneSpec(fooSpec)\n\tactual, _ := cloneSpec(fooSpec)\n\tif !ast.NoError(MergeSpecsIgnorePathConflictRenamingDefinitionsAndParameters(actual, foo2Spec)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{fooSpec}, DebugSpec{actual})\n\tast.Equal(DebugSpec{fooSpec}, DebugSpec{foo2Spec}, \"unexpected mutation of input\")\n}\n\nfunc TestMergeSpecsIgnorePathConflictsWithKubeSpec(t *testing.T) {\n\tast := assert.New(t)\n\n\tspecs, expected := loadTestData()\n\tsp, specs := specs[0], specs[1:]\n\n\torigSpecs := make([]*spec.Swagger, len(specs))\n\tfor i := range specs {\n\t\tcpy, err := cloneSpec(specs[i])\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\t\tast.NoError(err)\n\t\torigSpecs[i] = cpy\n\t}\n\n\tfor i := range specs {\n\t\tif err := MergeSpecsIgnorePathConflictRenamingDefinitionsAndParameters(sp, specs[i]); err != nil {\n\t\t\tt.Fatalf(\"merging spec %d failed: %v\", i, err)\n\t\t}\n\t}\n\n\tast.Equal(DebugSpec{expected}, DebugSpec{sp})\n\n\tfor i := range specs {\n\t\tast.Equal(DebugSpec{origSpecs[i]}, DebugSpec{specs[i]}, \"unexpected mutation of specs[%d]\", i)\n\t}\n}\n\nfunc BenchmarkMergeSpecsIgnorePathConflictsWithKubeSpec(b *testing.B) {\n\tb.StopTimer()\n\tb.ReportAllocs()\n\tb.ResetTimer()\n\n\tspecs, _ := loadTestData()\n\tstart, specs := specs[0], specs[1:]\n\n\tfor n := 0; n < b.N; n++ {\n\t\tsp, err := cloneSpec(start)\n\t\tif err != nil {\n\t\t\tb.Fatal(err)\n\t\t}\n\n\t\tb.StartTimer()\n\t\tfor i := range specs {\n\t\t\tif err := MergeSpecsIgnorePathConflictRenamingDefinitionsAndParameters(sp, specs[i]); err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t}\n\n\t\tspecBytes, _ := sp.MarshalJSON()\n\t\thandler.ToProtoBinary(specBytes)\n\n\t\tb.StopTimer()\n\t}\n}\n\nfunc TestMergeSpecReplacesAllPossibleRefs(t *testing.T) {\n\tvar spec1, spec2, expected *spec.Swagger\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      foo:\n        $ref: \"#/definitions/TestProperty\"\n  TestProperty:\n    type: \"object\"\n`), &spec1)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test2:\n    post:\n      parameters:\n      - name: \"test2\"\n        schema:\n          $ref: \"#/definitions/Test2\"\n      - name: \"test3\"\n        schema:\n          $ref: \"#/definitions/Test3\"\n      - name: \"test4\"\n        schema:\n          $ref: \"#/definitions/Test4\"\n      - name: \"test5\"\n        schema:\n          $ref: \"#/definitions/Test5\"\ndefinitions:\n  Test2:\n    $ref: \"#/definitions/TestProperty\"\n  Test3:\n    type: \"object\"\n    properties:\n      withRef:\n        $ref: \"#/definitions/TestProperty\"\n      withAllOf:\n        type: \"object\"\n        allOf:\n        - $ref: \"#/definitions/TestProperty\"\n        - type: object\n          properties:\n            test:\n              $ref: \"#/definitions/TestProperty\"\n      withAnyOf:\n        type: \"object\"\n        anyOf:\n        - $ref: \"#/definitions/TestProperty\"\n        - type: object\n          properties:\n            test:\n              $ref: \"#/definitions/TestProperty\"\n      withOneOf:\n        type: \"object\"\n        oneOf:\n        - $ref: \"#/definitions/TestProperty\"\n        - type: object\n          properties:\n            test:\n              $ref: \"#/definitions/TestProperty\"\n      withNot:\n        type: \"object\"\n        not:\n          $ref: \"#/definitions/TestProperty\"\n    patternProperties:\n      \"prefix.*\":\n        $ref: \"#/definitions/TestProperty\"\n    additionalProperties:\n      $ref: \"#/definitions/TestProperty\"\n    definitions:\n      SomeDefinition:\n        $ref: \"#/definitions/TestProperty\"\n  Test4:\n    type: \"array\"\n    items:\n      $ref: \"#/definitions/TestProperty\"\n    additionalItems:\n      $ref: \"#/definitions/TestProperty\"\n  Test5:\n    type: \"array\"\n    items:\n    - $ref: \"#/definitions/TestProperty\"\n    - $ref: \"#/definitions/TestProperty\"\n  TestProperty:\n    description: \"This TestProperty is different from the one in spec1\"\n    type: \"object\"\n`), &spec2)\n\n\tyaml.Unmarshal([]byte(`\nswagger: \"2.0\"\npaths:\n  /test:\n    post:\n      parameters:\n      - name: \"body\"\n        schema:\n          $ref: \"#/definitions/Test\"\n  /test2:\n    post:\n      parameters:\n      - name: \"test2\"\n        schema:\n          $ref: \"#/definitions/Test2\"\n      - name: \"test3\"\n        schema:\n          $ref: \"#/definitions/Test3\"\n      - name: \"test4\"\n        schema:\n          $ref: \"#/definitions/Test4\"\n      - name: \"test5\"\n        schema:\n          $ref: \"#/definitions/Test5\"\ndefinitions:\n  Test:\n    type: \"object\"\n    properties:\n      foo:\n        $ref: \"#/definitions/TestProperty\"\n  TestProperty:\n    type: \"object\"\n  Test2:\n    $ref: \"#/definitions/TestProperty_v2\"\n  Test3:\n    type: \"object\"\n    properties:\n      withRef:\n        $ref: \"#/definitions/TestProperty_v2\"\n      withAllOf:\n        type: \"object\"\n        allOf:\n        - $ref: \"#/definitions/TestProperty_v2\"\n        - type: object\n          properties:\n            test:\n              $ref: \"#/definitions/TestProperty_v2\"\n      withAnyOf:\n        type: \"object\"\n        anyOf:\n        - $ref: \"#/definitions/TestProperty_v2\"\n        - type: object\n          properties:\n            test:\n              $ref: \"#/definitions/TestProperty_v2\"\n      withOneOf:\n        type: \"object\"\n        oneOf:\n        - $ref: \"#/definitions/TestProperty_v2\"\n        - type: object\n          properties:\n            test:\n              $ref: \"#/definitions/TestProperty_v2\"\n      withNot:\n        type: \"object\"\n        not:\n          $ref: \"#/definitions/TestProperty_v2\"\n    patternProperties:\n      \"prefix.*\":\n        $ref: \"#/definitions/TestProperty_v2\"\n    additionalProperties:\n      $ref: \"#/definitions/TestProperty_v2\"\n    definitions:\n      SomeDefinition:\n        $ref: \"#/definitions/TestProperty_v2\"\n  Test4:\n    type: \"array\"\n    items:\n      $ref: \"#/definitions/TestProperty_v2\"\n    additionalItems:\n      $ref: \"#/definitions/TestProperty_v2\"\n  Test5:\n    type: \"array\"\n    items:\n    - $ref: \"#/definitions/TestProperty_v2\"\n    - $ref: \"#/definitions/TestProperty_v2\"\n  TestProperty_v2:\n    description: \"This TestProperty is different from the one in spec1\"\n    type: \"object\"\n`), &expected)\n\n\tast := assert.New(t)\n\torig_spec2, _ := cloneSpec(spec2)\n\tif !ast.NoError(MergeSpecs(spec1, spec2)) {\n\t\treturn\n\t}\n\tast.Equal(DebugSpec{expected}, DebugSpec{spec1})\n\tast.Equal(DebugSpec{orig_spec2}, DebugSpec{spec2}, \"unexpected mutation of input\")\n}\n\nfunc loadTestData() ([]*spec.Swagger, *spec.Swagger) {\n\tloadSpec := func(fileName string) *spec.Swagger {\n\t\tbs, err := os.ReadFile(filepath.Join(\"../../test/integration/testdata/aggregator\", fileName))\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tsp := spec.Swagger{}\n\n\t\tif err := json.Unmarshal(bs, &sp); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\treturn &sp\n\t}\n\n\tspecs := []*spec.Swagger{\n\t\tloadSpec(\"openapi-0.json\"),\n\t\tloadSpec(\"openapi-1.json\"),\n\t\tloadSpec(\"openapi-2.json\"),\n\t}\n\texpected := loadSpec(\"openapi.json\")\n\n\treturn specs, expected\n}\n\nfunc TestCloneSpec(t *testing.T) {\n\t_, sp := loadTestData()\n\tclone, err := cloneSpec(sp)\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tast := assert.New(t)\n\tast.Equal(DebugSpec{sp}, DebugSpec{clone})\n}\n\nfunc cloneSpec(source *spec.Swagger) (*spec.Swagger, error) {\n\tbytes, err := source.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar ret spec.Swagger\n\terr = json.Unmarshal(bytes, &ret)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &ret, nil\n}\n\nfunc TestMergedGVKs(t *testing.T) {\n\tgvk1 := map[string]interface{}{\"group\": \"group1\", \"version\": \"v1\", \"kind\": \"Foo\"}\n\tgvk2 := map[string]interface{}{\"group\": \"group2\", \"version\": \"v1\", \"kind\": \"Bar\"}\n\tgvk3 := map[string]interface{}{\"group\": \"group3\", \"version\": \"v1\", \"kind\": \"Abc\"}\n\tgvk4 := map[string]interface{}{\"group\": \"group4\", \"version\": \"v1\", \"kind\": \"Abc\"}\n\n\ttests := []struct {\n\t\tname        string\n\t\tgvks1       interface{}\n\t\tgvks2       interface{}\n\t\twant        interface{}\n\t\twantChanged bool\n\t\twantErr     bool\n\t}{\n\t\t{\"nil\", nil, nil, nil, false, false},\n\t\t{\"first only\", []interface{}{gvk1, gvk2}, nil, []interface{}{gvk1, gvk2}, false, false},\n\t\t{\"second only\", nil, []interface{}{gvk1, gvk2}, []interface{}{gvk1, gvk2}, true, false},\n\t\t{\"both\", []interface{}{gvk1, gvk2}, []interface{}{gvk3}, []interface{}{gvk1, gvk2, gvk3}, true, false},\n\t\t{\"equal, different order\", []interface{}{gvk1, gvk2, gvk3}, []interface{}{gvk3, gvk2, gvk1}, []interface{}{gvk1, gvk2, gvk3}, false, false},\n\t\t{\"ordered\", []interface{}{gvk3, gvk1, gvk4}, []interface{}{gvk2}, []interface{}{gvk1, gvk2, gvk3, gvk4}, true, false},\n\t\t{\"not ordered when not changed\", []interface{}{gvk3, gvk1, gvk4}, []interface{}{}, []interface{}{gvk3, gvk1, gvk4}, false, false},\n\t\t{\"empty\", []interface{}{}, []interface{}{}, []interface{}{}, false, false},\n\t\t{\"overlapping\", []interface{}{gvk1, gvk2}, []interface{}{gvk2, gvk3}, []interface{}{gvk1, gvk2, gvk3}, true, false},\n\t\t{\"first no slice\", 42, []interface{}{gvk1}, nil, false, true},\n\t\t{\"second no slice\", []interface{}{gvk1}, 42, nil, false, true},\n\t\t{\"no map in slice\", []interface{}{42}, []interface{}{gvk1}, nil, false, true},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar ext1, ext2 map[string]interface{}\n\t\t\tif tt.gvks1 != nil {\n\t\t\t\text1 = map[string]interface{}{\"x-kubernetes-group-version-kind\": tt.gvks1}\n\t\t\t}\n\t\t\tif tt.gvks2 != nil {\n\t\t\t\text2 = map[string]interface{}{\"x-kubernetes-group-version-kind\": tt.gvks2}\n\t\t\t}\n\n\t\t\tgot, gotChanged, gotErr := mergedGVKs(\n\t\t\t\t&spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: ext1}},\n\t\t\t\t&spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: ext2}},\n\t\t\t)\n\t\t\tif (gotErr != nil) != tt.wantErr {\n\t\t\t\tt.Errorf(\"mergedGVKs() error = %v, wantErr %v\", gotErr, tt.wantErr)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif gotChanged != tt.wantChanged {\n\t\t\t\tt.Errorf(\"mergedGVKs() changed = %v, want %v\", gotChanged, tt.wantChanged)\n\t\t\t}\n\t\t\tif !reflect.DeepEqual(got, tt.want) {\n\t\t\t\tt.Errorf(\"mergedGVKs() got = %v, want %v\", got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestDeepEqualDefinitionsModuloGVKs(t *testing.T) {\n\ttests := []struct {\n\t\tname  string\n\t\ts1    *spec.Schema\n\t\ts2    *spec.Schema\n\t\tequal bool\n\t}{\n\t\t{name: \"nil\", equal: true},\n\t\t{name: \"nil, non-nil\", s1: nil, s2: &spec.Schema{}},\n\t\t{name: \"equal\", s1: &spec.Schema{}, s2: &spec.Schema{}, equal: true},\n\t\t{name: \"different\", s1: &spec.Schema{SchemaProps: spec.SchemaProps{ID: \"abc\"}}, s2: &spec.Schema{}},\n\t\t{name: \"equal modulo: nil, empty\",\n\t\t\ts1:    &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: nil}},\n\t\t\ts2:    &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: spec.Extensions{}}},\n\t\t\tequal: true,\n\t\t},\n\t\t{name: \"equal modulo: nil, gvk\",\n\t\t\ts1: &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: nil}},\n\t\t\ts2: &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\tgvkKey: true,\n\t\t\t}}},\n\t\t\tequal: true,\n\t\t},\n\t\t{name: \"equal modulo: empty, gvk\",\n\t\t\ts1: &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: spec.Extensions{}}},\n\t\t\ts2: &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\tgvkKey: true,\n\t\t\t}}},\n\t\t\tequal: true,\n\t\t},\n\t\t{name: \"equal modulo: non-empty, gvk\",\n\t\t\ts1: &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: spec.Extensions{\"foo\": \"bar\"}}},\n\t\t\ts2: &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\tgvkKey: true,\n\t\t\t\t\"foo\":  \"bar\",\n\t\t\t}}},\n\t\t\tequal: true,\n\t\t},\n\t\t{name: \"equal modulo: gvk, gvk\",\n\t\t\ts1: &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\tgvkKey: false,\n\t\t\t\t\"foo\":  \"bar\",\n\t\t\t}}},\n\t\t\ts2: &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\tgvkKey: true,\n\t\t\t\t\"foo\":  \"bar\",\n\t\t\t}}},\n\t\t\tequal: true,\n\t\t},\n\t\t{name: \"different values\",\n\t\t\ts1: &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\tgvkKey: false,\n\t\t\t\t\"foo\":  \"bar\",\n\t\t\t}}},\n\t\t\ts2: &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\tgvkKey: true,\n\t\t\t\t\"foo\":  \"abc\",\n\t\t\t}}},\n\t\t},\n\t\t{name: \"different sizes\",\n\t\t\ts1: &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\tgvkKey: false,\n\t\t\t\t\"foo\":  \"bar\",\n\t\t\t\t\"xyz\":  \"123\",\n\t\t\t}}},\n\t\t\ts2: &spec.Schema{VendorExtensible: spec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\tgvkKey: true,\n\t\t\t\t\"foo\":  \"abc\",\n\t\t\t}}},\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := deepEqualDefinitionsModuloGVKs(tt.s1, tt.s2); got != tt.equal {\n\t\t\t\tt.Errorf(\"deepEqualDefinitionsModuloGVKs(s1, v2) = %v, want %v\", got, tt.equal)\n\t\t\t}\n\n\t\t\tif got := deepEqualDefinitionsModuloGVKs(tt.s2, tt.s1); got != tt.equal {\n\t\t\t\tt.Errorf(\"deepEqualDefinitionsModuloGVKs(s2, s1) = %v, want %v\", got, tt.equal)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/aggregator/walker.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage aggregator\n\nimport (\n\t\"strings\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nconst (\n\tdefinitionPrefix = \"#/definitions/\"\n\tparameterPrefix  = \"#/parameters/\"\n)\n\n// Run a readonlyReferenceWalker method on all references of an OpenAPI spec\ntype readonlyReferenceWalker struct {\n\t// walkRefCallback will be called on each reference. The input will never be nil.\n\twalkRefCallback func(ref *spec.Ref)\n\n\t// The spec to walk through.\n\troot *spec.Swagger\n}\n\n// walkOnAllReferences recursively walks on all references, while following references into definitions.\n// it calls walkRef on each found reference.\nfunc walkOnAllReferences(walkRef func(ref *spec.Ref), root *spec.Swagger) {\n\talreadyVisited := map[string]bool{}\n\n\twalker := &readonlyReferenceWalker{\n\t\troot: root,\n\t}\n\twalker.walkRefCallback = func(ref *spec.Ref) {\n\t\twalkRef(ref)\n\n\t\trefStr := ref.String()\n\t\tif refStr == \"\" {\n\t\t\treturn\n\t\t}\n\n\t\tif strings.HasPrefix(refStr, parameterPrefix) {\n\t\t\tparamName := refStr[len(parameterPrefix):]\n\t\t\tif param, found := root.Parameters[paramName]; found {\n\t\t\t\twalker.walkParam(param)\n\t\t\t}\n\t\t} else if strings.HasPrefix(refStr, definitionPrefix) {\n\t\t\tdefName := refStr[len(definitionPrefix):]\n\n\t\t\tif _, found := root.Definitions[defName]; found && !alreadyVisited[refStr] {\n\t\t\t\talreadyVisited[refStr] = true\n\t\t\t\tdef := root.Definitions[defName]\n\t\t\t\twalker.walkSchema(&def)\n\t\t\t}\n\t\t}\n\n\t}\n\twalker.Start()\n}\n\nfunc (s *readonlyReferenceWalker) walkSchema(schema *spec.Schema) {\n\tif schema == nil {\n\t\treturn\n\t}\n\ts.walkRefCallback(&schema.Ref)\n\tvar v *spec.Schema\n\tif len(schema.Definitions)+len(schema.Properties)+len(schema.PatternProperties) > 0 {\n\t\tv = &spec.Schema{}\n\t}\n\tfor k := range schema.Definitions {\n\t\t*v = schema.Definitions[k]\n\t\ts.walkSchema(v)\n\t}\n\tfor k := range schema.Properties {\n\t\t*v = schema.Properties[k]\n\t\ts.walkSchema(v)\n\t}\n\tfor k := range schema.PatternProperties {\n\t\t*v = schema.PatternProperties[k]\n\t\ts.walkSchema(v)\n\t}\n\tfor i := range schema.AllOf {\n\t\ts.walkSchema(&schema.AllOf[i])\n\t}\n\tfor i := range schema.AnyOf {\n\t\ts.walkSchema(&schema.AnyOf[i])\n\t}\n\tfor i := range schema.OneOf {\n\t\ts.walkSchema(&schema.OneOf[i])\n\t}\n\tif schema.Not != nil {\n\t\ts.walkSchema(schema.Not)\n\t}\n\tif schema.AdditionalProperties != nil && schema.AdditionalProperties.Schema != nil {\n\t\ts.walkSchema(schema.AdditionalProperties.Schema)\n\t}\n\tif schema.AdditionalItems != nil && schema.AdditionalItems.Schema != nil {\n\t\ts.walkSchema(schema.AdditionalItems.Schema)\n\t}\n\tif schema.Items != nil {\n\t\tif schema.Items.Schema != nil {\n\t\t\ts.walkSchema(schema.Items.Schema)\n\t\t}\n\t\tfor i := range schema.Items.Schemas {\n\t\t\ts.walkSchema(&schema.Items.Schemas[i])\n\t\t}\n\t}\n}\n\nfunc (s *readonlyReferenceWalker) walkParams(params []spec.Parameter) {\n\tif params == nil {\n\t\treturn\n\t}\n\tfor _, param := range params {\n\t\ts.walkParam(param)\n\t}\n}\n\nfunc (s *readonlyReferenceWalker) walkParam(param spec.Parameter) {\n\ts.walkRefCallback(&param.Ref)\n\ts.walkSchema(param.Schema)\n\tif param.Items != nil {\n\t\ts.walkRefCallback(&param.Items.Ref)\n\t}\n}\n\nfunc (s *readonlyReferenceWalker) walkResponse(resp *spec.Response) {\n\tif resp == nil {\n\t\treturn\n\t}\n\ts.walkRefCallback(&resp.Ref)\n\ts.walkSchema(resp.Schema)\n}\n\nfunc (s *readonlyReferenceWalker) walkOperation(op *spec.Operation) {\n\tif op == nil {\n\t\treturn\n\t}\n\ts.walkParams(op.Parameters)\n\tif op.Responses == nil {\n\t\treturn\n\t}\n\ts.walkResponse(op.Responses.Default)\n\tfor _, r := range op.Responses.StatusCodeResponses {\n\t\ts.walkResponse(&r)\n\t}\n}\n\nfunc (s *readonlyReferenceWalker) Start() {\n\tif s.root.Paths == nil {\n\t\treturn\n\t}\n\tfor _, pathItem := range s.root.Paths.Paths {\n\t\ts.walkParams(pathItem.Parameters)\n\t\ts.walkOperation(pathItem.Delete)\n\t\ts.walkOperation(pathItem.Get)\n\t\ts.walkOperation(pathItem.Head)\n\t\ts.walkOperation(pathItem.Options)\n\t\ts.walkOperation(pathItem.Patch)\n\t\ts.walkOperation(pathItem.Post)\n\t\ts.walkOperation(pathItem.Put)\n\t}\n}\n"
  },
  {
    "path": "pkg/builder/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package builder contains code to generate OpenAPI discovery spec (which\n// initial version of it also known as Swagger 2.0).\n// For more details: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md\npackage builder\n"
  },
  {
    "path": "pkg/builder/openapi.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage builder\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\n\trestful \"github.com/emicklei/go-restful/v3\"\n\n\t\"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/common/restfuladapter\"\n\t\"k8s.io/kube-openapi/pkg/util\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nconst (\n\tOpenAPIVersion = \"2.0\"\n)\n\ntype openAPI struct {\n\tconfig       *common.Config\n\tswagger      *spec.Swagger\n\tprotocolList []string\n\tdefinitions  map[string]common.OpenAPIDefinition\n}\n\n// BuildOpenAPISpec builds OpenAPI spec given a list of route containers and common.Config to customize it.\n//\n// Deprecated: BuildOpenAPISpecFromRoutes should be used instead.\nfunc BuildOpenAPISpec(routeContainers []*restful.WebService, config *common.Config) (*spec.Swagger, error) {\n\treturn BuildOpenAPISpecFromRoutes(restfuladapter.AdaptWebServices(routeContainers), config)\n}\n\n// BuildOpenAPISpecFromRoutes builds OpenAPI spec given a list of route containers and common.Config to customize it.\nfunc BuildOpenAPISpecFromRoutes(routeContainers []common.RouteContainer, config *common.Config) (*spec.Swagger, error) {\n\to := newOpenAPI(config)\n\terr := o.buildPaths(routeContainers)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn o.finalizeSwagger()\n}\n\n// BuildOpenAPIDefinitionsForResource builds a partial OpenAPI spec given a sample object and common.Config to customize it.\nfunc BuildOpenAPIDefinitionsForResource(model interface{}, config *common.Config) (*spec.Definitions, error) {\n\to := newOpenAPI(config)\n\t// We can discard the return value of toSchema because all we care about is the side effect of calling it.\n\t// All the models created for this resource get added to o.swagger.Definitions\n\t_, err := o.toSchema(util.GetCanonicalTypeName(model))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tswagger, err := o.finalizeSwagger()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &swagger.Definitions, nil\n}\n\n// BuildOpenAPIDefinitionsForResources returns the OpenAPI spec which includes the definitions for the\n// passed type names.\nfunc BuildOpenAPIDefinitionsForResources(config *common.Config, names ...string) (*spec.Swagger, error) {\n\to := newOpenAPI(config)\n\t// We can discard the return value of toSchema because all we care about is the side effect of calling it.\n\t// All the models created for this resource get added to o.swagger.Definitions\n\tfor _, name := range names {\n\t\t_, err := o.toSchema(name)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn o.finalizeSwagger()\n}\n\n// newOpenAPI sets up the openAPI object so we can build the spec.\nfunc newOpenAPI(config *common.Config) openAPI {\n\to := openAPI{\n\t\tconfig: config,\n\t\tswagger: &spec.Swagger{\n\t\t\tSwaggerProps: spec.SwaggerProps{\n\t\t\t\tSwagger:     OpenAPIVersion,\n\t\t\t\tDefinitions: spec.Definitions{},\n\t\t\t\tResponses:   config.ResponseDefinitions,\n\t\t\t\tPaths:       &spec.Paths{Paths: map[string]spec.PathItem{}},\n\t\t\t\tInfo:        config.Info,\n\t\t\t},\n\t\t},\n\t}\n\n\tif o.config.GetOperationIDAndTagsFromRoute == nil {\n\t\t// Map the deprecated handler to the common interface, if provided.\n\t\tif o.config.GetOperationIDAndTags != nil {\n\t\t\to.config.GetOperationIDAndTagsFromRoute = func(r common.Route) (string, []string, error) {\n\t\t\t\trestfulRouteAdapter, ok := r.(*restfuladapter.RouteAdapter)\n\t\t\t\tif !ok {\n\t\t\t\t\treturn \"\", nil, fmt.Errorf(\"config.GetOperationIDAndTags specified but route is not a restful v1 Route\")\n\t\t\t\t}\n\n\t\t\t\treturn o.config.GetOperationIDAndTags(restfulRouteAdapter.Route)\n\t\t\t}\n\t\t} else {\n\t\t\to.config.GetOperationIDAndTagsFromRoute = func(r common.Route) (string, []string, error) {\n\t\t\t\treturn r.OperationName(), nil, nil\n\t\t\t}\n\t\t}\n\t}\n\n\tif o.config.GetDefinitionName == nil {\n\t\to.config.GetDefinitionName = func(name string) (string, spec.Extensions) {\n\t\t\treturn name[strings.LastIndex(name, \"/\")+1:], nil\n\t\t}\n\t}\n\to.definitions = o.config.GetDefinitions(func(name string) spec.Ref {\n\t\tdefName, _ := o.config.GetDefinitionName(name)\n\t\treturn spec.MustCreateRef(\"#/definitions/\" + common.EscapeJsonPointer(defName))\n\t})\n\tif o.config.CommonResponses == nil {\n\t\to.config.CommonResponses = map[int]spec.Response{}\n\t}\n\treturn o\n}\n\n// finalizeSwagger is called after the spec is built and returns the final spec.\n// NOTE: finalizeSwagger also make changes to the final spec, as specified in the config.\nfunc (o *openAPI) finalizeSwagger() (*spec.Swagger, error) {\n\tif o.config.SecurityDefinitions != nil {\n\t\to.swagger.SecurityDefinitions = *o.config.SecurityDefinitions\n\t\to.swagger.Security = o.config.DefaultSecurity\n\t}\n\tif o.config.PostProcessSpec != nil {\n\t\tvar err error\n\t\to.swagger, err = o.config.PostProcessSpec(o.swagger)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn deduplicateParameters(o.swagger)\n}\n\nfunc (o *openAPI) buildDefinitionRecursively(name string) error {\n\tuniqueName, extensions := o.config.GetDefinitionName(name)\n\tescapedName := common.EscapeJsonPointer(uniqueName)\n\tif _, ok := o.swagger.Definitions[escapedName]; ok {\n\t\treturn nil\n\t}\n\tif item, ok := o.definitions[name]; ok {\n\t\tschema := spec.Schema{\n\t\t\tVendorExtensible:   item.Schema.VendorExtensible,\n\t\t\tSchemaProps:        item.Schema.SchemaProps,\n\t\t\tSwaggerSchemaProps: item.Schema.SwaggerSchemaProps,\n\t\t}\n\t\tif extensions != nil {\n\t\t\tif schema.Extensions == nil {\n\t\t\t\tschema.Extensions = spec.Extensions{}\n\t\t\t}\n\t\t\tfor k, v := range extensions {\n\t\t\t\tschema.Extensions[k] = v\n\t\t\t}\n\t\t}\n\t\tif v, ok := item.Schema.Extensions[common.ExtensionV2Schema]; ok {\n\t\t\tif v2Schema, isOpenAPISchema := v.(spec.Schema); isOpenAPISchema {\n\t\t\t\tschema = v2Schema\n\t\t\t}\n\t\t}\n\t\to.swagger.Definitions[escapedName] = schema\n\t\tfor _, v := range item.Dependencies {\n\t\t\tif err := o.buildDefinitionRecursively(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t} else {\n\t\treturn fmt.Errorf(\"cannot find model definition for %v. If you added a new type, you may need to add +k8s:openapi-gen=true to the package or type and run code-gen again\", name)\n\t}\n\treturn nil\n}\n\n// buildDefinitionForType build a definition for a given type and return a referable name to its definition.\n// This is the main function that keep track of definitions used in this spec and is depend on code generated\n// by k8s.io/kubernetes/cmd/libs/go2idl/openapi-gen.\nfunc (o *openAPI) buildDefinitionForType(name string) (string, error) {\n\tif err := o.buildDefinitionRecursively(name); err != nil {\n\t\treturn \"\", err\n\t}\n\tdefName, _ := o.config.GetDefinitionName(name)\n\treturn \"#/definitions/\" + common.EscapeJsonPointer(defName), nil\n}\n\n// buildPaths builds OpenAPI paths using go-restful's web services.\nfunc (o *openAPI) buildPaths(routeContainers []common.RouteContainer) error {\n\tpathsToIgnore := util.NewTrie(o.config.IgnorePrefixes)\n\tduplicateOpId := make(map[string]string)\n\tfor _, w := range routeContainers {\n\t\trootPath := w.RootPath()\n\t\tif pathsToIgnore.HasPrefix(rootPath) {\n\t\t\tcontinue\n\t\t}\n\t\tcommonParams, err := o.buildParameters(w.PathParameters())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor path, routes := range groupRoutesByPath(w.Routes()) {\n\t\t\t// go-swagger has special variable definition {$NAME:*} that can only be\n\t\t\t// used at the end of the path and it is not recognized by OpenAPI.\n\t\t\tif strings.HasSuffix(path, \":*}\") {\n\t\t\t\tpath = path[:len(path)-3] + \"}\"\n\t\t\t}\n\t\t\tif pathsToIgnore.HasPrefix(path) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// Aggregating common parameters make API spec (and generated clients) simpler\n\t\t\tinPathCommonParamsMap, err := o.findCommonParameters(routes)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tpathItem, exists := o.swagger.Paths.Paths[path]\n\t\t\tif exists {\n\t\t\t\treturn fmt.Errorf(\"duplicate webservice route has been found for path: %v\", path)\n\t\t\t}\n\t\t\tpathItem = spec.PathItem{\n\t\t\t\tPathItemProps: spec.PathItemProps{\n\t\t\t\t\tParameters: make([]spec.Parameter, 0),\n\t\t\t\t},\n\t\t\t}\n\t\t\t// add web services's parameters as well as any parameters appears in all ops, as common parameters\n\t\t\tpathItem.Parameters = append(pathItem.Parameters, commonParams...)\n\t\t\tfor _, p := range inPathCommonParamsMap {\n\t\t\t\tpathItem.Parameters = append(pathItem.Parameters, p)\n\t\t\t}\n\t\t\tsortParameters(pathItem.Parameters)\n\t\t\tfor _, route := range routes {\n\t\t\t\top, err := o.buildOperations(route, inPathCommonParamsMap)\n\t\t\t\tsortParameters(op.Parameters)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tdpath, exists := duplicateOpId[op.ID]\n\t\t\t\tif exists {\n\t\t\t\t\treturn fmt.Errorf(\"duplicate Operation ID %v for path %v and %v\", op.ID, dpath, path)\n\t\t\t\t} else {\n\t\t\t\t\tduplicateOpId[op.ID] = path\n\t\t\t\t}\n\t\t\t\tswitch strings.ToUpper(route.Method()) {\n\t\t\t\tcase \"GET\":\n\t\t\t\t\tpathItem.Get = op\n\t\t\t\tcase \"POST\":\n\t\t\t\t\tpathItem.Post = op\n\t\t\t\tcase \"HEAD\":\n\t\t\t\t\tpathItem.Head = op\n\t\t\t\tcase \"PUT\":\n\t\t\t\t\tpathItem.Put = op\n\t\t\t\tcase \"DELETE\":\n\t\t\t\t\tpathItem.Delete = op\n\t\t\t\tcase \"OPTIONS\":\n\t\t\t\t\tpathItem.Options = op\n\t\t\t\tcase \"PATCH\":\n\t\t\t\t\tpathItem.Patch = op\n\t\t\t\t}\n\t\t\t}\n\t\t\to.swagger.Paths.Paths[path] = pathItem\n\t\t}\n\t}\n\treturn nil\n}\n\n// buildOperations builds operations for each webservice path\nfunc (o *openAPI) buildOperations(route common.Route, inPathCommonParamsMap map[interface{}]spec.Parameter) (ret *spec.Operation, err error) {\n\tret = &spec.Operation{\n\t\tOperationProps: spec.OperationProps{\n\t\t\tDescription: route.Description(),\n\t\t\tConsumes:    route.Consumes(),\n\t\t\tProduces:    route.Produces(),\n\t\t\tSchemes:     o.config.ProtocolList,\n\t\t\tResponses: &spec.Responses{\n\t\t\t\tResponsesProps: spec.ResponsesProps{\n\t\t\t\t\tStatusCodeResponses: make(map[int]spec.Response),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\tfor k, v := range route.Metadata() {\n\t\tif strings.HasPrefix(k, common.ExtensionPrefix) {\n\t\t\tif ret.Extensions == nil {\n\t\t\t\tret.Extensions = spec.Extensions{}\n\t\t\t}\n\t\t\tret.Extensions.Add(k, v)\n\t\t}\n\t}\n\tif ret.ID, ret.Tags, err = o.config.GetOperationIDAndTagsFromRoute(route); err != nil {\n\t\treturn ret, err\n\t}\n\n\t// Build responses\n\tfor _, resp := range route.StatusCodeResponses() {\n\t\tret.Responses.StatusCodeResponses[resp.Code()], err = o.buildResponse(resp.Model(), resp.Message())\n\t\tif err != nil {\n\t\t\treturn ret, err\n\t\t}\n\t}\n\t// If there is no response but a write sample, assume that write sample is an http.StatusOK response.\n\tif len(ret.Responses.StatusCodeResponses) == 0 && route.ResponsePayloadSample() != nil {\n\t\tret.Responses.StatusCodeResponses[http.StatusOK], err = o.buildResponse(route.ResponsePayloadSample(), \"OK\")\n\t\tif err != nil {\n\t\t\treturn ret, err\n\t\t}\n\t}\n\tfor code, resp := range o.config.CommonResponses {\n\t\tif _, exists := ret.Responses.StatusCodeResponses[code]; !exists {\n\t\t\tret.Responses.StatusCodeResponses[code] = resp\n\t\t}\n\t}\n\t// If there is still no response, use default response provided.\n\tif len(ret.Responses.StatusCodeResponses) == 0 {\n\t\tret.Responses.Default = o.config.DefaultResponse\n\t}\n\n\t// Build non-common Parameters\n\tret.Parameters = make([]spec.Parameter, 0)\n\tfor _, param := range route.Parameters() {\n\t\tif _, isCommon := inPathCommonParamsMap[mapKeyFromParam(param)]; !isCommon {\n\t\t\topenAPIParam, err := o.buildParameter(param, route.RequestPayloadSample())\n\t\t\tif err != nil {\n\t\t\t\treturn ret, err\n\t\t\t}\n\t\t\tret.Parameters = append(ret.Parameters, openAPIParam)\n\t\t}\n\t}\n\treturn ret, nil\n}\n\nfunc (o *openAPI) buildResponse(model interface{}, description string) (spec.Response, error) {\n\tschema, err := o.toSchema(util.GetCanonicalTypeName(model))\n\tif err != nil {\n\t\treturn spec.Response{}, err\n\t}\n\treturn spec.Response{\n\t\tResponseProps: spec.ResponseProps{\n\t\t\tDescription: description,\n\t\t\tSchema:      schema,\n\t\t},\n\t}, nil\n}\n\nfunc (o *openAPI) findCommonParameters(routes []common.Route) (map[interface{}]spec.Parameter, error) {\n\tcommonParamsMap := make(map[interface{}]spec.Parameter, 0)\n\tparamOpsCountByName := make(map[interface{}]int, 0)\n\tparamNameKindToDataMap := make(map[interface{}]common.Parameter, 0)\n\tfor _, route := range routes {\n\t\trouteParamDuplicateMap := make(map[interface{}]bool)\n\t\ts := \"\"\n\t\tparams := route.Parameters()\n\t\tfor _, param := range params {\n\t\t\tm, _ := json.Marshal(param)\n\t\t\ts += string(m) + \"\\n\"\n\t\t\tkey := mapKeyFromParam(param)\n\t\t\tif routeParamDuplicateMap[key] {\n\t\t\t\tmsg, _ := json.Marshal(params)\n\t\t\t\treturn commonParamsMap, fmt.Errorf(\"duplicate parameter %v for route %v, %v\", param.Name(), string(msg), s)\n\t\t\t}\n\t\t\trouteParamDuplicateMap[key] = true\n\t\t\tparamOpsCountByName[key]++\n\t\t\tparamNameKindToDataMap[key] = param\n\t\t}\n\t}\n\tfor key, count := range paramOpsCountByName {\n\t\tparamData := paramNameKindToDataMap[key]\n\t\tif count == len(routes) && paramData.Kind() != common.BodyParameterKind {\n\t\t\topenAPIParam, err := o.buildParameter(paramData, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn commonParamsMap, err\n\t\t\t}\n\t\t\tcommonParamsMap[key] = openAPIParam\n\t\t}\n\t}\n\treturn commonParamsMap, nil\n}\n\nfunc (o *openAPI) toSchema(name string) (_ *spec.Schema, err error) {\n\tif openAPIType, openAPIFormat := common.OpenAPITypeFormat(name); openAPIType != \"\" {\n\t\treturn &spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType:   []string{openAPIType},\n\t\t\t\tFormat: openAPIFormat,\n\t\t\t},\n\t\t}, nil\n\t} else {\n\t\tref, err := o.buildDefinitionForType(name)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn &spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tRef: spec.MustCreateRef(ref),\n\t\t\t},\n\t\t}, nil\n\t}\n}\n\nfunc (o *openAPI) buildParameter(restParam common.Parameter, bodySample interface{}) (ret spec.Parameter, err error) {\n\tret = spec.Parameter{\n\t\tParamProps: spec.ParamProps{\n\t\t\tName:        restParam.Name(),\n\t\t\tDescription: restParam.Description(),\n\t\t\tRequired:    restParam.Required(),\n\t\t},\n\t}\n\tswitch restParam.Kind() {\n\tcase common.BodyParameterKind:\n\t\tif bodySample != nil {\n\t\t\tret.In = \"body\"\n\t\t\tret.Schema, err = o.toSchema(util.GetCanonicalTypeName(bodySample))\n\t\t\treturn ret, err\n\t\t} else {\n\t\t\t// There is not enough information in the body parameter to build the definition.\n\t\t\t// Body parameter has a data type that is a short name but we need full package name\n\t\t\t// of the type to create a definition.\n\t\t\treturn ret, fmt.Errorf(\"restful body parameters are not supported: %v\", restParam.DataType())\n\t\t}\n\tcase common.PathParameterKind:\n\t\tret.In = \"path\"\n\t\tif !restParam.Required() {\n\t\t\treturn ret, fmt.Errorf(\"path parameters should be marked at required for parameter %v\", restParam)\n\t\t}\n\tcase common.QueryParameterKind:\n\t\tret.In = \"query\"\n\tcase common.HeaderParameterKind:\n\t\tret.In = \"header\"\n\tcase common.FormParameterKind:\n\t\tret.In = \"formData\"\n\tdefault:\n\t\treturn ret, fmt.Errorf(\"unknown restful operation kind : %v\", restParam.Kind())\n\t}\n\topenAPIType, openAPIFormat := common.OpenAPITypeFormat(restParam.DataType())\n\tif openAPIType == \"\" {\n\t\treturn ret, fmt.Errorf(\"non-body Restful parameter type should be a simple type, but got : %v\", restParam.DataType())\n\t}\n\tret.Type = openAPIType\n\tret.Format = openAPIFormat\n\tret.UniqueItems = !restParam.AllowMultiple()\n\treturn ret, nil\n}\n\nfunc (o *openAPI) buildParameters(restParam []common.Parameter) (ret []spec.Parameter, err error) {\n\tret = make([]spec.Parameter, len(restParam))\n\tfor i, v := range restParam {\n\t\tret[i], err = o.buildParameter(v, nil)\n\t\tif err != nil {\n\t\t\treturn ret, err\n\t\t}\n\t}\n\treturn ret, nil\n}\n"
  },
  {
    "path": "pkg/builder/openapi_test.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage builder\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/emicklei/go-restful/v3\"\n\t\"github.com/stretchr/testify/assert\"\n\n\topenapi \"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// setUp is a convenience function for setting up for (most) tests.\nfunc setUp(t *testing.T, fullMethods bool) (*openapi.Config, *restful.Container, *assert.Assertions) {\n\tassert := assert.New(t)\n\tconfig, container := getConfig(fullMethods)\n\treturn config, container, assert\n}\n\nfunc noOp(request *restful.Request, response *restful.Response) {}\n\n// Test input\ntype TestInput struct {\n\t// Name of the input\n\tName string `json:\"name,omitempty\"`\n\t// ID of the input\n\tID   int      `json:\"id,omitempty\"`\n\tTags []string `json:\"tags,omitempty\"`\n}\n\n// Test output\ntype TestOutput struct {\n\t// Name of the output\n\tName string `json:\"name,omitempty\"`\n\t// Number of outputs\n\tCount int `json:\"count,omitempty\"`\n}\n\ntype TestExtensionV2Schema struct{}\n\nfunc (_ TestExtensionV2Schema) OpenAPIDefinition() openapi.OpenAPIDefinition {\n\tschema := spec.Schema{\n\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\tExtensions: map[string]interface{}{\n\t\t\t\topenapi.ExtensionV2Schema: spec.Schema{\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tType: []string{\"integer\"},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\tschema.Description = \"Test extension V2 spec conversion\"\n\tschema.Properties = map[string]spec.Schema{\n\t\t\"apple\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"Name of the output\",\n\t\t\t\tType:        []string{\"string\"},\n\t\t\t\tFormat:      \"\",\n\t\t\t},\n\t\t},\n\t}\n\treturn openapi.OpenAPIDefinition{\n\t\tSchema:       schema,\n\t\tDependencies: []string{},\n\t}\n}\n\nfunc (_ TestInput) OpenAPIDefinition() openapi.OpenAPIDefinition {\n\tschema := spec.Schema{}\n\tschema.Description = \"Test input\"\n\tschema.Properties = map[string]spec.Schema{\n\t\t\"name\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"Name of the input\",\n\t\t\t\tType:        []string{\"string\"},\n\t\t\t\tFormat:      \"\",\n\t\t\t},\n\t\t},\n\t\t\"id\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"ID of the input\",\n\t\t\t\tType:        []string{\"integer\"},\n\t\t\t\tFormat:      \"int32\",\n\t\t\t},\n\t\t},\n\t\t\"tags\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"\",\n\t\t\t\tType:        []string{\"array\"},\n\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"string\"},\n\t\t\t\t\t\t\tFormat: \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\tschema.Extensions = spec.Extensions{\"x-test\": \"test\"}\n\treturn openapi.OpenAPIDefinition{\n\t\tSchema:       schema,\n\t\tDependencies: []string{},\n\t}\n}\n\nfunc (_ TestOutput) OpenAPIDefinition() openapi.OpenAPIDefinition {\n\tschema := spec.Schema{}\n\tschema.Description = \"Test output\"\n\tschema.Properties = map[string]spec.Schema{\n\t\t\"name\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"Name of the output\",\n\t\t\t\tType:        []string{\"string\"},\n\t\t\t\tFormat:      \"\",\n\t\t\t},\n\t\t},\n\t\t\"count\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"Number of outputs\",\n\t\t\t\tType:        []string{\"integer\"},\n\t\t\t\tFormat:      \"int32\",\n\t\t\t},\n\t\t},\n\t}\n\treturn openapi.OpenAPIDefinition{\n\t\tSchema:       schema,\n\t\tDependencies: []string{},\n\t}\n}\n\nvar _ openapi.OpenAPIDefinitionGetter = TestInput{}\nvar _ openapi.OpenAPIDefinitionGetter = TestOutput{}\n\nfunc getTestRoute(ws *restful.WebService, method string, additionalParams bool, opPrefix string) *restful.RouteBuilder {\n\tret := ws.Method(method).\n\t\tPath(\"/test/{path:*}\").\n\t\tDoc(fmt.Sprintf(\"%s test input\", method)).\n\t\tOperation(fmt.Sprintf(\"%s%sTestInput\", method, opPrefix)).\n\t\tProduces(restful.MIME_JSON).\n\t\tConsumes(restful.MIME_JSON).\n\t\tParam(ws.PathParameter(\"path\", \"path to the resource\").DataType(\"string\")).\n\t\tParam(ws.QueryParameter(\"pretty\", \"If 'true', then the output is pretty printed.\")).\n\t\tReads(TestInput{}).\n\t\tReturns(200, \"OK\", TestOutput{}).\n\t\tWrites(TestOutput{}).\n\t\tTo(noOp)\n\tif additionalParams {\n\t\tret.Param(ws.HeaderParameter(\"hparam\", \"a test head parameter\").DataType(\"integer\"))\n\t\tret.Param(ws.FormParameter(\"fparam\", \"a test form parameter\").DataType(\"number\"))\n\t}\n\treturn ret\n}\n\nfunc getConfig(fullMethods bool) (*openapi.Config, *restful.Container) {\n\tmux := http.NewServeMux()\n\tcontainer := restful.NewContainer()\n\tcontainer.ServeMux = mux\n\tws := new(restful.WebService)\n\tws.Path(\"/foo\")\n\tws.Route(getTestRoute(ws, \"get\", true, \"foo\"))\n\tif fullMethods {\n\t\tws.Route(getTestRoute(ws, \"post\", false, \"foo\")).\n\t\t\tRoute(getTestRoute(ws, \"put\", false, \"foo\")).\n\t\t\tRoute(getTestRoute(ws, \"head\", false, \"foo\")).\n\t\t\tRoute(getTestRoute(ws, \"patch\", false, \"foo\")).\n\t\t\tRoute(getTestRoute(ws, \"options\", false, \"foo\")).\n\t\t\tRoute(getTestRoute(ws, \"delete\", false, \"foo\"))\n\n\t}\n\tws.Path(\"/bar\")\n\tws.Route(getTestRoute(ws, \"get\", true, \"bar\"))\n\tif fullMethods {\n\t\tws.Route(getTestRoute(ws, \"post\", false, \"bar\")).\n\t\t\tRoute(getTestRoute(ws, \"put\", false, \"bar\")).\n\t\t\tRoute(getTestRoute(ws, \"head\", false, \"bar\")).\n\t\t\tRoute(getTestRoute(ws, \"patch\", false, \"bar\")).\n\t\t\tRoute(getTestRoute(ws, \"options\", false, \"bar\")).\n\t\t\tRoute(getTestRoute(ws, \"delete\", false, \"bar\"))\n\n\t}\n\tcontainer.Add(ws)\n\treturn &openapi.Config{\n\t\tProtocolList: []string{\"https\"},\n\t\tInfo: &spec.Info{\n\t\t\tInfoProps: spec.InfoProps{\n\t\t\t\tTitle:       \"TestAPI\",\n\t\t\t\tDescription: \"Test API\",\n\t\t\t\tVersion:     \"unversioned\",\n\t\t\t},\n\t\t},\n\t\tGetDefinitions: func(_ openapi.ReferenceCallback) map[string]openapi.OpenAPIDefinition {\n\t\t\treturn map[string]openapi.OpenAPIDefinition{\n\t\t\t\t\"k8s.io/kube-openapi/pkg/builder.TestInput\":             TestInput{}.OpenAPIDefinition(),\n\t\t\t\t\"k8s.io/kube-openapi/pkg/builder.TestOutput\":            TestOutput{}.OpenAPIDefinition(),\n\t\t\t\t\"k8s.io/kube-openapi/pkg/builder.TestExtensionV2Schema\": TestExtensionV2Schema{}.OpenAPIDefinition(),\n\t\t\t}\n\t\t},\n\t\tGetDefinitionName: func(name string) (string, spec.Extensions) {\n\t\t\tfriendlyName := name[strings.LastIndex(name, \"/\")+1:]\n\t\t\treturn friendlyName, spec.Extensions{\"x-test2\": \"test2\"}\n\t\t},\n\t}, container\n}\n\nfunc getTestOperation(method string, opPrefix string) *spec.Operation {\n\treturn &spec.Operation{\n\t\tOperationProps: spec.OperationProps{\n\t\t\tDescription: fmt.Sprintf(\"%s test input\", method),\n\t\t\tConsumes:    []string{\"application/json\"},\n\t\t\tProduces:    []string{\"application/json\"},\n\t\t\tSchemes:     []string{\"https\"},\n\t\t\tParameters:  []spec.Parameter{},\n\t\t\tResponses:   getTestResponses(),\n\t\t\tID:          fmt.Sprintf(\"%s%sTestInput\", method, opPrefix),\n\t\t},\n\t}\n}\n\nfunc getTestPathItem(allMethods bool, opPrefix string) spec.PathItem {\n\tret := spec.PathItem{\n\t\tPathItemProps: spec.PathItemProps{\n\t\t\tGet:        getTestOperation(\"get\", opPrefix),\n\t\t\tParameters: getTestCommonParameters(),\n\t\t},\n\t}\n\tret.Get.Parameters = getAdditionalTestParameters()\n\tif allMethods {\n\t\tret.Put = getTestOperation(\"put\", opPrefix)\n\t\tret.Put.Parameters = getTestParameters()\n\t\tret.Post = getTestOperation(\"post\", opPrefix)\n\t\tret.Post.Parameters = getTestParameters()\n\t\tret.Head = getTestOperation(\"head\", opPrefix)\n\t\tret.Head.Parameters = getTestParameters()\n\t\tret.Patch = getTestOperation(\"patch\", opPrefix)\n\t\tret.Patch.Parameters = getTestParameters()\n\t\tret.Delete = getTestOperation(\"delete\", opPrefix)\n\t\tret.Delete.Parameters = getTestParameters()\n\t\tret.Options = getTestOperation(\"options\", opPrefix)\n\t\tret.Options.Parameters = getTestParameters()\n\t}\n\treturn ret\n}\n\nfunc getRefSchema(ref string) *spec.Schema {\n\treturn &spec.Schema{\n\t\tSchemaProps: spec.SchemaProps{\n\t\t\tRef: spec.MustCreateRef(ref),\n\t\t},\n\t}\n}\n\nfunc getTestResponses() *spec.Responses {\n\tret := spec.Responses{\n\t\tResponsesProps: spec.ResponsesProps{\n\t\t\tStatusCodeResponses: map[int]spec.Response{},\n\t\t},\n\t}\n\tret.StatusCodeResponses[200] = spec.Response{\n\t\tResponseProps: spec.ResponseProps{\n\t\t\tDescription: \"OK\",\n\t\t\tSchema:      getRefSchema(\"#/definitions/builder.TestOutput\"),\n\t\t},\n\t}\n\treturn &ret\n}\n\nfunc getTestCommonParameters() []spec.Parameter {\n\tret := make([]spec.Parameter, 2)\n\tret[0] = spec.Parameter{\n\t\tRefable: spec.Refable{\n\t\t\tRef: spec.MustCreateRef(\"#/parameters/path-z6Ciiujn\"),\n\t\t},\n\t}\n\tret[1] = spec.Parameter{\n\t\tRefable: spec.Refable{\n\t\t\tRef: spec.MustCreateRef(\"#/parameters/pretty-nN7o5FEq\"),\n\t\t},\n\t}\n\treturn ret\n}\n\nfunc getTestParameters() []spec.Parameter {\n\tret := make([]spec.Parameter, 1)\n\tret[0] = spec.Parameter{\n\t\tParamProps: spec.ParamProps{\n\t\t\tIn:       \"body\",\n\t\t\tName:     \"body\",\n\t\t\tRequired: true,\n\t\t\tSchema:   getRefSchema(\"#/definitions/builder.TestInput\"),\n\t\t},\n\t}\n\treturn ret\n}\n\nfunc getAdditionalTestParameters() []spec.Parameter {\n\tret := make([]spec.Parameter, 3)\n\tret[0] = spec.Parameter{\n\t\tParamProps: spec.ParamProps{\n\t\t\tIn:       \"body\",\n\t\t\tName:     \"body\",\n\t\t\tRequired: true,\n\t\t\tSchema:   getRefSchema(\"#/definitions/builder.TestInput\"),\n\t\t},\n\t}\n\tret[1] = spec.Parameter{\n\t\tRefable: spec.Refable{\n\t\t\tRef: spec.MustCreateRef(\"#/parameters/fparam-xCJg5kHS\"),\n\t\t},\n\t}\n\tret[2] = spec.Parameter{\n\t\tRefable: spec.Refable{\n\t\t\tRef: spec.MustCreateRef(\"#/parameters/hparam-tx-jfxM1\"),\n\t\t},\n\t}\n\treturn ret\n}\n\nfunc getTestInputDefinition() spec.Schema {\n\treturn spec.Schema{\n\t\tSchemaProps: spec.SchemaProps{\n\t\t\tDescription: \"Test input\",\n\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\"id\": {\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tDescription: \"ID of the input\",\n\t\t\t\t\t\tType:        spec.StringOrArray{\"integer\"},\n\t\t\t\t\t\tFormat:      \"int32\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"name\": {\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tDescription: \"Name of the input\",\n\t\t\t\t\t\tType:        spec.StringOrArray{\"string\"},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"tags\": {\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tType: spec.StringOrArray{\"array\"},\n\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\tType: spec.StringOrArray{\"string\"},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\"x-test\":  \"test\",\n\t\t\t\t\"x-test2\": \"test2\",\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc getTestOutputDefinition() spec.Schema {\n\treturn spec.Schema{\n\t\tSchemaProps: spec.SchemaProps{\n\t\t\tDescription: \"Test output\",\n\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\"count\": {\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tDescription: \"Number of outputs\",\n\t\t\t\t\t\tType:        spec.StringOrArray{\"integer\"},\n\t\t\t\t\t\tFormat:      \"int32\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"name\": {\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tDescription: \"Name of the output\",\n\t\t\t\t\t\tType:        spec.StringOrArray{\"string\"},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\"x-test2\": \"test2\",\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc TestBuildOpenAPISpec(t *testing.T) {\n\tconfig, container, assert := setUp(t, true)\n\texpected := &spec.Swagger{\n\t\tSwaggerProps: spec.SwaggerProps{\n\t\t\tInfo: &spec.Info{\n\t\t\t\tInfoProps: spec.InfoProps{\n\t\t\t\t\tTitle:       \"TestAPI\",\n\t\t\t\t\tDescription: \"Test API\",\n\t\t\t\t\tVersion:     \"unversioned\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tSwagger: \"2.0\",\n\t\t\tPaths: &spec.Paths{\n\t\t\t\tPaths: map[string]spec.PathItem{\n\t\t\t\t\t\"/foo/test/{path}\": getTestPathItem(true, \"foo\"),\n\t\t\t\t\t\"/bar/test/{path}\": getTestPathItem(true, \"bar\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDefinitions: spec.Definitions{\n\t\t\t\t\"builder.TestInput\":  getTestInputDefinition(),\n\t\t\t\t\"builder.TestOutput\": getTestOutputDefinition(),\n\t\t\t},\n\t\t\tParameters: map[string]spec.Parameter{\n\t\t\t\t\"fparam-xCJg5kHS\": {\n\t\t\t\t\tCommonValidations: spec.CommonValidations{\n\t\t\t\t\t\tUniqueItems: true,\n\t\t\t\t\t},\n\t\t\t\t\tSimpleSchema: spec.SimpleSchema{\n\t\t\t\t\t\tType: \"number\",\n\t\t\t\t\t},\n\t\t\t\t\tParamProps: spec.ParamProps{\n\t\t\t\t\t\tIn:          \"formData\",\n\t\t\t\t\t\tName:        \"fparam\",\n\t\t\t\t\t\tDescription: \"a test form parameter\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"hparam-tx-jfxM1\": {\n\t\t\t\t\tCommonValidations: spec.CommonValidations{\n\t\t\t\t\t\tUniqueItems: true,\n\t\t\t\t\t},\n\t\t\t\t\tSimpleSchema: spec.SimpleSchema{\n\t\t\t\t\t\tType: \"integer\",\n\t\t\t\t\t},\n\t\t\t\t\tParamProps: spec.ParamProps{\n\t\t\t\t\t\tIn:          \"header\",\n\t\t\t\t\t\tName:        \"hparam\",\n\t\t\t\t\t\tDescription: \"a test head parameter\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"path-z6Ciiujn\": {\n\t\t\t\t\tCommonValidations: spec.CommonValidations{\n\t\t\t\t\t\tUniqueItems: true,\n\t\t\t\t\t},\n\t\t\t\t\tSimpleSchema: spec.SimpleSchema{\n\t\t\t\t\t\tType: \"string\",\n\t\t\t\t\t},\n\t\t\t\t\tParamProps: spec.ParamProps{\n\t\t\t\t\t\tIn:          \"path\",\n\t\t\t\t\t\tName:        \"path\",\n\t\t\t\t\t\tDescription: \"path to the resource\",\n\t\t\t\t\t\tRequired:    true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"pretty-nN7o5FEq\": {\n\t\t\t\t\tCommonValidations: spec.CommonValidations{\n\t\t\t\t\t\tUniqueItems: true,\n\t\t\t\t\t},\n\t\t\t\t\tSimpleSchema: spec.SimpleSchema{\n\t\t\t\t\t\tType: \"string\",\n\t\t\t\t\t},\n\t\t\t\t\tParamProps: spec.ParamProps{\n\t\t\t\t\t\tIn:          \"query\",\n\t\t\t\t\t\tName:        \"pretty\",\n\t\t\t\t\t\tDescription: \"If 'true', then the output is pretty printed.\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\tswagger, err := BuildOpenAPISpec(container.RegisteredWebServices(), config)\n\tif !assert.NoError(err) {\n\t\treturn\n\t}\n\texpected_json, err := expected.MarshalJSON()\n\tif !assert.NoError(err) {\n\t\treturn\n\t}\n\tactual_json, err := swagger.MarshalJSON()\n\tif !assert.NoError(err) {\n\t\treturn\n\t}\n\tif err := jsontesting.JsonCompare(expected_json, actual_json); err != nil {\n\t\tt.Error(err)\n\t}\n}\n\nfunc TestBuildOpenAPIDefinitionsForResource(t *testing.T) {\n\tconfig, _, assert := setUp(t, true)\n\texpected := &spec.Definitions{\n\t\t\"builder.TestInput\": getTestInputDefinition(),\n\t}\n\tswagger, err := BuildOpenAPIDefinitionsForResource(TestInput{}, config)\n\tif !assert.NoError(err) {\n\t\treturn\n\t}\n\texpected_json, err := json.Marshal(expected)\n\tif !assert.NoError(err) {\n\t\treturn\n\t}\n\tactual_json, err := json.Marshal(swagger)\n\tif !assert.NoError(err) {\n\t\treturn\n\t}\n\tif err := jsontesting.JsonCompare(expected_json, actual_json); err != nil {\n\t\tt.Error(err)\n\t}\n}\n\nfunc TestBuildOpenAPIDefinitionsForResourceWithExtensionV2Schema(t *testing.T) {\n\tconfig, _, assert := setUp(t, true)\n\texpected := &spec.Definitions{\n\t\t\"builder.TestExtensionV2Schema\": spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"integer\"},\n\t\t\t},\n\t\t},\n\t}\n\tswagger, err := BuildOpenAPIDefinitionsForResource(TestExtensionV2Schema{}, config)\n\tif !assert.NoError(err) {\n\t\treturn\n\t}\n\texpected_json, err := json.Marshal(expected)\n\tif !assert.NoError(err) {\n\t\treturn\n\t}\n\tactual_json, err := json.Marshal(swagger)\n\tif !assert.NoError(err) {\n\t\treturn\n\t}\n\tassert.Equal(string(expected_json), string(actual_json))\n}\n\ntype TestRecursiveType struct {\n\tValue    string              `json:\"value,omitempty\"`\n\tChildren []TestRecursiveType `json:\"children,omitempty\"`\n}\n\nfunc makeRecursiveTypeDefinition(depName string) openapi.OpenAPIDefinition {\n\tschema := spec.Schema{}\n\tschema.Description = \"Test recursive type for JSON pointer escaping\"\n\tschema.Properties = map[string]spec.Schema{\n\t\t\"value\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"A test value\",\n\t\t\t\tType:        []string{\"string\"},\n\t\t\t},\n\t\t},\n\t\t\"children\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"array\"},\n\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tRef: spec.MustCreateRef(\"#/definitions/\" + depName),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\treturn openapi.OpenAPIDefinition{\n\t\tSchema:       schema,\n\t\tDependencies: []string{depName},\n\t}\n}\n\nfunc TestEscapeJsonPointerInDefinitionName(t *testing.T) {\n\ttestCases := []struct {\n\t\tname           string\n\t\tdefinitionName string\n\t\texpectedName   string\n\t\tshouldNotExist string\n\t}{\n\t\t{\n\t\t\tname:           \"both slash and tilde\",\n\t\t\tdefinitionName: \"io.k8s/api~v1.TestRecursiveType\",\n\t\t\texpectedName:   \"io.k8s~1api~0v1.TestRecursiveType\",\n\t\t\tshouldNotExist: \"io.k8s/api~v1.TestRecursiveType\",\n\t\t},\n\t\t{\n\t\t\tname:           \"only slashes\",\n\t\t\tdefinitionName: \"io.k8s/api/v1.TestRecursiveType\",\n\t\t\texpectedName:   \"io.k8s~1api~1v1.TestRecursiveType\",\n\t\t\tshouldNotExist: \"io.k8s/api/v1.TestRecursiveType\",\n\t\t},\n\t\t{\n\t\t\tname:           \"only tildes\",\n\t\t\tdefinitionName: \"io.k8s~api~v1.TestRecursiveType\",\n\t\t\texpectedName:   \"io.k8s~0api~0v1.TestRecursiveType\",\n\t\t\tshouldNotExist: \"io.k8s~api~v1.TestRecursiveType\",\n\t\t},\n\t\t{\n\t\t\tname:           \"no special characters\",\n\t\t\tdefinitionName: \"io.k8s.api.v1.TestRecursiveType\",\n\t\t\texpectedName:   \"io.k8s.api.v1.TestRecursiveType\",\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tassert := assert.New(t)\n\n\t\t\tconfig := &openapi.Config{\n\t\t\t\tProtocolList: []string{\"https\"},\n\t\t\t\tInfo: &spec.Info{\n\t\t\t\t\tInfoProps: spec.InfoProps{\n\t\t\t\t\t\tTitle:       \"TestAPI\",\n\t\t\t\t\t\tDescription: \"Test API\",\n\t\t\t\t\t\tVersion:     \"v1\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tGetDefinitions: func(_ openapi.ReferenceCallback) map[string]openapi.OpenAPIDefinition {\n\t\t\t\t\treturn map[string]openapi.OpenAPIDefinition{\n\t\t\t\t\t\ttc.definitionName: makeRecursiveTypeDefinition(tc.definitionName),\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tGetDefinitionName: func(name string) (string, spec.Extensions) {\n\t\t\t\t\treturn name, nil\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tdefinitions, err := BuildOpenAPIDefinitionsForResources(config, tc.definitionName)\n\t\t\tassert.NoError(err)\n\t\t\tassert.NotNil(definitions)\n\n\t\t\t_, exists := definitions.Definitions[tc.expectedName]\n\t\t\tassert.True(exists, \"Definition should exist with escaped name: %s\", tc.expectedName)\n\n\t\t\tif tc.shouldNotExist != \"\" {\n\t\t\t\t_, exists = definitions.Definitions[tc.shouldNotExist]\n\t\t\t\tassert.False(exists, \"Definition should not exist with unescaped name: %s\", tc.shouldNotExist)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/builder/parameters.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage builder\n\nimport (\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"hash/fnv\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// deduplicateParameters finds parameters that are shared across multiple endpoints and replace them with\n// references to the shared parameters in order to avoid repetition.\n//\n// deduplicateParameters does not mutate the source.\nfunc deduplicateParameters(sp *spec.Swagger) (*spec.Swagger, error) {\n\tnames, parameters, err := collectSharedParameters(sp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif sp.Parameters != nil {\n\t\treturn nil, fmt.Errorf(\"shared parameters already exist\") // should not happen with the builder, but to be sure\n\t}\n\n\tclone := *sp\n\tclone.Parameters = parameters\n\treturn replaceSharedParameters(names, &clone)\n}\n\n// collectSharedParameters finds parameters that show up for many endpoints. These\n// are basically all parameters with the exceptions of those where we know they are\n// endpoint specific, e.g. because they reference the schema of the kind, or have\n// the kind or resource name in the description.\nfunc collectSharedParameters(sp *spec.Swagger) (namesByJSON map[string]string, ret map[string]spec.Parameter, err error) {\n\tif sp == nil || sp.Paths == nil {\n\t\treturn nil, nil, nil\n\t}\n\n\tcountsByJSON := map[string]int{}\n\tshared := map[string]spec.Parameter{}\n\tvar keys []string\n\n\tcollect := func(p *spec.Parameter) error {\n\t\tif (p.In == \"query\" || p.In == \"path\") && p.Name == \"name\" {\n\t\t\treturn nil // ignore name parameter as they are never shared with the Kind in the description\n\t\t}\n\t\tif p.In == \"query\" && p.Name == \"fieldValidation\" {\n\t\t\treturn nil // keep fieldValidation parameter unshared because kubectl uses it (until 1.27) to detect server-side field validation support\n\t\t}\n\t\tif p.In == \"query\" && p.Name == \"dryRun\" {\n\t\t\treturn nil // keep fieldValidation parameter unshared because kubectl uses it (until 1.26) to detect dry-run support\n\t\t}\n\t\tif p.Schema != nil && p.In == \"body\" && p.Name == \"body\" && !strings.HasPrefix(p.Schema.Ref.String(), \"#/definitions/io.k8s.apimachinery\") {\n\t\t\treturn nil // ignore non-generic body parameters as they reference the custom schema of the kind\n\t\t}\n\n\t\tbs, err := json.Marshal(p)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tk := string(bs)\n\t\tcountsByJSON[k]++\n\t\tif count := countsByJSON[k]; count == 1 {\n\t\t\tshared[k] = *p\n\t\t\tkeys = append(keys, k)\n\t\t}\n\n\t\treturn nil\n\t}\n\n\tfor _, path := range sp.Paths.Paths {\n\t\t// per operation parameters\n\t\tfor _, op := range operations(&path) {\n\t\t\tif op == nil {\n\t\t\t\tcontinue // shouldn't happen, but ignore if it does; tested through unit test\n\t\t\t}\n\t\t\tfor _, p := range op.Parameters {\n\t\t\t\tif p.Ref.String() != \"\" {\n\t\t\t\t\t// shouldn't happen, but ignore if it does\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif err := collect(&p); err != nil {\n\t\t\t\t\treturn nil, nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// per path parameters\n\t\tfor _, p := range path.Parameters {\n\t\t\tif p.Ref.String() != \"\" {\n\t\t\t\tcontinue // shouldn't happen, but ignore if it does\n\t\t\t}\n\t\t\tif err := collect(&p); err != nil {\n\t\t\t\treturn nil, nil, err\n\t\t\t}\n\t\t}\n\t}\n\n\t// name deterministically\n\tsort.Strings(keys)\n\tret = map[string]spec.Parameter{}\n\tnamesByJSON = map[string]string{}\n\tfor _, k := range keys {\n\t\tname := shared[k].Name\n\t\tif name == \"\" {\n\t\t\t// this should never happen as the name is a required field. But if it does, let's be safe.\n\t\t\tname = \"param\"\n\t\t}\n\t\tname += \"-\" + base64Hash(k)\n\t\ti := 0\n\t\tfor {\n\t\t\tif _, ok := ret[name]; !ok {\n\t\t\t\tret[name] = shared[k]\n\t\t\t\tnamesByJSON[k] = name\n\t\t\t\tbreak\n\t\t\t}\n\t\t\ti++ // only on hash conflict, unlikely with our few variants\n\t\t\tname = shared[k].Name + \"-\" + strconv.Itoa(i)\n\t\t}\n\t}\n\n\treturn namesByJSON, ret, nil\n}\n\nfunc operations(path *spec.PathItem) []*spec.Operation {\n\treturn []*spec.Operation{path.Get, path.Put, path.Post, path.Delete, path.Options, path.Head, path.Patch}\n}\n\nfunc base64Hash(s string) string {\n\thash := fnv.New64()\n\thash.Write([]byte(s))                                                      //nolint:errcheck\n\treturn base64.URLEncoding.EncodeToString(hash.Sum(make([]byte, 0, 8))[:6]) // 8 characters\n}\n\nfunc replaceSharedParameters(sharedParameterNamesByJSON map[string]string, sp *spec.Swagger) (*spec.Swagger, error) {\n\tif sp == nil || sp.Paths == nil {\n\t\treturn sp, nil\n\t}\n\n\tret := sp\n\n\tfirstPathChange := true\n\tfor k, path := range sp.Paths.Paths {\n\t\tpathChanged := false\n\n\t\t// per operation parameters\n\t\tfor _, op := range []**spec.Operation{&path.Get, &path.Put, &path.Post, &path.Delete, &path.Options, &path.Head, &path.Patch} {\n\t\t\tif *op == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tfirstParamChange := true\n\t\t\tfor i := range (*op).Parameters {\n\t\t\t\tp := (*op).Parameters[i]\n\n\t\t\t\tif p.Ref.String() != \"\" {\n\t\t\t\t\t// shouldn't happen, but be idem-potent if it does\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tbs, err := json.Marshal(p)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\n\t\t\t\tif name, ok := sharedParameterNamesByJSON[string(bs)]; ok {\n\t\t\t\t\tif firstParamChange {\n\t\t\t\t\t\torig := *op\n\t\t\t\t\t\t*op = &spec.Operation{}\n\t\t\t\t\t\t**op = *orig\n\t\t\t\t\t\t(*op).Parameters = make([]spec.Parameter, len(orig.Parameters))\n\t\t\t\t\t\tcopy((*op).Parameters, orig.Parameters)\n\t\t\t\t\t\tfirstParamChange = false\n\t\t\t\t\t}\n\n\t\t\t\t\t(*op).Parameters[i] = spec.Parameter{\n\t\t\t\t\t\tRefable: spec.Refable{\n\t\t\t\t\t\t\tRef: spec.MustCreateRef(\"#/parameters/\" + name),\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t\tpathChanged = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// per path parameters\n\t\tfirstParamChange := true\n\t\tfor i := range path.Parameters {\n\t\t\tp := path.Parameters[i]\n\n\t\t\tif p.Ref.String() != \"\" {\n\t\t\t\t// shouldn't happen, but be idem-potent if it does\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tbs, err := json.Marshal(p)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tif name, ok := sharedParameterNamesByJSON[string(bs)]; ok {\n\t\t\t\tif firstParamChange {\n\t\t\t\t\torig := path.Parameters\n\t\t\t\t\tpath.Parameters = make([]spec.Parameter, len(orig))\n\t\t\t\t\tcopy(path.Parameters, orig)\n\t\t\t\t\tfirstParamChange = false\n\t\t\t\t}\n\n\t\t\t\tpath.Parameters[i] = spec.Parameter{\n\t\t\t\t\tRefable: spec.Refable{\n\t\t\t\t\t\tRef: spec.MustCreateRef(\"#/parameters/\" + name),\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\tpathChanged = true\n\t\t\t}\n\t\t}\n\n\t\tif pathChanged {\n\t\t\tif firstPathChange {\n\t\t\t\tclone := *sp\n\t\t\t\tret = &clone\n\n\t\t\t\tpathsClone := *ret.Paths\n\t\t\t\tret.Paths = &pathsClone\n\n\t\t\t\tret.Paths.Paths = make(map[string]spec.PathItem, len(sp.Paths.Paths))\n\t\t\t\tfor k, v := range sp.Paths.Paths {\n\t\t\t\t\tret.Paths.Paths[k] = v\n\t\t\t\t}\n\n\t\t\t\tfirstPathChange = false\n\t\t\t}\n\t\t\tret.Paths.Paths[k] = path\n\t\t}\n\t}\n\n\treturn ret, nil\n}\n"
  },
  {
    "path": "pkg/builder/parameters_test.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage builder\n\nimport (\n\t\"encoding/json\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestCollectSharedParameters(t *testing.T) {\n\ttests := []struct {\n\t\tname string\n\t\tspec string\n\t\twant map[string]string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tspec: \"\",\n\t\t\twant: nil,\n\t\t},\n\t\t{\n\t\t\tname: \"no shared\",\n\t\t\tspec: `{\n  \"parameters\": {\"pre\": {\"in\": \"body\", \"name\": \"body\", \"required\": true, \"schema\": {}}},\n  \"paths\": {\n    \"/api/v1/a/{name}\": {\"get\": {\"parameters\": [\n\t\t  {\"description\": \"x\",\"in\":\"query\",\"name\": \"x\",\"type\":\"boolean\",\"uniqueItems\":true},\n\t\t  {\"description\": \"y\",\"in\":\"query\",\"name\": \"y\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}},\n    \"/api/v1/a/{name}/foo\": {\"get\": {\"parameters\": [\n\t\t  {\"description\": \"z\",\"in\":\"query\",\"name\": \"z\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}},\n    \"/api/v1/b/{name}\": {\"get\": {\"parameters\": [\n\t\t  {\"description\": \"x\",\"in\":\"query\",\"name\": \"x2\",\"type\":\"boolean\",\"uniqueItems\":true},\n\t\t  {\"description\": \"y\",\"in\":\"query\",\"name\": \"y2\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}},\n    \"/api/v1/b/{name}/foo\": {\"get\": {\"parameters\": [\n\t\t  {\"description\": \"z\",\"in\":\"query\",\"name\": \"z2\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}}\n  }\n}`,\n\t\t\twant: map[string]string{\n\t\t\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"x\",\"name\":\"x\",\"in\":\"query\"}`:  \"x-yaDSHpi7\",\n\t\t\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"y\",\"name\":\"y\",\"in\":\"query\"}`:  \"y-g6h7lEsz\",\n\t\t\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"z\",\"name\":\"z\",\"in\":\"query\"}`:  \"z--SXYWoM_\",\n\t\t\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"x\",\"name\":\"x2\",\"in\":\"query\"}`: \"x2-nds6MpS1\",\n\t\t\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"y\",\"name\":\"y2\",\"in\":\"query\"}`: \"y2-exnalzYE\",\n\t\t\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"z\",\"name\":\"z2\",\"in\":\"query\"}`: \"z2-8oJfzBQF\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shared per operation\",\n\t\t\tspec: `{\n  \"parameters\": {\"pre\": {\"in\": \"body\", \"name\": \"body\", \"required\": true, \"schema\": {}}},\n  \"paths\": {\n    \"/api/v1/a/{name}\": {\"get\": {\"parameters\": [\n\t\t  {\"description\": \"x\",\"in\":\"query\",\"name\": \"x\",\"type\":\"boolean\",\"uniqueItems\":true},\n\t\t  {\"description\": \"y\",\"in\":\"query\",\"name\": \"y\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}},\n    \"/api/v1/a/{name}/foo\": {\"get\": {\"parameters\": [\n\t\t  {\"description\": \"z\",\"in\":\"query\",\"name\": \"z\",\"type\":\"boolean\",\"uniqueItems\":true},\n\t\t  {\"description\": \"y\",\"in\":\"query\",\"name\": \"y\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}},\n    \"/api/v1/b/{name}\": {\"get\": {\"parameters\": [\n\t\t  {\"description\": \"z\",\"in\":\"query\",\"name\": \"z\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}},\n    \"/api/v1/b/{name}/foo\": {\"get\": {\"parameters\": [\n\t\t  {\"description\": \"x\",\"in\":\"query\",\"name\": \"x\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}}\n  }\n}`,\n\t\t\twant: map[string]string{\n\t\t\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"x\",\"name\":\"x\",\"in\":\"query\"}`: \"x-yaDSHpi7\",\n\t\t\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"y\",\"name\":\"y\",\"in\":\"query\"}`: \"y-g6h7lEsz\",\n\t\t\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"z\",\"name\":\"z\",\"in\":\"query\"}`: \"z--SXYWoM_\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shared per path\",\n\t\t\tspec: `{\n  \"parameters\": {\"pre\": {\"in\": \"body\", \"name\": \"body\", \"required\": true, \"schema\": {}}},\n  \"paths\": {\n    \"/api/v1/a/{name}\": {\"get\": {},\n      \"parameters\": [\n\t\t  {\"description\": \"x\",\"in\":\"query\",\"name\": \"x\",\"type\":\"boolean\",\"uniqueItems\":true},\n\t\t  {\"description\": \"y\",\"in\":\"query\",\"name\": \"y\",\"type\":\"boolean\",\"uniqueItems\":true}\n      ]\n    },\n    \"/api/v1/a/{name}/foo\": {\"get\": {\"parameters\": [\n\t\t  {\"description\": \"z\",\"in\":\"query\",\"name\": \"z\",\"type\":\"boolean\",\"uniqueItems\":true},\n\t\t  {\"description\": \"y\",\"in\":\"query\",\"name\": \"y\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}},\n    \"/api/v1/b/{name}\": {\"get\": {},\n      \"parameters\": [\n\t\t  {\"description\": \"z\",\"in\":\"query\",\"name\": \"z\",\"type\":\"boolean\",\"uniqueItems\":true}\n      ]\n    },\n    \"/api/v1/b/{name}/foo\": {\"get\": {\"parameters\": [\n\t\t  {\"description\": \"x\",\"in\":\"query\",\"name\": \"x\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}}\n  }\n}`,\n\t\t\twant: map[string]string{\n\t\t\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"x\",\"name\":\"x\",\"in\":\"query\"}`: \"x-yaDSHpi7\",\n\t\t\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"y\",\"name\":\"y\",\"in\":\"query\"}`: \"y-g6h7lEsz\",\n\t\t\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"z\",\"name\":\"z\",\"in\":\"query\"}`: \"z--SXYWoM_\",\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar sp *spec.Swagger\n\t\t\tif tt.spec != \"\" {\n\t\t\t\terr := json.Unmarshal([]byte(tt.spec), &sp)\n\t\t\t\trequire.NoError(t, err)\n\t\t\t}\n\n\t\t\tgotNamesByJSON, _, err := collectSharedParameters(sp)\n\t\t\trequire.NoError(t, err)\n\t\t\trequire.Equalf(t, tt.want, gotNamesByJSON, \"unexpected shared parameters\")\n\t\t})\n\t}\n}\n\nfunc TestReplaceSharedParameters(t *testing.T) {\n\tshared := map[string]string{\n\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"x\",\"name\":\"x\",\"in\":\"query\"}`: \"x\",\n\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"y\",\"name\":\"y\",\"in\":\"query\"}`: \"y\",\n\t\t`{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"z\",\"name\":\"z\",\"in\":\"query\"}`: \"z\",\n\t}\n\n\ttests := []struct {\n\t\tname string\n\t\tspec string\n\t\twant string\n\t}{\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tspec: \"{}\",\n\t\t\twant: `{\"paths\":null}`,\n\t\t},\n\t\t{\n\t\t\tname: \"existing parameters\",\n\t\t\tspec: `{\"parameters\": {\"a\":{\"type\":\"boolean\"}}}`,\n\t\t\twant: `{\"parameters\": {\"a\":{\"type\":\"boolean\"}},\"paths\":null}`,\n\t\t},\n\t\t{\n\t\t\tname: \"replace\",\n\t\t\tspec: `{\n  \"parameters\": {\"pre\": {\"in\": \"body\", \"name\": \"body\", \"required\": true, \"schema\": {}}},\n  \"paths\": {\n    \"/api/v1/a/{name}\": {\"get\": {\"description\":\"foo\"},\n      \"parameters\": [\n        {\"description\": \"x\",\"in\":\"query\",\"name\": \"x\",\"type\":\"boolean\",\"uniqueItems\":true},\n\t    {\"description\": \"y\",\"in\":\"query\",\"name\": \"y\",\"type\":\"boolean\",\"uniqueItems\":true}\n      ]\n    },\n    \"/api/v1/a/{name}/foo\": {\"get\": {\"parameters\": [\n      {\"description\": \"z\",\"in\":\"query\",\"name\": \"z\",\"type\":\"boolean\",\"uniqueItems\":true},\n\t  {\"description\": \"y\",\"in\":\"query\",\"name\": \"y\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}},\n    \"/api/v1/b/{name}\": {\"get\": {\"parameters\": [\n\t  {\"description\": \"z\",\"in\":\"query\",\"name\": \"z\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}},\n    \"/api/v1/b/{name}/foo\": {\"get\": {\"parameters\": [\n\t  {\"description\": \"x\",\"in\":\"query\",\"name\": \"x\",\"type\":\"boolean\",\"uniqueItems\":true},\n      {\"description\": \"w\",\"in\":\"query\",\"name\": \"w\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}}\n  }\n}`,\n\t\t\twant: `{\n  \"parameters\": {\"pre\":{\"in\":\"body\",\"name\":\"body\",\"required\":true,\"schema\":{}}},\n  \"paths\": {\n    \"/api/v1/a/{name}\": {\"get\": {\"description\":\"foo\"},\n      \"parameters\": [\n        {\"$ref\": \"#/parameters/x\"},\n        {\"$ref\": \"#/parameters/y\"}\n      ]\n    },\n    \"/api/v1/a/{name}/foo\": {\"get\": {\"parameters\": [\n      {\"$ref\": \"#/parameters/z\"},\n      {\"$ref\": \"#/parameters/y\"}\n    ]}},\n    \"/api/v1/b/{name}\": {\"get\": {\"parameters\": [\n      {\"$ref\": \"#/parameters/z\"}\n    ]}},\n    \"/api/v1/b/{name}/foo\": {\"get\": {\"parameters\": [\n      {\"$ref\":\"#/parameters/x\"},\n      {\"description\": \"w\",\"in\":\"query\",\"name\": \"w\",\"type\":\"boolean\",\"uniqueItems\":true}\n    ]}}\n  }\n}`,\n\t\t},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tvar unmarshalled *spec.Swagger\n\t\t\terr := json.Unmarshal([]byte(tt.spec), &unmarshalled)\n\t\t\trequire.NoError(t, err)\n\n\t\t\tgot, err := replaceSharedParameters(shared, unmarshalled)\n\t\t\trequire.NoError(t, err)\n\n\t\t\trequire.Equalf(t, normalizeJSON(t, tt.want), normalizeJSON(t, toJSON(t, got)), \"unexpected result\")\n\t\t})\n\t}\n}\n\nfunc toJSON(t *testing.T, x interface{}) string {\n\tbs, err := json.Marshal(x)\n\trequire.NoError(t, err)\n\n\treturn string(bs)\n}\n\nfunc normalizeJSON(t *testing.T, j string) string {\n\tvar obj interface{}\n\terr := json.Unmarshal([]byte(j), &obj)\n\trequire.NoError(t, err)\n\treturn toJSON(t, obj)\n}\n\nfunc TestOperations(t *testing.T) {\n\tt.Log(\"Ensuring that operations() returns all operations in spec.PathItemProps\")\n\tpath := spec.PathItem{}\n\tv := reflect.ValueOf(path.PathItemProps)\n\tvar rOps []any\n\tfor i := 0; i < v.NumField(); i++ {\n\t\tif v.Field(i).Kind() == reflect.Ptr {\n\t\t\trOps = append(rOps, v.Field(i).Interface())\n\t\t}\n\t}\n\n\tops := operations(&path)\n\trequire.Equal(t, len(rOps), len(ops), \"operations() should return all operations in spec.PathItemProps\")\n}\n"
  },
  {
    "path": "pkg/builder/util.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage builder\n\nimport (\n\t\"sort\"\n\n\t\"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\ntype parameters []spec.Parameter\n\nfunc (s parameters) Len() int      { return len(s) }\nfunc (s parameters) Swap(i, j int) { s[i], s[j] = s[j], s[i] }\n\n// byNameIn used in sorting parameters by Name and In fields.\ntype byNameIn struct {\n\tparameters\n}\n\nfunc (s byNameIn) Less(i, j int) bool {\n\treturn s.parameters[i].Name < s.parameters[j].Name || (s.parameters[i].Name == s.parameters[j].Name && s.parameters[i].In < s.parameters[j].In)\n}\n\n// SortParameters sorts parameters by Name and In fields.\nfunc sortParameters(p []spec.Parameter) {\n\tsort.Sort(byNameIn{p})\n}\n\nfunc groupRoutesByPath(routes []common.Route) map[string][]common.Route {\n\tpathToRoutes := make(map[string][]common.Route)\n\tfor _, r := range routes {\n\t\tpathToRoutes[r.Path()] = append(pathToRoutes[r.Path()], r)\n\t}\n\treturn pathToRoutes\n}\n\nfunc mapKeyFromParam(param common.Parameter) interface{} {\n\treturn struct {\n\t\tName string\n\t\tKind common.ParameterKind\n\t}{\n\t\tName: param.Name(),\n\t\tKind: param.Kind(),\n\t}\n}\n"
  },
  {
    "path": "pkg/builder3/openapi.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage builder3\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\n\trestful \"github.com/emicklei/go-restful/v3\"\n\n\tbuilderutil \"k8s.io/kube-openapi/pkg/builder3/util\"\n\t\"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/common/restfuladapter\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\t\"k8s.io/kube-openapi/pkg/util\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nconst (\n\tOpenAPIVersion = \"3.0\"\n)\n\ntype openAPI struct {\n\tconfig      *common.OpenAPIV3Config\n\tspec        *spec3.OpenAPI\n\tdefinitions map[string]common.OpenAPIDefinition\n}\n\nfunc groupRoutesByPath(routes []common.Route) map[string][]common.Route {\n\tpathToRoutes := make(map[string][]common.Route)\n\tfor _, r := range routes {\n\t\tpathToRoutes[r.Path()] = append(pathToRoutes[r.Path()], r)\n\t}\n\treturn pathToRoutes\n}\n\nfunc (o *openAPI) buildResponse(model interface{}, description string, content []string) (*spec3.Response, error) {\n\tresponse := &spec3.Response{\n\t\tResponseProps: spec3.ResponseProps{\n\t\t\tDescription: description,\n\t\t\tContent:     make(map[string]*spec3.MediaType),\n\t\t},\n\t}\n\n\ts, err := o.toSchema(util.GetCanonicalTypeName(model))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, contentType := range content {\n\t\tresponse.ResponseProps.Content[contentType] = &spec3.MediaType{\n\t\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\t\tSchema: s,\n\t\t\t},\n\t\t}\n\t}\n\treturn response, nil\n}\n\nfunc (o *openAPI) buildOperations(route common.Route, inPathCommonParamsMap map[interface{}]*spec3.Parameter) (*spec3.Operation, error) {\n\tret := &spec3.Operation{\n\t\tOperationProps: spec3.OperationProps{\n\t\t\tDescription: route.Description(),\n\t\t\tResponses: &spec3.Responses{\n\t\t\t\tResponsesProps: spec3.ResponsesProps{\n\t\t\t\t\tStatusCodeResponses: make(map[int]*spec3.Response),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\tfor k, v := range route.Metadata() {\n\t\tif strings.HasPrefix(k, common.ExtensionPrefix) {\n\t\t\tif ret.Extensions == nil {\n\t\t\t\tret.Extensions = spec.Extensions{}\n\t\t\t}\n\t\t\tret.Extensions.Add(k, v)\n\t\t}\n\t}\n\n\tvar err error\n\tif ret.OperationId, ret.Tags, err = o.config.GetOperationIDAndTagsFromRoute(route); err != nil {\n\t\treturn ret, err\n\t}\n\n\t// Build responses\n\tfor _, resp := range route.StatusCodeResponses() {\n\t\tret.Responses.StatusCodeResponses[resp.Code()], err = o.buildResponse(resp.Model(), resp.Message(), route.Produces())\n\t\tif err != nil {\n\t\t\treturn ret, err\n\t\t}\n\t}\n\n\t// If there is no response but a write sample, assume that write sample is an http.StatusOK response.\n\tif len(ret.Responses.StatusCodeResponses) == 0 && route.ResponsePayloadSample() != nil {\n\t\tret.Responses.StatusCodeResponses[http.StatusOK], err = o.buildResponse(route.ResponsePayloadSample(), \"OK\", route.Produces())\n\t\tif err != nil {\n\t\t\treturn ret, err\n\t\t}\n\t}\n\n\tfor code, resp := range o.config.CommonResponses {\n\t\tif _, exists := ret.Responses.StatusCodeResponses[code]; !exists {\n\t\t\tret.Responses.StatusCodeResponses[code] = resp\n\t\t}\n\t}\n\n\tif len(ret.Responses.StatusCodeResponses) == 0 {\n\t\tret.Responses.Default = o.config.DefaultResponse\n\t}\n\n\tparams := route.Parameters()\n\tfor _, param := range params {\n\t\t_, isCommon := inPathCommonParamsMap[mapKeyFromParam(param)]\n\t\tif !isCommon && param.Kind() != common.BodyParameterKind {\n\t\t\topenAPIParam, err := o.buildParameter(param)\n\t\t\tif err != nil {\n\t\t\t\treturn ret, err\n\t\t\t}\n\t\t\tret.Parameters = append(ret.Parameters, openAPIParam)\n\t\t}\n\t}\n\n\tbody, err := o.buildRequestBody(params, route.Consumes(), route.RequestPayloadSample())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif body != nil {\n\t\tret.RequestBody = body\n\t}\n\treturn ret, nil\n}\n\nfunc (o *openAPI) buildRequestBody(parameters []common.Parameter, consumes []string, bodySample interface{}) (*spec3.RequestBody, error) {\n\tfor _, param := range parameters {\n\t\tif param.Kind() == common.BodyParameterKind && bodySample != nil {\n\t\t\tschema, err := o.toSchema(util.GetCanonicalTypeName(bodySample))\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tr := &spec3.RequestBody{\n\t\t\t\tRequestBodyProps: spec3.RequestBodyProps{\n\t\t\t\t\tContent:     map[string]*spec3.MediaType{},\n\t\t\t\t\tDescription: param.Description(),\n\t\t\t\t\tRequired:    param.Required(),\n\t\t\t\t},\n\t\t\t}\n\t\t\tfor _, consume := range consumes {\n\t\t\t\tr.Content[consume] = &spec3.MediaType{\n\t\t\t\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\t\t\t\tSchema: schema,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn r, nil\n\t\t}\n\t}\n\treturn nil, nil\n}\n\nfunc newOpenAPI(config *common.OpenAPIV3Config) openAPI {\n\to := openAPI{\n\t\tconfig: config,\n\t\tspec: &spec3.OpenAPI{\n\t\t\tVersion: \"3.0.0\",\n\t\t\tInfo:    config.Info,\n\t\t\tPaths: &spec3.Paths{\n\t\t\t\tPaths: map[string]*spec3.Path{},\n\t\t\t},\n\t\t\tComponents: &spec3.Components{\n\t\t\t\tSchemas: map[string]*spec.Schema{},\n\t\t\t},\n\t\t},\n\t}\n\tif len(o.config.ResponseDefinitions) > 0 {\n\t\to.spec.Components.Responses = make(map[string]*spec3.Response)\n\n\t}\n\tfor k, response := range o.config.ResponseDefinitions {\n\t\to.spec.Components.Responses[k] = response\n\t}\n\n\tif len(o.config.SecuritySchemes) > 0 {\n\t\to.spec.Components.SecuritySchemes = make(spec3.SecuritySchemes)\n\n\t}\n\tfor k, securityScheme := range o.config.SecuritySchemes {\n\t\to.spec.Components.SecuritySchemes[k] = securityScheme\n\t}\n\n\tif o.config.GetOperationIDAndTagsFromRoute == nil {\n\t\t// Map the deprecated handler to the common interface, if provided.\n\t\tif o.config.GetOperationIDAndTags != nil {\n\t\t\to.config.GetOperationIDAndTagsFromRoute = func(r common.Route) (string, []string, error) {\n\t\t\t\trestfulRouteAdapter, ok := r.(*restfuladapter.RouteAdapter)\n\t\t\t\tif !ok {\n\t\t\t\t\treturn \"\", nil, fmt.Errorf(\"config.GetOperationIDAndTags specified but route is not a restful v1 Route\")\n\t\t\t\t}\n\n\t\t\t\treturn o.config.GetOperationIDAndTags(restfulRouteAdapter.Route)\n\t\t\t}\n\t\t} else {\n\t\t\to.config.GetOperationIDAndTagsFromRoute = func(r common.Route) (string, []string, error) {\n\t\t\t\treturn r.OperationName(), nil, nil\n\t\t\t}\n\t\t}\n\t}\n\n\tif o.config.GetDefinitionName == nil {\n\t\to.config.GetDefinitionName = func(name string) (string, spec.Extensions) {\n\t\t\treturn name[strings.LastIndex(name, \"/\")+1:], nil\n\t\t}\n\t}\n\n\tif o.config.Definitions != nil {\n\t\to.definitions = o.config.Definitions\n\t} else {\n\t\to.definitions = o.config.GetDefinitions(func(name string) spec.Ref {\n\t\t\tdefName, _ := o.config.GetDefinitionName(name)\n\t\t\treturn spec.MustCreateRef(\"#/components/schemas/\" + common.EscapeJsonPointer(defName))\n\t\t})\n\t}\n\n\treturn o\n}\n\nfunc (o *openAPI) buildOpenAPISpec(webServices []common.RouteContainer) error {\n\tpathsToIgnore := util.NewTrie(o.config.IgnorePrefixes)\n\tfor _, w := range webServices {\n\t\trootPath := w.RootPath()\n\t\tif pathsToIgnore.HasPrefix(rootPath) {\n\t\t\tcontinue\n\t\t}\n\n\t\tcommonParams, err := o.buildParameters(w.PathParameters())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfor path, routes := range groupRoutesByPath(w.Routes()) {\n\t\t\t// go-swagger has special variable definition {$NAME:*} that can only be\n\t\t\t// used at the end of the path and it is not recognized by OpenAPI.\n\t\t\tif strings.HasSuffix(path, \":*}\") {\n\t\t\t\tpath = path[:len(path)-3] + \"}\"\n\t\t\t}\n\t\t\tif pathsToIgnore.HasPrefix(path) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Aggregating common parameters make API spec (and generated clients) simpler\n\t\t\tinPathCommonParamsMap, err := o.findCommonParameters(routes)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tpathItem, exists := o.spec.Paths.Paths[path]\n\t\t\tif exists {\n\t\t\t\treturn fmt.Errorf(\"duplicate webservice route has been found for path: %v\", path)\n\t\t\t}\n\n\t\t\tpathItem = &spec3.Path{\n\t\t\t\tPathProps: spec3.PathProps{},\n\t\t\t}\n\n\t\t\t// add web services's parameters as well as any parameters appears in all ops, as common parameters\n\t\t\tpathItem.Parameters = append(pathItem.Parameters, commonParams...)\n\t\t\tfor _, p := range inPathCommonParamsMap {\n\t\t\t\tpathItem.Parameters = append(pathItem.Parameters, p)\n\t\t\t}\n\t\t\tsortParameters(pathItem.Parameters)\n\n\t\t\tfor _, route := range routes {\n\t\t\t\top, err := o.buildOperations(route, inPathCommonParamsMap)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tsortParameters(op.Parameters)\n\n\t\t\t\tswitch strings.ToUpper(route.Method()) {\n\t\t\t\tcase \"GET\":\n\t\t\t\t\tpathItem.Get = op\n\t\t\t\tcase \"POST\":\n\t\t\t\t\tpathItem.Post = op\n\t\t\t\tcase \"HEAD\":\n\t\t\t\t\tpathItem.Head = op\n\t\t\t\tcase \"PUT\":\n\t\t\t\t\tpathItem.Put = op\n\t\t\t\tcase \"DELETE\":\n\t\t\t\t\tpathItem.Delete = op\n\t\t\t\tcase \"OPTIONS\":\n\t\t\t\t\tpathItem.Options = op\n\t\t\t\tcase \"PATCH\":\n\t\t\t\t\tpathItem.Patch = op\n\t\t\t\t}\n\n\t\t\t}\n\t\t\to.spec.Paths.Paths[path] = pathItem\n\t\t}\n\t}\n\treturn nil\n}\n\n// BuildOpenAPISpec builds OpenAPI v3 spec given a list of route containers and common.Config to customize it.\n//\n// Deprecated: BuildOpenAPISpecFromRoutes should be used instead.\nfunc BuildOpenAPISpec(webServices []*restful.WebService, config *common.OpenAPIV3Config) (*spec3.OpenAPI, error) {\n\treturn BuildOpenAPISpecFromRoutes(restfuladapter.AdaptWebServices(webServices), config)\n}\n\n// BuildOpenAPISpecFromRoutes builds OpenAPI v3 spec given a list of route containers and common.Config to customize it.\nfunc BuildOpenAPISpecFromRoutes(webServices []common.RouteContainer, config *common.OpenAPIV3Config) (*spec3.OpenAPI, error) {\n\ta := newOpenAPI(config)\n\terr := a.buildOpenAPISpec(webServices)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif config.PostProcessSpec != nil {\n\t\treturn config.PostProcessSpec(a.spec)\n\t}\n\treturn a.spec, nil\n}\n\n// BuildOpenAPIDefinitionsForResource builds a partial OpenAPI spec given a sample object and common.Config to customize it.\n// BuildOpenAPIDefinitionsForResources returns the OpenAPI spec which includes the definitions for the\n// passed type names.\nfunc BuildOpenAPIDefinitionsForResources(config *common.OpenAPIV3Config, names ...string) (map[string]*spec.Schema, error) {\n\to := newOpenAPI(config)\n\t// We can discard the return value of toSchema because all we care about is the side effect of calling it.\n\t// All the models created for this resource get added to o.swagger.Definitions\n\tfor _, name := range names {\n\t\t_, err := o.toSchema(name)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn o.spec.Components.Schemas, nil\n}\nfunc (o *openAPI) findCommonParameters(routes []common.Route) (map[interface{}]*spec3.Parameter, error) {\n\tcommonParamsMap := make(map[interface{}]*spec3.Parameter, 0)\n\tparamOpsCountByName := make(map[interface{}]int, 0)\n\tparamNameKindToDataMap := make(map[interface{}]common.Parameter, 0)\n\tfor _, route := range routes {\n\t\trouteParamDuplicateMap := make(map[interface{}]bool)\n\t\ts := \"\"\n\t\tparams := route.Parameters()\n\t\tfor _, param := range params {\n\t\t\tm, _ := json.Marshal(param)\n\t\t\ts += string(m) + \"\\n\"\n\t\t\tkey := mapKeyFromParam(param)\n\t\t\tif routeParamDuplicateMap[key] {\n\t\t\t\tmsg, _ := json.Marshal(params)\n\t\t\t\treturn commonParamsMap, fmt.Errorf(\"duplicate parameter %v for route %v, %v\", param.Name(), string(msg), s)\n\t\t\t}\n\t\t\trouteParamDuplicateMap[key] = true\n\t\t\tparamOpsCountByName[key]++\n\t\t\tparamNameKindToDataMap[key] = param\n\t\t}\n\t}\n\tfor key, count := range paramOpsCountByName {\n\t\tparamData := paramNameKindToDataMap[key]\n\t\tif count == len(routes) && paramData.Kind() != common.BodyParameterKind {\n\t\t\topenAPIParam, err := o.buildParameter(paramData)\n\t\t\tif err != nil {\n\t\t\t\treturn commonParamsMap, err\n\t\t\t}\n\t\t\tcommonParamsMap[key] = openAPIParam\n\t\t}\n\t}\n\treturn commonParamsMap, nil\n}\n\nfunc (o *openAPI) buildParameters(restParam []common.Parameter) (ret []*spec3.Parameter, err error) {\n\tret = make([]*spec3.Parameter, len(restParam))\n\tfor i, v := range restParam {\n\t\tret[i], err = o.buildParameter(v)\n\t\tif err != nil {\n\t\t\treturn ret, err\n\t\t}\n\t}\n\treturn ret, nil\n}\n\nfunc (o *openAPI) buildParameter(restParam common.Parameter) (ret *spec3.Parameter, err error) {\n\tret = &spec3.Parameter{\n\t\tParameterProps: spec3.ParameterProps{\n\t\t\tName:        restParam.Name(),\n\t\t\tDescription: restParam.Description(),\n\t\t\tRequired:    restParam.Required(),\n\t\t},\n\t}\n\tswitch restParam.Kind() {\n\tcase common.BodyParameterKind:\n\t\treturn nil, nil\n\tcase common.PathParameterKind:\n\t\tret.In = \"path\"\n\t\tif !restParam.Required() {\n\t\t\treturn ret, fmt.Errorf(\"path parameters should be marked as required for parameter %v\", restParam)\n\t\t}\n\tcase common.QueryParameterKind:\n\t\tret.In = \"query\"\n\tcase common.HeaderParameterKind:\n\t\tret.In = \"header\"\n\t/* TODO: add support for the cookie param */\n\tdefault:\n\t\treturn ret, fmt.Errorf(\"unsupported restful parameter kind : %v\", restParam.Kind())\n\t}\n\topenAPIType, openAPIFormat := common.OpenAPITypeFormat(restParam.DataType())\n\tif openAPIType == \"\" {\n\t\treturn ret, fmt.Errorf(\"non-body Restful parameter type should be a simple type, but got : %v\", restParam.DataType())\n\t}\n\n\tret.Schema = &spec.Schema{\n\t\tSchemaProps: spec.SchemaProps{\n\t\t\tType:        []string{openAPIType},\n\t\t\tFormat:      openAPIFormat,\n\t\t\tUniqueItems: !restParam.AllowMultiple(),\n\t\t},\n\t}\n\treturn ret, nil\n}\n\nfunc (o *openAPI) buildDefinitionRecursively(name string) error {\n\tuniqueName, extensions := o.config.GetDefinitionName(name)\n\tescapedName := common.EscapeJsonPointer(uniqueName)\n\tif _, ok := o.spec.Components.Schemas[escapedName]; ok {\n\t\treturn nil\n\t}\n\tif item, ok := o.definitions[name]; ok {\n\t\tschema := &spec.Schema{\n\t\t\tVendorExtensible:   item.Schema.VendorExtensible,\n\t\t\tSchemaProps:        item.Schema.SchemaProps,\n\t\t\tSwaggerSchemaProps: item.Schema.SwaggerSchemaProps,\n\t\t}\n\t\tif extensions != nil {\n\t\t\tif schema.Extensions == nil {\n\t\t\t\tschema.Extensions = spec.Extensions{}\n\t\t\t}\n\t\t\tfor k, v := range extensions {\n\t\t\t\tschema.Extensions[k] = v\n\t\t\t}\n\t\t}\n\t\t// delete the embedded v2 schema if exists, otherwise no-op\n\t\tdelete(schema.VendorExtensible.Extensions, common.ExtensionV2Schema)\n\t\tschema = builderutil.WrapRefs(schema)\n\t\to.spec.Components.Schemas[escapedName] = schema\n\t\tfor _, v := range item.Dependencies {\n\t\t\tif err := o.buildDefinitionRecursively(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t} else {\n\t\treturn fmt.Errorf(\"cannot find model definition for %v. If you added a new type, you may need to add +k8s:openapi-gen=true to the package or type and run code-gen again\", name)\n\t}\n\treturn nil\n}\n\nfunc (o *openAPI) buildDefinitionForType(name string) (string, error) {\n\tif err := o.buildDefinitionRecursively(name); err != nil {\n\t\treturn \"\", err\n\t}\n\tdefName, _ := o.config.GetDefinitionName(name)\n\treturn \"#/components/schemas/\" + common.EscapeJsonPointer(defName), nil\n}\n\nfunc (o *openAPI) toSchema(name string) (_ *spec.Schema, err error) {\n\tif openAPIType, openAPIFormat := common.OpenAPITypeFormat(name); openAPIType != \"\" {\n\t\treturn &spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType:   []string{openAPIType},\n\t\t\t\tFormat: openAPIFormat,\n\t\t\t},\n\t\t}, nil\n\t} else {\n\t\tref, err := o.buildDefinitionForType(name)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn &spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tRef: spec.MustCreateRef(ref),\n\t\t\t},\n\t\t}, nil\n\t}\n}\n"
  },
  {
    "path": "pkg/builder3/openapi_test.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage builder3\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/emicklei/go-restful/v3\"\n\t\"github.com/stretchr/testify/assert\"\n\n\topenapi \"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\t\"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// setUp is a convenience function for setting up for (most) tests.\nfunc setUp(t *testing.T, fullMethods bool) (*openapi.OpenAPIV3Config, *restful.Container, *assert.Assertions) {\n\tassert := assert.New(t)\n\tconfig, container := getConfig(fullMethods)\n\treturn config, container, assert\n}\n\nfunc noOp(request *restful.Request, response *restful.Response) {}\n\n// Test input\ntype TestInput struct {\n\t// Name of the input\n\tName string `json:\"name,omitempty\"`\n\t// ID of the input\n\tID   int      `json:\"id,omitempty\"`\n\tTags []string `json:\"tags,omitempty\"`\n}\n\n// Test output\ntype TestOutput struct {\n\t// Name of the output\n\tName string `json:\"name,omitempty\"`\n\t// Number of outputs\n\tCount int `json:\"count,omitempty\"`\n}\n\nfunc (_ TestInput) OpenAPIDefinition() openapi.OpenAPIDefinition {\n\tschema := spec.Schema{}\n\tschema.Description = \"Test input\"\n\tschema.Properties = map[string]spec.Schema{\n\t\t\"name\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"Name of the input\",\n\t\t\t\tType:        []string{\"string\"},\n\t\t\t\tFormat:      \"\",\n\t\t\t},\n\t\t},\n\t\t\"id\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"ID of the input\",\n\t\t\t\tType:        []string{\"integer\"},\n\t\t\t\tFormat:      \"int32\",\n\t\t\t},\n\t\t},\n\t\t\"tags\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"\",\n\t\t\t\tType:        []string{\"array\"},\n\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"string\"},\n\t\t\t\t\t\t\tFormat: \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t\"reference-extension\": {\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: map[string]interface{}{\"extension\": \"value\"},\n\t\t\t},\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tRef: spec.MustCreateRef(\"/components/schemas/builder3.TestOutput\"),\n\t\t\t},\n\t\t},\n\t\t\"reference-nullable\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tRef:      spec.MustCreateRef(\"/components/schemas/builder3.TestOutput\"),\n\t\t\t\tNullable: true,\n\t\t\t},\n\t\t},\n\t\t\"reference-default\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tRef:     spec.MustCreateRef(\"/components/schemas/builder3.TestOutput\"),\n\t\t\t\tDefault: map[string]interface{}{},\n\t\t\t},\n\t\t},\n\t}\n\tschema.Extensions = spec.Extensions{\"x-test\": \"test\"}\n\tdef := openapi.EmbedOpenAPIDefinitionIntoV2Extension(openapi.OpenAPIDefinition{\n\t\tSchema:       schema,\n\t\tDependencies: []string{},\n\t}, openapi.OpenAPIDefinition{\n\t\t// this empty embedded v2 definition should not appear in the result\n\t})\n\treturn def\n}\n\nfunc (_ TestOutput) OpenAPIDefinition() openapi.OpenAPIDefinition {\n\tschema := spec.Schema{}\n\tschema.Description = \"Test output\"\n\tschema.Properties = map[string]spec.Schema{\n\t\t\"name\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"Name of the output\",\n\t\t\t\tType:        []string{\"string\"},\n\t\t\t\tFormat:      \"\",\n\t\t\t},\n\t\t},\n\t\t\"count\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"Number of outputs\",\n\t\t\t\tType:        []string{\"integer\"},\n\t\t\t\tFormat:      \"int32\",\n\t\t\t},\n\t\t},\n\t}\n\treturn openapi.OpenAPIDefinition{\n\t\tSchema:       schema,\n\t\tDependencies: []string{},\n\t}\n}\n\nvar _ openapi.OpenAPIDefinitionGetter = TestInput{}\nvar _ openapi.OpenAPIDefinitionGetter = TestOutput{}\n\nfunc getTestRoute(ws *restful.WebService, method string, opPrefix string) *restful.RouteBuilder {\n\tret := ws.Method(method).\n\t\tPath(\"/test/{path:*}\").\n\t\tDoc(fmt.Sprintf(\"%s test input\", method)).\n\t\tOperation(fmt.Sprintf(\"%s%sTestInput\", method, opPrefix)).\n\t\tProduces(restful.MIME_JSON).\n\t\tConsumes(restful.MIME_JSON).\n\t\tParam(ws.PathParameter(\"path\", \"path to the resource\").DataType(\"string\")).\n\t\tParam(ws.QueryParameter(\"pretty\", \"If 'true', then the output is pretty printed.\")).\n\t\tReads(TestInput{}).\n\t\tReturns(200, \"OK\", TestOutput{}).\n\t\tWrites(TestOutput{}).\n\t\tTo(noOp)\n\treturn ret\n}\n\nfunc getConfig(fullMethods bool) (*openapi.OpenAPIV3Config, *restful.Container) {\n\tmux := http.NewServeMux()\n\tcontainer := restful.NewContainer()\n\tcontainer.ServeMux = mux\n\tws := new(restful.WebService)\n\tws.Path(\"/foo\")\n\tws.Route(getTestRoute(ws, \"get\", \"foo\"))\n\tif fullMethods {\n\t\tws.Route(getTestRoute(ws, \"post\", \"foo\")).\n\t\t\tRoute(getTestRoute(ws, \"put\", \"foo\")).\n\t\t\tRoute(getTestRoute(ws, \"head\", \"foo\")).\n\t\t\tRoute(getTestRoute(ws, \"patch\", \"foo\")).\n\t\t\tRoute(getTestRoute(ws, \"options\", \"foo\")).\n\t\t\tRoute(getTestRoute(ws, \"delete\", \"foo\"))\n\n\t}\n\tws.Path(\"/bar\")\n\tws.Route(getTestRoute(ws, \"get\", \"bar\"))\n\tif fullMethods {\n\t\tws.Route(getTestRoute(ws, \"post\", \"bar\")).\n\t\t\tRoute(getTestRoute(ws, \"put\", \"bar\")).\n\t\t\tRoute(getTestRoute(ws, \"head\", \"bar\")).\n\t\t\tRoute(getTestRoute(ws, \"patch\", \"bar\")).\n\t\t\tRoute(getTestRoute(ws, \"options\", \"bar\")).\n\t\t\tRoute(getTestRoute(ws, \"delete\", \"bar\"))\n\n\t}\n\tcontainer.Add(ws)\n\treturn &openapi.OpenAPIV3Config{\n\t\tInfo: &spec.Info{\n\t\t\tInfoProps: spec.InfoProps{\n\t\t\t\tTitle:       \"TestAPI\",\n\t\t\t\tDescription: \"Test API\",\n\t\t\t\tVersion:     \"unversioned\",\n\t\t\t},\n\t\t},\n\t\tGetDefinitions: func(_ openapi.ReferenceCallback) map[string]openapi.OpenAPIDefinition {\n\t\t\treturn map[string]openapi.OpenAPIDefinition{\n\t\t\t\t\"k8s.io/kube-openapi/pkg/builder3.TestInput\":  TestInput{}.OpenAPIDefinition(),\n\t\t\t\t\"k8s.io/kube-openapi/pkg/builder3.TestOutput\": TestOutput{}.OpenAPIDefinition(),\n\t\t\t}\n\t\t},\n\t\tGetDefinitionName: func(name string) (string, spec.Extensions) {\n\t\t\tfriendlyName := name[strings.LastIndex(name, \"/\")+1:]\n\t\t\treturn friendlyName, spec.Extensions{\"x-test2\": \"test2\"}\n\t\t},\n\t}, container\n}\n\nfunc getTestOperation(method string, opPrefix string) *spec3.Operation {\n\treturn &spec3.Operation{\n\t\tOperationProps: spec3.OperationProps{\n\t\t\tDescription: fmt.Sprintf(\"%s test input\", method),\n\t\t\tParameters:  []*spec3.Parameter{},\n\t\t\tResponses:   getTestResponses(),\n\t\t\tOperationId: fmt.Sprintf(\"%s%sTestInput\", method, opPrefix),\n\t\t},\n\t}\n}\n\nfunc getTestPathItem(opPrefix string) *spec3.Path {\n\tret := &spec3.Path{\n\t\tPathProps: spec3.PathProps{\n\t\t\tGet:        getTestOperation(\"get\", opPrefix),\n\t\t\tParameters: getTestCommonParameters(),\n\t\t},\n\t}\n\tret.Get.RequestBody = getTestRequestBody()\n\tret.Put = getTestOperation(\"put\", opPrefix)\n\tret.Put.RequestBody = getTestRequestBody()\n\tret.Post = getTestOperation(\"post\", opPrefix)\n\tret.Post.RequestBody = getTestRequestBody()\n\tret.Head = getTestOperation(\"head\", opPrefix)\n\tret.Head.RequestBody = getTestRequestBody()\n\tret.Patch = getTestOperation(\"patch\", opPrefix)\n\tret.Patch.RequestBody = getTestRequestBody()\n\tret.Delete = getTestOperation(\"delete\", opPrefix)\n\tret.Delete.RequestBody = getTestRequestBody()\n\tret.Options = getTestOperation(\"options\", opPrefix)\n\tret.Options.RequestBody = getTestRequestBody()\n\treturn ret\n}\n\nfunc getRefSchema(ref string) *spec.Schema {\n\treturn &spec.Schema{\n\t\tSchemaProps: spec.SchemaProps{\n\t\t\tRef: spec.MustCreateRef(ref),\n\t\t},\n\t}\n}\n\nfunc getTestResponses() *spec3.Responses {\n\tret := &spec3.Responses{\n\t\tResponsesProps: spec3.ResponsesProps{\n\t\t\tStatusCodeResponses: map[int]*spec3.Response{},\n\t\t},\n\t}\n\tret.StatusCodeResponses[200] = &spec3.Response{\n\t\tResponseProps: spec3.ResponseProps{\n\t\t\tDescription: \"OK\",\n\t\t\tContent:     map[string]*spec3.MediaType{},\n\t\t},\n\t}\n\n\tret.StatusCodeResponses[200].Content[restful.MIME_JSON] = &spec3.MediaType{\n\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\tSchema: getRefSchema(\"#/components/schemas/builder3.TestOutput\"),\n\t\t},\n\t}\n\n\treturn ret\n}\n\nfunc getTestCommonParameters() []*spec3.Parameter {\n\tret := make([]*spec3.Parameter, 2)\n\tret[0] = &spec3.Parameter{\n\t\tParameterProps: spec3.ParameterProps{\n\t\t\tDescription: \"path to the resource\",\n\t\t\tName:        \"path\",\n\t\t\tIn:          \"path\",\n\t\t\tRequired:    true,\n\t\t\tSchema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\tUniqueItems: true,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\tret[1] = &spec3.Parameter{\n\t\tParameterProps: spec3.ParameterProps{\n\t\t\tDescription: \"If 'true', then the output is pretty printed.\",\n\t\t\tName:        \"pretty\",\n\t\t\tIn:          \"query\",\n\t\t\tSchema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\tUniqueItems: true,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\treturn ret\n}\n\nfunc getTestRequestBody() *spec3.RequestBody {\n\tret := &spec3.RequestBody{\n\t\tRequestBodyProps: spec3.RequestBodyProps{\n\t\t\tContent: map[string]*spec3.MediaType{\n\t\t\t\trestful.MIME_JSON: {\n\t\t\t\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\t\t\t\tSchema: getRefSchema(\"#/components/schemas/builder3.TestInput\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tRequired: true,\n\t\t},\n\t}\n\treturn ret\n}\n\nfunc getTestInputDefinition() *spec.Schema {\n\treturn &spec.Schema{\n\t\tSchemaProps: spec.SchemaProps{\n\t\t\tDescription: \"Test input\",\n\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\"id\": {\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tDescription: \"ID of the input\",\n\t\t\t\t\t\tType:        spec.StringOrArray{\"integer\"},\n\t\t\t\t\t\tFormat:      \"int32\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"name\": {\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tDescription: \"Name of the input\",\n\t\t\t\t\t\tType:        spec.StringOrArray{\"string\"},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"tags\": {\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tType: spec.StringOrArray{\"array\"},\n\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\tType: spec.StringOrArray{\"string\"},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"reference-extension\": {\n\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\tExtensions: map[string]interface{}{\"extension\": \"value\"},\n\t\t\t\t\t},\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tAllOf: []spec.Schema{{\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tRef: spec.MustCreateRef(\"/components/schemas/builder3.TestOutput\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"reference-nullable\": {\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tNullable: true,\n\t\t\t\t\t\tAllOf: []spec.Schema{{\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tRef: spec.MustCreateRef(\"/components/schemas/builder3.TestOutput\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"reference-default\": {\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tAllOf: []spec.Schema{{\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tRef: spec.MustCreateRef(\"/components/schemas/builder3.TestOutput\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}},\n\t\t\t\t\t\tDefault: map[string]interface{}{},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\"x-test\":  \"test\",\n\t\t\t\t\"x-test2\": \"test2\",\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc getTestOutputDefinition() *spec.Schema {\n\treturn &spec.Schema{\n\t\tSchemaProps: spec.SchemaProps{\n\t\t\tDescription: \"Test output\",\n\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\"count\": {\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tDescription: \"Number of outputs\",\n\t\t\t\t\t\tType:        spec.StringOrArray{\"integer\"},\n\t\t\t\t\t\tFormat:      \"int32\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"name\": {\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tDescription: \"Name of the output\",\n\t\t\t\t\t\tType:        spec.StringOrArray{\"string\"},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\"x-test2\": \"test2\",\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc TestBuildOpenAPISpec(t *testing.T) {\n\tconfig, container, assert := setUp(t, true)\n\texpected := &spec3.OpenAPI{\n\t\tInfo: &spec.Info{\n\t\t\tInfoProps: spec.InfoProps{\n\t\t\t\tTitle:       \"TestAPI\",\n\t\t\t\tDescription: \"Test API\",\n\t\t\t\tVersion:     \"unversioned\",\n\t\t\t},\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: map[string]any{\n\t\t\t\t\t\"hello\": \"world\", // set from PostProcessSpec callback\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tVersion: \"3.0.0\",\n\t\tPaths: &spec3.Paths{\n\t\t\tPaths: map[string]*spec3.Path{\n\t\t\t\t\"/foo/test/{path}\": getTestPathItem(\"foo\"),\n\t\t\t\t\"/bar/test/{path}\": getTestPathItem(\"bar\"),\n\t\t\t},\n\t\t},\n\t\tComponents: &spec3.Components{\n\t\t\tSchemas: map[string]*spec.Schema{\n\t\t\t\t\"builder3.TestInput\":  getTestInputDefinition(),\n\t\t\t\t\"builder3.TestOutput\": getTestOutputDefinition(),\n\t\t\t},\n\t\t},\n\t}\n\tconfig.PostProcessSpec = func(s *spec3.OpenAPI) (*spec3.OpenAPI, error) {\n\t\ts.Info.Extensions = map[string]any{\n\t\t\t\"hello\": \"world\",\n\t\t}\n\t\treturn s, nil\n\t}\n\tswagger, err := BuildOpenAPISpec(container.RegisteredWebServices(), config)\n\tif !assert.NoError(err) {\n\t\treturn\n\t}\n\texpected_json, err := json.Marshal(expected)\n\tif !assert.NoError(err) {\n\t\treturn\n\t}\n\tactual_json, err := json.Marshal(swagger)\n\tif !assert.NoError(err) {\n\t\treturn\n\t}\n\tif err := jsontesting.JsonCompare(expected_json, actual_json); err != nil {\n\t\tt.Error(err)\n\t}\n}\n\ntype TestRecursiveType struct {\n\tValue    string              `json:\"value,omitempty\"`\n\tChildren []TestRecursiveType `json:\"children,omitempty\"`\n}\n\nfunc makeRecursiveTypeDefinition(depName string) openapi.OpenAPIDefinition {\n\tschema := spec.Schema{}\n\tschema.Description = \"Test recursive type for JSON pointer escaping\"\n\tschema.Properties = map[string]spec.Schema{\n\t\t\"value\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"A test value\",\n\t\t\t\tType:        []string{\"string\"},\n\t\t\t},\n\t\t},\n\t\t\"children\": {\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"array\"},\n\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tRef: spec.MustCreateRef(\"#/components/schemas/\" + depName),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\treturn openapi.OpenAPIDefinition{\n\t\tSchema:       schema,\n\t\tDependencies: []string{depName},\n\t}\n}\n\nfunc TestEscapeJsonPointerInSchemaName(t *testing.T) {\n\ttestCases := []struct {\n\t\tname           string\n\t\tdefinitionName string\n\t\texpectedName   string\n\t\tshouldNotExist string\n\t}{\n\t\t{\n\t\t\tname:           \"both slash and tilde\",\n\t\t\tdefinitionName: \"io.k8s/api~v1.TestRecursiveType\",\n\t\t\texpectedName:   \"io.k8s~1api~0v1.TestRecursiveType\",\n\t\t\tshouldNotExist: \"io.k8s/api~v1.TestRecursiveType\",\n\t\t},\n\t\t{\n\t\t\tname:           \"only slashes\",\n\t\t\tdefinitionName: \"io.k8s/api/v1.TestRecursiveType\",\n\t\t\texpectedName:   \"io.k8s~1api~1v1.TestRecursiveType\",\n\t\t\tshouldNotExist: \"io.k8s/api/v1.TestRecursiveType\",\n\t\t},\n\t\t{\n\t\t\tname:           \"only tildes\",\n\t\t\tdefinitionName: \"io.k8s~api~v1.TestRecursiveType\",\n\t\t\texpectedName:   \"io.k8s~0api~0v1.TestRecursiveType\",\n\t\t\tshouldNotExist: \"io.k8s~api~v1.TestRecursiveType\",\n\t\t},\n\t\t{\n\t\t\tname:           \"no special characters\",\n\t\t\tdefinitionName: \"io.k8s.api.v1.TestRecursiveType\",\n\t\t\texpectedName:   \"io.k8s.api.v1.TestRecursiveType\",\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tassert := assert.New(t)\n\n\t\t\tconfig := &openapi.OpenAPIV3Config{\n\t\t\t\tInfo: &spec.Info{\n\t\t\t\t\tInfoProps: spec.InfoProps{\n\t\t\t\t\t\tTitle:       \"TestAPI\",\n\t\t\t\t\t\tDescription: \"Test API\",\n\t\t\t\t\t\tVersion:     \"v1\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tGetDefinitions: func(_ openapi.ReferenceCallback) map[string]openapi.OpenAPIDefinition {\n\t\t\t\t\treturn map[string]openapi.OpenAPIDefinition{\n\t\t\t\t\t\ttc.definitionName: makeRecursiveTypeDefinition(tc.definitionName),\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tGetDefinitionName: func(name string) (string, spec.Extensions) {\n\t\t\t\t\treturn name, nil\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tschemas, err := BuildOpenAPIDefinitionsForResources(config, tc.definitionName)\n\t\t\tassert.NoError(err)\n\t\t\tassert.NotNil(schemas)\n\n\t\t\t_, exists := schemas[tc.expectedName]\n\t\t\tassert.True(exists, \"Schema should exist with escaped name: %s\", tc.expectedName)\n\n\t\t\tif tc.shouldNotExist != \"\" {\n\t\t\t\t_, exists = schemas[tc.shouldNotExist]\n\t\t\t\tassert.False(exists, \"Schema should not exist with unescaped name: %s\", tc.shouldNotExist)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/builder3/util/util.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage util\n\nimport (\n\t\"reflect\"\n\n\t\"k8s.io/kube-openapi/pkg/schemamutation\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// wrapRefs wraps OpenAPI V3 Schema refs that contain sibling elements.\n// AllOf is used to wrap the Ref to prevent references from having sibling elements\n// Please see https://github.com/kubernetes/kubernetes/issues/106387#issuecomment-967640388\nfunc WrapRefs(schema *spec.Schema) *spec.Schema {\n\twalker := schemamutation.Walker{\n\t\tSchemaCallback: func(schema *spec.Schema) *spec.Schema {\n\t\t\torig := schema\n\t\t\tclone := func() {\n\t\t\t\tif orig == schema {\n\t\t\t\t\tschema = new(spec.Schema)\n\t\t\t\t\t*schema = *orig\n\t\t\t\t}\n\t\t\t}\n\t\t\tif schema.Ref.String() != \"\" && !reflect.DeepEqual(*schema, spec.Schema{SchemaProps: spec.SchemaProps{Ref: schema.Ref}}) {\n\t\t\t\tclone()\n\t\t\t\trefSchema := new(spec.Schema)\n\t\t\t\trefSchema.Ref = schema.Ref\n\t\t\t\tschema.Ref = spec.Ref{}\n\t\t\t\tschema.AllOf = []spec.Schema{*refSchema}\n\t\t\t}\n\t\t\treturn schema\n\t\t},\n\t\tRefCallback: schemamutation.RefCallbackNoop,\n\t}\n\treturn walker.WalkSchema(schema)\n}\n"
  },
  {
    "path": "pkg/builder3/util.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage builder3\n\nimport (\n\t\"sort\"\n\n\t\"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n)\n\nfunc mapKeyFromParam(param common.Parameter) interface{} {\n\treturn struct {\n\t\tName string\n\t\tKind common.ParameterKind\n\t}{\n\t\tName: param.Name(),\n\t\tKind: param.Kind(),\n\t}\n}\n\nfunc (s parameters) Len() int      { return len(s) }\nfunc (s parameters) Swap(i, j int) { s[i], s[j] = s[j], s[i] }\n\ntype parameters []*spec3.Parameter\n\ntype byNameIn struct {\n\tparameters\n}\n\nfunc (s byNameIn) Less(i, j int) bool {\n\treturn s.parameters[i].Name < s.parameters[j].Name || (s.parameters[i].Name == s.parameters[j].Name && s.parameters[i].In < s.parameters[j].In)\n}\n\n// SortParameters sorts parameters by Name and In fields.\nfunc sortParameters(p []*spec3.Parameter) {\n\tsort.Sort(byNameIn{p})\n}\n"
  },
  {
    "path": "pkg/cached/cache.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package cached provides a cache mechanism based on etags to lazily\n// build, and/or cache results from expensive operation such that those\n// operations are not repeated unnecessarily. The operations can be\n// created as a tree, and replaced dynamically as needed.\n//\n// All the operations in this module are thread-safe.\n//\n// # Dependencies and types of caches\n//\n// This package uses a source/transform/sink model of caches to build\n// the dependency tree, and can be used as follows:\n//   - [Func]: A source cache that recomputes the content every time.\n//   - [Once]: A source cache that always produces the\n//     same content, it is only called once.\n//   - [Transform]: A cache that transforms data from one format to\n//     another. It's only refreshed when the source changes.\n//   - [Merge]: A cache that aggregates multiple caches in a map into one.\n//     It's only refreshed when the source changes.\n//   - [MergeList]: A cache that aggregates multiple caches in a list into one.\n//     It's only refreshed when the source changes.\n//   - [Atomic]: A cache adapter that atomically replaces the source with a new one.\n//   - [LastSuccess]: A cache adapter that caches the last successful and returns\n//     it if the next call fails. It extends [Atomic].\n//\n// # Etags\n//\n// Etags in this library is a cache version identifier. It doesn't\n// necessarily strictly match to the semantics of http `etags`, but are\n// somewhat inspired from it and function with the same principles.\n// Hashing the content is a good way to guarantee that your function is\n// never going to be called spuriously. In Kubernetes world, this could\n// be a `resourceVersion`, this can be an actual etag, a hash, a UUID\n// (if the cache always changes), or even a made-up string when the\n// content of the cache never changes.\npackage cached\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\n// Value is wrapping a value behind a getter for lazy evaluation.\ntype Value[T any] interface {\n\tGet() (value T, etag string, err error)\n}\n\n// Result is wrapping T and error into a struct for cases where a tuple is more\n// convenient or necessary in Golang.\ntype Result[T any] struct {\n\tValue T\n\tEtag  string\n\tErr   error\n}\n\nfunc (r Result[T]) Get() (T, string, error) {\n\treturn r.Value, r.Etag, r.Err\n}\n\n// Func wraps a (thread-safe) function as a Value[T].\nfunc Func[T any](fn func() (T, string, error)) Value[T] {\n\treturn valueFunc[T](fn)\n}\n\ntype valueFunc[T any] func() (T, string, error)\n\nfunc (c valueFunc[T]) Get() (T, string, error) {\n\treturn c()\n}\n\n// Static returns constant values.\nfunc Static[T any](value T, etag string) Value[T] {\n\treturn Result[T]{Value: value, Etag: etag}\n}\n\n// Merge merges a of cached values. The merge function only gets called if any of\n// the dependency has changed.\n//\n// If any of the dependency returned an error before, or any of the\n// dependency returned an error this time, or if the mergeFn failed\n// before, then the function is run again.\n//\n// Note that this assumes there is no \"partial\" merge, the merge\n// function will remerge all the dependencies together everytime. Since\n// the list of dependencies is constant, there is no way to save some\n// partial merge information either.\n//\n// Also note that Golang map iteration is not stable. If the mergeFn\n// depends on the order iteration to be stable, it will need to\n// implement its own sorting or iteration order.\nfunc Merge[K comparable, T, V any](mergeFn func(results map[K]Result[T]) (V, string, error), caches map[K]Value[T]) Value[V] {\n\tlist := make([]Value[T], 0, len(caches))\n\n\t// map from index to key\n\tindexes := make(map[int]K, len(caches))\n\ti := 0\n\tfor k := range caches {\n\t\tlist = append(list, caches[k])\n\t\tindexes[i] = k\n\t\ti++\n\t}\n\n\treturn MergeList(func(results []Result[T]) (V, string, error) {\n\t\tif len(results) != len(indexes) {\n\t\t\tpanic(fmt.Errorf(\"invalid result length %d, expected %d\", len(results), len(indexes)))\n\t\t}\n\t\tm := make(map[K]Result[T], len(results))\n\t\tfor i := range results {\n\t\t\tm[indexes[i]] = results[i]\n\t\t}\n\t\treturn mergeFn(m)\n\t}, list)\n}\n\n// MergeList merges a list of cached values. The function only gets called if\n// any of the dependency has changed.\n//\n// The benefit of ListMerger over the basic Merger is that caches are\n// stored in an ordered list so the order of the cache will be\n// preserved in the order of the results passed to the mergeFn.\n//\n// If any of the dependency returned an error before, or any of the\n// dependency returned an error this time, or if the mergeFn failed\n// before, then the function is reran.\n//\n// Note that this assumes there is no \"partial\" merge, the merge\n// function will remerge all the dependencies together everytime. Since\n// the list of dependencies is constant, there is no way to save some\n// partial merge information either.\nfunc MergeList[T, V any](mergeFn func(results []Result[T]) (V, string, error), delegates []Value[T]) Value[V] {\n\treturn &listMerger[T, V]{\n\t\tmergeFn:   mergeFn,\n\t\tdelegates: delegates,\n\t}\n}\n\ntype listMerger[T, V any] struct {\n\tlock      sync.Mutex\n\tmergeFn   func([]Result[T]) (V, string, error)\n\tdelegates []Value[T]\n\tcache     []Result[T]\n\tresult    Result[V]\n}\n\nfunc (c *listMerger[T, V]) prepareResultsLocked() []Result[T] {\n\tcacheResults := make([]Result[T], len(c.delegates))\n\tch := make(chan struct {\n\t\tint\n\t\tResult[T]\n\t}, len(c.delegates))\n\tfor i := range c.delegates {\n\t\tgo func(index int) {\n\t\t\tvalue, etag, err := c.delegates[index].Get()\n\t\t\tch <- struct {\n\t\t\t\tint\n\t\t\t\tResult[T]\n\t\t\t}{index, Result[T]{Value: value, Etag: etag, Err: err}}\n\t\t}(i)\n\t}\n\tfor i := 0; i < len(c.delegates); i++ {\n\t\tres := <-ch\n\t\tcacheResults[res.int] = res.Result\n\t}\n\treturn cacheResults\n}\n\nfunc (c *listMerger[T, V]) needsRunningLocked(results []Result[T]) bool {\n\tif c.cache == nil {\n\t\treturn true\n\t}\n\tif c.result.Err != nil {\n\t\treturn true\n\t}\n\tif len(results) != len(c.cache) {\n\t\tpanic(fmt.Errorf(\"invalid number of results: %v (expected %v)\", len(results), len(c.cache)))\n\t}\n\tfor i, oldResult := range c.cache {\n\t\tnewResult := results[i]\n\t\tif newResult.Etag != oldResult.Etag || newResult.Err != nil || oldResult.Err != nil {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (c *listMerger[T, V]) Get() (V, string, error) {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\tcacheResults := c.prepareResultsLocked()\n\tif c.needsRunningLocked(cacheResults) {\n\t\tc.cache = cacheResults\n\t\tc.result.Value, c.result.Etag, c.result.Err = c.mergeFn(c.cache)\n\t}\n\treturn c.result.Value, c.result.Etag, c.result.Err\n}\n\n// Transform the result of another cached value. The transformFn will only be called\n// if the source has updated, otherwise, the result will be returned.\n//\n// If the dependency returned an error before, or it returns an error\n// this time, or if the transformerFn failed before, the function is\n// reran.\nfunc Transform[T, V any](transformerFn func(T, string, error) (V, string, error), source Value[T]) Value[V] {\n\treturn MergeList(func(delegates []Result[T]) (V, string, error) {\n\t\tif len(delegates) != 1 {\n\t\t\tpanic(fmt.Errorf(\"invalid cache for transformer cache: %v\", delegates))\n\t\t}\n\t\treturn transformerFn(delegates[0].Value, delegates[0].Etag, delegates[0].Err)\n\t}, []Value[T]{source})\n}\n\n// Once calls Value[T].Get() lazily and only once, even in case of an error result.\nfunc Once[T any](d Value[T]) Value[T] {\n\treturn &once[T]{\n\t\tdata: d,\n\t}\n}\n\ntype once[T any] struct {\n\tonce   sync.Once\n\tdata   Value[T]\n\tresult Result[T]\n}\n\nfunc (c *once[T]) Get() (T, string, error) {\n\tc.once.Do(func() {\n\t\tc.result.Value, c.result.Etag, c.result.Err = c.data.Get()\n\t})\n\treturn c.result.Value, c.result.Etag, c.result.Err\n}\n\n// Replaceable extends the Value[T] interface with the ability to change the\n// underlying Value[T] after construction.\ntype Replaceable[T any] interface {\n\tValue[T]\n\tStore(Value[T])\n}\n\n// Atomic wraps a Value[T] as an atomic value that can be replaced. It implements\n// Replaceable[T].\ntype Atomic[T any] struct {\n\tvalue atomic.Pointer[Value[T]]\n}\n\nvar _ Replaceable[[]byte] = &Atomic[[]byte]{}\n\nfunc (x *Atomic[T]) Store(val Value[T])      { x.value.Store(&val) }\nfunc (x *Atomic[T]) Get() (T, string, error) { return (*x.value.Load()).Get() }\n\n// LastSuccess calls Value[T].Get(), but hides errors by returning the last\n// success if there has been any.\ntype LastSuccess[T any] struct {\n\tAtomic[T]\n\tsuccess atomic.Pointer[Result[T]]\n}\n\nvar _ Replaceable[[]byte] = &LastSuccess[[]byte]{}\n\nfunc (c *LastSuccess[T]) Get() (T, string, error) {\n\tsuccess := c.success.Load()\n\tvalue, etag, err := c.Atomic.Get()\n\tif err == nil {\n\t\tif success == nil {\n\t\t\tc.success.CompareAndSwap(nil, &Result[T]{Value: value, Etag: etag, Err: err})\n\t\t}\n\t\treturn value, etag, err\n\t}\n\n\tif success != nil {\n\t\treturn success.Value, success.Etag, success.Err\n\t}\n\n\treturn value, etag, err\n}\n"
  },
  {
    "path": "pkg/cached/cache_test.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cached_test\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math/rand\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"testing\"\n\t\"time\"\n\n\t\"k8s.io/kube-openapi/pkg/cached\"\n)\n\nfunc TestDataFunc(t *testing.T) {\n\tcount := 0\n\tsource := cached.Func(func() ([]byte, string, error) {\n\t\tcount += 1\n\t\treturn []byte(\"source\"), \"source\", nil\n\t})\n\tif _, _, err := source.Get(); err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif _, _, err := source.Get(); err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif count != 2 {\n\t\tt.Fatalf(\"Expected function called twice, called: %v\", count)\n\t}\n}\n\nfunc TestDataFuncError(t *testing.T) {\n\tcount := 0\n\tsource := cached.Func(func() ([]byte, string, error) {\n\t\tcount += 1\n\t\treturn nil, \"\", errors.New(\"source error\")\n\t})\n\tif _, _, err := source.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, found none\")\n\t}\n\tif _, _, err := source.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, found none\")\n\t}\n\tif count != 2 {\n\t\tt.Fatalf(\"Expected function called twice, called: %v\", count)\n\t}\n}\n\nfunc TestDataFuncAlternate(t *testing.T) {\n\tcount := 0\n\tsource := cached.Func(func() ([]byte, string, error) {\n\t\tcount += 1\n\t\tif count%2 == 0 {\n\t\t\treturn nil, \"\", errors.New(\"source error\")\n\t\t}\n\t\treturn []byte(\"source\"), \"source\", nil\n\t})\n\tif _, _, err := source.Get(); err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif _, _, err := source.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, found none\")\n\t}\n\tif _, _, err := source.Get(); err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif _, _, err := source.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, found none\")\n\t}\n\tif count != 4 {\n\t\tt.Fatalf(\"Expected function called 4x, called: %v\", count)\n\t}\n}\n\nfunc TestOnce(t *testing.T) {\n\tcount := 0\n\tsource := cached.Once(cached.Func(func() ([]byte, string, error) {\n\t\tcount += 1\n\t\treturn []byte(\"source\"), \"source\", nil\n\t}))\n\tif _, _, err := source.Get(); err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif _, _, err := source.Get(); err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif count != 1 {\n\t\tt.Fatalf(\"Expected function called once, called: %v\", count)\n\t}\n}\n\nfunc TestOnceError(t *testing.T) {\n\tcount := 0\n\tsource := cached.Once(cached.Func(func() ([]byte, string, error) {\n\t\tcount += 1\n\t\treturn nil, \"\", errors.New(\"source error\")\n\t}))\n\tif _, _, err := source.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, found none\")\n\t}\n\tif _, _, err := source.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, found none\")\n\t}\n\tif count != 1 {\n\t\tt.Fatalf(\"Expected function called once, called: %v\", count)\n\t}\n}\n\nfunc TestResultGet(t *testing.T) {\n\tsource := cached.Static([]byte(\"source\"), \"etag\")\n\tvalue, etag, err := source.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"source\"; string(value) != want {\n\t\tt.Fatalf(\"expected value %q, got %q\", want, string(value))\n\t}\n\tif want := \"etag\"; etag != want {\n\t\tt.Fatalf(\"expected etag %q, got %q\", want, etag)\n\t}\n}\n\nfunc TestResultGetError(t *testing.T) {\n\tsource := cached.Result[[]byte]{Err: errors.New(\"source error\")}\n\tvalue, etag, err := source.Get()\n\tif err == nil {\n\t\tt.Fatalf(\"expected error, found none\")\n\t}\n\tif value != nil {\n\t\tt.Fatalf(\"expected nil value, got %v\", value)\n\t}\n\tif etag != \"\" {\n\t\tt.Fatalf(\"expected empty etag, got %q\", etag)\n\t}\n}\n\nfunc TestTransform(t *testing.T) {\n\tsourceCount := 0\n\tsource := cached.Func(func() ([]byte, string, error) {\n\t\tsourceCount += 1\n\t\treturn []byte(\"source\"), \"source\", nil\n\t})\n\ttransformerCount := 0\n\ttransformer := cached.Transform(func(value []byte, etag string, err error) ([]byte, string, error) {\n\t\ttransformerCount += 1\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\treturn []byte(\"transformed \" + string(value)), \"transformed \" + etag, nil\n\t}, source)\n\tif _, _, err := transformer.Get(); err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif _, _, err := transformer.Get(); err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif sourceCount != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", sourceCount)\n\t}\n\tif transformerCount != 1 {\n\t\tt.Fatalf(\"Expected transformer function called once, called: %v\", transformerCount)\n\t}\n}\n\nfunc TestTransformChained(t *testing.T) {\n\tsourceCount := 0\n\tsource := cached.Func(func() ([]byte, string, error) {\n\t\tsourceCount += 1\n\t\treturn []byte(\"source\"), \"source\", nil\n\t})\n\ttransformer1Count := 0\n\ttransformer1 := cached.Transform(func(value []byte, etag string, err error) ([]byte, string, error) {\n\t\ttransformer1Count += 1\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\treturn []byte(\"transformed \" + string(value)), etag, nil\n\t}, source)\n\ttransformer2Count := 0\n\ttransformer2 := cached.Transform(func(value []byte, etag string, err error) ([]byte, string, error) {\n\t\ttransformer2Count += 1\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\treturn []byte(\"transformed \" + string(value)), etag, nil\n\t}, transformer1)\n\ttransformer3Count := 0\n\ttransformer3 := cached.Transform(func(value []byte, etag string, err error) ([]byte, string, error) {\n\t\ttransformer3Count += 1\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\treturn []byte(\"transformed \" + string(value)), etag, nil\n\t}, transformer2)\n\tif _, _, err := transformer3.Get(); err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tresult, etag, err := transformer3.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"transformed transformed transformed source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tif sourceCount != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", sourceCount)\n\t}\n\tif transformer1Count != 1 {\n\t\tt.Fatalf(\"Expected transformer function called once, called: %v\", transformer1Count)\n\t}\n\tif transformer2Count != 1 {\n\t\tt.Fatalf(\"Expected transformer function called once, called: %v\", transformer2Count)\n\t}\n\tif transformer3Count != 1 {\n\t\tt.Fatalf(\"Expected transformer function called once, called: %v\", transformer3Count)\n\t}\n}\n\nfunc TestTransformError(t *testing.T) {\n\tsourceCount := 0\n\tsource := cached.Func(func() ([]byte, string, error) {\n\t\tsourceCount += 1\n\t\treturn []byte(\"source\"), \"source\", nil\n\t})\n\ttransformerCount := 0\n\ttransformer := cached.Transform(func(value []byte, etag string, err error) ([]byte, string, error) {\n\t\ttransformerCount += 1\n\t\treturn nil, \"\", errors.New(\"transformer error\")\n\t}, source)\n\tif _, _, err := transformer.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif _, _, err := transformer.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif sourceCount != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", sourceCount)\n\t}\n\tif transformerCount != 2 {\n\t\tt.Fatalf(\"Expected transformer function called twice, called: %v\", transformerCount)\n\t}\n}\n\nfunc TestTransformSourceError(t *testing.T) {\n\tsourceCount := 0\n\tsource := cached.Func(func() ([]byte, string, error) {\n\t\tsourceCount += 1\n\t\treturn nil, \"\", errors.New(\"source error\")\n\t})\n\ttransformerCount := 0\n\ttransformer := cached.Transform(func(value []byte, etag string, err error) ([]byte, string, error) {\n\t\ttransformerCount += 1\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\treturn []byte(\"transformed \" + string(value)), \"transformed \" + etag, nil\n\t}, source)\n\tif _, _, err := transformer.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif _, _, err := transformer.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif sourceCount != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", sourceCount)\n\t}\n\tif transformerCount != 2 {\n\t\tt.Fatalf(\"Expected transformer function called twice, called: %v\", transformerCount)\n\t}\n}\n\nfunc TestTransformAlternateSourceError(t *testing.T) {\n\tsourceCount := 0\n\tsource := cached.Func(func() ([]byte, string, error) {\n\t\tsourceCount += 1\n\t\tif sourceCount%2 == 0 {\n\t\t\treturn nil, \"\", errors.New(\"source error\")\n\t\t}\n\t\treturn []byte(\"source\"), \"source\", nil\n\t})\n\ttransformerCount := 0\n\ttransformer := cached.Transform(func(value []byte, etag string, err error) ([]byte, string, error) {\n\t\ttransformerCount += 1\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\treturn []byte(\"transformed \" + string(value)), \"transformed \" + etag, err\n\t}, source)\n\tresult, etag, err := transformer.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"transformed source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"transformed source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tif _, _, err := transformer.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tresult, etag, err = transformer.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"transformed source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"transformed source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tif _, _, err := transformer.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif sourceCount != 4 {\n\t\tt.Fatalf(\"Expected source function called 4x, called: %v\", sourceCount)\n\t}\n\tif transformerCount != 4 {\n\t\tt.Fatalf(\"Expected transformer function called 4x, called: %v\", transformerCount)\n\t}\n\n}\n\nfunc TestMerge(t *testing.T) {\n\tsource1Count := 0\n\tsource1 := cached.Func(func() ([]byte, string, error) {\n\t\tsource1Count += 1\n\t\treturn []byte(\"source1\"), \"source1\", nil\n\t})\n\tsource2Count := 0\n\tsource2 := cached.Func(func() ([]byte, string, error) {\n\t\tsource2Count += 1\n\t\treturn []byte(\"source2\"), \"source2\", nil\n\t})\n\tmergerCount := 0\n\tmerger := cached.Merge(func(results map[string]cached.Result[[]byte]) ([]byte, string, error) {\n\t\tmergerCount += 1\n\t\td := []string{}\n\t\te := []string{}\n\t\tfor _, result := range results {\n\t\t\tif result.Err != nil {\n\t\t\t\treturn nil, \"\", result.Err\n\t\t\t}\n\t\t\td = append(d, string(result.Value))\n\t\t\te = append(e, result.Etag)\n\t\t}\n\t\tsort.Strings(d)\n\t\tsort.Strings(e)\n\t\treturn []byte(\"merged \" + strings.Join(d, \" and \")), \"merged \" + strings.Join(e, \" and \"), nil\n\t}, map[string]cached.Value[[]byte]{\n\t\t\"source1\": source1,\n\t\t\"source2\": source2,\n\t})\n\tif _, _, err := merger.Get(); err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tresult, etag, err := merger.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"merged source1 and source2\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"merged source1 and source2\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\n\tif source1Count != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", source1Count)\n\t}\n\tif source2Count != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", source2Count)\n\t}\n\tif mergerCount != 1 {\n\t\tt.Fatalf(\"Expected merger function called once, called: %v\", mergerCount)\n\t}\n}\n\nfunc TestMergeError(t *testing.T) {\n\tsource1Count := 0\n\tsource1 := cached.Func(func() ([]byte, string, error) {\n\t\tsource1Count += 1\n\t\treturn []byte(\"source1\"), \"source1\", nil\n\t})\n\tsource2Count := 0\n\tsource2 := cached.Func(func() ([]byte, string, error) {\n\t\tsource2Count += 1\n\t\treturn []byte(\"source2\"), \"source2\", nil\n\t})\n\tmergerCount := 0\n\tmerger := cached.Merge(func(results map[string]cached.Result[[]byte]) ([]byte, string, error) {\n\t\tmergerCount += 1\n\t\treturn nil, \"\", errors.New(\"merger error\")\n\t}, map[string]cached.Value[[]byte]{\n\t\t\"source1\": source1,\n\t\t\"source2\": source2,\n\t})\n\tif _, _, err := merger.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif _, _, err := merger.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif source1Count != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", source1Count)\n\t}\n\tif source2Count != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", source2Count)\n\t}\n\tif mergerCount != 2 {\n\t\tt.Fatalf(\"Expected merger function called twice, called: %v\", mergerCount)\n\t}\n}\n\nfunc TestMergeSourceError(t *testing.T) {\n\tsource1Count := 0\n\tsource1 := cached.Func(func() ([]byte, string, error) {\n\t\tsource1Count += 1\n\t\treturn nil, \"\", errors.New(\"source1 error\")\n\t})\n\tsource2Count := 0\n\tsource2 := cached.Func(func() ([]byte, string, error) {\n\t\tsource2Count += 1\n\t\treturn []byte(\"source2\"), \"source2\", nil\n\t})\n\tmergerCount := 0\n\tmerger := cached.Merge(func(results map[string]cached.Result[[]byte]) ([]byte, string, error) {\n\t\tmergerCount += 1\n\t\td := []string{}\n\t\te := []string{}\n\t\tfor _, result := range results {\n\t\t\tif result.Err != nil {\n\t\t\t\treturn nil, \"\", result.Err\n\t\t\t}\n\t\t\td = append(d, string(result.Value))\n\t\t\te = append(e, result.Etag)\n\t\t}\n\t\tsort.Strings(d)\n\t\tsort.Strings(e)\n\t\treturn []byte(\"merged \" + strings.Join(d, \" and \")), \"merged \" + strings.Join(e, \" and \"), nil\n\t}, map[string]cached.Value[[]byte]{\n\t\t\"source1\": source1,\n\t\t\"source2\": source2,\n\t})\n\tif _, _, err := merger.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif _, _, err := merger.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif source1Count != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", source1Count)\n\t}\n\tif source2Count != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", source2Count)\n\t}\n\tif mergerCount != 2 {\n\t\tt.Fatalf(\"Expected merger function called twice, called: %v\", mergerCount)\n\t}\n}\n\nfunc TestMergeAlternateSourceError(t *testing.T) {\n\tsource1Count := 0\n\tsource1 := cached.Func(func() ([]byte, string, error) {\n\t\tsource1Count += 1\n\t\tif source1Count%2 == 0 {\n\t\t\treturn nil, \"\", errors.New(\"source1 error\")\n\t\t} else {\n\t\t\treturn []byte(\"source1\"), \"source1\", nil\n\t\t}\n\t})\n\tsource2Count := 0\n\tsource2 := cached.Func(func() ([]byte, string, error) {\n\t\tsource2Count += 1\n\t\treturn []byte(\"source2\"), \"source2\", nil\n\t})\n\tmergerCount := 0\n\tmerger := cached.Merge(func(results map[string]cached.Result[[]byte]) ([]byte, string, error) {\n\t\tmergerCount += 1\n\t\td := []string{}\n\t\te := []string{}\n\t\tfor _, result := range results {\n\t\t\tif result.Err != nil {\n\t\t\t\treturn nil, \"\", result.Err\n\t\t\t}\n\t\t\td = append(d, string(result.Value))\n\t\t\te = append(e, result.Etag)\n\t\t}\n\t\tsort.Strings(d)\n\t\tsort.Strings(e)\n\t\treturn []byte(\"merged \" + strings.Join(d, \" and \")), \"merged \" + strings.Join(e, \" and \"), nil\n\t}, map[string]cached.Value[[]byte]{\n\t\t\"source1\": source1,\n\t\t\"source2\": source2,\n\t})\n\tresult, etag, err := merger.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"merged source1 and source2\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"merged source1 and source2\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tif _, _, err := merger.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tresult, etag, err = merger.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"merged source1 and source2\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"merged source1 and source2\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tif _, _, err := merger.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif source1Count != 4 {\n\t\tt.Fatalf(\"Expected source function called 4x, called: %v\", source1Count)\n\t}\n\tif source2Count != 4 {\n\t\tt.Fatalf(\"Expected source function called 4x, called: %v\", source2Count)\n\t}\n\tif mergerCount != 4 {\n\t\tt.Fatalf(\"Expected merger function called 4x, called: %v\", mergerCount)\n\t}\n}\n\nfunc TestAtomic(t *testing.T) {\n\tsourceDataCount := 0\n\tsourceData := cached.Func(func() ([]byte, string, error) {\n\t\tsourceDataCount += 1\n\t\treturn []byte(\"source\"), \"source\", nil\n\t})\n\tsourceData2Count := 0\n\tsourceData2 := cached.Func(func() ([]byte, string, error) {\n\t\tsourceData2Count += 1\n\t\treturn []byte(\"source2\"), \"source2\", nil\n\t})\n\tsourceErrCount := 0\n\tsourceErr := cached.Func(func() ([]byte, string, error) {\n\t\tsourceErrCount += 1\n\t\treturn nil, \"\", errors.New(\"source error\")\n\t})\n\n\treplaceable := &cached.Atomic[[]byte]{}\n\treplaceable.Store(sourceErr)\n\tif _, _, err := replaceable.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, found none\")\n\t}\n\n\treplaceable.Store(sourceData)\n\tresult, etag, err := replaceable.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\n\t// replace with the same thing, shouldn't change anything\n\treplaceable.Store(sourceData)\n\tresult, etag, err = replaceable.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\n\t// when replacing with an error source, we see the error again\n\treplaceable.Store(sourceErr)\n\tresult, etag, err = replaceable.Get()\n\tif err == nil {\n\t\tt.Fatalf(\"unexpected success\")\n\t}\n\n\treplaceable.Store(sourceData2)\n\tresult, etag, err = replaceable.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"source2\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"source2\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tif sourceDataCount != 2 {\n\t\tt.Fatalf(\"Expected sourceData function called twice, called: %v\", sourceDataCount)\n\t}\n\tif sourceData2Count != 1 {\n\t\tt.Fatalf(\"Expected sourceData2 function called once, called: %v\", sourceData2Count)\n\t}\n\tif sourceErrCount != 2 {\n\t\tt.Fatalf(\"Expected error source function called once, called: %v\", sourceErrCount)\n\t}\n}\n\nfunc TestLastSuccess(t *testing.T) {\n\tsourceDataCount := 0\n\tsourceData := cached.Func(func() ([]byte, string, error) {\n\t\tsourceDataCount += 1\n\t\treturn []byte(\"source\"), \"source\", nil\n\t})\n\tsourceData2Count := 0\n\tsourceData2 := cached.Func(func() ([]byte, string, error) {\n\t\tsourceData2Count += 1\n\t\treturn []byte(\"source2\"), \"source2\", nil\n\t})\n\n\tsourceErrCount := 0\n\tsourceErr := cached.Func(func() ([]byte, string, error) {\n\t\tsourceErrCount += 1\n\t\treturn nil, \"\", errors.New(\"source error\")\n\t})\n\tlastSuccess := &cached.LastSuccess[[]byte]{}\n\tlastSuccess.Store(sourceErr)\n\tif _, _, err := lastSuccess.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, found none\")\n\t}\n\tlastSuccess.Store(sourceData)\n\tresult, etag, err := lastSuccess.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\t// replace with the same thing, shouldn't change anything\n\tlastSuccess.Store(sourceData)\n\tresult, etag, err = lastSuccess.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\t// Even if we replace with something that fails, we continue to return the success.\n\tlastSuccess.Store(sourceErr)\n\tresult, etag, err = lastSuccess.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tlastSuccess.Store(sourceData2)\n\tresult, etag, err = lastSuccess.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"source2\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"source2\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tif sourceDataCount != 2 {\n\t\tt.Fatalf(\"Expected sourceData function called twice, called: %v\", sourceDataCount)\n\t}\n\tif sourceData2Count != 1 {\n\t\tt.Fatalf(\"Expected sourceData2 function called once, called: %v\", sourceData2Count)\n\t}\n\tif sourceErrCount != 2 {\n\t\tt.Fatalf(\"Expected error source function called once, called: %v\", sourceErrCount)\n\t}\n}\n\nfunc TestLastSuccessEtag(t *testing.T) {\n\tlastSuccess := &cached.LastSuccess[bool]{}\n\tlastSuccess.Store(cached.Func(func() (bool, string, error) {\n\t\treturn false, \"hash\", nil\n\t}))\n\tlastSuccess.Store(cached.Static(true, \"hash2\"))\n\tresult, etag, _ := lastSuccess.Get()\n\tif actual := etag; actual != \"hash2\" {\n\t\tt.Fatalf(`expected \"hash2\", got %q`, actual)\n\t}\n\tif result != true {\n\t\tt.Fatal(`expected \"true\", got \"false\"`)\n\t}\n}\n\nfunc TestLastSuccessAlternateError(t *testing.T) {\n\tsourceCount := 0\n\tsource := cached.Func(func() ([]byte, string, error) {\n\t\tsourceCount += 1\n\t\tif sourceCount%2 == 0 {\n\t\t\treturn nil, \"\", errors.New(\"source error\")\n\t\t} else {\n\t\t\treturn []byte(\"source\"), \"source\", nil\n\t\t}\n\t})\n\tlastSuccess := &cached.LastSuccess[[]byte]{}\n\tlastSuccess.Store(source)\n\tresult, etag, err := lastSuccess.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tresult, etag, err = lastSuccess.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tresult, etag, err = lastSuccess.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tresult, etag, err = lastSuccess.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tif sourceCount != 4 {\n\t\tt.Fatalf(\"Expected sourceData function called 4x, called: %v\", sourceCount)\n\t}\n}\n\nfunc TestLastSuccessWithTransformer(t *testing.T) {\n\tlastSuccess := &cached.LastSuccess[[]byte]{}\n\tlastSuccess.Store(cached.Static([]byte(\"source\"), \"source\"))\n\ttransformerCount := 0\n\ttransformed := cached.Transform[[]byte](func(value []byte, etag string, err error) ([]byte, string, error) {\n\t\ttransformerCount += 1\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\treturn []byte(\"transformed \" + string(value)), \"transformed \" + etag, nil\n\t}, lastSuccess)\n\tresult, etag, err := transformed.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tresult, etag, err = transformed.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"transformed source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"transformed source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\t// replace with new cache, transformer shouldn't be affected (or called)\n\tlastSuccess.Store(cached.Static([]byte(\"source\"), \"source\"))\n\tresult, etag, err = transformed.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tresult, etag, err = transformed.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"transformed source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"transformed source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\t// replace with failing cache, transformer should still not be affected (or called)\n\tlastSuccess.Store(cached.Result[[]byte]{Err: errors.New(\"source error\")})\n\tresult, etag, err = transformed.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tresult, etag, err = transformed.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"transformed source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"transformed source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\n\tif transformerCount != 1 {\n\t\tt.Fatalf(\"Expected transformer function called once, called: %v\", transformerCount)\n\t}\n}\n\n// Here is an example of how one can write a cache that will constantly\n// be pulled, while actually recomputing the results only as needed.\nfunc Example() {\n\t// Merge Json is a replaceable cache, since we'll want it to\n\t// change a few times.\n\tmergeJson := &cached.LastSuccess[[]byte]{}\n\n\tone := cached.Once(cached.Func(func() ([]byte, string, error) {\n\t\t// This one is computed lazily, only when requested, and only once.\n\t\treturn []byte(\"one\"), \"one\", nil\n\t}))\n\ttwo := cached.Func(func() ([]byte, string, error) {\n\t\t// This cache is re-computed every time.\n\t\treturn []byte(\"two\"), \"two\", nil\n\t})\n\t// This cache is computed once, and is not lazy at all.\n\tthree := cached.Static([]byte(\"three\"), \"three\")\n\n\t// This cache will allow us to replace a branch of the tree\n\t// efficiently.\n\n\tlastSuccess := &cached.LastSuccess[[]byte]{}\n\tlastSuccess.Store(cached.Static([]byte(\"four\"), \"four\"))\n\n\tmerger := func(results map[string]cached.Result[[]byte]) ([]byte, string, error) {\n\t\tvar out = []json.RawMessage{}\n\t\tvar resultEtag string\n\t\tfor _, result := range results {\n\t\t\tif result.Err != nil {\n\t\t\t\treturn nil, \"\", result.Err\n\t\t\t}\n\t\t\tresultEtag += result.Etag\n\t\t\tout = append(out, result.Value)\n\t\t}\n\t\tdata, err := json.Marshal(out)\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\treturn data, resultEtag, nil\n\t}\n\n\tmergeJson.Store(cached.Merge(merger, map[string]cached.Value[[]byte]{\n\t\t\"one\":         one,\n\t\t\"two\":         two,\n\t\t\"three\":       three,\n\t\t\"replaceable\": lastSuccess,\n\t}))\n\n\t// Create a new cache that indents a buffer. This should only be\n\t// called if the buffer has changed.\n\tindented := cached.Transform[[]byte](func(js []byte, etag string, err error) ([]byte, string, error) {\n\t\t// Get the json from the previous layer of cache, before\n\t\t// we indent.\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\tvar out bytes.Buffer\n\t\tjson.Indent(&out, js, \"\", \"\\t\")\n\t\treturn out.Bytes(), etag, nil\n\t}, mergeJson)\n\n\t// We have \"clients\" that constantly pulls the indented format.\n\tgo func() {\n\t\tfor {\n\t\t\tif _, _, err := indented.Get(); err != nil {\n\t\t\t\tpanic(fmt.Errorf(\"invalid error: %v\", err))\n\t\t\t}\n\t\t}\n\t}()\n\n\tfailure := cached.Result[[]byte]{Err: errors.New(\"Invalid cache!\")}\n\t// Insert a new sub-cache that fails, it should just be ignored.\n\tmergeJson.Store(cached.Merge(merger, map[string]cached.Value[[]byte]{\n\t\t\"one\":         one,\n\t\t\"two\":         two,\n\t\t\"three\":       three,\n\t\t\"replaceable\": lastSuccess,\n\t\t\"failure\":     failure,\n\t}))\n\n\t// We can replace just a branch of the dependency tree.\n\tlastSuccess.Store(cached.Static([]byte(\"five\"), \"five\"))\n\n\t// We can replace to remove the failure and one of the sub-cached.\n\tmergeJson.Store(cached.Merge(merger, map[string]cached.Value[[]byte]{\n\t\t\"one\":         one,\n\t\t\"two\":         two,\n\t\t\"replaceable\": lastSuccess,\n\t}))\n}\n\nfunc TestListMerger(t *testing.T) {\n\tsource1Count := 0\n\tsource1 := cached.Func(func() ([]byte, string, error) {\n\t\tsource1Count += 1\n\t\treturn []byte(\"source1\"), \"source1\", nil\n\t})\n\tsource2Count := 0\n\tsource2 := cached.Func(func() ([]byte, string, error) {\n\t\tsource2Count += 1\n\t\treturn []byte(\"source2\"), \"source2\", nil\n\t})\n\tmergerCount := 0\n\tmerger := cached.MergeList(func(results []cached.Result[[]byte]) ([]byte, string, error) {\n\t\tmergerCount += 1\n\t\td := []string{}\n\t\te := []string{}\n\t\tfor _, result := range results {\n\t\t\tif result.Err != nil {\n\t\t\t\treturn nil, \"\", result.Err\n\t\t\t}\n\t\t\td = append(d, string(result.Value))\n\t\t\te = append(e, result.Etag)\n\t\t}\n\t\treturn []byte(\"merged \" + strings.Join(d, \" and \")), \"merged \" + strings.Join(e, \" and \"), nil\n\t}, []cached.Value[[]byte]{\n\t\tsource1, source2,\n\t})\n\tif _, _, err := merger.Get(); err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tresult, etag, err := merger.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"merged source1 and source2\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"merged source1 and source2\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\n\tif source1Count != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", source1Count)\n\t}\n\tif source2Count != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", source2Count)\n\t}\n\tif mergerCount != 1 {\n\t\tt.Fatalf(\"Expected merger function called once, called: %v\", mergerCount)\n\t}\n}\n\nfunc TestMergeListSourceError(t *testing.T) {\n\tsource1Count := 0\n\tsource1 := cached.Func(func() ([]byte, string, error) {\n\t\tsource1Count += 1\n\t\treturn nil, \"\", errors.New(\"source1 error\")\n\t})\n\tsource2Count := 0\n\tsource2 := cached.Func(func() ([]byte, string, error) {\n\t\tsource2Count += 1\n\t\treturn []byte(\"source2\"), \"source2\", nil\n\t})\n\tmergerCount := 0\n\tmerger := cached.MergeList(func(results []cached.Result[[]byte]) ([]byte, string, error) {\n\t\tmergerCount += 1\n\t\td := []string{}\n\t\te := []string{}\n\t\tfor _, result := range results {\n\t\t\tif result.Err != nil {\n\t\t\t\treturn nil, \"\", result.Err\n\t\t\t}\n\t\t\td = append(d, string(result.Value))\n\t\t\te = append(e, result.Etag)\n\t\t}\n\t\treturn []byte(\"merged \" + strings.Join(d, \" and \")), \"merged \" + strings.Join(e, \" and \"), nil\n\t}, []cached.Value[[]byte]{\n\t\tsource1, source2,\n\t})\n\tif _, _, err := merger.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif _, _, err := merger.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif source1Count != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", source1Count)\n\t}\n\tif source2Count != 2 {\n\t\tt.Fatalf(\"Expected source function called twice, called: %v\", source2Count)\n\t}\n\tif mergerCount != 2 {\n\t\tt.Fatalf(\"Expected merger function called twice, called: %v\", mergerCount)\n\t}\n}\n\nfunc TestMergeListAlternateSourceError(t *testing.T) {\n\tsource1Count := 0\n\tsource1 := cached.Func(func() ([]byte, string, error) {\n\t\tsource1Count += 1\n\t\tif source1Count%2 == 0 {\n\t\t\treturn nil, \"\", errors.New(\"source1 error\")\n\t\t} else {\n\t\t\treturn []byte(\"source1\"), \"source1\", nil\n\t\t}\n\t})\n\tsource2Count := 0\n\tsource2 := cached.Func(func() ([]byte, string, error) {\n\t\tsource2Count += 1\n\t\treturn []byte(\"source2\"), \"source2\", nil\n\t})\n\tmergerCount := 0\n\tmerger := cached.MergeList(func(results []cached.Result[[]byte]) ([]byte, string, error) {\n\t\tmergerCount += 1\n\t\td := []string{}\n\t\te := []string{}\n\t\tfor _, result := range results {\n\t\t\tif result.Err != nil {\n\t\t\t\treturn nil, \"\", result.Err\n\t\t\t}\n\t\t\td = append(d, string(result.Value))\n\t\t\te = append(e, result.Etag)\n\t\t}\n\t\treturn []byte(\"merged \" + strings.Join(d, \" and \")), \"merged \" + strings.Join(e, \" and \"), nil\n\t}, []cached.Value[[]byte]{\n\t\tsource1, source2,\n\t})\n\tresult, etag, err := merger.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"merged source1 and source2\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"merged source1 and source2\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tif _, _, err := merger.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tresult, etag, err = merger.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"unexpected error: %v\", err)\n\t}\n\tif want := \"merged source1 and source2\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"merged source1 and source2\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n\tif _, _, err := merger.Get(); err == nil {\n\t\tt.Fatalf(\"expected error, none found\")\n\t}\n\tif source1Count != 4 {\n\t\tt.Fatalf(\"Expected source function called 4x, called: %v\", source1Count)\n\t}\n\tif source2Count != 4 {\n\t\tt.Fatalf(\"Expected source function called 4x, called: %v\", source2Count)\n\t}\n\tif mergerCount != 4 {\n\t\tt.Fatalf(\"Expected merger function called 4x, called: %v\", mergerCount)\n\t}\n}\n\nfunc TestListDAG(t *testing.T) {\n\tsource := cached.Func(func() ([]byte, string, error) {\n\t\treturn []byte(\"source\"), \"source\", nil\n\t})\n\ttransformer1 := cached.Transform(func(value []byte, etag string, err error) ([]byte, string, error) {\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\treturn []byte(\"transformed1 \" + string(value)), \"transformed1 \" + etag, nil\n\t}, source)\n\ttransformer2 := cached.Transform(func(value []byte, etag string, err error) ([]byte, string, error) {\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\treturn []byte(\"transformed2 \" + string(value)), \"transformed2 \" + etag, nil\n\t}, source)\n\tmerger := cached.MergeList(func(results []cached.Result[[]byte]) ([]byte, string, error) {\n\t\td := []string{}\n\t\te := []string{}\n\t\tfor _, result := range results {\n\t\t\tif result.Err != nil {\n\t\t\t\treturn nil, \"\", result.Err\n\t\t\t}\n\t\t\td = append(d, string(result.Value))\n\t\t\te = append(e, result.Etag)\n\t\t}\n\t\treturn []byte(\"merged \" + strings.Join(d, \" and \")), \"merged \" + strings.Join(e, \" and \"), nil\n\t}, []cached.Value[[]byte]{\n\t\ttransformer1, transformer2,\n\t})\n\tresult, etag, err := merger.Get()\n\tif err != nil {\n\t\tt.Fatalf(\"Unexpected error: %v\", err)\n\t}\n\tif want := \"merged transformed1 source and transformed2 source\"; string(result) != want {\n\t\tt.Fatalf(\"expected data = %v, got %v\", want, string(result))\n\t}\n\tif want := \"merged transformed1 source and transformed2 source\"; etag != want {\n\t\tt.Fatalf(\"expected etag = %v, got %v\", want, etag)\n\t}\n}\n\nfunc randomString(length uint) string {\n\tbytes := make([]byte, 6)\n\trand.Read(bytes)\n\treturn string(bytes)\n\n}\n\nfunc NewRandomSource() cached.Value[int64] {\n\treturn cached.Once(cached.Func(func() (int64, string, error) {\n\t\tbytes := make([]byte, 6)\n\t\trand.Read(bytes)\n\t\treturn rand.Int63(), randomString(10), nil\n\t}))\n}\n\nfunc repeatedGet(data cached.Value[int64], end time.Time, wg *sync.WaitGroup) {\n\tfor time.Now().Before(end) {\n\t\t_, _, _ = data.Get()\n\t}\n\twg.Done()\n}\n\nfunc TestThreadSafe(t *testing.T) {\n\tend := time.Now().Add(time.Second)\n\twg := sync.WaitGroup{}\n\tstatic := NewRandomSource()\n\twg.Add(1)\n\tgo repeatedGet(static, end, &wg)\n\tresult := cached.Static(rand.Int63(), randomString(10))\n\twg.Add(1)\n\tgo repeatedGet(result, end, &wg)\n\treplaceable := &cached.LastSuccess[int64]{}\n\treplaceable.Store(NewRandomSource())\n\twg.Add(1)\n\tgo repeatedGet(replaceable, end, &wg)\n\twg.Add(1)\n\tgo func(r cached.Replaceable[int64], end time.Time, wg *sync.WaitGroup) {\n\t\tfor time.Now().Before(end) {\n\t\t\tr.Store(NewRandomSource())\n\t\t}\n\t\twg.Done()\n\t}(replaceable, end, &wg)\n\tmerger := cached.Merge(func(results map[string]cached.Result[int64]) (int64, string, error) {\n\t\tsum := int64(0)\n\t\tfor _, result := range results {\n\t\t\tsum += result.Value\n\t\t}\n\t\treturn sum, randomString(10), nil\n\t}, map[string]cached.Value[int64]{\n\t\t\"one\": NewRandomSource(),\n\t\t\"two\": NewRandomSource(),\n\t})\n\twg.Add(1)\n\tgo repeatedGet(merger, end, &wg)\n\ttransformer := cached.Transform(func(value int64, etag string, err error) (int64, string, error) {\n\t\treturn value + 5, randomString(10), nil\n\t}, NewRandomSource())\n\twg.Add(1)\n\tgo repeatedGet(transformer, end, &wg)\n\n\tlistmerger := cached.MergeList(func(results []cached.Result[int64]) (int64, string, error) {\n\t\tsum := int64(0)\n\t\tfor i := range results {\n\t\t\tsum += results[i].Value\n\t\t}\n\t\treturn sum, randomString(10), nil\n\t}, []cached.Value[int64]{static, result, replaceable, merger, transformer})\n\twg.Add(1)\n\tgo repeatedGet(listmerger, end, &wg)\n\n\twg.Wait()\n}\n"
  },
  {
    "path": "pkg/common/common.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage common\n\nimport (\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/emicklei/go-restful/v3\"\n\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nconst (\n\t// TODO: Make this configurable.\n\tExtensionPrefix   = \"x-kubernetes-\"\n\tExtensionV2Schema = ExtensionPrefix + \"v2-schema\"\n)\n\n// OpenAPIDefinition describes single type. Normally these definitions are auto-generated using gen-openapi.\ntype OpenAPIDefinition struct {\n\tSchema       spec.Schema\n\tDependencies []string\n}\n\ntype ReferenceCallback func(path string) spec.Ref\n\n// GetOpenAPIDefinitions is collection of all definitions.\ntype GetOpenAPIDefinitions func(ReferenceCallback) map[string]OpenAPIDefinition\n\n// OpenAPIDefinitionGetter gets openAPI definitions for a given type. If a type implements this interface,\n// the definition returned by it will be used, otherwise the auto-generated definitions will be used. See\n// GetOpenAPITypeFormat for more information about trade-offs of using this interface or GetOpenAPITypeFormat method when\n// possible.\ntype OpenAPIDefinitionGetter interface {\n\tOpenAPIDefinition() OpenAPIDefinition\n}\n\ntype OpenAPIV3DefinitionGetter interface {\n\tOpenAPIV3Definition() OpenAPIDefinition\n}\n\ntype PathHandler interface {\n\tHandle(path string, handler http.Handler)\n}\n\ntype PathHandlerByGroupVersion interface {\n\tHandle(path string, handler http.Handler)\n\tHandlePrefix(path string, handler http.Handler)\n}\n\n// Config is set of configuration for openAPI spec generation.\ntype Config struct {\n\t// List of supported protocols such as https, http, etc.\n\tProtocolList []string\n\n\t// Info is general information about the API.\n\tInfo *spec.Info\n\n\t// DefaultResponse will be used if an operation does not have any responses listed. It\n\t// will show up as ... \"responses\" : {\"default\" : $DefaultResponse} in the spec.\n\tDefaultResponse *spec.Response\n\n\t// ResponseDefinitions will be added to \"responses\" under the top-level swagger object. This is an object\n\t// that holds responses definitions that can be used across operations. This property does not define\n\t// global responses for all operations. For more info please refer:\n\t//     https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#fixed-fields\n\tResponseDefinitions map[string]spec.Response\n\n\t// CommonResponses will be added as a response to all operation specs. This is a good place to add common\n\t// responses such as authorization failed.\n\tCommonResponses map[int]spec.Response\n\n\t// List of webservice's path prefixes to ignore\n\tIgnorePrefixes []string\n\n\t// OpenAPIDefinitions should provide definition for all models used by routes. Failure to provide this map\n\t// or any of the models will result in spec generation failure.\n\tGetDefinitions GetOpenAPIDefinitions\n\n\t// Provides the definition for all models used by routes. One of GetDefinitions or Definitions must be defined to generate a spec.\n\t// This takes precedent over the GetDefinitions function\n\tDefinitions map[string]OpenAPIDefinition\n\n\t// GetOperationIDAndTags returns operation id and tags for a restful route. It is an optional function to customize operation IDs.\n\t//\n\t// Deprecated: GetOperationIDAndTagsFromRoute should be used instead. This cannot be specified if using the new Route\n\t// interface set of funcs.\n\tGetOperationIDAndTags func(r *restful.Route) (string, []string, error)\n\n\t// GetOperationIDAndTagsFromRoute returns operation id and tags for a Route. It is an optional function to customize operation IDs.\n\tGetOperationIDAndTagsFromRoute func(r Route) (string, []string, error)\n\n\t// GetDefinitionName returns a friendly name for a definition base on the serving path. parameter `name` is the full name of the definition.\n\t// It is an optional function to customize model names.\n\tGetDefinitionName func(name string) (string, spec.Extensions)\n\n\t// PostProcessSpec runs after the spec is ready to serve. It allows a final modification to the spec before serving.\n\tPostProcessSpec func(*spec.Swagger) (*spec.Swagger, error)\n\n\t// SecurityDefinitions is list of all security definitions for OpenAPI service. If this is not nil, the user of config\n\t// is responsible to provide DefaultSecurity and (maybe) add unauthorized response to CommonResponses.\n\tSecurityDefinitions *spec.SecurityDefinitions\n\n\t// DefaultSecurity for all operations. This will pass as spec.SwaggerProps.Security to OpenAPI.\n\t// For most cases, this will be list of acceptable definitions in SecurityDefinitions.\n\tDefaultSecurity []map[string][]string\n}\n\n// OpenAPIV3Config is set of configuration for OpenAPI V3 spec generation.\ntype OpenAPIV3Config struct {\n\t// Info is general information about the API.\n\tInfo *spec.Info\n\n\t// DefaultResponse will be used if an operation does not have any responses listed. It\n\t// will show up as ... \"responses\" : {\"default\" : $DefaultResponse} in the spec.\n\tDefaultResponse *spec3.Response\n\n\t// ResponseDefinitions will be added to responses component. This is an object\n\t// that holds responses that can be used across operations.\n\tResponseDefinitions map[string]*spec3.Response\n\n\t// CommonResponses will be added as a response to all operation specs. This is a good place to add common\n\t// responses such as authorization failed.\n\tCommonResponses map[int]*spec3.Response\n\n\t// List of webservice's path prefixes to ignore\n\tIgnorePrefixes []string\n\n\t// OpenAPIDefinitions should provide definition for all models used by routes. Failure to provide this map\n\t// or any of the models will result in spec generation failure.\n\t// One of GetDefinitions or Definitions must be defined to generate a spec.\n\tGetDefinitions GetOpenAPIDefinitions\n\n\t// Provides the definition for all models used by routes. One of GetDefinitions or Definitions must be defined to generate a spec.\n\t// This takes precedent over the GetDefinitions function\n\tDefinitions map[string]OpenAPIDefinition\n\n\t// GetOperationIDAndTags returns operation id and tags for a restful route. It is an optional function to customize operation IDs.\n\t//\n\t// Deprecated: GetOperationIDAndTagsFromRoute should be used instead. This cannot be specified if using the new Route\n\t// interface set of funcs.\n\tGetOperationIDAndTags func(r *restful.Route) (string, []string, error)\n\n\t// GetOperationIDAndTagsFromRoute returns operation id and tags for a Route. It is an optional function to customize operation IDs.\n\tGetOperationIDAndTagsFromRoute func(r Route) (string, []string, error)\n\n\t// GetDefinitionName returns a friendly name for a definition base on the serving path. parameter `name` is the full name of the definition.\n\t// It is an optional function to customize model names.\n\tGetDefinitionName func(name string) (string, spec.Extensions)\n\n\t// PostProcessSpec runs after the spec is ready to serve. It allows a final modification to the spec before serving.\n\tPostProcessSpec func(*spec3.OpenAPI) (*spec3.OpenAPI, error)\n\n\t// SecuritySchemes is list of all security schemes for OpenAPI service.\n\tSecuritySchemes spec3.SecuritySchemes\n\n\t// DefaultSecurity for all operations.\n\tDefaultSecurity []map[string][]string\n}\n\ntype typeInfo struct {\n\tname   string\n\tformat string\n\tzero   interface{}\n}\n\nvar schemaTypeFormatMap = map[string]typeInfo{\n\t\"uint\":        {\"integer\", \"int32\", 0.},\n\t\"uint8\":       {\"integer\", \"byte\", 0.},\n\t\"uint16\":      {\"integer\", \"int32\", 0.},\n\t\"uint32\":      {\"integer\", \"int64\", 0.},\n\t\"uint64\":      {\"integer\", \"int64\", 0.},\n\t\"int\":         {\"integer\", \"int32\", 0.},\n\t\"int8\":        {\"integer\", \"byte\", 0.},\n\t\"int16\":       {\"integer\", \"int32\", 0.},\n\t\"int32\":       {\"integer\", \"int32\", 0.},\n\t\"int64\":       {\"integer\", \"int64\", 0.},\n\t\"byte\":        {\"integer\", \"byte\", 0},\n\t\"float64\":     {\"number\", \"double\", 0.},\n\t\"float32\":     {\"number\", \"float\", 0.},\n\t\"bool\":        {\"boolean\", \"\", false},\n\t\"time.Time\":   {\"string\", \"date-time\", \"\"},\n\t\"string\":      {\"string\", \"\", \"\"},\n\t\"integer\":     {\"integer\", \"\", 0.},\n\t\"number\":      {\"number\", \"\", 0.},\n\t\"boolean\":     {\"boolean\", \"\", false},\n\t\"[]byte\":      {\"string\", \"byte\", \"\"}, // base64 encoded characters\n\t\"interface{}\": {\"object\", \"\", interface{}(nil)},\n}\n\n// This function is a reference for converting go (or any custom type) to a simple open API type,format pair. There are\n// two ways to customize spec for a type. If you add it here, a type will be converted to a simple type and the type\n// comment (the comment that is added before type definition) will be lost. The spec will still have the property\n// comment. The second way is to implement OpenAPIDefinitionGetter interface. That function can customize the spec (so\n// the spec does not need to be simple type,format) or can even return a simple type,format (e.g. IntOrString). For simple\n// type formats, the benefit of adding OpenAPIDefinitionGetter interface is to keep both type and property documentation.\n// Example:\n//\n//\ttype Sample struct {\n//\t     ...\n//\t     // port of the server\n//\t     port IntOrString\n//\t     ...\n//\t}\n//\n// // IntOrString documentation...\n// type IntOrString { ... }\n//\n// Adding IntOrString to this function:\n//\n//\t\"port\" : {\n//\t          format:      \"string\",\n//\t          type:        \"int-or-string\",\n//\t          Description: \"port of the server\"\n//\t}\n//\n// Implement OpenAPIDefinitionGetter for IntOrString:\n//\n//\t\"port\" : {\n//\t          $Ref:    \"#/definitions/IntOrString\"\n//\t          Description: \"port of the server\"\n//\t}\n//\n// ...\n// definitions:\n//\n//\t{\n//\t          \"IntOrString\": {\n//\t                    format:      \"string\",\n//\t                    type:        \"int-or-string\",\n//\t                    Description: \"IntOrString documentation...\"    // new\n//\t          }\n//\t}\nfunc OpenAPITypeFormat(typeName string) (string, string) {\n\tmapped, ok := schemaTypeFormatMap[typeName]\n\tif !ok {\n\t\treturn \"\", \"\"\n\t}\n\treturn mapped.name, mapped.format\n}\n\n// Returns the zero-value for the given type along with true if the type\n// could be found.\nfunc OpenAPIZeroValue(typeName string) (interface{}, bool) {\n\tmapped, ok := schemaTypeFormatMap[typeName]\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn mapped.zero, true\n}\n\nfunc EscapeJsonPointer(p string) string {\n\t// Escaping reference name using rfc6901\n\tp = strings.Replace(p, \"~\", \"~0\", -1)\n\tp = strings.Replace(p, \"/\", \"~1\", -1)\n\treturn p\n}\n\nfunc EmbedOpenAPIDefinitionIntoV2Extension(main OpenAPIDefinition, embedded OpenAPIDefinition) OpenAPIDefinition {\n\tif main.Schema.Extensions == nil {\n\t\tmain.Schema.Extensions = make(map[string]interface{})\n\t}\n\tmain.Schema.Extensions[ExtensionV2Schema] = embedded.Schema\n\treturn main\n}\n\n// GenerateOpenAPIV3OneOfSchema generate the set of schemas that MUST be assigned to SchemaProps.OneOf\nfunc GenerateOpenAPIV3OneOfSchema(types []string) (oneOf []spec.Schema) {\n\tfor _, t := range types {\n\t\toneOf = append(oneOf, spec.Schema{SchemaProps: spec.SchemaProps{Type: []string{t}}})\n\t}\n\treturn\n}\n"
  },
  {
    "path": "pkg/common/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// package common holds shared code and types between open API code\n// generator and spec generator.\npackage common\n"
  },
  {
    "path": "pkg/common/interfaces.go",
    "content": "package common\n\n// RouteContainer is the entrypoint for a service, which may contain multiple\n// routes under a common path with a common set of path parameters.\ntype RouteContainer interface {\n\t// RootPath is the path that all contained routes are nested under.\n\tRootPath() string\n\t// PathParameters are common parameters defined in the root path.\n\tPathParameters() []Parameter\n\t// Routes are all routes exposed under the root path.\n\tRoutes() []Route\n}\n\n// Route is a logical endpoint of a service.\ntype Route interface {\n\t// Method defines the HTTP Method.\n\tMethod() string\n\t// Path defines the route's endpoint.\n\tPath() string\n\t// OperationName defines a machine-readable ID for the route.\n\tOperationName() string\n\t// Parameters defines the list of accepted parameters.\n\tParameters() []Parameter\n\t// Description is a human-readable route description.\n\tDescription() string\n\t// Consumes defines the consumed content-types.\n\tConsumes() []string\n\t// Produces defines the produced content-types.\n\tProduces() []string\n\t// Metadata allows adding extensions to the generated spec.\n\tMetadata() map[string]interface{}\n\t// RequestPayloadSample defines an example request payload. Can return nil.\n\tRequestPayloadSample() interface{}\n\t// ResponsePayloadSample defines an example response payload. Can return nil.\n\tResponsePayloadSample() interface{}\n\t// StatusCodeResponses defines a mapping of HTTP Status Codes to the specific response(s).\n\t// Multiple responses with the same HTTP Status Code are acceptable.\n\tStatusCodeResponses() []StatusCodeResponse\n}\n\n// StatusCodeResponse is an explicit response type with an HTTP Status Code.\ntype StatusCodeResponse interface {\n\t// Code defines the HTTP Status Code.\n\tCode() int\n\t// Message returns the human-readable message.\n\tMessage() string\n\t// Model defines an example payload for this response.\n\tModel() interface{}\n}\n\n// Parameter is a Route parameter.\ntype Parameter interface {\n\t// Name defines the unique-per-route identifier.\n\tName() string\n\t// Description is the human-readable description of the param.\n\tDescription() string\n\t// Required defines if this parameter must be provided.\n\tRequired() bool\n\t// Kind defines the type of the parameter itself.\n\tKind() ParameterKind\n\t// DataType defines the type of data the parameter carries.\n\tDataType() string\n\t// AllowMultiple defines if more than one value can be supplied for the parameter.\n\tAllowMultiple() bool\n}\n\n// ParameterKind is an enum of route parameter types.\ntype ParameterKind int\n\nconst (\n\t// PathParameterKind indicates the request parameter type is \"path\".\n\tPathParameterKind = ParameterKind(iota)\n\n\t// QueryParameterKind indicates the request parameter type is \"query\".\n\tQueryParameterKind\n\n\t// BodyParameterKind indicates the request parameter type is \"body\".\n\tBodyParameterKind\n\n\t// HeaderParameterKind indicates the request parameter type is \"header\".\n\tHeaderParameterKind\n\n\t// FormParameterKind indicates the request parameter type is \"form\".\n\tFormParameterKind\n\n\t// UnknownParameterKind indicates the request parameter type has not been specified.\n\tUnknownParameterKind\n)\n"
  },
  {
    "path": "pkg/common/restfuladapter/adapter.go",
    "content": "package restfuladapter\n\nimport (\n\t\"github.com/emicklei/go-restful/v3\"\n\t\"k8s.io/kube-openapi/pkg/common\"\n)\n\n// AdaptWebServices adapts a slice of restful.WebService into the common interfaces.\nfunc AdaptWebServices(webServices []*restful.WebService) []common.RouteContainer {\n\tvar containers []common.RouteContainer\n\tfor _, ws := range webServices {\n\t\tcontainers = append(containers, &WebServiceAdapter{ws})\n\t}\n\treturn containers\n}\n"
  },
  {
    "path": "pkg/common/restfuladapter/param_adapter.go",
    "content": "package restfuladapter\n\nimport (\n\t\"encoding/json\"\n\t\"github.com/emicklei/go-restful/v3\"\n\t\"k8s.io/kube-openapi/pkg/common\"\n)\n\nvar _ common.Parameter = &ParamAdapter{}\n\ntype ParamAdapter struct {\n\tParam *restful.Parameter\n}\n\nfunc (r *ParamAdapter) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(r.Param)\n}\n\nfunc (r *ParamAdapter) Name() string {\n\treturn r.Param.Data().Name\n}\n\nfunc (r *ParamAdapter) Description() string {\n\treturn r.Param.Data().Description\n}\n\nfunc (r *ParamAdapter) Required() bool {\n\treturn r.Param.Data().Required\n}\n\nfunc (r *ParamAdapter) Kind() common.ParameterKind {\n\tswitch r.Param.Kind() {\n\tcase restful.PathParameterKind:\n\t\treturn common.PathParameterKind\n\tcase restful.QueryParameterKind:\n\t\treturn common.QueryParameterKind\n\tcase restful.BodyParameterKind:\n\t\treturn common.BodyParameterKind\n\tcase restful.HeaderParameterKind:\n\t\treturn common.HeaderParameterKind\n\tcase restful.FormParameterKind:\n\t\treturn common.FormParameterKind\n\tdefault:\n\t\treturn common.UnknownParameterKind\n\t}\n}\n\nfunc (r *ParamAdapter) DataType() string {\n\treturn r.Param.Data().DataType\n}\n\nfunc (r *ParamAdapter) AllowMultiple() bool {\n\treturn r.Param.Data().AllowMultiple\n}\n"
  },
  {
    "path": "pkg/common/restfuladapter/response_error_adapter.go",
    "content": "package restfuladapter\n\nimport (\n\t\"github.com/emicklei/go-restful/v3\"\n\t\"k8s.io/kube-openapi/pkg/common\"\n)\n\nvar _ common.StatusCodeResponse = &ResponseErrorAdapter{}\n\n// ResponseErrorAdapter adapts a restful.ResponseError to common.StatusCodeResponse.\ntype ResponseErrorAdapter struct {\n\tErr *restful.ResponseError\n}\n\nfunc (r *ResponseErrorAdapter) Message() string {\n\treturn r.Err.Message\n}\n\nfunc (r *ResponseErrorAdapter) Model() interface{} {\n\treturn r.Err.Model\n}\n\nfunc (r *ResponseErrorAdapter) Code() int {\n\treturn r.Err.Code\n}\n"
  },
  {
    "path": "pkg/common/restfuladapter/route_adapter.go",
    "content": "package restfuladapter\n\nimport (\n\t\"github.com/emicklei/go-restful/v3\"\n\t\"k8s.io/kube-openapi/pkg/common\"\n)\n\nvar _ common.Route = &RouteAdapter{}\n\n// RouteAdapter adapts a restful.Route to common.Route.\ntype RouteAdapter struct {\n\tRoute *restful.Route\n}\n\nfunc (r *RouteAdapter) StatusCodeResponses() []common.StatusCodeResponse {\n\t// go-restful uses the ResponseErrors field to contain both error and regular responses.\n\tvar responses []common.StatusCodeResponse\n\tfor _, res := range r.Route.ResponseErrors {\n\t\tlocalRes := res\n\t\tresponses = append(responses, &ResponseErrorAdapter{&localRes})\n\t}\n\n\treturn responses\n}\n\nfunc (r *RouteAdapter) OperationName() string {\n\treturn r.Route.Operation\n}\n\nfunc (r *RouteAdapter) Method() string {\n\treturn r.Route.Method\n}\n\nfunc (r *RouteAdapter) Path() string {\n\treturn r.Route.Path\n}\n\nfunc (r *RouteAdapter) Parameters() []common.Parameter {\n\tvar params []common.Parameter\n\tfor _, rParam := range r.Route.ParameterDocs {\n\t\tparams = append(params, &ParamAdapter{rParam})\n\t}\n\treturn params\n}\n\nfunc (r *RouteAdapter) Description() string {\n\treturn r.Route.Doc\n}\n\nfunc (r *RouteAdapter) Consumes() []string {\n\treturn r.Route.Consumes\n}\n\nfunc (r *RouteAdapter) Produces() []string {\n\treturn r.Route.Produces\n}\n\nfunc (r *RouteAdapter) Metadata() map[string]interface{} {\n\treturn r.Route.Metadata\n}\n\nfunc (r *RouteAdapter) RequestPayloadSample() interface{} {\n\treturn r.Route.ReadSample\n}\n\nfunc (r *RouteAdapter) ResponsePayloadSample() interface{} {\n\treturn r.Route.WriteSample\n}\n"
  },
  {
    "path": "pkg/common/restfuladapter/webservice_adapter.go",
    "content": "package restfuladapter\n\nimport (\n\t\"github.com/emicklei/go-restful/v3\"\n\t\"k8s.io/kube-openapi/pkg/common\"\n)\n\nvar _ common.RouteContainer = &WebServiceAdapter{}\n\n// WebServiceAdapter adapts a restful.WebService to common.RouteContainer.\ntype WebServiceAdapter struct {\n\tWebService *restful.WebService\n}\n\nfunc (r *WebServiceAdapter) RootPath() string {\n\treturn r.WebService.RootPath()\n}\n\nfunc (r *WebServiceAdapter) PathParameters() []common.Parameter {\n\tvar params []common.Parameter\n\tfor _, rParam := range r.WebService.PathParameters() {\n\t\tparams = append(params, &ParamAdapter{rParam})\n\t}\n\treturn params\n}\n\nfunc (r *WebServiceAdapter) Routes() []common.Route {\n\tvar routes []common.Route\n\tfor _, rRoute := range r.WebService.Routes() {\n\t\tlocalRoute := rRoute\n\t\troutes = append(routes, &RouteAdapter{&localRoute})\n\t}\n\treturn routes\n}\n"
  },
  {
    "path": "pkg/generators/README.md",
    "content": "# Generate OpenAPI definitions\n\n- To generate definition for a specific type or package add \"+k8s:openapi-gen=true\" tag to the type/package comment lines.\n- To exclude a type or a member from a tagged package/type, add \"+k8s:openapi-gen=false\" tag to the comment lines.\n\n# OpenAPI Extensions\n\nOpenAPI spec can have extensions on types. To define one or more extensions on a type or its member\nadd `+k8s:openapi-gen=x-kubernetes-$NAME:$VALUE` to the comment lines before type/member. A type/member can\nhave multiple extensions. The rest of the line in the comment will be used as $VALUE so there is no need to\nescape or quote the value string. Extensions can be used to pass more information to client generators or\ndocumentation generators. For example a type might have a friendly name to be displayed in documentation or\nbeing used in a client's fluent interface.\n\n# Custom OpenAPI type definitions\n\nCustom types which otherwise don't map directly to OpenAPI can override their\nOpenAPI definition by implementing a function named \"OpenAPIDefinition\" with\nthe following signature:\n\n```go\n\timport openapi \"k8s.io/kube-openapi/pkg/common\"\n\n\t// ...\n\n\ttype Time struct {\n\t\ttime.Time\n\t}\n\n\tfunc (_ Time) OpenAPIDefinition() openapi.OpenAPIDefinition {\n\t\treturn openapi.OpenAPIDefinition{\n\t\t\tSchema: spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"string\"},\n\t\t\t\t\tFormat: \"date-time\",\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t}\n```\n\nAlternatively, the type can avoid the \"openapi\" import by defining the following\nmethods. The following example produces the same OpenAPI definition as the\nexample above:\n\n```go\n    func (_ Time) OpenAPISchemaType() []string { return []string{\"string\"} }\n    func (_ Time) OpenAPISchemaFormat() string { return \"date-time\" }\n```\n"
  },
  {
    "path": "pkg/generators/api_linter.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage generators\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"sort\"\n\n\t\"k8s.io/kube-openapi/pkg/generators/rules\"\n\n\t\"k8s.io/gengo/v2/generator\"\n\t\"k8s.io/gengo/v2/types\"\n\t\"k8s.io/klog/v2\"\n)\n\nconst apiViolationFileType = \"api-violation\"\n\ntype apiViolationFile struct {\n\t// Since our file actually is unrelated to the package structure, use a\n\t// path that hasn't been mangled by the framework.\n\tunmangledPath string\n}\n\nfunc (a apiViolationFile) AssembleFile(f *generator.File, path string) error {\n\tpath = a.unmangledPath\n\tklog.V(2).Infof(\"Assembling file %q\", path)\n\tif path == \"-\" {\n\t\t_, err := io.Copy(os.Stdout, &f.Body)\n\t\treturn err\n\t}\n\n\toutput, err := os.Create(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer output.Close()\n\t_, err = io.Copy(output, &f.Body)\n\treturn err\n}\n\nfunc (a apiViolationFile) VerifyFile(f *generator.File, path string) error {\n\tif path == \"-\" {\n\t\t// Nothing to verify against.\n\t\treturn nil\n\t}\n\tpath = a.unmangledPath\n\n\tformatted := f.Body.Bytes()\n\texisting, err := os.ReadFile(path)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"unable to read file %q for comparison: %v\", path, err)\n\t}\n\tif bytes.Compare(formatted, existing) == 0 {\n\t\treturn nil\n\t}\n\n\t// Be nice and find the first place where they differ\n\t// (Copied from gengo's default file type)\n\ti := 0\n\tfor i < len(formatted) && i < len(existing) && formatted[i] == existing[i] {\n\t\ti++\n\t}\n\teDiff, fDiff := existing[i:], formatted[i:]\n\tif len(eDiff) > 100 {\n\t\teDiff = eDiff[:100]\n\t}\n\tif len(fDiff) > 100 {\n\t\tfDiff = fDiff[:100]\n\t}\n\treturn fmt.Errorf(\"output for %q differs; first existing/expected diff: \\n  %q\\n  %q\", path, string(eDiff), string(fDiff))\n}\n\nfunc newAPIViolationGen() *apiViolationGen {\n\treturn &apiViolationGen{\n\t\tlinter: newAPILinter(),\n\t}\n}\n\ntype apiViolationGen struct {\n\tgenerator.GoGenerator\n\n\tlinter *apiLinter\n}\n\nfunc (v *apiViolationGen) FileType() string { return apiViolationFileType }\nfunc (v *apiViolationGen) Filename() string {\n\treturn \"this file is ignored by the file assembler\"\n}\n\nfunc (v *apiViolationGen) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {\n\tklog.V(5).Infof(\"validating API rules for type %v\", t)\n\tif err := v.linter.validate(t); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Finalize prints the API rule violations to report file (if specified from\n// arguments) or stdout (default)\nfunc (v *apiViolationGen) Finalize(c *generator.Context, w io.Writer) error {\n\t// NOTE: we don't return error here because we assume that the report file will\n\t// get evaluated afterwards to determine if error should be raised. For example,\n\t// you can have make rules that compare the report file with existing known\n\t// violations (whitelist) and determine no error if no change is detected.\n\tv.linter.report(w)\n\treturn nil\n}\n\n// apiLinter is the framework hosting multiple API rules and recording API rule\n// violations\ntype apiLinter struct {\n\t// API rules that implement APIRule interface and output API rule violations\n\trules      []APIRule\n\tviolations []apiViolation\n}\n\n// newAPILinter creates an apiLinter object with API rules in package rules. Please\n// add APIRule here when new API rule is implemented.\nfunc newAPILinter() *apiLinter {\n\treturn &apiLinter{\n\t\trules: []APIRule{\n\t\t\t&rules.NamesMatch{},\n\t\t\t&rules.OmitEmptyMatchCase{},\n\t\t\t&rules.ListTypeMissing{},\n\t\t\t&rules.StreamingListTypeFieldOrder{},\n\t\t\t&rules.StreamingListTypeJSONTags{},\n\t\t\t&rules.StreamingListTypeProtoTags{},\n\t\t},\n\t}\n}\n\n// apiViolation uniquely identifies single API rule violation\ntype apiViolation struct {\n\t// Name of rule from APIRule.Name()\n\trule string\n\n\tpackageName string\n\ttypeName    string\n\n\t// Optional: name of field that violates API rule. Empty fieldName implies that\n\t// the entire type violates the rule.\n\tfield string\n}\n\n// apiViolations implements sort.Interface for []apiViolation based on the fields: rule,\n// packageName, typeName and field.\ntype apiViolations []apiViolation\n\nfunc (a apiViolations) Len() int      { return len(a) }\nfunc (a apiViolations) Swap(i, j int) { a[i], a[j] = a[j], a[i] }\nfunc (a apiViolations) Less(i, j int) bool {\n\tif a[i].rule != a[j].rule {\n\t\treturn a[i].rule < a[j].rule\n\t}\n\tif a[i].packageName != a[j].packageName {\n\t\treturn a[i].packageName < a[j].packageName\n\t}\n\tif a[i].typeName != a[j].typeName {\n\t\treturn a[i].typeName < a[j].typeName\n\t}\n\treturn a[i].field < a[j].field\n}\n\n// APIRule is the interface for validating API rule on Go types\ntype APIRule interface {\n\t// Validate evaluates API rule on type t and returns a list of field names in\n\t// the type that violate the rule. Empty field name [\"\"] implies the entire\n\t// type violates the rule.\n\tValidate(t *types.Type) ([]string, error)\n\n\t// Name returns the name of APIRule\n\tName() string\n}\n\n// validate runs all API rules on type t and records any API rule violation\nfunc (l *apiLinter) validate(t *types.Type) error {\n\tfor _, r := range l.rules {\n\t\tklog.V(5).Infof(\"validating API rule %v for type %v\", r.Name(), t)\n\t\tfields, err := r.Validate(t)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, field := range fields {\n\t\t\tl.violations = append(l.violations, apiViolation{\n\t\t\t\trule:        r.Name(),\n\t\t\t\tpackageName: t.Name.Package,\n\t\t\t\ttypeName:    t.Name.Name,\n\t\t\t\tfield:       field,\n\t\t\t})\n\t\t}\n\t}\n\treturn nil\n}\n\n// report prints any API rule violation to writer w and returns error if violation exists\nfunc (l *apiLinter) report(w io.Writer) error {\n\tsort.Sort(apiViolations(l.violations))\n\tfor _, v := range l.violations {\n\t\tfmt.Fprintf(w, \"API rule violation: %s,%s,%s,%s\\n\", v.rule, v.packageName, v.typeName, v.field)\n\t}\n\tif len(l.violations) > 0 {\n\t\treturn fmt.Errorf(\"API rule violations exist\")\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/generators/config.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage generators\n\nimport (\n\t\"path\"\n\n\t\"k8s.io/gengo/v2/generator\"\n\t\"k8s.io/gengo/v2/namer\"\n\t\"k8s.io/gengo/v2/types\"\n\t\"k8s.io/klog/v2\"\n\t\"k8s.io/kube-openapi/cmd/openapi-gen/args\"\n)\n\ntype identityNamer struct{}\n\nfunc (_ identityNamer) Name(t *types.Type) string {\n\treturn t.Name.String()\n}\n\nvar _ namer.Namer = identityNamer{}\n\n// NameSystems returns the name system used by the generators in this package.\nfunc NameSystems() namer.NameSystems {\n\treturn namer.NameSystems{\n\t\t\"raw\":           namer.NewRawNamer(\"\", nil),\n\t\t\"sorting_namer\": identityNamer{},\n\t}\n}\n\n// DefaultNameSystem returns the default name system for ordering the types to be\n// processed by the generators in this package.\nfunc DefaultNameSystem() string {\n\treturn \"sorting_namer\"\n}\n\n// GetOpenAPITargets returns the targets for OpenAPI definition generation.\nfunc GetOpenAPITargets(context *generator.Context, args *args.Args, boilerplate []byte) []generator.Target {\n\treportPath := \"-\"\n\tif args.ReportFilename != \"\" {\n\t\treportPath = args.ReportFilename\n\t}\n\tcontext.FileTypes[apiViolationFileType] = apiViolationFile{\n\t\tunmangledPath: reportPath,\n\t}\n\n\treturn []generator.Target{\n\t\t&generator.SimpleTarget{\n\t\t\tPkgName:       path.Base(args.OutputPkg), // `path` vs. `filepath` because packages use '/'\n\t\t\tPkgPath:       args.OutputPkg,\n\t\t\tPkgDir:        args.OutputDir,\n\t\t\tHeaderComment: boilerplate,\n\t\t\tGeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {\n\t\t\t\treturn []generator.Generator{\n\t\t\t\t\tnewOpenAPIGen(\n\t\t\t\t\t\targs.OutputFile,\n\t\t\t\t\t\targs.OutputPkg,\n\t\t\t\t\t),\n\t\t\t\t\tnewAPIViolationGen(),\n\t\t\t\t}\n\t\t\t},\n\t\t\tFilterFunc: apiTypeFilterFunc,\n\t\t},\n\t}\n}\n\n// isReadOnlyPkg checks whether pkgPath matches one of the given read-only\n// package paths.\nfunc isReadOnlyPkg(pkgPath string, readOnlyPkgs []string) bool {\n\tfor _, pkg := range readOnlyPkgs {\n\t\tif pkgPath == pkg {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// GetModelNameTargets returns the targets for model name generation.\nfunc GetModelNameTargets(context *generator.Context, args *args.Args, boilerplate []byte) []generator.Target {\n\tvar targets []generator.Target\n\tfor _, i := range context.Inputs {\n\t\tklog.V(5).Infof(\"Considering pkg %q\", i)\n\n\t\tpkg := context.Universe[i]\n\n\t\t// Skip read-only packages — they are input dependencies needed\n\t\t// for type resolution but should not have model name files\n\t\t// generated (e.g. read-only module cache).\n\t\tif isReadOnlyPkg(pkg.Path, args.ReadOnlyPkgs) {\n\t\t\tklog.V(3).Infof(\"Skipping model name generation for %q: read-only package\", pkg.Path)\n\t\t\tcontinue\n\t\t}\n\n\t\topenAPISchemaNamePackage, err := extractOpenAPISchemaNamePackage(pkg.Comments)\n\t\tif err != nil {\n\t\t\tklog.Fatalf(\"Package %v: invalid %s:%v\", i, tagModelPackage, err)\n\t\t}\n\t\thasPackageTag := len(openAPISchemaNamePackage) > 0\n\n\t\thasCandidates := false\n\t\tfor _, t := range pkg.Types {\n\t\t\tv, err := singularTag(tagModelPackage, t.CommentLines)\n\t\t\tif err != nil {\n\t\t\t\tklog.Fatalf(\"Type %v: invalid %s:%v\", t.Name, tagModelPackage, err)\n\t\t\t}\n\t\t\thasTag := hasPackageTag || v != nil\n\t\t\thasModel := isSchemaNameType(t)\n\t\t\tif hasModel && hasTag {\n\t\t\t\thasCandidates = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !hasCandidates {\n\t\t\tklog.V(5).Infof(\"  skipping package\")\n\t\t\tcontinue\n\t\t}\n\n\t\tklog.V(3).Infof(\"Generating package %q\", pkg.Path)\n\n\t\ttargets = append(targets,\n\t\t\t&generator.SimpleTarget{\n\t\t\t\tPkgName:       path.Base(pkg.Path),\n\t\t\t\tPkgPath:       pkg.Path,\n\t\t\t\tPkgDir:        pkg.Dir, // output pkg is the same as the input\n\t\t\t\tHeaderComment: boilerplate,\n\t\t\t\tFilterFunc: func(c *generator.Context, t *types.Type) bool {\n\t\t\t\t\treturn t.Name.Package == pkg.Path\n\t\t\t\t},\n\t\t\t\tGeneratorsFunc: func(c *generator.Context) (generators []generator.Generator) {\n\t\t\t\t\treturn []generator.Generator{\n\t\t\t\t\t\tNewSchemaNameGen(args.OutputModelNameFile, pkg.Path, openAPISchemaNamePackage),\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t})\n\t}\n\treturn targets\n}\n"
  },
  {
    "path": "pkg/generators/config_test.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage generators\n\nimport (\n\t\"testing\"\n\n\t\"k8s.io/gengo/v2/generator\"\n\t\"k8s.io/gengo/v2/types\"\n\t\"k8s.io/kube-openapi/cmd/openapi-gen/args\"\n)\n\nfunc TestIsReadOnlyPkg(t *testing.T) {\n\ttests := []struct {\n\t\tname         string\n\t\tpkgPath      string\n\t\treadOnlyPkgs []string\n\t\twant         bool\n\t}{\n\t\t{\n\t\t\tname:         \"nil readonly pkgs matches nothing\",\n\t\t\tpkgPath:      \"k8s.io/apimachinery/pkg/runtime\",\n\t\t\treadOnlyPkgs: nil,\n\t\t\twant:         false,\n\t\t},\n\t\t{\n\t\t\tname:         \"empty readonly pkgs matches nothing\",\n\t\t\tpkgPath:      \"k8s.io/apimachinery/pkg/runtime\",\n\t\t\treadOnlyPkgs: []string{},\n\t\t\twant:         false,\n\t\t},\n\t\t{\n\t\t\tname:         \"exact match\",\n\t\t\tpkgPath:      \"k8s.io/apimachinery/pkg/apis/meta/v1\",\n\t\t\treadOnlyPkgs: []string{\"k8s.io/apimachinery/pkg/apis/meta/v1\"},\n\t\t\twant:         true,\n\t\t},\n\t\t{\n\t\t\tname:         \"no prefix match\",\n\t\t\tpkgPath:      \"k8s.io/apimachinery/pkg/apis/meta/v1\",\n\t\t\treadOnlyPkgs: []string{\"k8s.io/apimachinery\"},\n\t\t\twant:         false,\n\t\t},\n\t\t{\n\t\t\tname:         \"non-readonly package\",\n\t\t\tpkgPath:      \"k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1\",\n\t\t\treadOnlyPkgs: []string{\"k8s.io/apimachinery/pkg/apis/meta/v1\"},\n\t\t\twant:         false,\n\t\t},\n\t\t{\n\t\t\tname:         \"multiple readonly pkgs\",\n\t\t\tpkgPath:      \"k8s.io/apimachinery/pkg/runtime\",\n\t\t\treadOnlyPkgs: []string{\"k8s.io/apimachinery/pkg/apis/meta/v1\", \"k8s.io/apimachinery/pkg/runtime\"},\n\t\t\twant:         true,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := isReadOnlyPkg(tt.pkgPath, tt.readOnlyPkgs)\n\t\t\tif got != tt.want {\n\t\t\t\tt.Errorf(\"isReadOnlyPkg(%q, %v) = %v, want %v\", tt.pkgPath, tt.readOnlyPkgs, got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestGetModelNameTargets_ReadOnlyPkgs(t *testing.T) {\n\tlocalPkg := \"k8s.io/sample-apiserver/pkg/apis/wardle/v1beta1\"\n\tdepPkg := \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\t// Build a minimal generator.Context with two input packages:\n\t// one \"local\" package and one \"dependency\" package. Both have\n\t// the +k8s:openapi-model-package tag and a public struct type,\n\t// so without readonly pkgs both would produce targets.\n\tuniverse := types.Universe{\n\t\tlocalPkg: {\n\t\t\tPath: localPkg,\n\t\t\tDir:  \"/fake/local/wardle/v1beta1\",\n\t\t\tName: \"v1beta1\",\n\t\t\tComments: []string{\n\t\t\t\t\"+k8s:openapi-model-package=io.k8s.sample-apiserver.pkg.apis.wardle.v1beta1\",\n\t\t\t},\n\t\t\tTypes: map[string]*types.Type{\n\t\t\t\t\"Flunder\": {\n\t\t\t\t\tName: types.Name{Package: localPkg, Name: \"Flunder\"},\n\t\t\t\t\tKind: types.Struct,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tdepPkg: {\n\t\t\tPath: depPkg,\n\t\t\tDir:  \"/fake/gomodcache/k8s.io/apimachinery/pkg/apis/meta/v1\",\n\t\t\tName: \"v1\",\n\t\t\tComments: []string{\n\t\t\t\t\"+k8s:openapi-model-package=io.k8s.apimachinery.pkg.apis.meta.v1\",\n\t\t\t},\n\t\t\tTypes: map[string]*types.Type{\n\t\t\t\t\"ObjectMeta\": {\n\t\t\t\t\tName: types.Name{Package: depPkg, Name: \"ObjectMeta\"},\n\t\t\t\t\tKind: types.Struct,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tctx := &generator.Context{\n\t\tInputs:   []string{localPkg, depPkg},\n\t\tUniverse: universe,\n\t}\n\n\ttests := []struct {\n\t\tname           string\n\t\treadOnlyPkgs   []string\n\t\twantTargetPkgs []string\n\t}{\n\t\t{\n\t\t\tname:           \"no readonly pkgs generates for all packages\",\n\t\t\treadOnlyPkgs:   nil,\n\t\t\twantTargetPkgs: []string{localPkg, depPkg},\n\t\t},\n\t\t{\n\t\t\tname:           \"readonly dep excludes dependency\",\n\t\t\treadOnlyPkgs:   []string{depPkg},\n\t\t\twantTargetPkgs: []string{localPkg},\n\t\t},\n\t\t{\n\t\t\tname:           \"readonly local excludes local\",\n\t\t\treadOnlyPkgs:   []string{localPkg},\n\t\t\twantTargetPkgs: []string{depPkg},\n\t\t},\n\t\t{\n\t\t\tname:           \"both readonly excludes all\",\n\t\t\treadOnlyPkgs:   []string{localPkg, depPkg},\n\t\t\twantTargetPkgs: nil,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\ta := &args.Args{\n\t\t\t\tOutputModelNameFile: \"zz_generated.model_name.go\",\n\t\t\t\tReadOnlyPkgs:        tt.readOnlyPkgs,\n\t\t\t}\n\n\t\t\ttargets := GetModelNameTargets(ctx, a, nil)\n\n\t\t\tgotPkgs := make([]string, 0, len(targets))\n\t\t\tfor _, tgt := range targets {\n\t\t\t\tst, ok := tgt.(*generator.SimpleTarget)\n\t\t\t\tif !ok {\n\t\t\t\t\tt.Fatalf(\"unexpected target type %T\", tgt)\n\t\t\t\t}\n\t\t\t\tgotPkgs = append(gotPkgs, st.PkgPath)\n\t\t\t}\n\n\t\t\tif len(gotPkgs) != len(tt.wantTargetPkgs) {\n\t\t\t\tt.Fatalf(\"got %d targets %v, want %d targets %v\", len(gotPkgs), gotPkgs, len(tt.wantTargetPkgs), tt.wantTargetPkgs)\n\t\t\t}\n\n\t\t\tfor i, want := range tt.wantTargetPkgs {\n\t\t\t\tif gotPkgs[i] != want {\n\t\t\t\t\tt.Errorf(\"target[%d] = %q, want %q\", i, gotPkgs[i], want)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/generators/enum.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage generators\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"k8s.io/gengo/v2\"\n\t\"k8s.io/gengo/v2/generator\"\n\t\"k8s.io/gengo/v2/types\"\n)\n\nconst tagEnumType = \"enum\"\nconst enumTypeDescriptionHeader = \"Possible enum values:\"\n\ntype enumValue struct {\n\tName    string\n\tValue   string\n\tComment string\n}\n\ntype enumType struct {\n\tName   types.Name\n\tValues []*enumValue\n}\n\n// enumMap is a map from the name to the matching enum type.\ntype enumMap map[types.Name]*enumType\n\ntype enumContext struct {\n\tenumTypes enumMap\n}\n\nfunc newEnumContext(c *generator.Context) *enumContext {\n\treturn &enumContext{enumTypes: parseEnums(c)}\n}\n\n// EnumType checks and finds the enumType for a given type.\n// If the given type is a known enum type, returns the enumType, true\n// Otherwise, returns nil, false\nfunc (ec *enumContext) EnumType(t *types.Type) (enum *enumType, isEnum bool) {\n\t// if t is a pointer, use its underlying type instead\n\tif t.Kind == types.Pointer {\n\t\tt = t.Elem\n\t}\n\tenum, ok := ec.enumTypes[t.Name]\n\treturn enum, ok\n}\n\n// ValueStrings returns all possible values of the enum type as strings\n// the results are sorted and quoted as Go literals.\nfunc (et *enumType) ValueStrings() []string {\n\tvar values []string\n\tfor _, value := range et.Values {\n\t\t// use \"%q\" format to generate a Go literal of the string const value\n\t\tvalues = append(values, fmt.Sprintf(\"%q\", value.Value))\n\t}\n\tsort.Strings(values)\n\treturn values\n}\n\n// DescriptionLines returns a description of the enum in this format:\n//\n// Possible enum values:\n//   - `\"value1\"` description 1\n//   - `\"value2\"` description 2\nfunc (et *enumType) DescriptionLines() []string {\n\tif len(et.Values) == 0 {\n\t\treturn nil\n\t}\n\tvar lines []string\n\tfor _, value := range et.Values {\n\t\tlines = append(lines, value.Description())\n\t}\n\tsort.Strings(lines)\n\t// Prepend an empty string to initiate a new paragraph.\n\treturn append([]string{\"\", enumTypeDescriptionHeader}, lines...)\n}\n\nfunc parseEnums(c *generator.Context) enumMap {\n\t// First, find the builtin \"string\" type\n\tstringType := c.Universe.Type(types.Name{Name: \"string\"})\n\n\t// find all enum types.\n\tenumTypes := make(enumMap)\n\tfor _, p := range c.Universe {\n\t\tfor _, t := range p.Types {\n\t\t\tif isEnumType(stringType, t) {\n\t\t\t\tif _, ok := enumTypes[t.Name]; !ok {\n\t\t\t\t\tenumTypes[t.Name] = &enumType{\n\t\t\t\t\t\tName: t.Name,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// find all enum values from constants, and try to match each with its type.\n\tfor _, p := range c.Universe {\n\t\tfor _, c := range p.Constants {\n\t\t\tenumType := c.Underlying\n\t\t\tif _, ok := enumTypes[enumType.Name]; ok {\n\t\t\t\tvalue := &enumValue{\n\t\t\t\t\tName:    c.Name.Name,\n\t\t\t\t\tValue:   *c.ConstValue,\n\t\t\t\t\tComment: strings.Join(c.CommentLines, \" \"),\n\t\t\t\t}\n\t\t\t\tenumTypes[enumType.Name].addIfNotPresent(value)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn enumTypes\n}\n\nfunc (et *enumType) addIfNotPresent(value *enumValue) {\n\t// If we already have an enum case with the same value, then ignore this new\n\t// one. This can happen if an enum aliases one from another package and\n\t// re-exports the cases.\n\tfor i, existing := range et.Values {\n\t\tif existing.Value == value.Value {\n\n\t\t\t// Take the value of the longer comment (or some other deterministic tie breaker)\n\t\t\tif len(existing.Comment) < len(value.Comment) || (len(existing.Comment) == len(value.Comment) && existing.Comment > value.Comment) {\n\t\t\t\tet.Values[i] = value\n\t\t\t}\n\n\t\t\treturn\n\t\t}\n\t}\n\tet.Values = append(et.Values, value)\n}\n\n// Description returns the description line for the enumValue\n// with the format:\n//   - `\"FooValue\"` is the Foo value\nfunc (ev *enumValue) Description() string {\n\tcomment := strings.TrimSpace(ev.Comment)\n\t// The comment should starts with the type name, trim it first.\n\tcomment = strings.TrimPrefix(comment, ev.Name)\n\t// Trim the possible space after previous step.\n\tcomment = strings.TrimSpace(comment)\n\t// The comment may be multiline, cascade all consecutive whitespaces.\n\tcomment = whitespaceRegex.ReplaceAllString(comment, \" \")\n\treturn fmt.Sprintf(\" - `%q` %s\", ev.Value, comment)\n}\n\n// isEnumType checks if a given type is an enum by the definition\n// An enum type should be an alias of string and has tag '+enum' in its comment.\n// Additionally, pass the type of builtin 'string' to check against.\nfunc isEnumType(stringType *types.Type, t *types.Type) bool {\n\treturn t.Kind == types.Alias && t.Underlying == stringType && hasEnumTag(t)\n}\n\nfunc hasEnumTag(t *types.Type) bool {\n\treturn gengo.ExtractCommentTags(\"+\", t.CommentLines)[tagEnumType] != nil\n}\n\n// whitespaceRegex is the regex for consecutive whitespaces.\nvar whitespaceRegex = regexp.MustCompile(`\\s+`)\n"
  },
  {
    "path": "pkg/generators/enum_test.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage generators\n\nimport (\n\t\"reflect\"\n\t\"sort\"\n\t\"testing\"\n\n\t\"k8s.io/gengo/v2/generator\"\n\t\"k8s.io/gengo/v2/types\"\n)\n\nfunc TestParseEnums(t *testing.T) {\n\tfor _, tc := range []struct {\n\t\tname     string\n\t\tuniverse types.Universe\n\t\texpected map[string][]string\n\t}{\n\t\t{\n\t\t\tname: \"value in different package\",\n\t\t\tuniverse: types.Universe{\n\t\t\t\t\"foo\": &types.Package{\n\t\t\t\t\tName: \"foo\",\n\t\t\t\t\tTypes: map[string]*types.Type{\n\t\t\t\t\t\t\"Foo\": {\n\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\tName:    \"Foo\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tKind:         types.Alias,\n\t\t\t\t\t\t\tUnderlying:   types.String,\n\t\t\t\t\t\t\tCommentLines: []string{\"+enum\"},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"bar\": &types.Package{\n\t\t\t\t\tName: \"bar\",\n\t\t\t\t\tConstants: map[string]*types.Type{\n\t\t\t\t\t\t\"Bar\": {\n\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\tPackage: \"bar\",\n\t\t\t\t\t\t\t\tName:    \"Bar\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tKind: types.Alias,\n\t\t\t\t\t\t\tUnderlying: &types.Type{\n\t\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\t\tName:    \"Foo\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConstValue: &[]string{\"bar\"}[0],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: map[string][]string{\n\t\t\t\t\"foo.Foo\": {\"bar\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"value in same package\",\n\t\t\tuniverse: types.Universe{\n\t\t\t\t\"foo\": &types.Package{\n\t\t\t\t\tName: \"foo\",\n\t\t\t\t\tTypes: map[string]*types.Type{\n\t\t\t\t\t\t\"Foo\": {\n\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\tName:    \"Foo\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tKind:         types.Alias,\n\t\t\t\t\t\t\tUnderlying:   types.String,\n\t\t\t\t\t\t\tCommentLines: []string{\"+enum\"},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tConstants: map[string]*types.Type{\n\t\t\t\t\t\t\"Bar\": {\n\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\tName:    \"Bar\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tKind: types.Alias,\n\t\t\t\t\t\t\tUnderlying: &types.Type{\n\t\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\t\tName:    \"Foo\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConstValue: &[]string{\"bar\"}[0],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: map[string][]string{\n\t\t\t\t\"foo.Foo\": {\"bar\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"values in same and different packages\",\n\t\t\tuniverse: types.Universe{\n\t\t\t\t\"foo\": &types.Package{\n\t\t\t\t\tName: \"foo\",\n\t\t\t\t\tTypes: map[string]*types.Type{\n\t\t\t\t\t\t\"Foo\": {\n\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\tName:    \"Foo\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tKind:         types.Alias,\n\t\t\t\t\t\t\tUnderlying:   types.String,\n\t\t\t\t\t\t\tCommentLines: []string{\"+enum\"},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tConstants: map[string]*types.Type{\n\t\t\t\t\t\t\"FooSame\": {\n\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\tName:    \"FooSame\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tKind: types.Alias,\n\t\t\t\t\t\t\tUnderlying: &types.Type{\n\t\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\t\tName:    \"Foo\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConstValue: &[]string{\"same\"}[0],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"bar\": &types.Package{\n\t\t\t\t\tName: \"bar\",\n\t\t\t\t\tConstants: map[string]*types.Type{\n\t\t\t\t\t\t\"FooDifferent\": {\n\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\tPackage: \"bar\",\n\t\t\t\t\t\t\t\tName:    \"FooDifferent\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tKind: types.Alias,\n\t\t\t\t\t\t\tUnderlying: &types.Type{\n\t\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\t\tName:    \"Foo\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConstValue: &[]string{\"different\"}[0],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: map[string][]string{\n\t\t\t\t\"foo.Foo\": {\"different\", \"same\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"aliasing and re-exporting enum from different package\",\n\t\t\tuniverse: types.Universe{\n\t\t\t\t\"foo\": &types.Package{\n\t\t\t\t\tName: \"foo\",\n\t\t\t\t\tTypes: map[string]*types.Type{\n\t\t\t\t\t\t\"Foo\": {\n\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\tName:    \"Foo\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tKind:         types.Alias,\n\t\t\t\t\t\t\tUnderlying:   types.String,\n\t\t\t\t\t\t\tCommentLines: []string{\"+enum\"},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tConstants: map[string]*types.Type{\n\t\t\t\t\t\t\"FooCase1\": {\n\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\tName:    \"FooCase1\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tKind: types.DeclarationOf,\n\t\t\t\t\t\t\tUnderlying: &types.Type{\n\t\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\t\tName:    \"Foo\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConstValue: &[]string{\"case1\"}[0],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"FooCase2\": {\n\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\tName:    \"FooCase2\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tKind: types.DeclarationOf,\n\t\t\t\t\t\t\tUnderlying: &types.Type{\n\t\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\t\tName:    \"Foo\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConstValue: &[]string{\"case2\"}[0],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\"bar\": &types.Package{\n\t\t\t\t\tName: \"bar\",\n\t\t\t\t\tConstants: map[string]*types.Type{\n\t\t\t\t\t\t\"FooCase1\": {\n\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\tName:    \"FooCase1\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tKind: types.DeclarationOf,\n\t\t\t\t\t\t\tUnderlying: &types.Type{\n\t\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\t\tName:    \"Foo\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConstValue: &[]string{\"case1\"}[0],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"FooCase2\": {\n\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\tName:    \"FooCase2\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tKind: types.DeclarationOf,\n\t\t\t\t\t\t\tUnderlying: &types.Type{\n\t\t\t\t\t\t\t\tName: types.Name{\n\t\t\t\t\t\t\t\t\tPackage: \"foo\",\n\t\t\t\t\t\t\t\t\tName:    \"Foo\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConstValue: &[]string{\"case2\"}[0],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: map[string][]string{\n\t\t\t\t\"foo.Foo\": {\"case1\", \"case2\"},\n\t\t\t},\n\t\t},\n\t} {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tenums := parseEnums(&generator.Context{Universe: tc.universe})\n\n\t\t\tactual := make(map[string][]string)\n\t\t\tfor _, enum := range enums {\n\t\t\t\tvalues := make([]string, len(enum.Values))\n\t\t\t\tfor i := range values {\n\t\t\t\t\tvalues[i] = enum.Values[i].Value\n\t\t\t\t}\n\t\t\t\tsort.Strings(values)\n\t\t\t\tactual[enum.Name.String()] = values\n\t\t\t}\n\n\t\t\tif !reflect.DeepEqual(tc.expected, actual) {\n\t\t\t\tt.Errorf(\"expected: %#v, got %#v\", tc.expected, actual)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/generators/extension.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage generators\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"k8s.io/gengo/v2\"\n\t\"k8s.io/gengo/v2/types\"\n\t\"k8s.io/kube-openapi/pkg/util/sets\"\n)\n\nconst extensionPrefix = \"x-kubernetes-\"\n\n// extensionAttributes encapsulates common traits for particular extensions.\ntype extensionAttributes struct {\n\txName         string\n\tkind          types.Kind\n\tallowedValues sets.String\n\tenforceArray  bool\n}\n\n// Extension tag to openapi extension attributes\nvar tagToExtension = map[string]extensionAttributes{\n\t\"patchMergeKey\": {\n\t\txName: \"x-kubernetes-patch-merge-key\",\n\t\tkind:  types.Slice,\n\t},\n\t\"patchStrategy\": {\n\t\txName:         \"x-kubernetes-patch-strategy\",\n\t\tkind:          types.Slice,\n\t\tallowedValues: sets.NewString(\"merge\", \"retainKeys\"),\n\t},\n\t\"listMapKey\": {\n\t\txName:        \"x-kubernetes-list-map-keys\",\n\t\tkind:         types.Slice,\n\t\tenforceArray: true,\n\t},\n\t\"listType\": {\n\t\txName:         \"x-kubernetes-list-type\",\n\t\tkind:          types.Slice,\n\t\tallowedValues: sets.NewString(\"atomic\", \"set\", \"map\"),\n\t},\n\t\"mapType\": {\n\t\txName:         \"x-kubernetes-map-type\",\n\t\tkind:          types.Map,\n\t\tallowedValues: sets.NewString(\"atomic\", \"granular\"),\n\t},\n\t\"structType\": {\n\t\txName:         \"x-kubernetes-map-type\",\n\t\tkind:          types.Struct,\n\t\tallowedValues: sets.NewString(\"atomic\", \"granular\"),\n\t},\n\t\"validations\": {\n\t\txName: \"x-kubernetes-validations\",\n\t\tkind:  types.Slice,\n\t},\n}\n\n// Extension encapsulates information necessary to generate an OpenAPI extension.\ntype extension struct {\n\tidlTag string   // Example: listType\n\txName  string   // Example: x-kubernetes-list-type\n\tvalues []string // Example: [atomic]\n}\n\nfunc (e extension) hasAllowedValues() bool {\n\treturn tagToExtension[e.idlTag].allowedValues.Len() > 0\n}\n\nfunc (e extension) allowedValues() sets.String {\n\treturn tagToExtension[e.idlTag].allowedValues\n}\n\nfunc (e extension) hasKind() bool {\n\treturn len(tagToExtension[e.idlTag].kind) > 0\n}\n\nfunc (e extension) kind() types.Kind {\n\treturn tagToExtension[e.idlTag].kind\n}\n\nfunc (e extension) validateAllowedValues() error {\n\t// allowedValues not set means no restrictions on values.\n\tif !e.hasAllowedValues() {\n\t\treturn nil\n\t}\n\t// Check for missing value.\n\tif len(e.values) == 0 {\n\t\treturn fmt.Errorf(\"%s needs a value, none given.\", e.idlTag)\n\t}\n\t// For each extension value, validate that it is allowed.\n\tallowedValues := e.allowedValues()\n\tif !allowedValues.HasAll(e.values...) {\n\t\treturn fmt.Errorf(\"%v not allowed for %s. Allowed values: %v\",\n\t\t\te.values, e.idlTag, allowedValues.List())\n\t}\n\treturn nil\n}\n\nfunc (e extension) validateType(kind types.Kind) error {\n\t// If this extension class has no kind, then don't validate the type.\n\tif !e.hasKind() {\n\t\treturn nil\n\t}\n\tif kind != e.kind() {\n\t\treturn fmt.Errorf(\"tag %s on type %v; only allowed on type %v\",\n\t\t\te.idlTag, kind, e.kind())\n\t}\n\treturn nil\n}\n\nfunc (e extension) hasMultipleValues() bool {\n\treturn len(e.values) > 1\n}\n\nfunc (e extension) isAlwaysArrayFormat() bool {\n\treturn tagToExtension[e.idlTag].enforceArray\n}\n\n// Returns sorted list of map keys. Needed for deterministic testing.\nfunc sortedMapKeys(m map[string][]string) []string {\n\tkeys := make([]string, len(m))\n\ti := 0\n\tfor k := range m {\n\t\tkeys[i] = k\n\t\ti++\n\t}\n\tsort.Strings(keys)\n\treturn keys\n}\n\n// Parses comments to return openapi extensions. Returns a list of\n// extensions which parsed correctly, as well as a list of the\n// parse errors. Validating extensions is performed separately.\n// NOTE: Non-empty errors does not mean extensions is empty.\nfunc parseExtensions(comments []string) ([]extension, []error) {\n\textensions := []extension{}\n\terrors := []error{}\n\t// First, generate extensions from \"+k8s:openapi-gen=x-kubernetes-*\" annotations.\n\tvalues := getOpenAPITagValue(comments)\n\tfor _, val := range values {\n\t\t// Example: x-kubernetes-member-tag:member_test\n\t\tif strings.HasPrefix(val, extensionPrefix) {\n\t\t\tparts := strings.SplitN(val, \":\", 2)\n\t\t\tif len(parts) != 2 {\n\t\t\t\terrors = append(errors, fmt.Errorf(\"invalid extension value: %v\", val))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\te := extension{\n\t\t\t\tidlTag: tagName,            // Example: k8s:openapi-gen\n\t\t\t\txName:  parts[0],           // Example: x-kubernetes-member-tag\n\t\t\t\tvalues: []string{parts[1]}, // Example: member_test\n\t\t\t}\n\t\t\textensions = append(extensions, e)\n\t\t}\n\t}\n\t// Next, generate extensions from \"idlTags\" (e.g. +listType)\n\ttagValues := gengo.ExtractCommentTags(\"+\", comments)\n\tfor _, idlTag := range sortedMapKeys(tagValues) {\n\t\txAttrs, exists := tagToExtension[idlTag]\n\t\tif !exists {\n\t\t\tcontinue\n\t\t}\n\t\tvalues := tagValues[idlTag]\n\t\te := extension{\n\t\t\tidlTag: idlTag,       // listType\n\t\t\txName:  xAttrs.xName, // x-kubernetes-list-type\n\t\t\tvalues: values,       // [atomic]\n\t\t}\n\t\textensions = append(extensions, e)\n\t}\n\treturn extensions, errors\n}\n\nfunc validateMemberExtensions(extensions []extension, m *types.Member) []error {\n\terrors := []error{}\n\tfor _, e := range extensions {\n\t\tif err := e.validateAllowedValues(); err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t\tif err := e.validateType(m.Type.Kind); err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn errors\n}\n"
  },
  {
    "path": "pkg/generators/extension_test.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage generators\n\nimport (\n\t\"reflect\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"k8s.io/gengo/v2/types\"\n\t\"k8s.io/kube-openapi/pkg/util/sets\"\n)\n\nfunc TestSingleTagExtension(t *testing.T) {\n\n\t// Comments only contain one tag extension and one value.\n\tvar tests = []struct {\n\t\tcomments        []string\n\t\textensionTag    string\n\t\textensionName   string\n\t\textensionValues []string\n\t}{\n\t\t{\n\t\t\tcomments:        []string{\"+patchMergeKey=name\"},\n\t\t\textensionTag:    \"patchMergeKey\",\n\t\t\textensionName:   \"x-kubernetes-patch-merge-key\",\n\t\t\textensionValues: []string{\"name\"},\n\t\t},\n\t\t{\n\t\t\tcomments:        []string{\"+patchStrategy=merge\"},\n\t\t\textensionTag:    \"patchStrategy\",\n\t\t\textensionName:   \"x-kubernetes-patch-strategy\",\n\t\t\textensionValues: []string{\"merge\"},\n\t\t},\n\t\t{\n\t\t\tcomments:        []string{\"+listType=atomic\"},\n\t\t\textensionTag:    \"listType\",\n\t\t\textensionName:   \"x-kubernetes-list-type\",\n\t\t\textensionValues: []string{\"atomic\"},\n\t\t},\n\t\t{\n\t\t\tcomments:        []string{\"+listMapKey=port\"},\n\t\t\textensionTag:    \"listMapKey\",\n\t\t\textensionName:   \"x-kubernetes-list-map-keys\",\n\t\t\textensionValues: []string{\"port\"},\n\t\t},\n\t\t{\n\t\t\tcomments:        []string{\"+mapType=granular\"},\n\t\t\textensionTag:    \"mapType\",\n\t\t\textensionName:   \"x-kubernetes-map-type\",\n\t\t\textensionValues: []string{\"granular\"},\n\t\t},\n\t\t{\n\t\t\tcomments:        []string{\"+k8s:openapi-gen=x-kubernetes-member-tag:member_test\"},\n\t\t\textensionTag:    \"k8s:openapi-gen\",\n\t\t\textensionName:   \"x-kubernetes-member-tag\",\n\t\t\textensionValues: []string{\"member_test\"},\n\t\t},\n\t\t{\n\t\t\tcomments:        []string{\"+k8s:openapi-gen=x-kubernetes-member-tag:member_test:member_test2\"},\n\t\t\textensionTag:    \"k8s:openapi-gen\",\n\t\t\textensionName:   \"x-kubernetes-member-tag\",\n\t\t\textensionValues: []string{\"member_test:member_test2\"},\n\t\t},\n\t\t{\n\t\t\t// Test that poorly formatted extensions aren't added.\n\t\t\tcomments: []string{\n\t\t\t\t\"+k8s:openapi-gen=x-kubernetes-no-value\",\n\t\t\t\t\"+k8s:openapi-gen=x-kubernetes-member-success:success\",\n\t\t\t\t\"+k8s:openapi-gen=x-kubernetes-wrong-separator;error\",\n\t\t\t},\n\t\t\textensionTag:    \"k8s:openapi-gen\",\n\t\t\textensionName:   \"x-kubernetes-member-success\",\n\t\t\textensionValues: []string{\"success\"},\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\textensions, _ := parseExtensions(test.comments)\n\t\tactual := extensions[0]\n\t\tif actual.idlTag != test.extensionTag {\n\t\t\tt.Errorf(\"Extension Tag: expected (%s), actual (%s)\\n\", test.extensionTag, actual.idlTag)\n\t\t}\n\t\tif actual.xName != test.extensionName {\n\t\t\tt.Errorf(\"Extension Name: expected (%s), actual (%s)\\n\", test.extensionName, actual.xName)\n\t\t}\n\t\tif !reflect.DeepEqual(actual.values, test.extensionValues) {\n\t\t\tt.Errorf(\"Extension Values: expected (%s), actual (%s)\\n\", test.extensionValues, actual.values)\n\t\t}\n\t\tif actual.hasMultipleValues() {\n\t\t\tt.Errorf(\"%s: hasMultipleValues() should be false\\n\", actual.xName)\n\t\t}\n\t}\n\n}\n\nfunc TestMultipleTagExtensions(t *testing.T) {\n\n\tvar tests = []struct {\n\t\tcomments        []string\n\t\textensionTag    string\n\t\textensionName   string\n\t\textensionValues []string\n\t}{\n\t\t{\n\t\t\tcomments: []string{\n\t\t\t\t\"+listMapKey=port\",\n\t\t\t\t\"+listMapKey=protocol\",\n\t\t\t},\n\t\t\textensionTag:    \"listMapKey\",\n\t\t\textensionName:   \"x-kubernetes-list-map-keys\",\n\t\t\textensionValues: []string{\"port\", \"protocol\"},\n\t\t},\n\t}\n\tfor _, test := range tests {\n\t\textensions, errors := parseExtensions(test.comments)\n\t\tif len(errors) > 0 {\n\t\t\tt.Errorf(\"Unexpected errors: %v\\n\", errors)\n\t\t}\n\t\tactual := extensions[0]\n\t\tif actual.idlTag != test.extensionTag {\n\t\t\tt.Errorf(\"Extension Tag: expected (%s), actual (%s)\\n\", test.extensionTag, actual.idlTag)\n\t\t}\n\t\tif actual.xName != test.extensionName {\n\t\t\tt.Errorf(\"Extension Name: expected (%s), actual (%s)\\n\", test.extensionName, actual.xName)\n\t\t}\n\t\tif !reflect.DeepEqual(actual.values, test.extensionValues) {\n\t\t\tt.Errorf(\"Extension Values: expected (%s), actual (%s)\\n\", test.extensionValues, actual.values)\n\t\t}\n\t\tif !actual.hasMultipleValues() {\n\t\t\tt.Errorf(\"%s: hasMultipleValues() should be true\\n\", actual.xName)\n\t\t}\n\t}\n\n}\n\nfunc TestExtensionParseErrors(t *testing.T) {\n\n\tvar tests = []struct {\n\t\tcomments     []string\n\t\terrorMessage string\n\t}{\n\t\t{\n\t\t\t// Missing extension value should be an error.\n\t\t\tcomments: []string{\n\t\t\t\t\"+k8s:openapi-gen=x-kubernetes-no-value\",\n\t\t\t},\n\t\t\terrorMessage: \"x-kubernetes-no-value\",\n\t\t},\n\t\t{\n\t\t\t// Wrong separator should be an error.\n\t\t\tcomments: []string{\n\t\t\t\t\"+k8s:openapi-gen=x-kubernetes-wrong-separator;error\",\n\t\t\t},\n\t\t\terrorMessage: \"x-kubernetes-wrong-separator;error\",\n\t\t},\n\t}\n\n\tfor _, test := range tests {\n\t\t_, errors := parseExtensions(test.comments)\n\t\tif len(errors) == 0 {\n\t\t\tt.Errorf(\"Expected errors while parsing: %v\\n\", test.comments)\n\t\t}\n\t\terror := errors[0]\n\t\tif !strings.Contains(error.Error(), test.errorMessage) {\n\t\t\tt.Errorf(\"Error (%v) should contain substring (%s)\\n\", error, test.errorMessage)\n\t\t}\n\t}\n}\n\nfunc TestExtensionAllowedValues(t *testing.T) {\n\n\tvar methodTests = []struct {\n\t\te             extension\n\t\tallowedValues sets.String\n\t}{\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"patchStrategy\",\n\t\t\t},\n\t\t\tallowedValues: sets.NewString(\"merge\", \"retainKeys\"),\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"patchMergeKey\",\n\t\t\t},\n\t\t\tallowedValues: nil,\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"listType\",\n\t\t\t},\n\t\t\tallowedValues: sets.NewString(\"atomic\", \"set\", \"map\"),\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"listMapKey\",\n\t\t\t},\n\t\t\tallowedValues: nil,\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"mapType\",\n\t\t\t},\n\t\t\tallowedValues: sets.NewString(\"atomic\", \"granular\"),\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"structType\",\n\t\t\t},\n\t\t\tallowedValues: sets.NewString(\"atomic\", \"granular\"),\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"k8s:openapi-gen\",\n\t\t\t},\n\t\t\tallowedValues: nil,\n\t\t},\n\t}\n\tfor _, test := range methodTests {\n\t\tif test.allowedValues != nil {\n\t\t\tif !test.e.hasAllowedValues() {\n\t\t\t\tt.Errorf(\"hasAllowedValues() expected (true), but received: false\")\n\t\t\t}\n\t\t\tif !reflect.DeepEqual(test.allowedValues, test.e.allowedValues()) {\n\t\t\t\tt.Errorf(\"allowedValues() expected (%v), but received: %v\",\n\t\t\t\t\ttest.allowedValues, test.e.allowedValues())\n\t\t\t}\n\t\t}\n\t\tif test.allowedValues == nil && test.e.hasAllowedValues() {\n\t\t\tt.Errorf(\"hasAllowedValues() expected (false), but received: true\")\n\t\t}\n\t}\n\n\tvar successTests = []struct {\n\t\te extension\n\t}{\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"patchStrategy\",\n\t\t\t\txName:  \"x-kubernetes-patch-strategy\",\n\t\t\t\tvalues: []string{\"merge\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// Validate multiple values.\n\t\t\te: extension{\n\t\t\t\tidlTag: \"patchStrategy\",\n\t\t\t\txName:  \"x-kubernetes-patch-strategy\",\n\t\t\t\tvalues: []string{\"merge\", \"retainKeys\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"patchMergeKey\",\n\t\t\t\txName:  \"x-kubernetes-patch-merge-key\",\n\t\t\t\tvalues: []string{\"key1\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"listType\",\n\t\t\t\txName:  \"x-kubernetes-list-type\",\n\t\t\t\tvalues: []string{\"atomic\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"mapType\",\n\t\t\t\txName:  \"x-kubernetes-map-type\",\n\t\t\t\tvalues: []string{\"atomic\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"structType\",\n\t\t\t\txName:  \"x-kubernetes-map-type\",\n\t\t\t\tvalues: []string{\"granular\"},\n\t\t\t},\n\t\t},\n\t}\n\tfor _, test := range successTests {\n\t\tactualErr := test.e.validateAllowedValues()\n\t\tif actualErr != nil {\n\t\t\tt.Errorf(\"Expected no error for (%v), but received: %v\\n\", test.e, actualErr)\n\t\t}\n\t}\n\n\tvar failureTests = []struct {\n\t\te extension\n\t}{\n\t\t{\n\t\t\t// Every value must be allowed.\n\t\t\te: extension{\n\t\t\t\tidlTag: \"patchStrategy\",\n\t\t\t\txName:  \"x-kubernetes-patch-strategy\",\n\t\t\t\tvalues: []string{\"disallowed\", \"merge\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"patchStrategy\",\n\t\t\t\txName:  \"x-kubernetes-patch-strategy\",\n\t\t\t\tvalues: []string{\"foo\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"listType\",\n\t\t\t\txName:  \"x-kubernetes-list-type\",\n\t\t\t\tvalues: []string{\"not-allowed\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"mapType\",\n\t\t\t\txName:  \"x-kubernetes-map-type\",\n\t\t\t\tvalues: []string{\"something-pretty-wrong\"},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"structType\",\n\t\t\t\txName:  \"x-kubernetes-map-type\",\n\t\t\t\tvalues: []string{\"not-quite-right\"},\n\t\t\t},\n\t\t},\n\t}\n\tfor _, test := range failureTests {\n\t\tactualErr := test.e.validateAllowedValues()\n\t\tif actualErr == nil {\n\t\t\tt.Errorf(\"Expected error, but received none: %v\\n\", test.e)\n\t\t}\n\t}\n\n}\n\nfunc TestExtensionKind(t *testing.T) {\n\n\tvar methodTests = []struct {\n\t\te    extension\n\t\tkind types.Kind\n\t}{\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"patchStrategy\",\n\t\t\t},\n\t\t\tkind: types.Slice,\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"patchMergeKey\",\n\t\t\t},\n\t\t\tkind: types.Slice,\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"listType\",\n\t\t\t},\n\t\t\tkind: types.Slice,\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"mapType\",\n\t\t\t},\n\t\t\tkind: types.Map,\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"structType\",\n\t\t\t},\n\t\t\tkind: types.Struct,\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"listMapKey\",\n\t\t\t},\n\t\t\tkind: types.Slice,\n\t\t},\n\t\t{\n\t\t\te: extension{\n\t\t\t\tidlTag: \"k8s:openapi-gen\",\n\t\t\t},\n\t\t\tkind: \"\",\n\t\t},\n\t}\n\tfor _, test := range methodTests {\n\t\tif len(test.kind) > 0 {\n\t\t\tif !test.e.hasKind() {\n\t\t\t\tt.Errorf(\"%v: hasKind() expected (true), but received: false\", test.e)\n\t\t\t}\n\t\t\tif test.kind != test.e.kind() {\n\t\t\t\tt.Errorf(\"%v: kind() expected (%v), but received: %v\", test.e, test.kind, test.e.kind())\n\t\t\t}\n\t\t} else {\n\t\t\tif test.e.hasKind() {\n\t\t\t\tt.Errorf(\"%v: hasKind() expected (false), but received: true\", test.e)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestValidateMemberExtensions(t *testing.T) {\n\n\tpatchStrategyExtension := extension{\n\t\tidlTag: \"patchStrategy\",\n\t\txName:  \"x-kubernetes-patch-strategy\",\n\t\tvalues: []string{\"merge\"},\n\t}\n\tpatchMergeKeyExtension := extension{\n\t\tidlTag: \"patchMergeKey\",\n\t\txName:  \"x-kubernetes-patch-merge-key\",\n\t\tvalues: []string{\"key1\", \"key2\"},\n\t}\n\tlistTypeExtension := extension{\n\t\tidlTag: \"listType\",\n\t\txName:  \"x-kubernetes-list-type\",\n\t\tvalues: []string{\"atomic\"},\n\t}\n\tlistMapKeysExtension := extension{\n\t\tidlTag: \"listMapKey\",\n\t\txName:  \"x-kubernetes-map-keys\",\n\t\tvalues: []string{\"key1\"},\n\t}\n\tgenExtension := extension{\n\t\tidlTag: \"k8s:openapi-gen\",\n\t\txName:  \"x-kubernetes-member-type\",\n\t\tvalues: []string{\"value1\"},\n\t}\n\n\tsliceField := types.Member{\n\t\tName: \"Containers\",\n\t\tType: &types.Type{\n\t\t\tKind: types.Slice,\n\t\t},\n\t}\n\tmapField := types.Member{\n\t\tName: \"Containers\",\n\t\tType: &types.Type{\n\t\t\tKind: types.Map,\n\t\t},\n\t}\n\n\tvar successTests = []struct {\n\t\textensions []extension\n\t\tmember     types.Member\n\t}{\n\t\t// Test single member extension\n\t\t{\n\t\t\textensions: []extension{patchStrategyExtension},\n\t\t\tmember:     sliceField,\n\t\t},\n\t\t// Test multiple member extensions\n\t\t{\n\t\t\textensions: []extension{\n\t\t\t\tpatchMergeKeyExtension,\n\t\t\t\tlistTypeExtension,\n\t\t\t\tlistMapKeysExtension,\n\t\t\t\tgenExtension, // Should not generate errors during type validation\n\t\t\t},\n\t\t\tmember: sliceField,\n\t\t},\n\t}\n\tfor _, test := range successTests {\n\t\terrors := validateMemberExtensions(test.extensions, &test.member)\n\t\tif len(errors) > 0 {\n\t\t\tt.Errorf(\"validateMemberExtensions: %v should have produced no errors. Errors: %v\",\n\t\t\t\ttest.extensions, errors)\n\t\t}\n\t}\n\n\tvar failureTests = []struct {\n\t\textensions []extension\n\t\tmember     types.Member\n\t}{\n\t\t// Test single member extension\n\t\t{\n\t\t\textensions: []extension{patchStrategyExtension},\n\t\t\tmember:     mapField,\n\t\t},\n\t\t// Test multiple member extensions\n\t\t{\n\t\t\textensions: []extension{\n\t\t\t\tpatchMergeKeyExtension,\n\t\t\t\tlistTypeExtension,\n\t\t\t\tlistMapKeysExtension,\n\t\t\t},\n\t\t\tmember: mapField,\n\t\t},\n\t}\n\tfor _, test := range failureTests {\n\t\terrors := validateMemberExtensions(test.extensions, &test.member)\n\t\tif len(errors) != len(test.extensions) {\n\t\t\tt.Errorf(\"validateMemberExtensions: %v should have produced all errors. Errors: %v\",\n\t\t\t\ttest.extensions, errors)\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "pkg/generators/markers.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n\thttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage generators\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"k8s.io/gengo/v2/types\"\n\topenapi \"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\ntype CELTag struct {\n\tRule              string `json:\"rule,omitempty\"`\n\tMessage           string `json:\"message,omitempty\"`\n\tMessageExpression string `json:\"messageExpression,omitempty\"`\n\tOptionalOldSelf   *bool  `json:\"optionalOldSelf,omitempty\"`\n\tReason            string `json:\"reason,omitempty\"`\n\tFieldPath         string `json:\"fieldPath,omitempty\"`\n}\n\nfunc (c *CELTag) Validate() error {\n\tif c == nil || *c == (CELTag{}) {\n\t\treturn fmt.Errorf(\"empty CEL tag is not allowed\")\n\t}\n\n\tvar errs []error\n\tif c.Rule == \"\" {\n\t\terrs = append(errs, fmt.Errorf(\"rule cannot be empty\"))\n\t}\n\tif c.Message == \"\" && c.MessageExpression == \"\" {\n\t\terrs = append(errs, fmt.Errorf(\"message or messageExpression must be set\"))\n\t}\n\tif c.Message != \"\" && c.MessageExpression != \"\" {\n\t\terrs = append(errs, fmt.Errorf(\"message and messageExpression cannot be set at the same time\"))\n\t}\n\n\tif len(errs) > 0 {\n\t\treturn errors.Join(errs...)\n\t}\n\n\treturn nil\n}\n\n// isKnownTagCommentKey returns true if the given key is a known comment tag key.\n// Known keys are identified by the json field tags in the commentTags struct.\n// If the key is a composite key, only the first key part is checked, and is\n// expected to be separated by the remainder of the key by a ':' or '[' delimiter.\nfunc isKnownTagCommentKey(key string) bool {\n\tsplit := func(r rune) bool { return r == ':' || r == '[' }\n\tcommentTags := strings.FieldsFunc(key, split)\n\tif len(commentTags) == 0 {\n\t\treturn false\n\t}\n\t_, ok := tagKeys()[commentTags[0]]\n\treturn ok\n}\n\nvar tagKeys = sync.OnceValue(func() map[string]struct{} {\n\tresult := map[string]struct{}{}\n\tt := reflect.TypeOf(commentTags{})\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tfield := t.Field(i)\n\t\tif jsonTag := field.Tag.Get(\"json\"); jsonTag != \"\" {\n\t\t\tif key, _, _ := strings.Cut(jsonTag, \",\"); key != \"\" {\n\t\t\t\tresult[key] = struct{}{}\n\t\t\t}\n\t\t}\n\t}\n\treturn result\n})\n\n// commentTags represents the parsed comment tags for a given type. These types are then used to generate schema validations.\n// These only include the newer prefixed tags. The older tags are still supported,\n// but are not included in this struct. Comment Tags are transformed into a\n// *spec.Schema, which is then combined with the older marker comments to produce\n// the generated OpenAPI spec.\n//\n// List of tags not included in this struct:\n//\n// - +optional\n// - +default\n// - +listType\n// - +listMapKeys\n// - +mapType\ntype commentTags struct {\n\tNullable         *bool         `json:\"nullable,omitempty\"`\n\tFormat           *string       `json:\"format,omitempty\"`\n\tMaximum          *float64      `json:\"maximum,omitempty\"`\n\tExclusiveMaximum *bool         `json:\"exclusiveMaximum,omitempty\"`\n\tMinimum          *float64      `json:\"minimum,omitempty\"`\n\tExclusiveMinimum *bool         `json:\"exclusiveMinimum,omitempty\"`\n\tMaxLength        *int64        `json:\"maxLength,omitempty\"`\n\tMinLength        *int64        `json:\"minLength,omitempty\"`\n\tPattern          *string       `json:\"pattern,omitempty\"`\n\tMaxItems         *int64        `json:\"maxItems,omitempty\"`\n\tMinItems         *int64        `json:\"minItems,omitempty\"`\n\tUniqueItems      *bool         `json:\"uniqueItems,omitempty\"`\n\tMultipleOf       *float64      `json:\"multipleOf,omitempty\"`\n\tEnum             []interface{} `json:\"enum,omitempty\"`\n\tMaxProperties    *int64        `json:\"maxProperties,omitempty\"`\n\tMinProperties    *int64        `json:\"minProperties,omitempty\"`\n\n\t// Nested commentTags for extending the schemas of subfields at point-of-use\n\t// when you cant annotate them directly. Cannot be used to add properties\n\t// or remove validations on the overridden schema.\n\tItems                *commentTags            `json:\"items,omitempty\"`\n\tProperties           map[string]*commentTags `json:\"properties,omitempty\"`\n\tAdditionalProperties *commentTags            `json:\"additionalProperties,omitempty\"`\n\n\tCEL []CELTag `json:\"cel,omitempty\"`\n\n\t// Future markers can all be parsed into this centralized struct...\n\t// Optional bool `json:\"optional,omitempty\"`\n\t// Default  any  `json:\"default,omitempty\"`\n}\n\n// Returns the schema for the given CommentTags instance.\n// This is the final authoritative schema for the comment tags\nfunc (c *commentTags) ValidationSchema() (*spec.Schema, error) {\n\tif c == nil {\n\t\treturn nil, nil\n\t}\n\n\tisNullable := c.Nullable != nil && *c.Nullable\n\tformat := \"\"\n\tif c.Format != nil {\n\t\tformat = *c.Format\n\t}\n\tisExclusiveMaximum := c.ExclusiveMaximum != nil && *c.ExclusiveMaximum\n\tisExclusiveMinimum := c.ExclusiveMinimum != nil && *c.ExclusiveMinimum\n\tisUniqueItems := c.UniqueItems != nil && *c.UniqueItems\n\tpattern := \"\"\n\tif c.Pattern != nil {\n\t\tpattern = *c.Pattern\n\t}\n\n\tvar transformedItems *spec.SchemaOrArray\n\tvar transformedProperties map[string]spec.Schema\n\tvar transformedAdditionalProperties *spec.SchemaOrBool\n\n\tif c.Items != nil {\n\t\titems, err := c.Items.ValidationSchema()\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to transform items: %w\", err)\n\t\t}\n\t\ttransformedItems = &spec.SchemaOrArray{Schema: items}\n\t}\n\n\tif c.Properties != nil {\n\t\tproperties := make(map[string]spec.Schema)\n\t\tfor key, value := range c.Properties {\n\t\t\tproperty, err := value.ValidationSchema()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"failed to transform property %q: %w\", key, err)\n\t\t\t}\n\t\t\tproperties[key] = *property\n\t\t}\n\t\ttransformedProperties = properties\n\t}\n\n\tif c.AdditionalProperties != nil {\n\t\tadditionalProperties, err := c.AdditionalProperties.ValidationSchema()\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to transform additionalProperties: %w\", err)\n\t\t}\n\t\ttransformedAdditionalProperties = &spec.SchemaOrBool{Schema: additionalProperties, Allows: true}\n\t}\n\n\tres := spec.Schema{\n\t\tSchemaProps: spec.SchemaProps{\n\t\t\tNullable:         isNullable,\n\t\t\tFormat:           format,\n\t\t\tMaximum:          c.Maximum,\n\t\t\tExclusiveMaximum: isExclusiveMaximum,\n\t\t\tMinimum:          c.Minimum,\n\t\t\tExclusiveMinimum: isExclusiveMinimum,\n\t\t\tMaxLength:        c.MaxLength,\n\t\t\tMinLength:        c.MinLength,\n\t\t\tPattern:          pattern,\n\t\t\tMaxItems:         c.MaxItems,\n\t\t\tMinItems:         c.MinItems,\n\t\t\tUniqueItems:      isUniqueItems,\n\t\t\tMultipleOf:       c.MultipleOf,\n\t\t\tEnum:             c.Enum,\n\t\t\tMaxProperties:    c.MaxProperties,\n\t\t\tMinProperties:    c.MinProperties,\n\t\t},\n\t}\n\n\tif len(c.CEL) > 0 {\n\t\t// Convert the CELTag to a map[string]interface{} via JSON\n\t\tcelTagJSON, err := json.Marshal(c.CEL)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to marshal CEL tag: %w\", err)\n\t\t}\n\t\tvar celTagMap []interface{}\n\t\tif err := json.Unmarshal(celTagJSON, &celTagMap); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to unmarshal CEL tag: %w\", err)\n\t\t}\n\n\t\tres.VendorExtensible.AddExtension(\"x-kubernetes-validations\", celTagMap)\n\t}\n\n\t// Dont add structural properties directly to this schema. This schema\n\t// is used only for validation.\n\tif transformedItems != nil || len(transformedProperties) > 0 || transformedAdditionalProperties != nil {\n\t\tres.AllOf = append(res.AllOf, spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tItems:                transformedItems,\n\t\t\t\tProperties:           transformedProperties,\n\t\t\t\tAdditionalProperties: transformedAdditionalProperties,\n\t\t\t},\n\t\t})\n\t}\n\n\treturn &res, nil\n}\n\n// validates the parameters in a CommentTags instance. Returns any errors encountered.\nfunc (c commentTags) Validate() error {\n\n\tvar err error\n\n\tif c.MinLength != nil && *c.MinLength < 0 {\n\t\terr = errors.Join(err, fmt.Errorf(\"minLength cannot be negative\"))\n\t}\n\tif c.MaxLength != nil && *c.MaxLength < 0 {\n\t\terr = errors.Join(err, fmt.Errorf(\"maxLength cannot be negative\"))\n\t}\n\tif c.MinItems != nil && *c.MinItems < 0 {\n\t\terr = errors.Join(err, fmt.Errorf(\"minItems cannot be negative\"))\n\t}\n\tif c.MaxItems != nil && *c.MaxItems < 0 {\n\t\terr = errors.Join(err, fmt.Errorf(\"maxItems cannot be negative\"))\n\t}\n\tif c.MinProperties != nil && *c.MinProperties < 0 {\n\t\terr = errors.Join(err, fmt.Errorf(\"minProperties cannot be negative\"))\n\t}\n\tif c.MaxProperties != nil && *c.MaxProperties < 0 {\n\t\terr = errors.Join(err, fmt.Errorf(\"maxProperties cannot be negative\"))\n\t}\n\tif c.Minimum != nil && c.Maximum != nil && *c.Minimum > *c.Maximum {\n\t\terr = errors.Join(err, fmt.Errorf(\"minimum %f is greater than maximum %f\", *c.Minimum, *c.Maximum))\n\t}\n\tif (c.ExclusiveMinimum != nil || c.ExclusiveMaximum != nil) && c.Minimum != nil && c.Maximum != nil && *c.Minimum == *c.Maximum {\n\t\terr = errors.Join(err, fmt.Errorf(\"exclusiveMinimum/Maximum cannot be set when minimum == maximum\"))\n\t}\n\tif c.MinLength != nil && c.MaxLength != nil && *c.MinLength > *c.MaxLength {\n\t\terr = errors.Join(err, fmt.Errorf(\"minLength %d is greater than maxLength %d\", *c.MinLength, *c.MaxLength))\n\t}\n\tif c.MinItems != nil && c.MaxItems != nil && *c.MinItems > *c.MaxItems {\n\t\terr = errors.Join(err, fmt.Errorf(\"minItems %d is greater than maxItems %d\", *c.MinItems, *c.MaxItems))\n\t}\n\tif c.MinProperties != nil && c.MaxProperties != nil && *c.MinProperties > *c.MaxProperties {\n\t\terr = errors.Join(err, fmt.Errorf(\"minProperties %d is greater than maxProperties %d\", *c.MinProperties, *c.MaxProperties))\n\t}\n\tif c.Pattern != nil {\n\t\t_, e := regexp.Compile(*c.Pattern)\n\t\tif e != nil {\n\t\t\terr = errors.Join(err, fmt.Errorf(\"invalid pattern %q: %v\", *c.Pattern, e))\n\t\t}\n\t}\n\tif c.MultipleOf != nil && *c.MultipleOf == 0 {\n\t\terr = errors.Join(err, fmt.Errorf(\"multipleOf cannot be 0\"))\n\t}\n\n\tfor i, celTag := range c.CEL {\n\t\tcelError := celTag.Validate()\n\t\tif celError == nil {\n\t\t\tcontinue\n\t\t}\n\t\terr = errors.Join(err, fmt.Errorf(\"invalid CEL tag at index %d: %w\", i, celError))\n\t}\n\n\treturn err\n}\n\n// Performs type-specific validation for CommentTags porameters. Accepts a Type instance and returns any errors encountered during validation.\nfunc (c commentTags) ValidateType(t *types.Type) error {\n\tvar err error\n\n\tresolvedType := resolveAliasAndPtrType(t)\n\ttypeString, _ := openapi.OpenAPITypeFormat(resolvedType.String()) // will be empty for complicated types\n\n\t// Structs and interfaces may dynamically be any type, so we cant validate them\n\t// easily.\n\tif resolvedType.Kind == types.Interface || resolvedType.Kind == types.Struct {\n\t\t// Skip validation for structs and interfaces which implement custom\n\t\t// overrides\n\t\t//\n\t\t// Only check top-level t type without resolving alias to mirror generator\n\t\t// behavior. Generator only checks the top level type without resolving\n\t\t// alias. The `has*Method` functions can be changed to add this behavior in the\n\t\t// future if needed.\n\t\telemT := resolvePtrType(t)\n\t\tif hasOpenAPIDefinitionMethod(elemT) ||\n\t\t\thasOpenAPIDefinitionMethods(elemT) ||\n\t\t\thasOpenAPIV3DefinitionMethod(elemT) ||\n\t\t\thasOpenAPIV3OneOfMethod(elemT) {\n\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tisArray := resolvedType.Kind == types.Slice || resolvedType.Kind == types.Array\n\tisMap := resolvedType.Kind == types.Map\n\tisString := typeString == \"string\"\n\tisInt := typeString == \"integer\"\n\tisFloat := typeString == \"number\"\n\tisStruct := resolvedType.Kind == types.Struct\n\n\tif c.MaxItems != nil && !isArray {\n\t\terr = errors.Join(err, fmt.Errorf(\"maxItems can only be used on array types\"))\n\t}\n\tif c.MinItems != nil && !isArray {\n\t\terr = errors.Join(err, fmt.Errorf(\"minItems can only be used on array types\"))\n\t}\n\tif c.UniqueItems != nil && !isArray {\n\t\terr = errors.Join(err, fmt.Errorf(\"uniqueItems can only be used on array types\"))\n\t}\n\tif c.MaxProperties != nil && !(isMap || isStruct) {\n\t\terr = errors.Join(err, fmt.Errorf(\"maxProperties can only be used on map types\"))\n\t}\n\tif c.MinProperties != nil && !(isMap || isStruct) {\n\t\terr = errors.Join(err, fmt.Errorf(\"minProperties can only be used on map types\"))\n\t}\n\tif c.MinLength != nil && !isString {\n\t\terr = errors.Join(err, fmt.Errorf(\"minLength can only be used on string types\"))\n\t}\n\tif c.MaxLength != nil && !isString {\n\t\terr = errors.Join(err, fmt.Errorf(\"maxLength can only be used on string types\"))\n\t}\n\tif c.Pattern != nil && !isString {\n\t\terr = errors.Join(err, fmt.Errorf(\"pattern can only be used on string types\"))\n\t}\n\tif c.Minimum != nil && !isInt && !isFloat {\n\t\terr = errors.Join(err, fmt.Errorf(\"minimum can only be used on numeric types\"))\n\t}\n\tif c.Maximum != nil && !isInt && !isFloat {\n\t\terr = errors.Join(err, fmt.Errorf(\"maximum can only be used on numeric types\"))\n\t}\n\tif c.MultipleOf != nil && !isInt && !isFloat {\n\t\terr = errors.Join(err, fmt.Errorf(\"multipleOf can only be used on numeric types\"))\n\t}\n\tif c.ExclusiveMinimum != nil && !isInt && !isFloat {\n\t\terr = errors.Join(err, fmt.Errorf(\"exclusiveMinimum can only be used on numeric types\"))\n\t}\n\tif c.ExclusiveMaximum != nil && !isInt && !isFloat {\n\t\terr = errors.Join(err, fmt.Errorf(\"exclusiveMaximum can only be used on numeric types\"))\n\t}\n\tif c.AdditionalProperties != nil && !isMap {\n\t\terr = errors.Join(err, fmt.Errorf(\"additionalProperties can only be used on map types\"))\n\n\t\tif err == nil {\n\t\t\terr = errors.Join(err, c.AdditionalProperties.ValidateType(t))\n\t\t}\n\t}\n\tif c.Items != nil && !isArray {\n\t\terr = errors.Join(err, fmt.Errorf(\"items can only be used on array types\"))\n\n\t\tif err == nil {\n\t\t\terr = errors.Join(err, c.Items.ValidateType(t))\n\t\t}\n\t}\n\tif c.Properties != nil {\n\t\tif !isStruct && !isMap {\n\t\t\terr = errors.Join(err, fmt.Errorf(\"properties can only be used on struct types\"))\n\t\t} else if isStruct && err == nil {\n\t\t\tfor key, tags := range c.Properties {\n\t\t\t\tif member := memberWithJSONName(resolvedType, key); member == nil {\n\t\t\t\t\terr = errors.Join(err, fmt.Errorf(\"property used in comment tag %q not found in struct %s\", key, resolvedType.String()))\n\t\t\t\t} else if nestedErr := tags.ValidateType(member.Type); nestedErr != nil {\n\t\t\t\t\terr = errors.Join(err, fmt.Errorf(\"failed to validate property %q: %w\", key, nestedErr))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn err\n}\n\nfunc memberWithJSONName(t *types.Type, key string) *types.Member {\n\tfor _, member := range t.Members {\n\t\ttags := getJsonTags(&member)\n\t\tif len(tags) > 0 && tags[0] == key {\n\t\t\treturn &member\n\t\t} else if member.Embedded {\n\t\t\tif embeddedMember := memberWithJSONName(member.Type, key); embeddedMember != nil {\n\t\t\t\treturn embeddedMember\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// ParseCommentTags parses the given comments into a CommentTags type. Validates the parsed comment tags, and returns the result.\n// Accepts an optional type to validate against, and a prefix to filter out markers not related to validation.\n// Accepts a prefix to filter out markers not related to validation.\n// Returns any errors encountered while parsing or validating the comment tags.\nfunc ParseCommentTags(t *types.Type, comments []string, prefix string) (*spec.Schema, error) {\n\tmarkers, err := parseMarkers(comments, prefix)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to parse marker comments: %w\", err)\n\t}\n\tnested, err := nestMarkers(markers)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"invalid marker comments: %w\", err)\n\t}\n\n\t// Parse the map into a CommentTags type by marshalling and unmarshalling\n\t// as JSON in leiu of an unstructured converter.\n\tout, err := json.Marshal(nested)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to marshal marker comments: %w\", err)\n\t}\n\n\tvar commentTags commentTags\n\tif err = json.Unmarshal(out, &commentTags); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to unmarshal marker comments: %w\", err)\n\t}\n\n\t// Validate the parsed comment tags\n\tvalidationErrors := commentTags.Validate()\n\n\tif t != nil {\n\t\tvalidationErrors = errors.Join(validationErrors, commentTags.ValidateType(t))\n\t}\n\n\tif validationErrors != nil {\n\t\treturn nil, fmt.Errorf(\"invalid marker comments: %w\", validationErrors)\n\t}\n\n\treturn commentTags.ValidationSchema()\n}\n\nvar (\n\tallowedKeyCharacterSet = `[:_a-zA-Z0-9\\[\\]\\-]`\n\tvalueEmpty             = regexp.MustCompile(fmt.Sprintf(`^(%s*)$`, allowedKeyCharacterSet))\n\tvalueAssign            = regexp.MustCompile(fmt.Sprintf(`^(%s*)=(.*)$`, allowedKeyCharacterSet))\n\tvalueRawString         = regexp.MustCompile(fmt.Sprintf(`^(%s*)>(.*)$`, allowedKeyCharacterSet))\n)\n\n// extractCommentTags parses comments for lines of the form:\n//\n//\t'marker' + \"key=value\"\n//\n//\tor to specify truthy boolean keys:\n//\n//\t'marker' + \"key\"\n//\n// Values are optional; \"\" is the default.  A tag can be specified more than\n// one time and all values are returned.  Returns a map with an entry for\n// for each key and a value.\n//\n// Similar to version from gengo, but this version support only allows one\n// value per key (preferring explicit array indices), supports raw strings\n// with concatenation, and limits the usable characters allowed in a key\n// (for simpler parsing).\n//\n// Assignments and empty values have the same syntax as from gengo. Raw strings\n// have the syntax:\n//\n//\t'marker' + \"key>value\"\n//\t'marker' + \"key>value\"\n//\n// Successive usages of the same raw string key results in concatenating each\n// line with `\\n` in between. It is an error to use `=` to assing to a previously\n// assigned key\n// (in contrast to types.ExtractCommentTags which allows array-typed\n// values to be specified using `=`).\nfunc extractCommentTags(marker string, lines []string) (map[string]string, error) {\n\tout := map[string]string{}\n\n\t// Used to track the the line immediately prior to the one being iterated.\n\t// If there was an invalid or ignored line, these values get reset.\n\tlastKey := \"\"\n\tlastIndex := -1\n\tlastArrayKey := \"\"\n\n\tvar lintErrors []error\n\n\tfor _, line := range lines {\n\t\tline = strings.Trim(line, \" \")\n\n\t\t// Track the current value of the last vars to use in this loop iteration\n\t\t// before they are reset for the next iteration.\n\t\tpreviousKey := lastKey\n\t\tpreviousArrayKey := lastArrayKey\n\t\tpreviousIndex := lastIndex\n\n\t\t// Make sure last vars gets reset if we `continue`\n\t\tlastIndex = -1\n\t\tlastArrayKey = \"\"\n\t\tlastKey = \"\"\n\n\t\tif len(line) == 0 {\n\t\t\tcontinue\n\t\t} else if !strings.HasPrefix(line, marker) {\n\t\t\tcontinue\n\t\t}\n\n\t\tline = strings.TrimPrefix(line, marker)\n\n\t\tkey := \"\"\n\t\tvalue := \"\"\n\n\t\tif matches := valueAssign.FindStringSubmatch(line); matches != nil {\n\t\t\tkey = matches[1]\n\t\t\tvalue = matches[2]\n\n\t\t\t// If key exists, throw error.\n\t\t\t// Some of the old kube open-api gen marker comments like\n\t\t\t// `+listMapKeys` allowed a list to be specified by writing key=value\n\t\t\t// multiple times.\n\t\t\t//\n\t\t\t// This is not longer supported for the prefixed marker comments.\n\t\t\t// This is to prevent confusion with the new array syntax which\n\t\t\t// supports lists of objects.\n\t\t\t//\n\t\t\t// The old marker comments like +listMapKeys will remain functional,\n\t\t\t// but new markers will not support it.\n\t\t\tif _, ok := out[key]; ok {\n\t\t\t\treturn nil, fmt.Errorf(\"cannot have multiple values for key '%v'\", key)\n\t\t\t}\n\n\t\t} else if matches := valueEmpty.FindStringSubmatch(line); matches != nil {\n\t\t\tkey = matches[1]\n\t\t\tvalue = \"\"\n\n\t\t} else if matches := valueRawString.FindStringSubmatch(line); matches != nil {\n\t\t\ttoAdd := strings.Trim(string(matches[2]), \" \")\n\n\t\t\tkey = matches[1]\n\n\t\t\t// First usage as a raw string.\n\t\t\tif existing, exists := out[key]; !exists {\n\n\t\t\t\t// Encode the raw string as JSON to ensure that it is properly escaped.\n\t\t\t\tvalueBytes, err := json.Marshal(toAdd)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"invalid value for key %v: %w\", key, err)\n\t\t\t\t}\n\n\t\t\t\tvalue = string(valueBytes)\n\t\t\t} else if key != previousKey {\n\t\t\t\t// Successive usages of the same key of a raw string must be\n\t\t\t\t// consecutive\n\t\t\t\treturn nil, fmt.Errorf(\"concatenations to key '%s' must be consecutive with its assignment\", key)\n\t\t\t} else {\n\t\t\t\t// If it is a consecutive repeat usage, concatenate to the\n\t\t\t\t// existing value.\n\t\t\t\t//\n\t\t\t\t// Decode JSON string, append to it, re-encode JSON string.\n\t\t\t\t// Kinda janky but this is a code-generator...\n\t\t\t\tvar unmarshalled string\n\t\t\t\tif err := json.Unmarshal([]byte(existing), &unmarshalled); err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"invalid value for key %v: %w\", key, err)\n\t\t\t\t} else {\n\t\t\t\t\tunmarshalled += \"\\n\" + toAdd\n\t\t\t\t\tvalueBytes, err := json.Marshal(unmarshalled)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, fmt.Errorf(\"invalid value for key %v: %w\", key, err)\n\t\t\t\t\t}\n\n\t\t\t\t\tvalue = string(valueBytes)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// Comment has the correct prefix, but incorrect syntax, so it is an\n\t\t\t// error\n\t\t\treturn nil, fmt.Errorf(\"invalid marker comment does not match expected `+key=<json formatted value>` pattern: %v\", line)\n\t\t}\n\n\t\tout[key] = value\n\t\tlastKey = key\n\n\t\t// Lint the array subscript for common mistakes. This only lints the last\n\t\t// array index used, (since we do not have a need for nested arrays yet\n\t\t// in markers)\n\t\tif arrayPath, index, hasSubscript, err := extractArraySubscript(key); hasSubscript {\n\t\t\t// If index is non-zero, check that that previous line was for the same\n\t\t\t// key and either the same or previous index\n\t\t\tif err != nil {\n\t\t\t\tlintErrors = append(lintErrors, fmt.Errorf(\"error parsing %v: expected integer index in key '%v'\", line, key))\n\t\t\t} else if previousArrayKey != arrayPath && index != 0 {\n\t\t\t\tlintErrors = append(lintErrors, fmt.Errorf(\"error parsing %v: non-consecutive index %v for key '%v'\", line, index, arrayPath))\n\t\t\t} else if index != previousIndex+1 && index != previousIndex {\n\t\t\t\tlintErrors = append(lintErrors, fmt.Errorf(\"error parsing %v: non-consecutive index %v for key '%v'\", line, index, arrayPath))\n\t\t\t}\n\n\t\t\tlastIndex = index\n\t\t\tlastArrayKey = arrayPath\n\t\t}\n\t}\n\n\tif len(lintErrors) > 0 {\n\t\treturn nil, errors.Join(lintErrors...)\n\t}\n\n\treturn out, nil\n}\n\n// Extracts and parses the given marker comments into a map of key -> value.\n// Accepts a prefix to filter out markers not related to validation.\n// The prefix is removed from the key in the returned map.\n// Empty keys and invalid values will return errors, refs are currently unsupported and will be skipped.\nfunc parseMarkers(markerComments []string, prefix string) (map[string]any, error) {\n\tmarkers, err := extractCommentTags(prefix, markerComments)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Parse the values as JSON\n\tresult := map[string]any{}\n\tfor key, value := range markers {\n\t\tvar unmarshalled interface{}\n\n\t\tif len(key) == 0 {\n\t\t\treturn nil, fmt.Errorf(\"cannot have empty key for marker comment\")\n\t\t} else if !isKnownTagCommentKey(key) {\n\t\t\tcontinue\n\t\t} else if _, ok := parseSymbolReference(value, \"\"); ok {\n\t\t\t// Skip ref markers\n\t\t\tcontinue\n\t\t} else if len(value) == 0 {\n\t\t\t// Empty value means key is implicitly a bool\n\t\t\tresult[key] = true\n\t\t} else if err := json.Unmarshal([]byte(value), &unmarshalled); err != nil {\n\t\t\t// Not valid JSON, throw error\n\t\t\treturn nil, fmt.Errorf(\"failed to parse value for key %v as JSON: %w\", key, err)\n\t\t} else {\n\t\t\t// Is is valid JSON, use as a JSON value\n\t\t\tresult[key] = unmarshalled\n\t\t}\n\t}\n\treturn result, nil\n}\n\n// Converts a map of:\n//\n//\t\"a:b:c\": 1\n//\t\"a:b:d\": 2\n//\t\"a:e\": 3\n//\t\"f\": 4\n//\n// Into:\n//\n//\t map[string]any{\n//\t   \"a\": map[string]any{\n//\t\t      \"b\": map[string]any{\n//\t\t          \"c\": 1,\n//\t\t\t\t  \"d\": 2,\n//\t\t\t   },\n//\t\t\t   \"e\": 3,\n//\t\t  },\n//\t\t  \"f\": 4,\n//\t }\n//\n// Returns a list of joined errors for any invalid keys. See putNestedValue for more details.\nfunc nestMarkers(markers map[string]any) (map[string]any, error) {\n\tnested := make(map[string]any)\n\tvar errs []error\n\tfor key, value := range markers {\n\t\tvar err error\n\t\tkeys := strings.Split(key, \":\")\n\n\t\tif err = putNestedValue(nested, keys, value); err != nil {\n\t\t\terrs = append(errs, err)\n\t\t}\n\t}\n\n\tif len(errs) > 0 {\n\t\treturn nil, errors.Join(errs...)\n\t}\n\n\treturn nested, nil\n}\n\n// Recursively puts a value into the given keypath, creating intermediate maps\n// and slices as needed. If a key is of the form `foo[bar]`, then bar will be\n// treated as an index into the array foo. If bar is not a valid integer, putNestedValue returns an error.\nfunc putNestedValue(m map[string]any, k []string, v any) error {\n\tif len(k) == 0 {\n\t\treturn nil\n\t}\n\n\tkey := k[0]\n\trest := k[1:]\n\n\t// Array case\n\tif arrayKeyWithoutSubscript, index, hasSubscript, err := extractArraySubscript(key); err != nil {\n\t\treturn fmt.Errorf(\"error parsing subscript for key %v: %w\", key, err)\n\t} else if hasSubscript {\n\t\tkey = arrayKeyWithoutSubscript\n\t\tvar arrayDestination []any\n\t\tif existing, ok := m[key]; !ok {\n\t\t\tarrayDestination = make([]any, index+1)\n\t\t} else if existing, ok := existing.([]any); !ok {\n\t\t\t// Error case. Existing isn't of correct type. Can happen if\n\t\t\t// someone is subscripting a field that was previously not an array\n\t\t\treturn fmt.Errorf(\"expected []any at key %v, got %T\", key, existing)\n\t\t} else if index >= len(existing) {\n\t\t\t// Ensure array is big enough\n\t\t\tarrayDestination = append(existing, make([]any, index-len(existing)+1)...)\n\t\t} else {\n\t\t\tarrayDestination = existing\n\t\t}\n\n\t\tm[key] = arrayDestination\n\t\tif arrayDestination[index] == nil {\n\t\t\t// Doesn't exist case, create the destination.\n\t\t\t// Assumes the destination is a map for now. Theoretically could be\n\t\t\t// extended to support arrays of arrays, but that's not needed yet.\n\t\t\tdestination := make(map[string]any)\n\t\t\tarrayDestination[index] = destination\n\t\t\tif err = putNestedValue(destination, rest, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else if dst, ok := arrayDestination[index].(map[string]any); ok {\n\t\t\t// Already exists case, correct type\n\t\t\tif putNestedValue(dst, rest, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\t// Already exists, incorrect type. Error\n\t\t\t// This shouldn't be possible.\n\t\t\treturn fmt.Errorf(\"expected map at %v[%v], got %T\", key, index, arrayDestination[index])\n\t\t}\n\n\t\treturn nil\n\t} else if len(rest) == 0 {\n\t\t// Base case. Single key. Just set into destination\n\t\tm[key] = v\n\t\treturn nil\n\t}\n\n\tif existing, ok := m[key]; !ok {\n\t\tdestination := make(map[string]any)\n\t\tm[key] = destination\n\t\treturn putNestedValue(destination, rest, v)\n\t} else if destination, ok := existing.(map[string]any); ok {\n\t\treturn putNestedValue(destination, rest, v)\n\t} else {\n\t\t// Error case. Existing isn't of correct type. Can happen if prior comment\n\t\t// referred to value as an error\n\t\treturn fmt.Errorf(\"expected map[string]any at key %v, got %T\", key, existing)\n\t}\n}\n\n// extractArraySubscript extracts the left array subscript from a key of\n// the form  `foo[bar][baz]` -> \"bar\".\n// Returns the key without the subscript, the index, and a bool indicating if\n// the key had a subscript.\n// If the key has a subscript, but the subscript is not a valid integer, returns an error.\n//\n// This can be adapted to support multidimensional subscripts probably fairly\n// easily by retuning a list of ints\nfunc extractArraySubscript(str string) (string, int, bool, error) {\n\tsubscriptIdx := strings.Index(str, \"[\")\n\tif subscriptIdx == -1 {\n\t\treturn \"\", -1, false, nil\n\t}\n\n\tsubscript := strings.Split(str[subscriptIdx+1:], \"]\")[0]\n\tif len(subscript) == 0 {\n\t\treturn \"\", -1, false, fmt.Errorf(\"empty subscript not allowed\")\n\t}\n\n\tindex, err := strconv.Atoi(subscript)\n\tif err != nil {\n\t\treturn \"\", -1, false, fmt.Errorf(\"expected integer index in key %v\", str)\n\t} else if index < 0 {\n\t\treturn \"\", -1, false, fmt.Errorf(\"subscript '%v' is invalid. index must be positive\", subscript)\n\t}\n\n\treturn str[:subscriptIdx], index, true, nil\n}\n"
  },
  {
    "path": "pkg/generators/markers_test.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n\thttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\npackage generators_test\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\n\t\"k8s.io/gengo/v2/types\"\n\t\"k8s.io/kube-openapi/pkg/generators\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/utils/ptr\"\n)\n\nvar structKind *types.Type = &types.Type{Kind: types.Struct, Name: types.Name{Name: \"struct\"}}\nvar mapType *types.Type = &types.Type{Kind: types.Map, Name: types.Name{Name: \"map[string]int\"}}\nvar arrayType *types.Type = &types.Type{Kind: types.Slice, Name: types.Name{Name: \"[]int\"}}\n\nfunc TestParseCommentTags(t *testing.T) {\n\n\tcases := []struct {\n\t\tt        *types.Type\n\t\tname     string\n\t\tcomments []string\n\t\texpected *spec.Schema\n\n\t\t// regex pattern matching the error, or empty string/unset if no error\n\t\t// is expected\n\t\texpectedError string\n\t}{\n\t\t{\n\t\t\tt:    structKind,\n\t\t\tname: \"basic example\",\n\t\t\tcomments: []string{\n\t\t\t\t\"comment\",\n\t\t\t\t\"another + comment\",\n\t\t\t\t\"+k8s:validation:minimum=10.0\",\n\t\t\t\t\"+k8s:validation:maximum=20.0\",\n\t\t\t\t\"+k8s:validation:minLength=20\",\n\t\t\t\t\"+k8s:validation:maxLength=30\",\n\t\t\t\t`+k8s:validation:pattern=\"asdf\"`,\n\t\t\t\t\"+k8s:validation:multipleOf=1.0\",\n\t\t\t\t\"+k8s:validation:minItems=1\",\n\t\t\t\t\"+k8s:validation:maxItems=2\",\n\t\t\t\t\"+k8s:validation:uniqueItems=true\",\n\t\t\t\t\"exclusiveMaximum=true\",\n\t\t\t\t\"not+k8s:validation:Minimum=0.0\",\n\t\t\t},\n\t\t\texpectedError: `invalid marker comments: maxItems can only be used on array types\nminItems can only be used on array types\nuniqueItems can only be used on array types\nminLength can only be used on string types\nmaxLength can only be used on string types\npattern can only be used on string types\nminimum can only be used on numeric types\nmaximum can only be used on numeric types\nmultipleOf can only be used on numeric types`,\n\t\t},\n\t\t{\n\t\t\tt:    arrayType,\n\t\t\tname: \"basic array example\",\n\t\t\tcomments: []string{\n\t\t\t\t\"comment\",\n\t\t\t\t\"another + comment\",\n\t\t\t\t\"+k8s:validation:minItems=1\",\n\t\t\t\t\"+k8s:validation:maxItems=2\",\n\t\t\t\t\"+k8s:validation:uniqueItems=true\",\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tMinItems:    ptr.To[int64](1),\n\t\t\t\t\tMaxItems:    ptr.To[int64](2),\n\t\t\t\t\tUniqueItems: true,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    mapType,\n\t\t\tname: \"basic map example\",\n\t\t\tcomments: []string{\n\t\t\t\t\"comment\",\n\t\t\t\t\"another + comment\",\n\t\t\t\t\"+k8s:validation:minProperties=1\",\n\t\t\t\t\"+k8s:validation:maxProperties=2\",\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tMinProperties: ptr.To[int64](1),\n\t\t\t\t\tMaxProperties: ptr.To[int64](2),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    types.String,\n\t\t\tname: \"basic string example\",\n\t\t\tcomments: []string{\n\t\t\t\t\"comment\",\n\t\t\t\t\"another + comment\",\n\t\t\t\t\"+k8s:validation:minLength=20\",\n\t\t\t\t\"+k8s:validation:maxLength=30\",\n\t\t\t\t`+k8s:validation:pattern=\"asdf\"`,\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tMinLength: ptr.To[int64](20),\n\t\t\t\t\tMaxLength: ptr.To[int64](30),\n\t\t\t\t\tPattern:   \"asdf\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    types.Int,\n\t\t\tname: \"basic int example\",\n\t\t\tcomments: []string{\n\t\t\t\t\"comment\",\n\t\t\t\t\"another + comment\",\n\t\t\t\t\"+k8s:validation:minimum=10.0\",\n\t\t\t\t\"+k8s:validation:maximum=20.0\",\n\t\t\t\t\"+k8s:validation:multipleOf=1.0\",\n\t\t\t\t\"exclusiveMaximum=true\",\n\t\t\t\t\"not+k8s:validation:Minimum=0.0\",\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tMaximum:    ptr.To(20.0),\n\t\t\t\t\tMinimum:    ptr.To(10.0),\n\t\t\t\t\tMultipleOf: ptr.To(1.0),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:        structKind,\n\t\t\tname:     \"empty\",\n\t\t\texpected: &spec.Schema{},\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"single\",\n\t\t\tcomments: []string{\n\t\t\t\t\"+k8s:validation:minimum=10.0\",\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tMinimum: ptr.To(10.0),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"multiple\",\n\t\t\tcomments: []string{\n\t\t\t\t\"+k8s:validation:minimum=10.0\",\n\t\t\t\t\"+k8s:validation:maximum=20.0\",\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tMaximum: ptr.To(20.0),\n\t\t\t\t\tMinimum: ptr.To(10.0),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"invalid duplicate key\",\n\t\t\tcomments: []string{\n\t\t\t\t\"+k8s:validation:minimum=10.0\",\n\t\t\t\t\"+k8s:validation:maximum=20.0\",\n\t\t\t\t\"+k8s:validation:minimum=30.0\",\n\t\t\t},\n\t\t\texpectedError: `failed to parse marker comments: cannot have multiple values for key 'minimum'`,\n\t\t},\n\t\t{\n\t\t\tt:    structKind,\n\t\t\tname: \"unrecognized key is ignored\",\n\t\t\tcomments: []string{\n\t\t\t\t\"+ignored=30.0\",\n\t\t\t},\n\t\t\texpected: &spec.Schema{},\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"invalid: non-JSON value\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minimum=asdf`,\n\t\t\t},\n\t\t\texpectedError: `failed to parse marker comments: failed to parse value for key minimum as JSON: invalid character 'a' looking for beginning of value`,\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"invalid: invalid value type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minimum=\"asdf\"`,\n\t\t\t},\n\t\t\texpectedError: `failed to unmarshal marker comments: json: cannot unmarshal string into Go struct field commentTags.minimum of type float64`,\n\t\t},\n\t\t{\n\n\t\t\tt:    structKind,\n\t\t\tname: \"invalid: empty key\",\n\t\t\tcomments: []string{\n\t\t\t\t\"+k8s:validation:\",\n\t\t\t},\n\t\t\texpectedError: `failed to parse marker comments: cannot have empty key for marker comment`,\n\t\t},\n\t\t{\n\t\t\tt: types.Float64,\n\t\t\t// temporary test. ref support may be added in the future\n\t\t\tname: \"ignore refs\",\n\t\t\tcomments: []string{\n\t\t\t\t\"+k8s:validation:pattern=ref(asdf)\",\n\t\t\t},\n\t\t\texpected: &spec.Schema{},\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"cel rule\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"oldSelf == self\"`,\n\t\t\t\t`+k8s:validation:cel[0]:message=\"immutable field\"`,\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\tExtensions: map[string]interface{}{\n\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{\n\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\"rule\":    \"oldSelf == self\",\n\t\t\t\t\t\t\t\t\"message\": \"immutable field\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"skipped CEL rule\",\n\t\t\tcomments: []string{\n\t\t\t\t// This should parse, but return an error in validation since\n\t\t\t\t// index 1 is missing\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"oldSelf == self\"`,\n\t\t\t\t`+k8s:validation:cel[0]:message=\"immutable field\"`,\n\t\t\t\t`+k8s:validation:cel[2]:rule=\"self > 5\"`,\n\t\t\t\t`+k8s:validation:cel[2]:message=\"must be greater than 5\"`,\n\t\t\t},\n\t\t\texpectedError: `failed to parse marker comments: error parsing cel[2]:rule=\"self > 5\": non-consecutive index 2 for key 'cel'`,\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"multiple CEL params\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"oldSelf == self\"`,\n\t\t\t\t`+k8s:validation:cel[0]:message=\"immutable field\"`,\n\t\t\t\t`+k8s:validation:cel[1]:rule=\"self > 5\"`,\n\t\t\t\t`+k8s:validation:cel[1]:optionalOldSelf=true`,\n\t\t\t\t`+k8s:validation:cel[1]:message=\"must be greater than 5\"`,\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\tExtensions: map[string]interface{}{\n\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{\n\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\"rule\":    \"oldSelf == self\",\n\t\t\t\t\t\t\t\t\"message\": \"immutable field\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\"rule\":            \"self > 5\",\n\t\t\t\t\t\t\t\t\"optionalOldSelf\": true,\n\t\t\t\t\t\t\t\t\"message\":         \"must be greater than 5\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"multiple rules with multiple params\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"oldSelf == self\"`,\n\t\t\t\t`+k8s:validation:cel[0]:optionalOldSelf`,\n\t\t\t\t`+k8s:validation:cel[0]:messageExpression=\"self + ' must be equal to old value'\"`,\n\t\t\t\t`+k8s:validation:cel[1]:rule=\"self > 5\"`,\n\t\t\t\t`+k8s:validation:cel[1]:optionalOldSelf=true`,\n\t\t\t\t`+k8s:validation:cel[1]:message=\"must be greater than 5\"`,\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\tExtensions: map[string]interface{}{\n\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{\n\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\"rule\":              \"oldSelf == self\",\n\t\t\t\t\t\t\t\t\"optionalOldSelf\":   true,\n\t\t\t\t\t\t\t\t\"messageExpression\": \"self + ' must be equal to old value'\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\"rule\":            \"self > 5\",\n\t\t\t\t\t\t\t\t\"optionalOldSelf\": true,\n\t\t\t\t\t\t\t\t\"message\":         \"must be greater than 5\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"skipped array index\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"oldSelf == self\"`,\n\t\t\t\t`+k8s:validation:cel[0]:optionalOldSelf`,\n\t\t\t\t`+k8s:validation:cel[0]:messageExpression=\"self + ' must be equal to old value'\"`,\n\t\t\t\t`+k8s:validation:cel[2]:rule=\"self > 5\"`,\n\t\t\t\t`+k8s:validation:cel[2]:optionalOldSelf=true`,\n\t\t\t\t`+k8s:validation:cel[2]:message=\"must be greater than 5\"`,\n\t\t\t},\n\t\t\texpectedError: `failed to parse marker comments: error parsing cel[2]:rule=\"self > 5\": non-consecutive index 2 for key 'cel'`,\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"non-consecutive array index\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"oldSelf == self\"`,\n\t\t\t\t`+k8s:validation:cel[1]:rule=\"self > 5\"`,\n\t\t\t\t`+k8s:validation:cel[1]:message=\"self > 5\"`,\n\t\t\t\t`+k8s:validation:cel[0]:optionalOldSelf=true`,\n\t\t\t\t`+k8s:validation:cel[0]:message=\"must be greater than 5\"`,\n\t\t\t},\n\t\t\texpectedError: \"failed to parse marker comments: error parsing cel[0]:optionalOldSelf=true: non-consecutive index 0 for key 'cel'\",\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"interjected array index\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"oldSelf == self\"`,\n\t\t\t\t`+k8s:validation:cel[0]:message=\"cant change\"`,\n\t\t\t\t`+k8s:validation:cel[1]:rule=\"self > 5\"`,\n\t\t\t\t`+k8s:validation:cel[1]:message=\"must be greater than 5\"`,\n\t\t\t\t`+k8s:validation:minimum=5`,\n\t\t\t\t`+k8s:validation:cel[2]:rule=\"a rule\"`,\n\t\t\t\t`+k8s:validation:cel[2]:message=\"message 2\"`,\n\t\t\t},\n\t\t\texpectedError: \"failed to parse marker comments: error parsing cel[2]:rule=\\\"a rule\\\": non-consecutive index 2 for key 'cel'\",\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"interjected array index with non-prefixed comment\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"oldSelf == self\"`,\n\t\t\t\t`+k8s:validation:cel[0]:message=\"cant change\"`,\n\t\t\t\t`+k8s:validation:cel[1]:rule=\"self > 5\"`,\n\t\t\t\t`+k8s:validation:cel[1]:message=\"must be greater than 5\"`,\n\t\t\t\t`+minimum=5`,\n\t\t\t\t`+k8s:validation:cel[2]:rule=\"a rule\"`,\n\t\t\t\t`+k8s:validation:cel[2]:message=\"message 2\"`,\n\t\t\t},\n\t\t\texpectedError: \"failed to parse marker comments: error parsing cel[2]:rule=\\\"a rule\\\": non-consecutive index 2 for key 'cel'\",\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"non-consecutive raw string indexing\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule> raw string rule`,\n\t\t\t\t`+k8s:validation:cel[1]:rule=\"self > 5\"`,\n\t\t\t\t`+k8s:validation:cel[1]:message=\"must be greater than 5\"`,\n\t\t\t\t`+k8s:validation:cel[0]:message>another raw string message`,\n\t\t\t},\n\t\t\texpectedError: \"failed to parse marker comments: error parsing cel[0]:message>another raw string message: non-consecutive index 0 for key 'cel'\",\n\t\t},\n\t\t{\n\t\t\tt:    types.String,\n\t\t\tname: \"non-consecutive string indexing false positive\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:message>[3]string rule [1]`,\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"string rule [1]\"`,\n\t\t\t\t`+k8s:validation:pattern=\"self[3] == 'hi'\"`,\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tPattern: `self[3] == 'hi'`,\n\t\t\t\t},\n\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\tExtensions: map[string]interface{}{\n\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{\n\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\"rule\":    \"string rule [1]\",\n\t\t\t\t\t\t\t\t\"message\": \"[3]string rule [1]\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    types.String,\n\t\t\tname: \"non-consecutive raw string indexing false positive\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:message>[3]raw string message with subscirpt [3]\"`,\n\t\t\t\t`+k8s:validation:cel[0]:rule> raw string rule [1]`,\n\t\t\t\t`+k8s:validation:pattern>\"self[3] == 'hi'\"`,\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tPattern: `\"self[3] == 'hi'\"`,\n\t\t\t\t},\n\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\tExtensions: map[string]interface{}{\n\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{\n\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\"rule\":    \"raw string rule [1]\",\n\t\t\t\t\t\t\t\t\"message\": \"[3]raw string message with subscirpt [3]\\\"\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"boolean key at invalid index\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"oldSelf == self\"`,\n\t\t\t\t`+k8s:validation:cel[0]:message=\"cant change\"`,\n\t\t\t\t`+k8s:validation:cel[2]:optionalOldSelf`,\n\t\t\t},\n\t\t\texpectedError: `failed to parse marker comments: error parsing cel[2]:optionalOldSelf: non-consecutive index 2 for key 'cel'`,\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"boolean key after non-prefixed comment\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"oldSelf == self\"`,\n\t\t\t\t`+k8s:validation:cel[0]:message=\"cant change\"`,\n\t\t\t\t`+k8s:validation:cel[1]:rule=\"self > 5\"`,\n\t\t\t\t`+k8s:validation:cel[1]:message=\"must be greater than 5\"`,\n\t\t\t\t`+minimum=5`,\n\t\t\t\t`+k8s:validation:cel[1]:optionalOldSelf`,\n\t\t\t},\n\t\t\texpectedError: `failed to parse marker comments: error parsing cel[1]:optionalOldSelf: non-consecutive index 1 for key 'cel'`,\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"boolean key at index allowed\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"oldSelf == self\"`,\n\t\t\t\t`+k8s:validation:cel[0]:message=\"cant change\"`,\n\t\t\t\t`+k8s:validation:cel[1]:rule=\"self > 5\"`,\n\t\t\t\t`+k8s:validation:cel[1]:message=\"must be greater than 5\"`,\n\t\t\t\t`+k8s:validation:cel[1]:optionalOldSelf`,\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\tExtensions: map[string]interface{}{\n\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{\n\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\"rule\":    \"oldSelf == self\",\n\t\t\t\t\t\t\t\t\"message\": \"cant change\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\"rule\":            \"self > 5\",\n\t\t\t\t\t\t\t\t\"message\":         \"must be greater than 5\",\n\t\t\t\t\t\t\t\t\"optionalOldSelf\": true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"raw string rule\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule> raw string rule`,\n\t\t\t\t`+k8s:validation:cel[0]:message=\"raw string message\"`,\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\tExtensions: map[string]interface{}{\n\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{\n\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\"rule\":    \"raw string rule\",\n\t\t\t\t\t\t\t\t\"message\": \"raw string message\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"multiline string rule\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:rule> self.length() % 2 == 0`,\n\t\t\t\t`+k8s:validation:cel[0]:rule>   ? self.field == self.name + ' is even'`,\n\t\t\t\t`+k8s:validation:cel[0]:rule>   : self.field == self.name + ' is odd'`,\n\t\t\t\t`+k8s:validation:cel[0]:message>raw string message`,\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\tExtensions: map[string]interface{}{\n\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{\n\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\"rule\":    \"self.length() % 2 == 0\\n? self.field == self.name + ' is even'\\n: self.field == self.name + ' is odd'\",\n\t\t\t\t\t\t\t\t\"message\": \"raw string message\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tt:    types.Float64,\n\t\t\tname: \"mix raw and non-raw string marker\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:message>raw string message`,\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"self.length() % 2 == 0\"`,\n\t\t\t\t`+k8s:validation:cel[0]:rule>  ? self.field == self.name + ' is even'`,\n\t\t\t\t`+k8s:validation:cel[0]:rule>  : self.field == self.name + ' is odd'`,\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\tExtensions: map[string]interface{}{\n\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{\n\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\"rule\":    \"self.length() % 2 == 0\\n? self.field == self.name + ' is even'\\n: self.field == self.name + ' is odd'\",\n\t\t\t\t\t\t\t\t\"message\": \"raw string message\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"raw string with different key in between\",\n\t\t\tt:    types.Float64,\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:message>raw string message`,\n\t\t\t\t`+k8s:validation:cel[0]:rule=\"self.length() % 2 == 0\"`,\n\t\t\t\t`+k8s:validation:cel[0]:message>raw string message 2`,\n\t\t\t},\n\t\t\texpectedError: `failed to parse marker comments: concatenations to key 'cel[0]:message' must be consecutive with its assignment`,\n\t\t},\n\t\t{\n\t\t\tname: \"raw string with different raw string key in between\",\n\t\t\tt:    types.Float64,\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:cel[0]:message>raw string message`,\n\t\t\t\t`+k8s:validation:cel[0]:rule>self.length() % 2 == 0`,\n\t\t\t\t`+k8s:validation:cel[0]:message>raw string message 2`,\n\t\t\t},\n\t\t\texpectedError: `failed to parse marker comments: concatenations to key 'cel[0]:message' must be consecutive with its assignment`,\n\t\t},\n\t\t{\n\t\t\tname: \"nested cel\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:items:cel[0]:rule=\"self.length() % 2 == 0\"`,\n\t\t\t\t`+k8s:validation:items:cel[0]:message=\"must be even\"`,\n\t\t\t},\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Alias,\n\t\t\t\tUnderlying: &types.Type{\n\t\t\t\t\tKind: types.Slice,\n\t\t\t\t\tElem: types.String,\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tAllOf: []spec.Schema{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\t\t\t\t\t\tExtensions: map[string]interface{}{\n\t\t\t\t\t\t\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{\n\t\t\t\t\t\t\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"rule\":    \"self.length() % 2 == 0\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"message\": \"must be even\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tactual, err := generators.ParseCommentTags(tc.t, tc.comments, \"+k8s:validation:\")\n\t\t\tif tc.expectedError != \"\" {\n\t\t\t\trequire.Error(t, err)\n\t\t\t\trequire.EqualError(t, err, tc.expectedError)\n\t\t\t\treturn\n\t\t\t} else {\n\t\t\t\trequire.NoError(t, err)\n\t\t\t}\n\n\t\t\trequire.Equal(t, tc.expected, actual)\n\t\t})\n\t}\n}\n\n// Test comment tag validation function\nfunc TestCommentTags_Validate(t *testing.T) {\n\n\ttestCases := []struct {\n\t\tname         string\n\t\tcomments     []string\n\t\tt            *types.Type\n\t\terrorMessage string\n\t}{\n\t\t{\n\t\t\tname: \"invalid minimum type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minimum=10.5`,\n\t\t\t},\n\t\t\tt:            types.String,\n\t\t\terrorMessage: \"minimum can only be used on numeric types\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid minLength type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minLength=10`,\n\t\t\t},\n\t\t\tt:            types.Bool,\n\t\t\terrorMessage: \"minLength can only be used on string types\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid minItems type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minItems=10`,\n\t\t\t},\n\t\t\tt:            types.String,\n\t\t\terrorMessage: \"minItems can only be used on array types\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid minProperties type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minProperties=10`,\n\t\t\t},\n\t\t\tt:            types.String,\n\t\t\terrorMessage: \"minProperties can only be used on map types\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid exclusiveMinimum type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:exclusiveMinimum=true`,\n\t\t\t},\n\t\t\tt:            arrayType,\n\t\t\terrorMessage: \"exclusiveMinimum can only be used on numeric types\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid maximum type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:maximum=10.5`,\n\t\t\t},\n\t\t\tt:            arrayType,\n\t\t\terrorMessage: \"maximum can only be used on numeric types\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid maxLength type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:maxLength=10`,\n\t\t\t},\n\t\t\tt:            mapType,\n\t\t\terrorMessage: \"maxLength can only be used on string types\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid maxItems type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:maxItems=10`,\n\t\t\t},\n\t\t\tt:            types.Bool,\n\t\t\terrorMessage: \"maxItems can only be used on array types\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid maxProperties type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:maxProperties=10`,\n\t\t\t},\n\t\t\tt:            types.Bool,\n\t\t\terrorMessage: \"maxProperties can only be used on map types\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid exclusiveMaximum type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:exclusiveMaximum=true`,\n\t\t\t},\n\t\t\tt:            mapType,\n\t\t\terrorMessage: \"exclusiveMaximum can only be used on numeric types\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid pattern type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:pattern=\".*\"`,\n\t\t\t},\n\t\t\tt:            types.Int,\n\t\t\terrorMessage: \"pattern can only be used on string types\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid multipleOf type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:multipleOf=10.5`,\n\t\t\t},\n\t\t\tt:            types.String,\n\t\t\terrorMessage: \"multipleOf can only be used on numeric types\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid uniqueItems type\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:uniqueItems=true`,\n\t\t\t},\n\t\t\tt:            types.Int,\n\t\t\terrorMessage: \"uniqueItems can only be used on array types\",\n\t\t},\n\t\t{\n\t\t\tname: \"negative minLength\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minLength=-10`,\n\t\t\t},\n\t\t\tt:            types.String,\n\t\t\terrorMessage: \"minLength cannot be negative\",\n\t\t},\n\t\t{\n\t\t\tname: \"negative minItems\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minItems=-10`,\n\t\t\t},\n\t\t\tt:            arrayType,\n\t\t\terrorMessage: \"minItems cannot be negative\",\n\t\t},\n\t\t{\n\t\t\tname: \"negative minProperties\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minProperties=-10`,\n\t\t\t},\n\t\t\tt:            mapType,\n\t\t\terrorMessage: \"minProperties cannot be negative\",\n\t\t},\n\t\t{\n\t\t\tname: \"negative maxLength\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:maxLength=-10`,\n\t\t\t},\n\t\t\tt:            types.String,\n\t\t\terrorMessage: \"maxLength cannot be negative\",\n\t\t},\n\t\t{\n\t\t\tname: \"negative maxItems\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:maxItems=-10`,\n\t\t\t},\n\t\t\tt:            arrayType,\n\t\t\terrorMessage: \"maxItems cannot be negative\",\n\t\t},\n\t\t{\n\t\t\tname: \"negative maxProperties\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:maxProperties=-10`,\n\t\t\t},\n\t\t\tt:            mapType,\n\t\t\terrorMessage: \"maxProperties cannot be negative\",\n\t\t},\n\t\t{\n\t\t\tname: \"minimum > maximum\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minimum=10.5`,\n\t\t\t\t`+k8s:validation:maximum=5.5`,\n\t\t\t},\n\t\t\tt:            types.Float64,\n\t\t\terrorMessage: \"minimum 10.500000 is greater than maximum 5.500000\",\n\t\t},\n\t\t{\n\t\t\tname: \"exclusiveMinimum when minimum == maximum\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minimum=10.5`,\n\t\t\t\t`+k8s:validation:maximum=10.5`,\n\t\t\t\t`+k8s:validation:exclusiveMinimum=true`,\n\t\t\t},\n\t\t\tt:            types.Float64,\n\t\t\terrorMessage: \"exclusiveMinimum/Maximum cannot be set when minimum == maximum\",\n\t\t},\n\t\t{\n\t\t\tname: \"exclusiveMaximum when minimum == maximum\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minimum=10.5`,\n\t\t\t\t`+k8s:validation:maximum=10.5`,\n\t\t\t\t`+k8s:validation:exclusiveMaximum=true`,\n\t\t\t},\n\t\t\tt:            types.Float64,\n\t\t\terrorMessage: \"exclusiveMinimum/Maximum cannot be set when minimum == maximum\",\n\t\t},\n\t\t{\n\t\t\tname: \"minLength > maxLength\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minLength=10`,\n\t\t\t\t`+k8s:validation:maxLength=5`,\n\t\t\t},\n\t\t\tt:            types.String,\n\t\t\terrorMessage: \"minLength 10 is greater than maxLength 5\",\n\t\t},\n\t\t{\n\t\t\tname: \"minItems > maxItems\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minItems=10`,\n\t\t\t\t`+k8s:validation:maxItems=5`,\n\t\t\t},\n\t\t\tt:            arrayType,\n\t\t\terrorMessage: \"minItems 10 is greater than maxItems 5\",\n\t\t},\n\t\t{\n\t\t\tname: \"minProperties > maxProperties\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:minProperties=10`,\n\t\t\t\t`+k8s:validation:maxProperties=5`,\n\t\t\t},\n\t\t\tt:            mapType,\n\t\t\terrorMessage: \"minProperties 10 is greater than maxProperties 5\",\n\t\t},\n\t\t{\n\t\t\tname: \"invalid pattern\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:pattern=\"([a-z]+\"`,\n\t\t\t},\n\t\t\tt:            types.String,\n\t\t\terrorMessage: \"invalid pattern \\\"([a-z]+\\\": error parsing regexp: missing closing ): `([a-z]+`\",\n\t\t},\n\t\t{\n\t\t\tname: \"multipleOf = 0\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:multipleOf=0.0`,\n\t\t\t},\n\t\t\tt:            types.Int,\n\t\t\terrorMessage: \"multipleOf cannot be 0\",\n\t\t},\n\t\t{\n\t\t\tname: \"valid comment tags with no invalid validations\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:pattern=\".*\"`,\n\t\t\t},\n\t\t\tt:            types.String,\n\t\t\terrorMessage: \"\",\n\t\t},\n\t\t{\n\t\t\tname: \"additionalProperties on non-map\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:additionalProperties:pattern=\".*\"`,\n\t\t\t},\n\t\t\tt:            types.String,\n\t\t\terrorMessage: \"additionalProperties can only be used on map types\",\n\t\t},\n\t\t{\n\t\t\tname: \"properties on non-struct\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:properties:name:pattern=\".*\"`,\n\t\t\t},\n\t\t\tt:            types.String,\n\t\t\terrorMessage: \"properties can only be used on struct types\",\n\t\t},\n\t\t{\n\t\t\tname: \"items on non-array\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:items:pattern=\".*\"`,\n\t\t\t},\n\t\t\tt:            types.String,\n\t\t\terrorMessage: \"items can only be used on array types\",\n\t\t},\n\t\t{\n\t\t\tname: \"property missing from struct\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:properties:name:pattern=\".*\"`,\n\t\t\t},\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tName: types.Name{Name: \"struct\"},\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"notname\",\n\t\t\t\t\t\tType: types.String,\n\t\t\t\t\t\tTags: `json:\"notname\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\terrorMessage: `property used in comment tag \"name\" not found in struct struct`,\n\t\t},\n\t\t{\n\t\t\tname: \"nested comments also type checked\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:properties:name:items:pattern=\".*\"`,\n\t\t\t},\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tName: types.Name{Name: \"struct\"},\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"name\",\n\t\t\t\t\t\tType: types.String,\n\t\t\t\t\t\tTags: `json:\"name\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\terrorMessage: `failed to validate property \"name\": items can only be used on array types`,\n\t\t},\n\t\t{\n\t\t\tname: \"nested comments also type checked - passing\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:properties:name:pattern=\".*\"`,\n\t\t\t},\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tName: types.Name{Name: \"struct\"},\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"name\",\n\t\t\t\t\t\tType: types.String,\n\t\t\t\t\t\tTags: `json:\"name\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"nested marker type checking through alias\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:properties:name:pattern=\".*\"`,\n\t\t\t},\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tName: types.Name{Name: \"struct\"},\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"name\",\n\t\t\t\t\t\tTags: `json:\"name\"`,\n\t\t\t\t\t\tType: &types.Type{\n\t\t\t\t\t\t\tKind: types.Alias,\n\t\t\t\t\t\t\tUnderlying: &types.Type{\n\t\t\t\t\t\t\t\tKind: types.Slice,\n\t\t\t\t\t\t\t\tElem: types.String,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\terrorMessage: `failed to validate property \"name\": pattern can only be used on string types`,\n\t\t},\n\t\t{\n\t\t\tname: \"ignore unknown field with unparsable value\",\n\t\t\tcomments: []string{\n\t\t\t\t`+k8s:validation:xyz=a=b`, // a=b is not a valid value\n\t\t\t},\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tName: types.Name{Name: \"struct\"},\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"name\",\n\t\t\t\t\t\tType: types.String,\n\t\t\t\t\t\tTags: `json:\"name\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\t_, err := generators.ParseCommentTags(tc.t, tc.comments, \"+k8s:validation:\")\n\t\t\tif tc.errorMessage != \"\" {\n\t\t\t\trequire.Error(t, err)\n\t\t\t\trequire.Equal(t, \"invalid marker comments: \"+tc.errorMessage, err.Error())\n\t\t\t} else {\n\t\t\t\trequire.NoError(t, err)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/generators/model_names.go",
    "content": "/*\nCopyright 2025 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage generators\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\n\t\"k8s.io/gengo/v2\"\n\t\"k8s.io/gengo/v2/generator\"\n\t\"k8s.io/gengo/v2/namer\"\n\t\"k8s.io/gengo/v2/types\"\n\t\"k8s.io/klog/v2\"\n)\n\nconst (\n\ttagModelPackage = \"k8s:openapi-model-package\"\n)\n\nfunc extractOpenAPISchemaNamePackage(comments []string) (string, error) {\n\tv, err := singularTag(tagModelPackage, comments)\n\tif v == nil || err != nil {\n\t\treturn \"\", err\n\t}\n\treturn v.Value, nil\n}\n\nfunc singularTag(tagName string, comments []string) (*gengo.Tag, error) {\n\ttags, err := gengo.ExtractFunctionStyleCommentTags(\"+\", []string{tagName}, comments)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(tags) == 0 {\n\t\treturn nil, nil\n\t}\n\tif len(tags) > 1 {\n\t\treturn nil, fmt.Errorf(\"multiple %s tags found\", tagName)\n\t}\n\ttag := tags[tagName]\n\tif len(tag) == 0 {\n\t\treturn nil, nil\n\t}\n\tif len(tag) > 1 {\n\t\tklog.V(5).Infof(\"multiple %s tags found, using the first one\", tagName)\n\t}\n\tvalue := tag[0]\n\treturn &value, nil\n}\n\n// genSchemaName produces a file with autogenerated openapi schema name functions.\ntype genSchemaName struct {\n\tgenerator.GoGenerator\n\ttargetPackage            string\n\timports                  namer.ImportTracker\n\ttypesForInit             []*types.Type\n\topenAPISchemaNamePackage string\n}\n\n// NewSchemaNameGen creates a generator\nfunc NewSchemaNameGen(outputFilename, targetPackage string, openAPISchemaNamePackage string) generator.Generator {\n\treturn &genSchemaName{\n\t\tGoGenerator: generator.GoGenerator{\n\t\t\tOutputFilename: outputFilename,\n\t\t},\n\t\ttargetPackage:            targetPackage,\n\t\timports:                  generator.NewImportTracker(),\n\t\ttypesForInit:             make([]*types.Type, 0),\n\t\topenAPISchemaNamePackage: openAPISchemaNamePackage,\n\t}\n}\n\nfunc (g *genSchemaName) Namers(c *generator.Context) namer.NameSystems {\n\treturn namer.NameSystems{\n\t\t\"public\": namer.NewPublicNamer(1),\n\t\t\"local\":  namer.NewPublicNamer(0),\n\t\t\"raw\":    namer.NewRawNamer(\"\", nil),\n\t}\n}\n\nfunc (g *genSchemaName) Filter(c *generator.Context, t *types.Type) bool {\n\t// Filter out types not being processed or not copyable within the package.\n\tif !isSchemaNameType(t) {\n\t\tklog.V(2).Infof(\"Type %v is not a valid target for OpenAPI schema name\", t)\n\t\treturn false\n\t}\n\tg.typesForInit = append(g.typesForInit, t)\n\treturn true\n}\n\n// isSchemaNameType indicates whether or not a type could be used to serve an API.\nfunc isSchemaNameType(t *types.Type) bool {\n\t// Filter out private types.\n\tif namer.IsPrivateGoName(t.Name.Name) {\n\t\treturn false\n\t}\n\n\tfor t.Kind == types.Alias {\n\t\tt = t.Underlying\n\t}\n\n\tif t.Kind != types.Struct {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc (g *genSchemaName) isOtherPackage(pkg string) bool {\n\tif pkg == g.targetPackage {\n\t\treturn false\n\t}\n\tif strings.HasSuffix(pkg, \"\"+g.targetPackage+\"\") {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc (g *genSchemaName) Imports(c *generator.Context) (imports []string) {\n\timportLines := []string{}\n\tfor _, singleImport := range g.imports.ImportLines() {\n\t\tif g.isOtherPackage(singleImport) {\n\t\t\timportLines = append(importLines, singleImport)\n\t\t}\n\t}\n\treturn importLines\n}\n\nfunc (g *genSchemaName) Init(c *generator.Context, w io.Writer) error {\n\treturn nil\n}\n\nfunc (g *genSchemaName) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {\n\tklog.V(3).Infof(\"Generating openapi schema name for type %v\", t)\n\n\topenAPISchemaNamePackage := g.openAPISchemaNamePackage\n\tv, err := singularTag(tagModelPackage, t.CommentLines)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"type %v: invalid %s:%v\", t.Name, tagModelPackage, err)\n\t}\n\tif v != nil && v.Value != \"\" {\n\t\topenAPISchemaNamePackage = v.Value\n\t}\n\n\tif openAPISchemaNamePackage == \"\" {\n\t\treturn nil\n\t}\n\n\tschemaName := openAPISchemaNamePackage + \".\" + t.Name.Name\n\n\ta := map[string]interface{}{\n\t\t\"type\":       t,\n\t\t\"schemaName\": schemaName,\n\t}\n\n\tsw := generator.NewSnippetWriter(w, c, \"$\", \"$\")\n\n\tsw.Do(\"// OpenAPIModelName returns the OpenAPI model name for this type.\\n\", a)\n\tsw.Do(\"func (in $.type|local$) OpenAPIModelName() string {\\n\", a)\n\tsw.Do(\"\\treturn \\\"$.schemaName$\\\"\\n\", a)\n\tsw.Do(\"}\\n\\n\", nil)\n\n\treturn sw.Error()\n}\n"
  },
  {
    "path": "pkg/generators/openapi.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage generators\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"path\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"k8s.io/gengo/v2\"\n\t\"k8s.io/gengo/v2/generator\"\n\t\"k8s.io/gengo/v2/namer\"\n\t\"k8s.io/gengo/v2/types\"\n\topenapi \"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\n\t\"k8s.io/klog/v2\"\n)\n\n// This is the comment tag that carries parameters for open API generation.\nconst tagName = \"k8s:openapi-gen\"\nconst markerPrefix = \"+k8s:validation:\"\nconst tagOptional = \"optional\"\nconst tagRequired = \"required\"\nconst tagDefault = \"default\"\n\n// Known values for the tag.\nconst (\n\ttagValueTrue  = \"true\"\n\ttagValueFalse = \"false\"\n)\n\n// Used for temporary validation of patch struct tags.\n// TODO: Remove patch struct tag validation because they we are now consuming OpenAPI on server.\nvar tempPatchTags = [...]string{\n\t\"patchMergeKey\",\n\t\"patchStrategy\",\n}\n\nfunc getOpenAPITagValue(comments []string) []string {\n\treturn gengo.ExtractCommentTags(\"+\", comments)[tagName]\n}\n\nfunc getSingleTagsValue(comments []string, tag string) (string, error) {\n\ttags, ok := gengo.ExtractCommentTags(\"+\", comments)[tag]\n\tif !ok || len(tags) == 0 {\n\t\treturn \"\", nil\n\t}\n\tif len(tags) > 1 {\n\t\treturn \"\", fmt.Errorf(\"multiple values are not allowed for tag %s\", tag)\n\t}\n\treturn tags[0], nil\n}\n\nfunc hasOpenAPITagValue(comments []string, value string) bool {\n\ttagValues := getOpenAPITagValue(comments)\n\tfor _, val := range tagValues {\n\t\tif val == value {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// isOptional returns error if the member has +optional and +required in\n// its comments. If +optional is present it returns true. If +required is present\n// it returns false. Otherwise, it returns true if `omitempty` JSON tag is present\nfunc isOptional(m *types.Member) (bool, error) {\n\thasOptionalCommentTag := gengo.ExtractCommentTags(\n\t\t\"+\", m.CommentLines)[tagOptional] != nil\n\thasRequiredCommentTag := gengo.ExtractCommentTags(\n\t\t\"+\", m.CommentLines)[tagRequired] != nil\n\tif hasOptionalCommentTag && hasRequiredCommentTag {\n\t\treturn false, fmt.Errorf(\"member %s cannot be both optional and required\", m.Name)\n\t} else if hasRequiredCommentTag {\n\t\treturn false, nil\n\t} else if hasOptionalCommentTag {\n\t\treturn true, nil\n\t}\n\n\t// If neither +optional nor +required is present in the comments,\n\t// infer optional from the json tags.\n\treturn strings.Contains(reflect.StructTag(m.Tags).Get(\"json\"), \"omitempty\"), nil\n}\n\nfunc apiTypeFilterFunc(c *generator.Context, t *types.Type) bool {\n\t// There is a conflict between this codegen and codecgen, we should avoid types generated for codecgen\n\tif strings.HasPrefix(t.Name.Name, \"codecSelfer\") {\n\t\treturn false\n\t}\n\tpkg := c.Universe.Package(t.Name.Package)\n\tif hasOpenAPITagValue(pkg.Comments, tagValueTrue) {\n\t\treturn !hasOpenAPITagValue(t.CommentLines, tagValueFalse)\n\t}\n\tif hasOpenAPITagValue(t.CommentLines, tagValueTrue) {\n\t\treturn true\n\t}\n\treturn false\n}\n\nconst (\n\tspecPackagePath          = \"k8s.io/kube-openapi/pkg/validation/spec\"\n\topenAPICommonPackagePath = \"k8s.io/kube-openapi/pkg/common\"\n)\n\n// openApiGen produces a file with auto-generated OpenAPI functions.\ntype openAPIGen struct {\n\tgenerator.GoGenerator\n\t// TargetPackage is the package that will get GetOpenAPIDefinitions function returns all open API definitions.\n\ttargetPackage string\n\timports       namer.ImportTracker\n}\n\nfunc newOpenAPIGen(outputFilename string, targetPackage string) generator.Generator {\n\treturn &openAPIGen{\n\t\tGoGenerator: generator.GoGenerator{\n\t\t\tOutputFilename: outputFilename,\n\t\t},\n\t\timports:       generator.NewImportTrackerForPackage(targetPackage),\n\t\ttargetPackage: targetPackage,\n\t}\n}\n\nconst nameTmpl = \"schema_$.type|private$\"\n\nfunc (g *openAPIGen) Namers(c *generator.Context) namer.NameSystems {\n\t// Have the raw namer for this file track what it imports.\n\treturn namer.NameSystems{\n\t\t\"raw\": namer.NewRawNamer(g.targetPackage, g.imports),\n\t\t\"private\": &namer.NameStrategy{\n\t\t\tJoin: func(pre string, in []string, post string) string {\n\t\t\t\treturn strings.Join(in, \"_\")\n\t\t\t},\n\t\t\tPrependPackageNames: 4, // enough to fully qualify from k8s.io/api/...\n\t\t},\n\t}\n}\n\nfunc (g *openAPIGen) Imports(c *generator.Context) []string {\n\timportLines := []string{}\n\tfor _, singleImport := range g.imports.ImportLines() {\n\t\timportLines = append(importLines, singleImport)\n\t}\n\treturn importLines\n}\n\nfunc argsFromType(t *types.Type) generator.Args {\n\treturn generator.Args{\n\t\t\"type\":              t,\n\t\t\"ReferenceCallback\": types.Ref(openAPICommonPackagePath, \"ReferenceCallback\"),\n\t\t\"OpenAPIDefinition\": types.Ref(openAPICommonPackagePath, \"OpenAPIDefinition\"),\n\t\t\"SpecSchemaType\":    types.Ref(specPackagePath, \"Schema\"),\n\t}\n}\n\nfunc (g *openAPIGen) Init(c *generator.Context, w io.Writer) error {\n\tsw := generator.NewSnippetWriter(w, c, \"$\", \"$\")\n\tsw.Do(\"func GetOpenAPIDefinitions(ref $.ReferenceCallback|raw$) map[string]$.OpenAPIDefinition|raw$ {\\n\", argsFromType(nil))\n\tsw.Do(\"return map[string]$.OpenAPIDefinition|raw${\\n\", argsFromType(nil))\n\n\tfor _, t := range c.Order {\n\t\terr := newOpenAPITypeWriter(sw, c).generateCall(t)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tsw.Do(\"}\\n\", nil)\n\tsw.Do(\"}\\n\\n\", nil)\n\n\treturn sw.Error()\n}\n\nfunc (g *openAPIGen) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {\n\tklog.V(5).Infof(\"generating for type %v\", t)\n\tsw := generator.NewSnippetWriter(w, c, \"$\", \"$\")\n\terr := newOpenAPITypeWriter(sw, c).generate(t)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn sw.Error()\n}\n\nfunc getJsonTags(m *types.Member) []string {\n\tjsonTag := reflect.StructTag(m.Tags).Get(\"json\")\n\tif jsonTag == \"\" {\n\t\treturn []string{}\n\t}\n\treturn strings.Split(jsonTag, \",\")\n}\n\nfunc getReferableName(m *types.Member) string {\n\tjsonTags := getJsonTags(m)\n\tif len(jsonTags) > 0 {\n\t\tif jsonTags[0] == \"-\" {\n\t\t\treturn \"\"\n\t\t} else {\n\t\t\treturn jsonTags[0]\n\t\t}\n\t} else {\n\t\treturn m.Name\n\t}\n}\n\nfunc shouldInlineMembers(m *types.Member) bool {\n\tjsonTag, jsonTagExists := reflect.StructTag(m.Tags).Lookup(\"json\")\n\treturn m.Embedded && jsonTagExists && (jsonTag == \"\" || strings.HasPrefix(jsonTag, \",\"))\n}\n\ntype openAPITypeWriter struct {\n\t*generator.SnippetWriter\n\tcontext                *generator.Context\n\trefTypes               map[string]*types.Type\n\tenumContext            *enumContext\n\tGetDefinitionInterface *types.Type\n}\n\nfunc newOpenAPITypeWriter(sw *generator.SnippetWriter, c *generator.Context) openAPITypeWriter {\n\treturn openAPITypeWriter{\n\t\tSnippetWriter: sw,\n\t\tcontext:       c,\n\t\trefTypes:      map[string]*types.Type{},\n\t\tenumContext:   newEnumContext(c),\n\t}\n}\n\nfunc methodReturnsValue(mt *types.Type, pkg, name string) bool {\n\tif len(mt.Signature.Parameters) != 0 || len(mt.Signature.Results) != 1 {\n\t\treturn false\n\t}\n\tr := mt.Signature.Results[0]\n\treturn r.Type.Name.Name == name && r.Type.Name.Package == pkg\n}\n\nfunc hasOpenAPIV3DefinitionMethod(t *types.Type) bool {\n\tfor mn, mt := range t.Methods {\n\t\tif mn != \"OpenAPIV3Definition\" {\n\t\t\tcontinue\n\t\t}\n\t\treturn methodReturnsValue(mt, openAPICommonPackagePath, \"OpenAPIDefinition\")\n\t}\n\treturn false\n}\n\nfunc hasOpenAPIDefinitionMethod(t *types.Type) bool {\n\tfor mn, mt := range t.Methods {\n\t\tif mn != \"OpenAPIDefinition\" {\n\t\t\tcontinue\n\t\t}\n\t\treturn methodReturnsValue(mt, openAPICommonPackagePath, \"OpenAPIDefinition\")\n\t}\n\treturn false\n}\n\nfunc hasOpenAPIDefinitionMethods(t *types.Type) bool {\n\tvar hasSchemaTypeMethod, hasOpenAPISchemaFormat bool\n\tfor mn, mt := range t.Methods {\n\t\tswitch mn {\n\t\tcase \"OpenAPISchemaType\":\n\t\t\thasSchemaTypeMethod = methodReturnsValue(mt, \"\", \"[]string\")\n\t\tcase \"OpenAPISchemaFormat\":\n\t\t\thasOpenAPISchemaFormat = methodReturnsValue(mt, \"\", \"string\")\n\t\t}\n\t}\n\treturn hasSchemaTypeMethod && hasOpenAPISchemaFormat\n}\n\nfunc hasOpenAPIV3OneOfMethod(t *types.Type) bool {\n\tfor mn, mt := range t.Methods {\n\t\tif mn != \"OpenAPIV3OneOfTypes\" {\n\t\t\tcontinue\n\t\t}\n\t\treturn methodReturnsValue(mt, \"\", \"[]string\")\n\t}\n\treturn false\n}\n\nfunc hasOpenAPIModelName(t *types.Type) bool {\n\tfor mn, mt := range t.Methods {\n\t\tif mn != \"OpenAPIModelName\" {\n\t\t\tcontinue\n\t\t}\n\t\treturn methodReturnsValue(mt, \"\", \"string\")\n\t}\n\treturn false\n}\n\nfunc (g openAPITypeWriter) shouldUseOpenAPIModelName(t *types.Type) bool {\n\t// Finds non-generated OpenAPIModelName() functions.\n\t// Generated OpenAPIModelName() are ignored due to the 'ignore_autogenerated' build tag\n\t// but are handled below by checking for use of the +k8s:openapi-model-package.\n\t// This approach allows code generators to be called in any order.\n\tif hasOpenAPIModelName(t) {\n\t\treturn true\n\t}\n\n\tvalue, err := extractOpenAPISchemaNamePackage(t.CommentLines)\n\tif err != nil {\n\t\tklog.Fatalf(\"Type %v: invalid %s:%v\", t, tagModelPackage, err)\n\t}\n\tif value != \"\" {\n\t\treturn true\n\t}\n\tpkg := g.context.Universe.Package(t.Name.Package)\n\tvalue, err = extractOpenAPISchemaNamePackage(pkg.Comments)\n\tif err != nil {\n\t\tklog.Fatalf(\"Package %v: invalid %s:%v\", pkg, tagModelPackage, err)\n\t}\n\treturn value != \"\"\n}\n\n// typeShortName returns short package name (e.g. the name x appears in package x definition) dot type name.\nfunc typeShortName(t *types.Type) string {\n\t// `path` vs. `filepath` because packages use '/'\n\treturn path.Base(t.Name.Package) + \".\" + t.Name.Name\n}\n\nfunc (g openAPITypeWriter) generateMembers(t *types.Type, required []string) ([]string, error) {\n\tvar err error\n\tfor t.Kind == types.Pointer { // fast-forward to effective type containing members\n\t\tt = t.Elem\n\t}\n\tfor _, m := range t.Members {\n\t\tif hasOpenAPITagValue(m.CommentLines, tagValueFalse) {\n\t\t\tcontinue\n\t\t}\n\t\tif shouldInlineMembers(&m) {\n\t\t\trequired, err = g.generateMembers(m.Type, required)\n\t\t\tif err != nil {\n\t\t\t\treturn required, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tname := getReferableName(&m)\n\t\tif name == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif isOptional, err := isOptional(&m); err != nil {\n\t\t\tklog.Errorf(\"Error when generating: %v, %v\\n\", name, m)\n\t\t\treturn required, err\n\t\t} else if !isOptional {\n\t\t\trequired = append(required, name)\n\t\t}\n\t\tif err = g.generateProperty(&m, t); err != nil {\n\t\t\tklog.Errorf(\"Error when generating: %v, %v\\n\", name, m)\n\t\t\treturn required, err\n\t\t}\n\t}\n\treturn required, nil\n}\n\nfunc (g openAPITypeWriter) generateCall(t *types.Type) error {\n\t// Only generate for struct type and ignore the rest\n\tswitch t.Kind {\n\tcase types.Struct:\n\t\tif namer.IsPrivateGoName(t.Name.Name) { // skip private types\n\t\t\treturn nil\n\t\t}\n\n\t\targs := argsFromType(t)\n\n\t\tif g.shouldUseOpenAPIModelName(t) {\n\t\t\tg.Do(\"$.|raw${}.OpenAPIModelName(): \", t)\n\t\t} else {\n\t\t\t// Legacy case: use the \"canonical type name\"\n\t\t\tg.Do(\"\\\"$.$\\\": \", t.Name)\n\t\t}\n\n\t\thasV2Definition := hasOpenAPIDefinitionMethod(t)\n\t\thasV2DefinitionTypeAndFormat := hasOpenAPIDefinitionMethods(t)\n\t\thasV3Definition := hasOpenAPIV3DefinitionMethod(t)\n\n\t\tswitch {\n\t\tcase hasV2DefinitionTypeAndFormat:\n\t\t\tg.Do(nameTmpl+\"(ref),\\n\", args)\n\t\tcase hasV2Definition && hasV3Definition:\n\t\t\tg.Do(\"common.EmbedOpenAPIDefinitionIntoV2Extension($.type|raw${}.OpenAPIV3Definition(), $.type|raw${}.OpenAPIDefinition()),\\n\", args)\n\t\tcase hasV2Definition:\n\t\t\tg.Do(\"$.type|raw${}.OpenAPIDefinition(),\\n\", args)\n\t\tcase hasV3Definition:\n\t\t\tg.Do(\"$.type|raw${}.OpenAPIV3Definition(),\\n\", args)\n\t\tdefault:\n\t\t\tg.Do(nameTmpl+\"(ref),\\n\", args)\n\t\t}\n\t}\n\treturn g.Error()\n}\n\n// Generates Go code to represent an OpenAPI schema. May be refactored in\n// the future to take more responsibility as we transition from an on-line\n// approach to parsing the comments to spec.Schema\nfunc (g openAPITypeWriter) generateSchema(s *spec.Schema) error {\n\tif !reflect.DeepEqual(s.SchemaProps, spec.SchemaProps{}) {\n\t\tg.Do(\"SchemaProps: spec.SchemaProps{\\n\", nil)\n\t\terr := g.generateValueValidations(&s.SchemaProps)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif len(s.Properties) > 0 {\n\t\t\tg.Do(\"Properties: map[string]spec.Schema{\\n\", nil)\n\n\t\t\t// Sort property names to generate deterministic output\n\t\t\tkeys := []string{}\n\t\t\tfor k := range s.Properties {\n\t\t\t\tkeys = append(keys, k)\n\t\t\t}\n\t\t\tsort.Strings(keys)\n\n\t\t\tfor _, k := range keys {\n\t\t\t\tv := s.Properties[k]\n\t\t\t\tg.Do(\"$.$: {\\n\", fmt.Sprintf(\"%#v\", k))\n\t\t\t\terr := g.generateSchema(&v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tg.Do(\"},\\n\", nil)\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t}\n\n\t\tif s.AdditionalProperties != nil && s.AdditionalProperties.Schema != nil {\n\t\t\tg.Do(\"AdditionalProperties: &spec.SchemaOrBool{\\n\", nil)\n\t\t\tg.Do(\"Allows: true,\\n\", nil)\n\t\t\tg.Do(\"Schema: &spec.Schema{\\n\", nil)\n\t\t\terr := g.generateSchema(s.AdditionalProperties.Schema)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t}\n\n\t\tif s.Items != nil && s.Items.Schema != nil {\n\t\t\tg.Do(\"Items: &spec.SchemaOrArray{\\n\", nil)\n\t\t\tg.Do(\"Schema: &spec.Schema{\\n\", nil)\n\t\t\terr := g.generateSchema(s.Items.Schema)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t}\n\n\t\tg.Do(\"},\\n\", nil)\n\t}\n\n\tif len(s.Extensions) > 0 {\n\t\tg.Do(\"VendorExtensible: spec.VendorExtensible{\\nExtensions: spec.Extensions{\\n\", nil)\n\n\t\t// Sort extension keys to generate deterministic output\n\t\tkeys := []string{}\n\t\tfor k := range s.Extensions {\n\t\t\tkeys = append(keys, k)\n\t\t}\n\t\tsort.Strings(keys)\n\n\t\tfor _, k := range keys {\n\t\t\tv := s.Extensions[k]\n\t\t\tg.Do(\"$.key$: $.value$,\\n\", map[string]interface{}{\n\t\t\t\t\"key\":   fmt.Sprintf(\"%#v\", k),\n\t\t\t\t\"value\": fmt.Sprintf(\"%#v\", v),\n\t\t\t})\n\t\t}\n\t\tg.Do(\"},\\n},\\n\", nil)\n\t}\n\n\treturn nil\n}\n\nfunc (g openAPITypeWriter) generateValueValidations(vs *spec.SchemaProps) error {\n\n\tif vs == nil {\n\t\treturn nil\n\t}\n\targs := generator.Args{\n\t\t\"ptrTo\": &types.Type{\n\t\t\tName: types.Name{\n\t\t\t\tPackage: \"k8s.io/utils/ptr\",\n\t\t\t\tName:    \"To\",\n\t\t\t}},\n\t\t\"spec\": vs,\n\t}\n\tif vs.Minimum != nil {\n\t\tg.Do(\"Minimum: $.ptrTo|raw$[float64]($.spec.Minimum$),\\n\", args)\n\t}\n\tif vs.Maximum != nil {\n\t\tg.Do(\"Maximum: $.ptrTo|raw$[float64]($.spec.Maximum$),\\n\", args)\n\t}\n\tif vs.ExclusiveMinimum {\n\t\tg.Do(\"ExclusiveMinimum: true,\\n\", args)\n\t}\n\tif vs.ExclusiveMaximum {\n\t\tg.Do(\"ExclusiveMaximum: true,\\n\", args)\n\t}\n\tif vs.MinLength != nil {\n\t\tg.Do(\"MinLength: $.ptrTo|raw$[int64]($.spec.MinLength$),\\n\", args)\n\t}\n\tif vs.MaxLength != nil {\n\t\tg.Do(\"MaxLength: $.ptrTo|raw$[int64]($.spec.MaxLength$),\\n\", args)\n\t}\n\n\tif vs.MinProperties != nil {\n\t\tg.Do(\"MinProperties: $.ptrTo|raw$[int64]($.spec.MinProperties$),\\n\", args)\n\t}\n\tif vs.MaxProperties != nil {\n\t\tg.Do(\"MaxProperties: $.ptrTo|raw$[int64]($.spec.MaxProperties$),\\n\", args)\n\t}\n\tif len(vs.Pattern) > 0 {\n\t\tp, err := json.Marshal(vs.Pattern)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tg.Do(\"Pattern: $.$,\\n\", string(p))\n\t}\n\tif vs.MultipleOf != nil {\n\t\tg.Do(\"MultipleOf: $.ptrTo|raw$[float64]($.spec.MultipleOf$),\\n\", args)\n\t}\n\tif vs.MinItems != nil {\n\t\tg.Do(\"MinItems: $.ptrTo|raw$[int64]($.spec.MinItems$),\\n\", args)\n\t}\n\tif vs.MaxItems != nil {\n\t\tg.Do(\"MaxItems: $.ptrTo|raw$[int64]($.spec.MaxItems$),\\n\", args)\n\t}\n\tif vs.UniqueItems {\n\t\tg.Do(\"UniqueItems: true,\\n\", nil)\n\t}\n\n\tif len(vs.AllOf) > 0 {\n\t\tg.Do(\"AllOf: []spec.Schema{\\n\", nil)\n\t\tfor _, s := range vs.AllOf {\n\t\t\tg.Do(\"{\\n\", nil)\n\t\t\tif err := g.generateSchema(&s); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t}\n\t\tg.Do(\"},\\n\", nil)\n\t}\n\n\treturn nil\n}\n\nfunc (g openAPITypeWriter) generate(t *types.Type) error {\n\t// Only generate for struct type and ignore the rest\n\tswitch t.Kind {\n\tcase types.Struct:\n\t\tvalidationSchema, err := ParseCommentTags(t, t.CommentLines, markerPrefix)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed parsing comment tags for %v: %w\", t.String(), err)\n\t\t}\n\n\t\thasV2Definition := hasOpenAPIDefinitionMethod(t)\n\t\thasV2DefinitionTypeAndFormat := hasOpenAPIDefinitionMethods(t)\n\t\thasV3OneOfTypes := hasOpenAPIV3OneOfMethod(t)\n\t\thasV3Definition := hasOpenAPIV3DefinitionMethod(t)\n\n\t\tif hasV2Definition || (hasV3Definition && !hasV2DefinitionTypeAndFormat) {\n\t\t\t// already invoked directly\n\t\t\treturn nil\n\t\t}\n\n\t\targs := argsFromType(t)\n\t\tg.Do(\"func \"+nameTmpl+\"(ref $.ReferenceCallback|raw$) $.OpenAPIDefinition|raw$ {\\n\", args)\n\t\tswitch {\n\t\tcase hasV2DefinitionTypeAndFormat && hasV3Definition:\n\t\t\tg.Do(\"return common.EmbedOpenAPIDefinitionIntoV2Extension($.type|raw${}.OpenAPIV3Definition(), $.OpenAPIDefinition|raw${\\n\"+\n\t\t\t\t\"Schema: spec.Schema{\\n\"+\n\t\t\t\t\"SchemaProps: spec.SchemaProps{\\n\", args)\n\t\t\tg.generateDescription(t.CommentLines)\n\t\t\tg.Do(\"Type:$.type|raw${}.OpenAPISchemaType(),\\n\"+\n\t\t\t\t\"Format:$.type|raw${}.OpenAPISchemaFormat(),\\n\", args)\n\t\t\terr = g.generateValueValidations(&validationSchema.SchemaProps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t\tif err := g.generateStructExtensions(t, validationSchema.Extensions); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t\tg.Do(\"})\\n}\\n\\n\", args)\n\t\t\treturn nil\n\t\tcase hasV2DefinitionTypeAndFormat && hasV3OneOfTypes:\n\t\t\t// generate v3 def.\n\t\t\tg.Do(\"return common.EmbedOpenAPIDefinitionIntoV2Extension($.OpenAPIDefinition|raw${\\n\"+\n\t\t\t\t\"Schema: spec.Schema{\\n\"+\n\t\t\t\t\"SchemaProps: spec.SchemaProps{\\n\", args)\n\t\t\tg.generateDescription(t.CommentLines)\n\t\t\tg.Do(\"OneOf:common.GenerateOpenAPIV3OneOfSchema($.type|raw${}.OpenAPIV3OneOfTypes()),\\n\"+\n\t\t\t\t\"Format:$.type|raw${}.OpenAPISchemaFormat(),\\n\", args)\n\t\t\terr = g.generateValueValidations(&validationSchema.SchemaProps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t\tif err := g.generateStructExtensions(t, validationSchema.Extensions); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t\tg.Do(\"},\", args)\n\t\t\t// generate v2 def.\n\t\t\tg.Do(\"$.OpenAPIDefinition|raw${\\n\"+\n\t\t\t\t\"Schema: spec.Schema{\\n\"+\n\t\t\t\t\"SchemaProps: spec.SchemaProps{\\n\", args)\n\t\t\tg.generateDescription(t.CommentLines)\n\t\t\tg.Do(\"Type:$.type|raw${}.OpenAPISchemaType(),\\n\"+\n\t\t\t\t\"Format:$.type|raw${}.OpenAPISchemaFormat(),\\n\", args)\n\t\t\terr = g.generateValueValidations(&validationSchema.SchemaProps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t\tif err := g.generateStructExtensions(t, validationSchema.Extensions); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t\tg.Do(\"})\\n}\\n\\n\", args)\n\t\t\treturn nil\n\t\tcase hasV2DefinitionTypeAndFormat:\n\t\t\tg.Do(\"return $.OpenAPIDefinition|raw${\\n\"+\n\t\t\t\t\"Schema: spec.Schema{\\n\"+\n\t\t\t\t\"SchemaProps: spec.SchemaProps{\\n\", args)\n\t\t\tg.generateDescription(t.CommentLines)\n\t\t\tg.Do(\"Type:$.type|raw${}.OpenAPISchemaType(),\\n\"+\n\t\t\t\t\"Format:$.type|raw${}.OpenAPISchemaFormat(),\\n\", args)\n\t\t\terr = g.generateValueValidations(&validationSchema.SchemaProps)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t\tif err := g.generateStructExtensions(t, validationSchema.Extensions); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t\tg.Do(\"}\\n}\\n\\n\", args)\n\t\t\treturn nil\n\t\tcase hasV3OneOfTypes:\n\t\t\t// having v3 oneOf types without custom v2 type or format does not make sense.\n\t\t\treturn fmt.Errorf(\"type %q has v3 one of types but not v2 type or format\", t.Name)\n\t\t}\n\n\t\tg.Do(\"return $.OpenAPIDefinition|raw${\\nSchema: spec.Schema{\\nSchemaProps: spec.SchemaProps{\\n\", args)\n\t\tg.generateDescription(t.CommentLines)\n\t\tg.Do(\"Type: []string{\\\"object\\\"},\\n\", nil)\n\t\terr = g.generateValueValidations(&validationSchema.SchemaProps)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// write members into a temporary buffer, in order to postpone writing out the Properties field. We only do\n\t\t// that if it is not empty.\n\t\tpropertiesBuf := bytes.Buffer{}\n\t\tbsw := g\n\t\tbsw.SnippetWriter = generator.NewSnippetWriter(&propertiesBuf, g.context, \"$\", \"$\")\n\t\trequired, err := bsw.generateMembers(t, []string{})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif propertiesBuf.Len() > 0 {\n\t\t\tg.Do(\"Properties: map[string]$.SpecSchemaType|raw${\\n\", args)\n\t\t\tg.Do(strings.Replace(propertiesBuf.String(), \"$\", \"$\\\"$\\\"$\", -1), nil) // escape $ (used as delimiter of the templates)\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t}\n\n\t\tif len(required) > 0 {\n\t\t\tg.Do(\"Required: []string{\\\"$.$\\\"},\\n\", strings.Join(required, \"\\\",\\\"\"))\n\t\t}\n\t\tg.Do(\"},\\n\", nil)\n\t\tif err := g.generateStructExtensions(t, validationSchema.Extensions); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tg.Do(\"},\\n\", nil)\n\n\t\t// Map order is undefined, sort them or we may get a different file generated each time.\n\t\tkeys := []string{}\n\t\tfor k := range g.refTypes {\n\t\t\tkeys = append(keys, k)\n\t\t}\n\t\tsort.Strings(keys)\n\t\tdeps := []string{}\n\t\tfor _, k := range keys {\n\t\t\tv := g.refTypes[k]\n\t\t\tif t.Kind != types.Struct {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif t, _ := openapi.OpenAPITypeFormat(v.String()); t != \"\" {\n\t\t\t\t// This is a known type, we do not need a reference to it\n\t\t\t\t// Will eliminate special case of time.Time\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdeps = append(deps, k)\n\t\t}\n\t\tif len(deps) > 0 {\n\t\t\tg.Do(\"Dependencies: []string{\\n\", args)\n\t\t\tfor _, k := range deps {\n\t\t\t\tt := g.refTypes[k]\n\t\t\t\tif g.shouldUseOpenAPIModelName(t) {\n\t\t\t\t\tg.Do(\"$.|raw${}.OpenAPIModelName(),\", t)\n\t\t\t\t} else {\n\t\t\t\t\tg.Do(\"\\\"$.$\\\",\", k)\n\t\t\t\t}\n\t\t\t}\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t}\n\t\tg.Do(\"}\\n}\\n\\n\", nil)\n\t}\n\treturn nil\n}\n\nfunc (g openAPITypeWriter) generateStructExtensions(t *types.Type, otherExtensions map[string]interface{}) error {\n\textensions, errors := parseExtensions(t.CommentLines)\n\t// Initially, we will only log struct extension errors.\n\tif len(errors) > 0 {\n\t\tfor _, e := range errors {\n\t\t\tklog.Errorf(\"[%s]: %s\\n\", t.String(), e)\n\t\t}\n\t}\n\tunions, errors := parseUnions(t)\n\tif len(errors) > 0 {\n\t\tfor _, e := range errors {\n\t\t\tklog.Errorf(\"[%s]: %s\\n\", t.String(), e)\n\t\t}\n\t}\n\n\t// TODO(seans3): Validate struct extensions here.\n\tg.emitExtensions(extensions, unions, otherExtensions)\n\treturn nil\n}\n\nfunc (g openAPITypeWriter) generateMemberExtensions(m *types.Member, parent *types.Type, otherExtensions map[string]interface{}) error {\n\textensions, parseErrors := parseExtensions(m.CommentLines)\n\tvalidationErrors := validateMemberExtensions(extensions, m)\n\terrors := append(parseErrors, validationErrors...)\n\t// Initially, we will only log member extension errors.\n\tif len(errors) > 0 {\n\t\terrorPrefix := fmt.Sprintf(\"[%s] %s:\", parent.String(), m.String())\n\t\tfor _, e := range errors {\n\t\t\tklog.V(2).Infof(\"%s %s\\n\", errorPrefix, e)\n\t\t}\n\t}\n\tg.emitExtensions(extensions, nil, otherExtensions)\n\treturn nil\n}\n\nfunc (g openAPITypeWriter) emitExtensions(extensions []extension, unions []union, otherExtensions map[string]interface{}) {\n\t// If any extensions exist, then emit code to create them.\n\tif len(extensions) == 0 && len(unions) == 0 && len(otherExtensions) == 0 {\n\t\treturn\n\t}\n\tg.Do(\"VendorExtensible: spec.VendorExtensible{\\nExtensions: spec.Extensions{\\n\", nil)\n\tfor _, extension := range extensions {\n\t\tg.Do(\"\\\"$.$\\\": \", extension.xName)\n\t\tif extension.hasMultipleValues() || extension.isAlwaysArrayFormat() {\n\t\t\tg.Do(\"[]interface{}{\\n\", nil)\n\t\t}\n\t\tfor _, value := range extension.values {\n\t\t\tg.Do(\"\\\"$.$\\\",\\n\", value)\n\t\t}\n\t\tif extension.hasMultipleValues() || extension.isAlwaysArrayFormat() {\n\t\t\tg.Do(\"},\\n\", nil)\n\t\t}\n\t}\n\tif len(unions) > 0 {\n\t\tg.Do(\"\\\"x-kubernetes-unions\\\": []interface{}{\\n\", nil)\n\t\tfor _, u := range unions {\n\t\t\tu.emit(g)\n\t\t}\n\t\tg.Do(\"},\\n\", nil)\n\t}\n\n\tif len(otherExtensions) > 0 {\n\t\t// Sort extension keys to generate deterministic output\n\t\tkeys := []string{}\n\t\tfor k := range otherExtensions {\n\t\t\tkeys = append(keys, k)\n\t\t}\n\t\tsort.Strings(keys)\n\n\t\tfor _, k := range keys {\n\t\t\tv := otherExtensions[k]\n\t\t\tg.Do(\"$.key$: $.value$,\\n\", map[string]interface{}{\n\t\t\t\t\"key\":   fmt.Sprintf(\"%#v\", k),\n\t\t\t\t\"value\": fmt.Sprintf(\"%#v\", v),\n\t\t\t})\n\t\t}\n\t}\n\n\tg.Do(\"},\\n},\\n\", nil)\n}\n\n// TODO(#44005): Move this validation outside of this generator (probably to policy verifier)\nfunc (g openAPITypeWriter) validatePatchTags(m *types.Member, parent *types.Type) error {\n\t// TODO: Remove patch struct tag validation because they we are now consuming OpenAPI on server.\n\tfor _, tagKey := range tempPatchTags {\n\t\tstructTagValue := reflect.StructTag(m.Tags).Get(tagKey)\n\t\tcommentTagValue, err := getSingleTagsValue(m.CommentLines, tagKey)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif structTagValue != commentTagValue {\n\t\t\treturn fmt.Errorf(\"Tags in comment and struct should match for member (%s) of (%s)\",\n\t\t\t\tm.Name, parent.Name.String())\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc defaultFromComments(comments []string, commentPath string, t *types.Type) (interface{}, *types.Name, error) {\n\tvar tag string\n\n\tfor {\n\t\tvar err error\n\t\ttag, err = getSingleTagsValue(comments, tagDefault)\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\n\t\tif t == nil || len(tag) > 0 {\n\t\t\tbreak\n\t\t}\n\n\t\tcomments = t.CommentLines\n\t\tcommentPath = t.Name.Package\n\t\tswitch t.Kind {\n\t\tcase types.Pointer:\n\t\t\tt = t.Elem\n\t\tcase types.Alias:\n\t\t\tt = t.Underlying\n\t\tdefault:\n\t\t\tt = nil\n\t\t}\n\t}\n\n\tif tag == \"\" {\n\t\treturn nil, nil, nil\n\t}\n\n\tvar i interface{}\n\tif id, ok := parseSymbolReference(tag, commentPath); ok {\n\t\tklog.V(5).Infof(\"%v, %v\", id, commentPath)\n\t\treturn nil, &id, nil\n\t} else if err := json.Unmarshal([]byte(tag), &i); err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to unmarshal default: %v\", err)\n\t}\n\treturn i, nil, nil\n}\n\nvar refRE = regexp.MustCompile(`^ref\\((?P<reference>[^\"]+)\\)$`)\nvar refREIdentIndex = refRE.SubexpIndex(\"reference\")\n\n// parseSymbolReference looks for strings that match one of the following:\n//   - ref(Ident)\n//   - ref(pkgpath.Ident)\n//     If the input string matches either of these, it will return the (optional)\n//     pkgpath, the Ident, and true.  Otherwise it will return empty strings and\n//     false.\n//\n// This is borrowed from k8s.io/code-generator.\nfunc parseSymbolReference(s, sourcePackage string) (types.Name, bool) {\n\tmatches := refRE.FindStringSubmatch(s)\n\tif len(matches) < refREIdentIndex || matches[refREIdentIndex] == \"\" {\n\t\treturn types.Name{}, false\n\t}\n\n\tcontents := matches[refREIdentIndex]\n\tname := types.ParseFullyQualifiedName(contents)\n\tif len(name.Package) == 0 {\n\t\tname.Package = sourcePackage\n\t}\n\treturn name, true\n}\n\nfunc implementsCustomUnmarshalling(t *types.Type) bool {\n\tswitch t.Kind {\n\tcase types.Pointer:\n\t\tunmarshaller, isUnmarshaller := t.Elem.Methods[\"UnmarshalJSON\"]\n\t\treturn isUnmarshaller && unmarshaller.Signature.Receiver.Kind == types.Pointer\n\tcase types.Struct:\n\t\t_, isUnmarshaller := t.Methods[\"UnmarshalJSON\"]\n\t\treturn isUnmarshaller\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc mustEnforceDefault(t *types.Type, omitEmpty bool) (interface{}, error) {\n\t// Treat types with custom unmarshalling as a value\n\t// (Can be alias, struct, or pointer)\n\tif implementsCustomUnmarshalling(t) {\n\t\t// Since Go JSON deserializer always feeds `null` when present\n\t\t// to structs with custom UnmarshalJSON, the zero value for\n\t\t// these structs is also null.\n\t\t//\n\t\t// In general, Kubernetes API types with custom marshalling should\n\t\t// marshal their empty values to `null`.\n\t\treturn nil, nil\n\t}\n\n\tswitch t.Kind {\n\tcase types.Alias:\n\t\treturn mustEnforceDefault(t.Underlying, omitEmpty)\n\tcase types.Pointer, types.Map, types.Slice, types.Array, types.Interface:\n\t\treturn nil, nil\n\tcase types.Struct:\n\t\tif len(t.Members) == 1 && t.Members[0].Embedded {\n\t\t\t// Treat a struct with a single embedded member the same as an alias\n\t\t\treturn mustEnforceDefault(t.Members[0].Type, omitEmpty)\n\t\t}\n\n\t\treturn map[string]interface{}{}, nil\n\tcase types.Builtin:\n\t\tif !omitEmpty {\n\t\t\tif zero, ok := openapi.OpenAPIZeroValue(t.String()); ok {\n\t\t\t\treturn zero, nil\n\t\t\t} else {\n\t\t\t\treturn nil, fmt.Errorf(\"please add type %v to getOpenAPITypeFormat function\", t)\n\t\t\t}\n\t\t}\n\t\treturn nil, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"not sure how to enforce default for %v\", t.Kind)\n\t}\n}\n\nfunc (g openAPITypeWriter) generateDefault(comments []string, t *types.Type, omitEmpty bool, commentOwningType *types.Type) error {\n\tdef, ref, err := defaultFromComments(comments, commentOwningType.Name.Package, t)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif enforced, err := mustEnforceDefault(t, omitEmpty); err != nil {\n\t\treturn err\n\t} else if enforced != nil {\n\t\tif def == nil {\n\t\t\tdef = enforced\n\t\t} else if !reflect.DeepEqual(def, enforced) {\n\t\t\tenforcedJson, _ := json.Marshal(enforced)\n\t\t\treturn fmt.Errorf(\"invalid default value (%#v) for non-pointer/non-omitempty. If specified, must be: %v\", def, string(enforcedJson))\n\t\t}\n\t}\n\tif def != nil {\n\t\tg.Do(\"Default: $.$,\\n\", fmt.Sprintf(\"%#v\", def))\n\t} else if ref != nil {\n\t\tg.Do(\"Default: $.|raw$,\\n\", &types.Type{Name: *ref})\n\t}\n\treturn nil\n}\n\nfunc (g openAPITypeWriter) generateDescription(CommentLines []string) {\n\tvar buffer bytes.Buffer\n\tdelPrevChar := func() {\n\t\tif buffer.Len() > 0 {\n\t\t\tbuffer.Truncate(buffer.Len() - 1) // Delete the last \" \" or \"\\n\"\n\t\t}\n\t}\n\n\tfor _, line := range CommentLines {\n\t\t// Ignore all lines after ---\n\t\tif line == \"---\" {\n\t\t\tbreak\n\t\t}\n\t\tline = strings.TrimRight(line, \" \")\n\t\tleading := strings.TrimLeft(line, \" \")\n\t\tswitch {\n\t\tcase len(line) == 0: // Keep paragraphs\n\t\t\tdelPrevChar()\n\t\t\tbuffer.WriteString(\"\\n\\n\")\n\t\tcase strings.HasPrefix(leading, \"TODO\"): // Ignore one line TODOs\n\t\tcase strings.HasPrefix(leading, \"+\"): // Ignore instructions to go2idl\n\t\tdefault:\n\t\t\tif strings.HasPrefix(line, \" \") || strings.HasPrefix(line, \"\\t\") {\n\t\t\t\tdelPrevChar()\n\t\t\t\tline = \"\\n\" + line + \"\\n\" // Replace it with newline. This is useful when we have a line with: \"Example:\\n\\tJSON-something...\"\n\t\t\t} else {\n\t\t\t\tline += \" \"\n\t\t\t}\n\t\t\tbuffer.WriteString(line)\n\t\t}\n\t}\n\n\tpostDoc := strings.TrimSpace(buffer.String())\n\tif len(postDoc) > 0 {\n\t\tg.Do(\"Description: $.$,\\n\", fmt.Sprintf(\"%#v\", postDoc))\n\t}\n}\n\nfunc (g openAPITypeWriter) generateProperty(m *types.Member, parent *types.Type) error {\n\tname := getReferableName(m)\n\tif name == \"\" {\n\t\treturn nil\n\t}\n\tvalidationSchema, err := ParseCommentTags(m.Type, m.CommentLines, markerPrefix)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := g.validatePatchTags(m, parent); err != nil {\n\t\treturn err\n\t}\n\tg.Do(\"\\\"$.$\\\": {\\n\", name)\n\tif err := g.generateMemberExtensions(m, parent, validationSchema.Extensions); err != nil {\n\t\treturn err\n\t}\n\tg.Do(\"SchemaProps: spec.SchemaProps{\\n\", nil)\n\tvar extraComments []string\n\tif enumType, isEnum := g.enumContext.EnumType(m.Type); isEnum {\n\t\textraComments = enumType.DescriptionLines()\n\t}\n\tg.generateDescription(append(m.CommentLines, extraComments...))\n\tjsonTags := getJsonTags(m)\n\tif len(jsonTags) > 1 && jsonTags[1] == \"string\" {\n\t\tg.generateSimpleProperty(\"string\", \"\")\n\t\tg.Do(\"},\\n},\\n\", nil)\n\t\treturn nil\n\t}\n\tomitEmpty := strings.Contains(reflect.StructTag(m.Tags).Get(\"json\"), \"omitempty\")\n\tif err := g.generateDefault(m.CommentLines, m.Type, omitEmpty, parent); err != nil {\n\t\treturn fmt.Errorf(\"failed to generate default in %v: %v: %v\", parent, m.Name, err)\n\t}\n\terr = g.generateValueValidations(&validationSchema.SchemaProps)\n\tif err != nil {\n\t\treturn err\n\t}\n\tt := resolveAliasAndPtrType(m.Type)\n\t// If we can get a openAPI type and format for this type, we consider it to be simple property\n\ttypeString, format := openapi.OpenAPITypeFormat(t.String())\n\tif typeString != \"\" {\n\t\tg.generateSimpleProperty(typeString, format)\n\t\tif enumType, isEnum := g.enumContext.EnumType(m.Type); isEnum {\n\t\t\t// original type is an enum, add \"Enum: \" and the values\n\t\t\tg.Do(\"Enum: []interface{}{$.$},\\n\", strings.Join(enumType.ValueStrings(), \", \"))\n\t\t}\n\t\tg.Do(\"},\\n},\\n\", nil)\n\t\treturn nil\n\t}\n\tswitch t.Kind {\n\tcase types.Builtin:\n\t\treturn fmt.Errorf(\"please add type %v to getOpenAPITypeFormat function\", t)\n\tcase types.Map:\n\t\tif err := g.generateMapProperty(t); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to generate map property in %v: %v: %v\", parent, m.Name, err)\n\t\t}\n\tcase types.Slice, types.Array:\n\t\tif err := g.generateSliceProperty(t); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to generate slice property in %v: %v: %v\", parent, m.Name, err)\n\t\t}\n\tcase types.Struct:\n\t\tg.generateReferenceProperty(t)\n\tcase types.Interface:\n\t\t// Don't generate references to interfaces since we don't declare them\n\tdefault:\n\t\treturn fmt.Errorf(\"cannot generate spec for type %v\", t)\n\t}\n\tg.Do(\"},\\n},\\n\", nil)\n\treturn g.Error()\n}\n\nfunc (g openAPITypeWriter) generateSimpleProperty(typeString, format string) {\n\tg.Do(\"Type: []string{\\\"$.$\\\"},\\n\", typeString)\n\tg.Do(\"Format: \\\"$.$\\\",\\n\", format)\n}\n\nfunc (g openAPITypeWriter) generateReferenceProperty(t *types.Type) {\n\tg.refTypes[t.Name.String()] = t\n\tif g.shouldUseOpenAPIModelName(t) {\n\t\tg.Do(\"Ref: ref($.|raw${}.OpenAPIModelName()),\\n\", t)\n\t} else {\n\t\tg.Do(\"Ref: ref(\\\"$.$\\\"),\\n\", t.Name.String())\n\t}\n}\n\nfunc resolvePtrType(t *types.Type) *types.Type {\n\tvar prev *types.Type\n\tfor prev != t {\n\t\tprev = t\n\t\tif t.Kind == types.Pointer {\n\t\t\tt = t.Elem\n\t\t}\n\t}\n\treturn t\n}\n\nfunc resolveAliasAndPtrType(t *types.Type) *types.Type {\n\tvar prev *types.Type\n\tfor prev != t {\n\t\tprev = t\n\t\tif t.Kind == types.Alias {\n\t\t\tt = t.Underlying\n\t\t}\n\t\tif t.Kind == types.Pointer {\n\t\t\tt = t.Elem\n\t\t}\n\t}\n\treturn t\n}\n\nfunc (g openAPITypeWriter) generateMapProperty(t *types.Type) error {\n\tkeyType := resolveAliasAndPtrType(t.Key)\n\telemType := resolveAliasAndPtrType(t.Elem)\n\n\t// According to OpenAPI examples, only map from string is supported\n\tif keyType.Name.Name != \"string\" {\n\t\treturn fmt.Errorf(\"map with non-string keys are not supported by OpenAPI in %v\", t)\n\t}\n\n\tg.Do(\"Type: []string{\\\"object\\\"},\\n\", nil)\n\tg.Do(\"AdditionalProperties: &spec.SchemaOrBool{\\nAllows: true,\\nSchema: &spec.Schema{\\nSchemaProps: spec.SchemaProps{\\n\", nil)\n\tif err := g.generateDefault(t.Elem.CommentLines, t.Elem, false, t.Elem); err != nil {\n\t\treturn err\n\t}\n\ttypeString, format := openapi.OpenAPITypeFormat(elemType.String())\n\tif typeString != \"\" {\n\t\tg.generateSimpleProperty(typeString, format)\n\t\tif enumType, isEnum := g.enumContext.EnumType(t.Elem); isEnum {\n\t\t\t// original type is an enum, add \"Enum: \" and the values\n\t\t\tg.Do(\"Enum: []interface{}{$.$},\\n\", strings.Join(enumType.ValueStrings(), \", \"))\n\t\t}\n\t\tg.Do(\"},\\n},\\n},\\n\", nil)\n\t\treturn nil\n\t}\n\tswitch elemType.Kind {\n\tcase types.Builtin:\n\t\treturn fmt.Errorf(\"please add type %v to getOpenAPITypeFormat function\", elemType)\n\tcase types.Struct:\n\t\tg.generateReferenceProperty(elemType)\n\tcase types.Slice, types.Array:\n\t\tif err := g.generateSliceProperty(elemType); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase types.Map:\n\t\tif err := g.generateMapProperty(elemType); err != nil {\n\t\t\treturn err\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"map Element kind %v is not supported in %v\", elemType.Kind, t.Name)\n\t}\n\tg.Do(\"},\\n},\\n},\\n\", nil)\n\treturn nil\n}\n\nfunc (g openAPITypeWriter) generateSliceProperty(t *types.Type) error {\n\telemType := resolveAliasAndPtrType(t.Elem)\n\tg.Do(\"Type: []string{\\\"array\\\"},\\n\", nil)\n\tg.Do(\"Items: &spec.SchemaOrArray{\\nSchema: &spec.Schema{\\nSchemaProps: spec.SchemaProps{\\n\", nil)\n\tif err := g.generateDefault(t.Elem.CommentLines, t.Elem, false, t.Elem); err != nil {\n\t\treturn err\n\t}\n\ttypeString, format := openapi.OpenAPITypeFormat(elemType.String())\n\tif typeString != \"\" {\n\t\tg.generateSimpleProperty(typeString, format)\n\t\tif enumType, isEnum := g.enumContext.EnumType(t.Elem); isEnum {\n\t\t\t// original type is an enum, add \"Enum: \" and the values\n\t\t\tg.Do(\"Enum: []interface{}{$.$},\\n\", strings.Join(enumType.ValueStrings(), \", \"))\n\t\t}\n\t\tg.Do(\"},\\n},\\n},\\n\", nil)\n\t\treturn nil\n\t}\n\tswitch elemType.Kind {\n\tcase types.Builtin:\n\t\treturn fmt.Errorf(\"please add type %v to getOpenAPITypeFormat function\", elemType)\n\tcase types.Struct:\n\t\tg.generateReferenceProperty(elemType)\n\tcase types.Slice, types.Array:\n\t\tif err := g.generateSliceProperty(elemType); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase types.Map:\n\t\tif err := g.generateMapProperty(elemType); err != nil {\n\t\t\treturn err\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"slice Element kind %v is not supported in %v\", elemType.Kind, t)\n\t}\n\tg.Do(\"},\\n},\\n},\\n\", nil)\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/generators/openapi_test.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage generators\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"go/format\"\n\t\"path\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"golang.org/x/tools/go/packages\"\n\t\"golang.org/x/tools/go/packages/packagestest\"\n\n\t\"k8s.io/gengo/v2/generator\"\n\t\"k8s.io/gengo/v2/namer\"\n\t\"k8s.io/gengo/v2/parser\"\n\t\"k8s.io/gengo/v2/types\"\n)\n\nfunc construct(t *testing.T, cfg *packages.Config, nameSystems namer.NameSystems, defaultSystem string, pkg string) *generator.Context {\n\tp := parser.New()\n\tif err := p.LoadPackagesWithConfigForTesting(cfg, pkg); err != nil {\n\t\tt.Fatalf(\"failed to load package: %v\", err)\n\t}\n\tc, err := generator.NewContext(p, nameSystems, defaultSystem)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to make a context: %v\", err)\n\t}\n\treturn c\n}\n\nfunc testOpenAPITypeWriter(t *testing.T, cfg *packages.Config) (error, error, *bytes.Buffer, *bytes.Buffer, []string) {\n\tpkgBase := \"example.com/base\"\n\t// `path` vs. `filepath` because packages use '/'\n\tinputPkg := path.Join(pkgBase, \"foo\")\n\toutputPkg := path.Join(pkgBase, \"output\")\n\timports := generator.NewImportTrackerForPackage(outputPkg)\n\trawNamer := namer.NewRawNamer(outputPkg, imports)\n\tnamers := namer.NameSystems{\n\t\t\"raw\": rawNamer,\n\t\t\"private\": &namer.NameStrategy{\n\t\t\tJoin: func(pre string, in []string, post string) string {\n\t\t\t\treturn strings.Join(in, \"_\")\n\t\t\t},\n\t\t\tPrependPackageNames: 4, // enough to fully qualify from k8s.io/api/...\n\t\t},\n\t}\n\tcontext := construct(t, cfg, namers, \"raw\", inputPkg)\n\tuniverse := context.Universe\n\tblahT := universe.Type(types.Name{Package: inputPkg, Name: \"Blah\"})\n\n\tcallBuffer := &bytes.Buffer{}\n\tcallSW := generator.NewSnippetWriter(callBuffer, context, \"$\", \"$\")\n\tcallError := newOpenAPITypeWriter(callSW, context).generateCall(blahT)\n\n\tfuncBuffer := &bytes.Buffer{}\n\tfuncSW := generator.NewSnippetWriter(funcBuffer, context, \"$\", \"$\")\n\tfuncError := newOpenAPITypeWriter(funcSW, context).generate(blahT)\n\n\treturn callError, funcError, callBuffer, funcBuffer, imports.ImportLines()\n}\n\n// NOTE: the usual order of arguments for an assertion would be want, got, but\n// this helper function flips that in favor of callsite readability.\nfunc assertEqual(t *testing.T, got, want string) {\n\tt.Helper()\n\twant = strings.TrimSpace(want)\n\tgot = strings.TrimSpace(got)\n\tif !cmp.Equal(want, got) {\n\t\tt.Errorf(\"Wrong result:\\n%s\", cmp.Diff(want, got))\n\t}\n}\n\nfunc TestSimple(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Blah is a test.\n\t\t// +k8s:openapi-gen=true\n\t\t// +k8s:openapi-gen=x-kubernetes-type-tag:type_test\n\t\ttype Blah struct {\n\t\t\t// A simple string\n\t\t\tString string\n\t\t\t// A simple int\n\t\t\tInt int ` + \"`\" + `json:\",omitempty\"` + \"`\" + `\n\t\t\t// An int considered string simple int\n\t\t\tIntString int ` + \"`\" + `json:\",string\"` + \"`\" + `\n\t\t\t// A simple int64\n\t\t\tInt64 int64\n\t\t\t// A simple int32\n\t\t\tInt32 int32\n\t\t\t// A simple int16\n\t\t\tInt16 int16\n\t\t\t// A simple int8\n\t\t\tInt8 int8\n\t\t\t// A simple int\n\t\t\tUint uint\n\t\t\t// A simple int64\n\t\t\tUint64 uint64\n\t\t\t// A simple int32\n\t\t\tUint32 uint32\n\t\t\t// A simple int16\n\t\t\tUint16 uint16\n\t\t\t// A simple int8\n\t\t\tUint8 uint8\n\t\t\t// A simple byte\n\t\t\tByte byte\n\t\t\t// A simple boolean\n\t\t\tBool bool\n\t\t\t// A simple float64\n\t\t\tFloat64 float64\n\t\t\t// A simple float32\n\t\t\tFloat32 float32\n\t\t\t// a base64 encoded characters\n\t\t\tByteArray []byte\n\t\t\t// a member with an extension\n\t\t\t// +k8s:openapi-gen=x-kubernetes-member-tag:member_test\n\t\t\tWithExtension string\n\t\t\t// a member with struct tag as extension\n\t\t\t// +patchStrategy=merge\n\t\t\t// +patchMergeKey=pmk\n\t\t\tWithStructTagExtension string ` + \"`\" + `patchStrategy:\"merge\" patchMergeKey:\"pmk\"` + \"`\" + `\n\t\t\t// a member with a list type\n\t\t\t// +listType=atomic\n\t\t\t// +default=[\"foo\", \"bar\"]\n\t\t\tWithListType []string\n\t\t\t// a member with a map type\n\t\t\t// +listType=atomic\n\t\t\t// +default={\"foo\": \"bar\", \"fizz\": \"buzz\"}\n\t\t\tMap map[string]string\n\t\t\t// a member with a string pointer\n\t\t\t// +default=\"foo\"\n\t\t\tStringPointer *string\n\t\t\t// an int member with a default\n\t\t\t// +default=1\n\t\t\tOmittedInt int ` + \"`\" + `json:\"omitted,omitempty\"` + \"`\" + `\n\t\t\t// a field with an invalid escape sequence in comment\n\t\t\t// ex) regexp:^.*\\.yaml$\n\t\t\tInvalidEscapeSequenceInComment string\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah is a test.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"String\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple string\",\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n\"Int64\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple int64\",\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"int64\",\n},\n},\n\"Int32\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple int32\",\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"int32\",\n},\n},\n\"Int16\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple int16\",\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"int32\",\n},\n},\n\"Int8\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple int8\",\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"byte\",\n},\n},\n\"Uint\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple int\",\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"int32\",\n},\n},\n\"Uint64\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple int64\",\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"int64\",\n},\n},\n\"Uint32\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple int32\",\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"int64\",\n},\n},\n\"Uint16\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple int16\",\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"int32\",\n},\n},\n\"Uint8\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple int8\",\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"byte\",\n},\n},\n\"Byte\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple byte\",\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"byte\",\n},\n},\n\"Bool\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple boolean\",\nDefault: false,\nType: []string{\"boolean\"},\nFormat: \"\",\n},\n},\n\"Float64\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple float64\",\nDefault: 0,\nType: []string{\"number\"},\nFormat: \"double\",\n},\n},\n\"Float32\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple float32\",\nDefault: 0,\nType: []string{\"number\"},\nFormat: \"float\",\n},\n},\n\"ByteArray\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"a base64 encoded characters\",\nType: []string{\"string\"},\nFormat: \"byte\",\n},\n},\n\"WithExtension\": {\nVendorExtensible: spec.VendorExtensible{\nExtensions: spec.Extensions{\n\"x-kubernetes-member-tag\": \"member_test\",\n},\n},\nSchemaProps: spec.SchemaProps{\nDescription: \"a member with an extension\",\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n\"WithStructTagExtension\": {\nVendorExtensible: spec.VendorExtensible{\nExtensions: spec.Extensions{\n\"x-kubernetes-patch-merge-key\": \"pmk\",\n\"x-kubernetes-patch-strategy\": \"merge\",\n},\n},\nSchemaProps: spec.SchemaProps{\nDescription: \"a member with struct tag as extension\",\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n\"WithListType\": {\nVendorExtensible: spec.VendorExtensible{\nExtensions: spec.Extensions{\n\"x-kubernetes-list-type\": \"atomic\",\n},\n},\nSchemaProps: spec.SchemaProps{\nDescription: \"a member with a list type\",\nDefault: []interface {}{\"foo\", \"bar\"},\nType: []string{\"array\"},\nItems: &spec.SchemaOrArray{\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n},\n},\n},\n\"Map\": {\nVendorExtensible: spec.VendorExtensible{\nExtensions: spec.Extensions{\n\"x-kubernetes-list-type\": \"atomic\",\n},\n},\nSchemaProps: spec.SchemaProps{\nDescription: \"a member with a map type\",\nDefault: map[string]interface {}{\"fizz\":\"buzz\", \"foo\":\"bar\"},\nType: []string{\"object\"},\nAdditionalProperties: &spec.SchemaOrBool{\nAllows: true,\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n},\n},\n},\n\"StringPointer\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"a member with a string pointer\",\nDefault: \"foo\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n\"omitted\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"an int member with a default\",\nDefault: 1,\nType: []string{\"integer\"},\nFormat: \"int32\",\n},\n},\n\"InvalidEscapeSequenceInComment\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"a field with an invalid escape sequence in comment ex) regexp:^.*\\\\.yaml$\",\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n},\nRequired: []string{\"String\",\"Int64\",\"Int32\",\"Int16\",\"Int8\",\"Uint\",\"Uint64\",\"Uint32\",\"Uint16\",\"Uint8\",\"Byte\",\"Bool\",\"Float64\",\"Float32\",\"ByteArray\",\"WithExtension\",\"WithStructTagExtension\",\"WithListType\",\"Map\",\"StringPointer\",\"InvalidEscapeSequenceInComment\"},\n},\nVendorExtensible: spec.VendorExtensible{\nExtensions: spec.Extensions{\n\"x-kubernetes-type-tag\": \"type_test\",\n},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestEmptyProperties(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Blah demonstrate a struct without fields.\n\t\ttype Blah struct {\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah demonstrate a struct without fields.\",\nType: []string{\"object\"},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestNestedStruct(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Nested is used as struct field\n\t\ttype Nested struct {\n\t\t  // A simple string\n\t\t  String string\n\t\t}\n\n\t\t// Blah demonstrate a struct with struct field.\n\t\ttype Blah struct {\n\t\t  // A struct field\n\t\t  Field Nested\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah demonstrate a struct with struct field.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"Field\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A struct field\",\nDefault: map[string]interface {}{},\nRef: ref(\"example.com/base/foo.Nested\"),\n},\n},\n},\nRequired: []string{\"Field\"},\n},\n},\nDependencies: []string{\n\"example.com/base/foo.Nested\",},\n}\n}`)\n\t})\n}\n\nfunc TestNestedStructPointer(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Nested is used as struct pointer field\n\t\ttype Nested struct {\n\t\t  // A simple string\n\t\t  String string\n\t\t}\n\n\t\t// Blah demonstrate a struct with struct pointer field.\n\t\ttype Blah struct {\n\t\t  // A struct pointer field\n\t\t  Field *Nested\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah demonstrate a struct with struct pointer field.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"Field\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A struct pointer field\",\nRef: ref(\"example.com/base/foo.Nested\"),\n},\n},\n},\nRequired: []string{\"Field\"},\n},\n},\nDependencies: []string{\n\"example.com/base/foo.Nested\",},\n}\n}`)\n\t})\n}\n\nfunc TestEmbeddedStruct(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Nested is used as embedded struct field\n\t\ttype Nested struct {\n\t\t  // A simple string\n\t\t  String string\n\t\t}\n\n\t\t// Blah demonstrate a struct with embedded struct field.\n\t\ttype Blah struct {\n\t\t  // An embedded struct field\n\t\t  Nested\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah demonstrate a struct with embedded struct field.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"Nested\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"An embedded struct field\",\nDefault: map[string]interface {}{},\nRef: ref(\"example.com/base/foo.Nested\"),\n},\n},\n},\nRequired: []string{\"Nested\"},\n},\n},\nDependencies: []string{\n\"example.com/base/foo.Nested\",},\n}\n}`)\n\t})\n}\n\nfunc TestSingleEmbeddedStruct(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\timport \"time\"\n\n\t\t// Nested is used as embedded struct field\n\t\ttype Nested struct {\n\t\t  // A simple string\n\t\t  time.Duration\n\t\t}\n\n\t\t// Blah demonstrate a struct with embedded struct field.\n\t\ttype Blah struct {\n\t\t  // An embedded struct field\n\t\t  // +default=\"10ms\"\n\t\t  Nested ` + \"`\" + `json:\"nested,omitempty\" protobuf:\"bytes,5,opt,name=nested\"` + \"`\" + `\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah demonstrate a struct with embedded struct field.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"nested\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"An embedded struct field\",\nDefault: \"10ms\",\nRef: ref(\"example.com/base/foo.Nested\"),\n},\n},\n},\n},\n},\nDependencies: []string{\n\"example.com/base/foo.Nested\",},\n}\n}`)\n\t})\n}\n\nfunc TestEmbeddedInlineStruct(t *testing.T) {\n\tinputFile := `\n\tpackage foo\n\n\t\t// Nested is used as embedded inline struct field\n\t\ttype Nested struct {\n\t\t  // A simple string\n\t\t  String string\n\t\t}\n\n\t\t// Blah demonstrate a struct with embedded inline struct field.\n\t\ttype Blah struct {\n\t\t  // An embedded inline struct field\n\t\t  Nested ` + \"`\" + `json:\",inline,omitempty\"` + \"`\" + `\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah demonstrate a struct with embedded inline struct field.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"String\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple string\",\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n},\nRequired: []string{\"String\"},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestEmbeddedInlineStructPointer(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Nested is used as embedded inline struct pointer field.\n\t\ttype Nested struct {\n\t\t  // A simple string\n\t\t  String string\n\t\t}\n\n\t\t// Blah demonstrate a struct with embedded inline struct pointer field.\n\t\ttype Blah struct {\n\t\t  // An embedded inline struct pointer field\n\t\t  *Nested ` + \"`\" + `json:\",inline,omitempty\"` + \"`\" + `\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah demonstrate a struct with embedded inline struct pointer field.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"String\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple string\",\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n},\nRequired: []string{\"String\"},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestEmbeddedInlineStructWithEmptyJSONTag(t *testing.T) {\n\tinputFile := `\n\tpackage foo\n\n\t\t// Nested is used as embedded inline struct field\n\t\ttype Nested struct {\n\t\t  // A simple string\n\t\t  String string\n\t\t}\n\n\t\t// Blah demonstrate a struct with embedded inline struct field using empty json tag.\n\t\ttype Blah struct {\n\t\t  // An embedded inline struct field with empty json tag\n\t\t  Nested ` + \"`\" + `json:\"\"` + \"`\" + `\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah demonstrate a struct with embedded inline struct field using empty json tag.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"String\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A simple string\",\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n},\nRequired: []string{\"String\"},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestNestedMapString(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Map sample tests openAPIGen.generateMapProperty method.\n\t\ttype Blah struct {\n\t\t\t// A sample String to String map\n\t\t\tStringToArray map[string]map[string]string\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Map sample tests openAPIGen.generateMapProperty method.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"StringToArray\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A sample String to String map\",\nType: []string{\"object\"},\nAdditionalProperties: &spec.SchemaOrBool{\nAllows: true,\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nType: []string{\"object\"},\nAdditionalProperties: &spec.SchemaOrBool{\nAllows: true,\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n},\n},\n},\n},\n},\n},\n},\nRequired: []string{\"StringToArray\"},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestNestedMapInt(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Map sample tests openAPIGen.generateMapProperty method.\n\t\ttype Blah struct {\n\t\t\t// A sample String to String map\n\t\t\tStringToArray map[string]map[string]int\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Map sample tests openAPIGen.generateMapProperty method.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"StringToArray\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A sample String to String map\",\nType: []string{\"object\"},\nAdditionalProperties: &spec.SchemaOrBool{\nAllows: true,\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nType: []string{\"object\"},\nAdditionalProperties: &spec.SchemaOrBool{\nAllows: true,\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"int32\",\n},\n},\n},\n},\n},\n},\n},\n},\n},\nRequired: []string{\"StringToArray\"},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestNestedMapBoolean(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Map sample tests openAPIGen.generateMapProperty method.\n\t\ttype Blah struct {\n\t\t\t// A sample String to String map\n\t\t\tStringToArray map[string]map[string]bool\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Map sample tests openAPIGen.generateMapProperty method.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"StringToArray\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A sample String to String map\",\nType: []string{\"object\"},\nAdditionalProperties: &spec.SchemaOrBool{\nAllows: true,\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nType: []string{\"object\"},\nAdditionalProperties: &spec.SchemaOrBool{\nAllows: true,\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: false,\nType: []string{\"boolean\"},\nFormat: \"\",\n},\n},\n},\n},\n},\n},\n},\n},\n},\nRequired: []string{\"StringToArray\"},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestFailingSample1(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Map sample tests openAPIGen.generateMapProperty method.\n\t\ttype Blah struct {\n\t\t\t// A sample String to String map\n\t\t\tStringToArray map[string]map[string]map[int]string\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\t_, funcErr, _, _, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif funcErr == nil {\n\t\t\tt.Fatalf(\"An error was expected\")\n\t\t}\n\t\tassertEqual(t,\n\t\t\t\"failed to generate map property in example.com/base/foo.Blah: StringToArray: map with non-string keys are not supported by OpenAPI in map[int]string\",\n\t\t\tfuncErr.Error())\n\t})\n}\n\nfunc TestFailingSample2(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Map sample tests openAPIGen.generateMapProperty method.\n\t\ttype Blah struct {\n\t\t\t// A sample String to String map\n\t\t\tStringToArray map[int]string\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\t_, funcErr, _, _, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif funcErr == nil {\n\t\t\tt.Fatalf(\"An error was expected\")\n\t\t}\n\t\tassertEqual(t,\n\t\t\t\"failed to generate map property in example.com/base/foo.Blah: StringToArray: map with non-string keys are not supported by OpenAPI in map[int]string\",\n\t\t\tfuncErr.Error())\n\t})\n}\n\nfunc TestFailingDefaultEnforced(t *testing.T) {\n\ttests := []struct {\n\t\tdefinition    string\n\t\texpectedError string\n\t}{{\n\t\tdefinition: `\n\t\t\tpackage foo\n\n\t\t\ttype Blah struct {\n\t\t\t\t// +default=5\n\t\t\t\tInt int\n\t\t\t}`,\n\t\texpectedError: \"failed to generate default in example.com/base/foo.Blah: Int: invalid default value (5) for non-pointer/non-omitempty. If specified, must be: 0\",\n\t}, {\n\t\tdefinition: `\n\t\t\tpackage foo\n\n\t\t\ttype Blah struct {\n\t\t\t\t// +default={\"foo\": 5}\n\t\t\t\tStruct struct{\n\t\t\t\t\tfoo int\n\t\t\t\t}\n\t\t\t}`,\n\t\texpectedError: `failed to generate default in example.com/base/foo.Blah: Struct: invalid default value (map[string]interface {}{\"foo\":5}) for non-pointer/non-omitempty. If specified, must be: {}`,\n\t}, {\n\t\tdefinition: `\n\t\t\tpackage foo\n\n\t\t\ttype Blah struct {\n\t\t\t\tList []Item\n\n\t\t\t}\n\n\t\t\t// +default=\"foo\"\n\t\t\ttype Item string`,\n\t\texpectedError: `failed to generate slice property in example.com/base/foo.Blah: List: invalid default value (\"foo\") for non-pointer/non-omitempty. If specified, must be: \"\"`,\n\t}, {\n\t\tdefinition: `\n\t\t\tpackage foo\n\n\t\t\ttype Blah struct {\n\t\t\t\tMap map[string]Item\n\n\t\t\t}\n\n\t\t\t// +default=\"foo\"\n\t\t\ttype Item string`,\n\t\texpectedError: `failed to generate map property in example.com/base/foo.Blah: Map: invalid default value (\"foo\") for non-pointer/non-omitempty. If specified, must be: \"\"`,\n\t}}\n\n\tfor i, test := range tests {\n\t\tt.Run(fmt.Sprintf(\"%d\", i), func(t *testing.T) {\n\t\t\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\t\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\t\t\tName: \"example.com/base/foo\",\n\t\t\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\t\t\"foo.go\": test.definition,\n\t\t\t\t\t},\n\t\t\t\t}})\n\t\t\t\tdefer e.Cleanup()\n\n\t\t\t\t_, funcErr, _, _, _ := testOpenAPITypeWriter(t, e.Config)\n\t\t\t\tif funcErr == nil {\n\t\t\t\t\tt.Fatalf(\"An error was expected\")\n\t\t\t\t}\n\t\t\t\tassertEqual(t, test.expectedError, funcErr.Error())\n\t\t\t})\n\t\t})\n\t}\n}\n\nfunc TestCustomDef(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\timport openapi \"k8s.io/kube-openapi/pkg/common\"\n\n\t\ttype Blah struct {\n\t\t}\n\n\t\tfunc (_ Blah) OpenAPIDefinition() openapi.OpenAPIDefinition {\n\t\t\treturn openapi.OpenAPIDefinition{\n\t\t\t\tSchema: spec.Schema{\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tType:   []string{\"string\"},\n\t\t\t\t\t\tFormat: \"date-time\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}`\n\tcommonFile := `package common\n\n\t\ttype OpenAPIDefinition struct {}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}, {\n\t\t\tName: \"k8s.io/kube-openapi/pkg/common\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"common.go\": commonFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": foo.Blah{}.OpenAPIDefinition(),`)\n\t\tassertEqual(t, \"\", funcBuffer.String())\n\t})\n}\n\nfunc TestCustomDefV3(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\timport openapi \"k8s.io/kube-openapi/pkg/common\"\n\n\t\ttype Blah struct {\n\t\t}\n\n\t\tfunc (_ Blah) OpenAPIV3Definition() openapi.OpenAPIDefinition {\n\t\t\treturn openapi.OpenAPIDefinition{\n\t\t\t\tSchema: spec.Schema{\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tType:   []string{\"string\"},\n\t\t\t\t\t\tFormat: \"date-time\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}`\n\tcommonFile := `package common\n\n\t\ttype OpenAPIDefinition struct {}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}, {\n\t\t\tName: \"k8s.io/kube-openapi/pkg/common\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"common.go\": commonFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": foo.Blah{}.OpenAPIV3Definition(),`)\n\t\tassertEqual(t, \"\", funcBuffer.String())\n\t})\n}\n\nfunc TestCustomDefV2AndV3(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\timport openapi \"k8s.io/kube-openapi/pkg/common\"\n\n\t\ttype Blah struct {\n\t\t}\n\n\t\tfunc (_ Blah) OpenAPIV3Definition() openapi.OpenAPIDefinition {\n\t\t\treturn openapi.OpenAPIDefinition{\n\t\t\t\tSchema: spec.Schema{\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tType:   []string{\"string\"},\n\t\t\t\t\t\tFormat: \"date-time\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\tfunc (_ Blah) OpenAPIDefinition() openapi.OpenAPIDefinition {\n\t\t\treturn openapi.OpenAPIDefinition{\n\t\t\t\tSchema: spec.Schema{\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tType:   []string{\"string\"},\n\t\t\t\t\t\tFormat: \"date-time\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}`\n\tcommonFile := `package common\n\n\t\ttype OpenAPIDefinition struct {}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}, {\n\t\t\tName: \"k8s.io/kube-openapi/pkg/common\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"common.go\": commonFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": common.EmbedOpenAPIDefinitionIntoV2Extension(foo.Blah{}.OpenAPIV3Definition(), foo.Blah{}.OpenAPIDefinition()),`)\n\t\tassertEqual(t, \"\", funcBuffer.String())\n\t})\n}\n\nfunc TestCustomDefs(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Blah is a custom type\n\t\ttype Blah struct {\n\t\t}\n\n\t\tfunc (_ Blah) OpenAPISchemaType() []string { return []string{\"string\"} }\n\t\tfunc (_ Blah) OpenAPISchemaFormat() string { return \"date-time\" }`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah is a custom type\",\nType:foo.Blah{}.OpenAPISchemaType(),\nFormat:foo.Blah{}.OpenAPISchemaFormat(),\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestCustomDefsV3(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\timport openapi \"k8s.io/kube-openapi/pkg/common\"\n\n\t\t// Blah is a custom type\n\t\ttype Blah struct {\n\t\t}\n\n\t\tfunc (_ Blah) OpenAPIV3Definition() openapi.OpenAPIDefinition {\n\t\t\treturn openapi.OpenAPIDefinition{\n\t\t\t\tSchema: spec.Schema{\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tType:   []string{\"string\"},\n\t\t\t\t\t\tFormat: \"date-time\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\tfunc (_ Blah) OpenAPISchemaType() []string { return []string{\"string\"} }\n\t\tfunc (_ Blah) OpenAPISchemaFormat() string { return \"date-time\" }`\n\tcommonFile := `package common\n\n\t\ttype OpenAPIDefinition struct {}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}, {\n\t\t\tName: \"k8s.io/kube-openapi/pkg/common\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"common.go\": commonFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.EmbedOpenAPIDefinitionIntoV2Extension(foo.Blah{}.OpenAPIV3Definition(), common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah is a custom type\",\nType:foo.Blah{}.OpenAPISchemaType(),\nFormat:foo.Blah{}.OpenAPISchemaFormat(),\n},\n},\n})\n}`)\n\t})\n}\n\nfunc TestV3OneOfTypes(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Blah is a custom type\n\t\ttype Blah struct {\n\t\t}\n\n\t\tfunc (_ Blah) OpenAPISchemaType() []string { return []string{\"string\"} }\n\t\tfunc (_ Blah) OpenAPISchemaFormat() string { return \"date-time\" }\n\t\tfunc (_ Blah) OpenAPIV3OneOfTypes() []string { return []string{\"string\", \"number\"} }`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.EmbedOpenAPIDefinitionIntoV2Extension(common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah is a custom type\",\nOneOf:common.GenerateOpenAPIV3OneOfSchema(foo.Blah{}.OpenAPIV3OneOfTypes()),\nFormat:foo.Blah{}.OpenAPISchemaFormat(),\n},\n},\n},common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah is a custom type\",\nType:foo.Blah{}.OpenAPISchemaType(),\nFormat:foo.Blah{}.OpenAPISchemaFormat(),\n},\n},\n})\n}`)\n\t})\n}\n\nfunc TestPointer(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// PointerSample demonstrate pointer's properties\n\t\ttype Blah struct {\n\t\t\t// A string pointer\n\t\t\tStringPointer *string\n\t\t\t// A struct pointer\n\t\t\tStructPointer *Blah\n\t\t\t// A slice pointer\n\t\t\tSlicePointer *[]string\n\t\t\t// A map pointer\n\t\t\tMapPointer *map[string]string\n\t\t}`\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"PointerSample demonstrate pointer's properties\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"StringPointer\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A string pointer\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n\"StructPointer\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A struct pointer\",\nRef: ref(\"example.com/base/foo.Blah\"),\n},\n},\n\"SlicePointer\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A slice pointer\",\nType: []string{\"array\"},\nItems: &spec.SchemaOrArray{\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n},\n},\n},\n\"MapPointer\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"A map pointer\",\nType: []string{\"object\"},\nAdditionalProperties: &spec.SchemaOrBool{\nAllows: true,\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n},\n},\n},\n},\nRequired: []string{\"StringPointer\",\"StructPointer\",\"SlicePointer\",\"MapPointer\"},\n},\n},\nDependencies: []string{\n\"example.com/base/foo.Blah\",},\n}\n}`)\n\t})\n}\n\nfunc TestNestedLists(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Blah is a test.\n\t\t// +k8s:openapi-gen=true\n\t\t// +k8s:openapi-gen=x-kubernetes-type-tag:type_test\n\t\ttype Blah struct {\n\t\t\t// Nested list\n\t\t\tNestedList [][]int64\n\t\t}`\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah is a test.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"NestedList\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"Nested list\",\nType: []string{\"array\"},\nItems: &spec.SchemaOrArray{\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nType: []string{\"array\"},\nItems: &spec.SchemaOrArray{\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"int64\",\n},\n},\n},\n},\n},\n},\n},\n},\n},\nRequired: []string{\"NestedList\"},\n},\nVendorExtensible: spec.VendorExtensible{\nExtensions: spec.Extensions{\n\"x-kubernetes-type-tag\": \"type_test\",\n},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestNestListOfMaps(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Blah is a test.\n\t\t// +k8s:openapi-gen=true\n\t\t// +k8s:openapi-gen=x-kubernetes-type-tag:type_test\n\t\ttype Blah struct {\n\t\t\t// Nested list of maps\n\t\t\tNestedListOfMaps [][]map[string]string\n\t\t}`\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah is a test.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"NestedListOfMaps\": {\nSchemaProps: spec.SchemaProps{\nDescription: \"Nested list of maps\",\nType: []string{\"array\"},\nItems: &spec.SchemaOrArray{\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nType: []string{\"array\"},\nItems: &spec.SchemaOrArray{\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nType: []string{\"object\"},\nAdditionalProperties: &spec.SchemaOrBool{\nAllows: true,\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n},\n},\n},\n},\n},\n},\n},\n},\n},\n},\nRequired: []string{\"NestedListOfMaps\"},\n},\nVendorExtensible: spec.VendorExtensible{\nExtensions: spec.Extensions{\n\"x-kubernetes-type-tag\": \"type_test\",\n},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestExtensions(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Blah is a test.\n\t\t// +k8s:openapi-gen=true\n\t\t// +k8s:openapi-gen=x-kubernetes-type-tag:type_test\n\t\ttype Blah struct {\n\t\t\t// a member with a list type with two map keys\n\t\t\t// +listType=map\n\t\t\t// +listMapKey=port\n\t\t\t// +listMapKey=protocol\n\t\t\tWithListField []string\n\n\t\t\t// another member with a list type with one map key\n\t\t\t// +listType=map\n\t\t\t// +listMapKey=port\n\t\t\tWithListField2 []string\n\t\t}`\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah is a test.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"WithListField\": {\nVendorExtensible: spec.VendorExtensible{\nExtensions: spec.Extensions{\n\"x-kubernetes-list-map-keys\": []interface{}{\n\"port\",\n\"protocol\",\n},\n\"x-kubernetes-list-type\": \"map\",\n},\n},\nSchemaProps: spec.SchemaProps{\nDescription: \"a member with a list type with two map keys\",\nType: []string{\"array\"},\nItems: &spec.SchemaOrArray{\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n},\n},\n},\n\"WithListField2\": {\nVendorExtensible: spec.VendorExtensible{\nExtensions: spec.Extensions{\n\"x-kubernetes-list-map-keys\": []interface{}{\n\"port\",\n},\n\"x-kubernetes-list-type\": \"map\",\n},\n},\nSchemaProps: spec.SchemaProps{\nDescription: \"another member with a list type with one map key\",\nType: []string{\"array\"},\nItems: &spec.SchemaOrArray{\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n},\n},\n},\n},\nRequired: []string{\"WithListField\",\"WithListField2\"},\n},\nVendorExtensible: spec.VendorExtensible{\nExtensions: spec.Extensions{\n\"x-kubernetes-type-tag\": \"type_test\",\n},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestUnion(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// Blah is a test.\n\t\t// +k8s:openapi-gen=true\n\t\t// +k8s:openapi-gen=x-kubernetes-type-tag:type_test\n\t\t// +union\n\t\ttype Blah struct {\n\t\t\t// +unionDiscriminator\n\t\t\tDiscriminator *string ` + \"`\" + `json:\"discriminator\"` + \"`\" + `\n\t\t\t\t// +optional\n\t\t\t\tNumeric int ` + \"`\" + `json:\"numeric\"` + \"`\" + `\n\t\t\t\t// +optional\n\t\t\t\tString string ` + \"`\" + `json:\"string\"` + \"`\" + `\n\t\t\t\t// +optional\n\t\t\t\tFloat float64 ` + \"`\" + `json:\"float\"` + \"`\" + `\n\t\t}`\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah is a test.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"discriminator\": {\nSchemaProps: spec.SchemaProps{\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n\"numeric\": {\nSchemaProps: spec.SchemaProps{\nDefault: 0,\nType: []string{\"integer\"},\nFormat: \"int32\",\n},\n},\n\"string\": {\nSchemaProps: spec.SchemaProps{\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\n},\n},\n\"float\": {\nSchemaProps: spec.SchemaProps{\nDefault: 0,\nType: []string{\"number\"},\nFormat: \"double\",\n},\n},\n},\nRequired: []string{\"discriminator\"},\n},\nVendorExtensible: spec.VendorExtensible{\nExtensions: spec.Extensions{\n\"x-kubernetes-type-tag\": \"type_test\",\n\"x-kubernetes-unions\": []interface{}{\nmap[string]interface{}{\n\"discriminator\": \"discriminator\",\n\"fields-to-discriminateBy\": map[string]interface{}{\n\"float\": \"Float\",\n\"numeric\": \"Numeric\",\n\"string\": \"String\",\n},\n},\n},\n},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestEnumAlias(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\timport \"example.com/base/bar\"\n\n\t\t// EnumType is the enumType.\n\t\t// +enum\n\t\ttype EnumType = bar.EnumType\n\n\t\t// EnumA is a.\n\t\tconst EnumA EnumType = bar.EnumA\n\t\t// EnumB is b.\n\t\tconst EnumB EnumType = bar.EnumB\n\n\t\t// Blah is a test.\n\t\t// +k8s:openapi-gen=true\n\t\ttype Blah struct {\n\t\t\t// Value is the value.\n\t\t\tValue EnumType\n\t\t}`\n\totherFile := `\n\t\tpackage bar\n\n\t\t// EnumType is the enumType.\n\t\t// +enum\n\t\ttype EnumType string\n\n\t\t// EnumA is a.\n\t\tconst EnumA EnumType = \"a\"\n\t\t// EnumB is b.\n\t\tconst EnumB EnumType = \"b\"`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}, {\n\t\t\tName: \"example.com/base/bar\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"bar.go\": otherFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, _, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah is a test.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"Value\": {\nSchemaProps: spec.SchemaProps{`+\"\\n\"+\n\t\t\t\t\"Description: \\\"Value is the value.\\\\n\\\\nPossible enum values:\\\\n - `\\\\\\\"a\\\\\\\"` is a.\\\\n - `\\\\\\\"b\\\\\\\"` is b.\\\",\"+`\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\nEnum: []interface{}{\"a\", \"b\"},\n},\n},\n},\nRequired: []string{\"Value\"},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestEnum(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// EnumType is the enumType.\n\t\t// +enum\n\t\ttype EnumType string\n\n\t\t// EnumA is a.\n\t\tconst EnumA EnumType = \"a\"\n\t\t// EnumB is b.\n\t\tconst EnumB EnumType = \"b\"\n\n\t\t// Blah is a test.\n\t\t// +k8s:openapi-gen=true\n\t\t// +k8s:openapi-gen=x-kubernetes-type-tag:type_test\n\t\ttype Blah struct {\n\t\t  // Value is the value.\n\t\t\tValue EnumType\n\t\t\tNoCommentEnum EnumType\n\t\t  // +optional\n\t\t\tOptionalEnum *EnumType\n\t\t\tList []EnumType\n\t\t\tMap map[string]EnumType\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, _, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nDescription: \"Blah is a test.\",\nType: []string{\"object\"},\nProperties: map[string]spec.Schema{\n\"Value\": {\nSchemaProps: spec.SchemaProps{`+\"\\n\"+\n\t\t\t\t\"Description: \\\"Value is the value.\\\\n\\\\nPossible enum values:\\\\n - `\\\\\\\"a\\\\\\\"` is a.\\\\n - `\\\\\\\"b\\\\\\\"` is b.\\\",\"+`\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\nEnum: []interface{}{\"a\", \"b\"},\n},\n},\n\"NoCommentEnum\": {\nSchemaProps: spec.SchemaProps{`+\"\\n\"+\n\t\t\t\t\"Description: \\\"Possible enum values:\\\\n - `\\\\\\\"a\\\\\\\"` is a.\\\\n - `\\\\\\\"b\\\\\\\"` is b.\\\",\"+`\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\nEnum: []interface{}{\"a\", \"b\"},\n},\n},\n\"OptionalEnum\": {\nSchemaProps: spec.SchemaProps{`+\"\\n\"+\n\t\t\t\t\"Description: \\\"Possible enum values:\\\\n - `\\\\\\\"a\\\\\\\"` is a.\\\\n - `\\\\\\\"b\\\\\\\"` is b.\\\",\"+`\nType: []string{\"string\"},\nFormat: \"\",\nEnum: []interface{}{\"a\", \"b\"},\n},\n},\n\"List\": {\nSchemaProps: spec.SchemaProps{\nType: []string{\"array\"},\nItems: &spec.SchemaOrArray{\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\nEnum: []interface{}{\"a\", \"b\"},\n},\n},\n},\n},\n},\n\"Map\": {\nSchemaProps: spec.SchemaProps{\nType: []string{\"object\"},\nAdditionalProperties: &spec.SchemaOrBool{\nAllows: true,\nSchema: &spec.Schema{\nSchemaProps: spec.SchemaProps{\nDefault: \"\",\nType: []string{\"string\"},\nFormat: \"\",\nEnum: []interface{}{\"a\", \"b\"},\n},\n},\n},\n},\n},\n},\nRequired: []string{\"Value\",\"NoCommentEnum\",\"List\",\"Map\"},\n},\nVendorExtensible: spec.VendorExtensible{\nExtensions: spec.Extensions{\n\"x-kubernetes-type-tag\": \"type_test\",\n},\n},\n},\n}\n}`)\n\t})\n}\n\nfunc TestSymbolReference(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// +k8s:openapi-gen=true\n\t\ttype Blah struct {\n\t\t\t// +default=\"A Default Value\"\n\t\t\t// +optional\n\t\t\tValue *string\n\n\t\t\t// User constant local to the output package fully qualified\n\t\t\t// +default=ref(example.com/base/output.MyConst)\n\t\t\t// +optional\n\t\t\tFullyQualifiedOutputValue *string\n\n\t\t\t// Local to types but not to output\n\t\t\t// +default=ref(MyConst)\n\t\t\t// +optional\n\t\t\tLocalValue *string\n\n\t\t\t// +default=ref(example.com/base/foo.MyConst)\n\t\t\t// +optional\n\t\t\tFullyQualifiedLocalValue *string\n\n\t\t\t// +default=ref(k8s.io/api/v1.TerminationPathDefault)\n\t\t\t// +optional\n\t\t\tFullyQualifiedExternalValue *string\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, _, funcBuffer, imports := testOpenAPITypeWriter(t, e.Config)\n\t\tif funcErr != nil {\n\t\t\tt.Fatalf(\"Unexpected funcErr: %v\", funcErr)\n\t\t}\n\t\tif callErr != nil {\n\t\t\tt.Fatalf(\"Unexpected callErr: %v\", callErr)\n\t\t}\n\t\texpImports := []string{\n\t\t\t`foo \"example.com/base/foo\"`,\n\t\t\t`v1 \"k8s.io/api/v1\"`,\n\t\t\t`common \"k8s.io/kube-openapi/pkg/common\"`,\n\t\t\t`spec \"k8s.io/kube-openapi/pkg/validation/spec\"`,\n\t\t}\n\t\tif !cmp.Equal(imports, expImports) {\n\t\t\tt.Errorf(\"wrong imports:\\n%s\", cmp.Diff(expImports, imports))\n\t\t}\n\n\t\tif formatted, err := format.Source(funcBuffer.Bytes()); err != nil {\n\t\t\tt.Fatal(err)\n\t\t} else {\n\t\t\tassertEqual(t, string(formatted), `func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Value\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"A Default Value\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"FullyQualifiedOutputValue\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDescription: \"User constant local to the output package fully qualified\",\n\t\t\t\t\t\t\tDefault:     MyConst,\n\t\t\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\t\t\tFormat:      \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"LocalValue\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDescription: \"Local to types but not to output\",\n\t\t\t\t\t\t\tDefault:     foo.MyConst,\n\t\t\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\t\t\tFormat:      \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"FullyQualifiedLocalValue\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: foo.MyConst,\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"FullyQualifiedExternalValue\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: v1.TerminationPathDefault,\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}`)\n\t\t}\n\t})\n}\n\n// Show that types with unmarshalJSON in their hierarchy do not have struct\n// defaults enforced, and that aliases and embededd types are respected\nfunc TestMustEnforceDefaultStruct(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\ttype Time struct {\n\t\t\tvalue interface{}\n\t\t}\n\n\n\t\ttype TimeWithoutUnmarshal struct {\n\t\t\tvalue interface{}\n\t\t}\n\n\t\tfunc (_ TimeWithoutUnmarshal) OpenAPISchemaType() []string { return []string{\"string\"} }\n\t\tfunc (_ TimeWithoutUnmarshal) OpenAPISchemaFormat() string { return \"date-time\" }\n\n\t\tfunc (_ Time) UnmarshalJSON([]byte) error {\n\t\t\treturn nil\n\t\t}\n\n\n\t\tfunc (_ Time) OpenAPISchemaType() []string { return []string{\"string\"} }\n\t\tfunc (_ Time) OpenAPISchemaFormat() string { return \"date-time\" }\n\n\t\t// Time with UnmarshalJSON defined on pointer instead of struct\n\t\ttype MicroTime struct {\n\t\t\tvalue interface{}\n\t\t}\n\n\t\tfunc (t *MicroTime) UnmarshalJSON([]byte) error {\n\t\t\treturn nil\n\t\t}\n\n\t\tfunc (_ MicroTime) OpenAPISchemaType() []string { return []string{\"string\"} }\n\t\tfunc (_ MicroTime) OpenAPISchemaFormat() string { return \"date-time\" }\n\n\t\ttype Int64 int64\n\n\t\ttype Duration struct {\n\t\t\tInt64\n\t\t}\n\n\t\tfunc (_ Duration) OpenAPISchemaType() []string { return []string{\"string\"} }\n\t\tfunc (_ Duration) OpenAPISchemaFormat() string { return \"\" }\n\n\t\ttype NothingSpecial struct {\n\t\t\tField string\n\t\t}\n\n\t\t// +k8s:openapi-gen=true\n\t\ttype Blah struct {\n\t\t\tEmbedded Duration\n\t\t\tPointerUnmarshal MicroTime\n\t\t\tStructUnmarshal Time\n\t\t\tNoUnmarshal TimeWithoutUnmarshal\n\t\t\tRegular NothingSpecial\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, _, funcBuffer, imports := testOpenAPITypeWriter(t, e.Config)\n\t\tif funcErr != nil {\n\t\t\tt.Fatalf(\"Unexpected funcErr: %v\", funcErr)\n\t\t}\n\t\tif callErr != nil {\n\t\t\tt.Fatalf(\"Unexpected callErr: %v\", callErr)\n\t\t}\n\t\texpImports := []string{\n\t\t\t`foo \"example.com/base/foo\"`,\n\t\t\t`common \"k8s.io/kube-openapi/pkg/common\"`,\n\t\t\t`spec \"k8s.io/kube-openapi/pkg/validation/spec\"`,\n\t\t}\n\t\tif !cmp.Equal(imports, expImports) {\n\t\t\tt.Errorf(\"wrong imports:\\n%s\", cmp.Diff(expImports, imports))\n\t\t}\n\n\t\tif formatted, err := format.Source(funcBuffer.Bytes()); err != nil {\n\t\t\tt.Fatal(err)\n\t\t} else {\n\t\t\tassertEqual(t, string(formatted), `func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Embedded\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tRef:     ref(\"example.com/base/foo.Duration\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"PointerUnmarshal\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tRef: ref(\"example.com/base/foo.MicroTime\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"StructUnmarshal\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tRef: ref(\"example.com/base/foo.Time\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"NoUnmarshal\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: map[string]interface{}{},\n\t\t\t\t\t\t\tRef:     ref(\"example.com/base/foo.TimeWithoutUnmarshal\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"Regular\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: map[string]interface{}{},\n\t\t\t\t\t\t\tRef:     ref(\"example.com/base/foo.NothingSpecial\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Embedded\", \"PointerUnmarshal\", \"StructUnmarshal\", \"NoUnmarshal\", \"Regular\"},\n\t\t\t},\n\t\t},\n\t\tDependencies: []string{\n\t\t\t\"example.com/base/foo.Duration\", \"example.com/base/foo.MicroTime\", \"example.com/base/foo.NothingSpecial\", \"example.com/base/foo.Time\", \"example.com/base/foo.TimeWithoutUnmarshal\"},\n\t}\n}`)\n\t\t}\n\t})\n}\n\nfunc TestMarkerComments(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// +k8s:openapi-gen=true\n\t\t// +k8s:validation:maxProperties=10\n\t\t// +k8s:validation:minProperties=1\n\t\ttype Blah struct {\n\n\t\t\t// Integer with min and max values\n\t\t\t// +k8s:validation:minimum=0\n\t\t\t// +k8s:validation:maximum=10\n\t\t\t// +k8s:validation:exclusiveMinimum\n\t\t\t// +k8s:validation:exclusiveMaximum\n\t\t\tIntValue int\n\n\t\t\t// String with min and max lengths\n\t\t\t// +k8s:validation:minLength=1\n\t\t\t// +k8s:validation:maxLength=10\n\t\t\t// +k8s:validation:pattern=\"^foo$[0-9]+\"\n\t\t\tStringValue string\n\n\t\t\t// +k8s:validation:maxItems=10\n\t\t\t// +k8s:validation:minItems=1\n\t\t\t// +k8s:validation:uniqueItems\n\t\t\tArrayValue []string\n\n\t\t\t// +k8s:validation:maxProperties=10\n\t\t\t// +k8s:validation:minProperties=1\n\t\t\tObjValue map[string]interface{}\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, _, funcBuffer, imports := testOpenAPITypeWriter(t, e.Config)\n\t\tif funcErr != nil {\n\t\t\tt.Fatalf(\"Unexpected funcErr: %v\", funcErr)\n\t\t}\n\t\tif callErr != nil {\n\t\t\tt.Fatalf(\"Unexpected callErr: %v\", callErr)\n\t\t}\n\t\texpImports := []string{\n\t\t\t`foo \"example.com/base/foo\"`,\n\t\t\t`common \"k8s.io/kube-openapi/pkg/common\"`,\n\t\t\t`spec \"k8s.io/kube-openapi/pkg/validation/spec\"`,\n\t\t\t`ptr \"k8s.io/utils/ptr\"`,\n\t\t}\n\t\tif !cmp.Equal(imports, expImports) {\n\t\t\tt.Errorf(\"wrong imports:\\n%s\", cmp.Diff(expImports, imports))\n\t\t}\n\n\t\tif formatted, err := format.Source(funcBuffer.Bytes()); err != nil {\n\t\t\tt.Fatalf(\"%v\\n%v\", err, string(funcBuffer.Bytes()))\n\t\t} else {\n\t\t\tformatted_expected, ree := format.Source([]byte(`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\t\treturn common.OpenAPIDefinition{\n\t\t\tSchema: spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType: \t\t\t  []string{\"object\"},\n\t\t\t\t\tMinProperties:\t  ptr.To[int64](1),\n\t\t\t\t\tMaxProperties:\t  ptr.To[int64](10),\n\t\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\t\"IntValue\": {\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tDescription: \"Integer with min and max values\",\n\t\t\t\t\t\t\t\tDefault: \t 0,\n\t\t\t\t\t\t\t\tMinimum:\t ptr.To[float64](0),\n\t\t\t\t\t\t\t\tMaximum:\t ptr.To[float64](10),\n\t\t\t\t\t\t\t\tExclusiveMinimum: true,\n\t\t\t\t\t\t\t\tExclusiveMaximum: true,\n\t\t\t\t\t\t\t\tType:        []string{\"integer\"},\n\t\t\t\t\t\t\t\tFormat:\t  \t \"int32\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"StringValue\": {\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tDescription: \"String with min and max lengths\",\n\t\t\t\t\t\t\t\tDefault:\t \"\",\n\t\t\t\t\t\t\t\tMinLength:\t ptr.To[int64](1),\n\t\t\t\t\t\t\t\tMaxLength:\t ptr.To[int64](10),\n\t\t\t\t\t\t\t\tPattern:\t \"^foo$[0-9]+\",\n\t\t\t\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\t\t\t\tFormat:\t  \t \"\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"ArrayValue\": {\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tMinItems:\t ptr.To[int64](1),\n\t\t\t\t\t\t\t\tMaxItems:\t ptr.To[int64](10),\n\t\t\t\t\t\t\t\tUniqueItems: true,\n\t\t\t\t\t\t\t\tType: []string{\"array\"},\n\t\t\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"ObjValue\": {\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tMinProperties:\t ptr.To[int64](1),\n\t\t\t\t\t\t\t\tMaxProperties:\t ptr.To[int64](10),\n\t\t\t\t\t\t\t\tType: []string{\"object\"},\n\t\t\t\t\t\t\t\t\tAdditionalProperties: &spec.SchemaOrBool{\n\t\t\t\t\t\t\t\t\t\tAllows: true,\n\t\t\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\t\t\tType:   []string{\"object\"},\n\t\t\t\t\t\t\t\t\t\t\t\tFormat: \"\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRequired: []string{\"IntValue\", \"StringValue\", \"ArrayValue\", \"ObjValue\"},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t}`))\n\t\t\tif ree != nil {\n\t\t\t\tt.Fatal(ree)\n\t\t\t}\n\t\t\tassertEqual(t, string(formatted), string(formatted_expected))\n\t\t}\n\t})\n}\n\nfunc TestCELMarkerComments(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// +k8s:openapi-gen=true\n\t\t// +k8s:validation:cel[0]:rule=\"self == oldSelf\"\n\t\t// +k8s:validation:cel[0]:message=\"message1\"\n\t\ttype Blah struct {\n\t\t\t// +k8s:validation:cel[0]:rule=\"self.length() > 0\"\n\t\t\t// +k8s:validation:cel[0]:message=\"string message\"\n\t\t\t// +k8s:validation:cel[1]:rule=\"self.length() % 2 == 0\"\n\t\t\t// +k8s:validation:cel[1]:messageExpression=\"self + ' hello'\"\n\t\t\t// +k8s:validation:cel[1]:optionalOldSelf\n\t\t\t// +optional\n\t\t\tField string\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, _, funcBuffer, imports := testOpenAPITypeWriter(t, e.Config)\n\t\tif funcErr != nil {\n\t\t\tt.Fatalf(\"Unexpected funcErr: %v\", funcErr)\n\t\t}\n\t\tif callErr != nil {\n\t\t\tt.Fatalf(\"Unexpected callErr: %v\", callErr)\n\t\t}\n\t\texpImports := []string{\n\t\t\t`foo \"example.com/base/foo\"`,\n\t\t\t`common \"k8s.io/kube-openapi/pkg/common\"`,\n\t\t\t`spec \"k8s.io/kube-openapi/pkg/validation/spec\"`,\n\t\t}\n\t\tif !cmp.Equal(imports, expImports) {\n\t\t\tt.Errorf(\"wrong imports:\\n%s\", cmp.Diff(expImports, imports))\n\t\t}\n\n\t\tif formatted, err := format.Source(funcBuffer.Bytes()); err != nil {\n\t\t\tt.Fatalf(\"%v\\n%v\", err, string(funcBuffer.Bytes()))\n\t\t} else {\n\t\t\tformatted_expected, ree := format.Source([]byte(`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\t\treturn common.OpenAPIDefinition{\n\t\t\tSchema: spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType: \t\t\t  []string{\"object\"},\n\t\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{map[string]interface{}{\"message\": \"string message\", \"rule\": \"self.length() > 0\"}, map[string]interface{}{\"messageExpression\": \"self + ' hello'\", \"optionalOldSelf\": true, \"rule\": \"self.length() % 2 == 0\"}},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{map[string]interface{}{\"message\": \"message1\", \"rule\": \"self == oldSelf\"}},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t}`))\n\t\t\tif ree != nil {\n\t\t\t\tt.Fatal(ree)\n\t\t\t}\n\t\t\tassertEqual(t, string(formatted_expected), string(formatted))\n\t\t}\n\t})\n}\n\nfunc TestMultilineCELMarkerComments(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// +k8s:openapi-gen=true\n\t\t// +k8s:validation:cel[0]:rule=\"self == oldSelf\"\n\t\t// +k8s:validation:cel[0]:message=\"message1\"\n\t\t// +k8s:validation:cel[0]:fieldPath=\"field\"\n\t\ttype Blah struct {\n\t\t\t// +k8s:validation:cel[0]:rule=\"self.length() > 0\"\n\t\t\t// +k8s:validation:cel[0]:message=\"string message\"\n\t\t\t// +k8s:validation:cel[0]:reason=\"Invalid\"\n\t\t\t// +k8s:validation:cel[1]:rule>  !oldSelf.hasValue() || self.length() % 2 == 0\n\t\t\t// +k8s:validation:cel[1]:rule>     ? self.field == \"even\"\n\t\t\t// +k8s:validation:cel[1]:rule>     : self.field == \"odd\"\n\t\t\t// +k8s:validation:cel[1]:messageExpression=\"field must be whether the length of the string is even or odd\"\n\t\t\t// +k8s:validation:cel[1]:optionalOldSelf\n\t\t\t// +optional\n\t\t\tField string\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, _, funcBuffer, imports := testOpenAPITypeWriter(t, e.Config)\n\t\tif funcErr != nil {\n\t\t\tt.Fatalf(\"Unexpected funcErr: %v\", funcErr)\n\t\t}\n\t\tif callErr != nil {\n\t\t\tt.Fatalf(\"Unexpected callErr: %v\", callErr)\n\t\t}\n\t\texpImports := []string{\n\t\t\t`foo \"example.com/base/foo\"`,\n\t\t\t`common \"k8s.io/kube-openapi/pkg/common\"`,\n\t\t\t`spec \"k8s.io/kube-openapi/pkg/validation/spec\"`,\n\t\t}\n\t\tif !cmp.Equal(imports, expImports) {\n\t\t\tt.Errorf(\"wrong imports:\\n%s\", cmp.Diff(expImports, imports))\n\t\t}\n\n\t\tif formatted, err := format.Source(funcBuffer.Bytes()); err != nil {\n\t\t\tt.Fatalf(\"%v\\n%v\", err, string(funcBuffer.Bytes()))\n\t\t} else {\n\t\t\tformatted_expected, ree := format.Source([]byte(`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\t\treturn common.OpenAPIDefinition{\n\t\t\tSchema: spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType: \t\t\t  []string{\"object\"},\n\t\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{map[string]interface{}{\"message\": \"string message\", \"reason\": \"Invalid\", \"rule\": \"self.length() > 0\"}, map[string]interface{}{\"messageExpression\": \"field must be whether the length of the string is even or odd\", \"optionalOldSelf\": true, \"rule\": \"!oldSelf.hasValue() || self.length() % 2 == 0\\n? self.field == \\\"even\\\"\\n: self.field == \\\"odd\\\"\"}},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{map[string]interface{}{\"fieldPath\": \"field\", \"message\": \"message1\", \"rule\": \"self == oldSelf\"}},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t}`))\n\t\t\tif ree != nil {\n\t\t\t\tt.Fatal(ree)\n\t\t\t}\n\t\t\tassertEqual(t, string(formatted_expected), string(formatted))\n\t\t}\n\t})\n}\n\nfunc TestRequired(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// +k8s:openapi-gen=true\n\t\ttype Blah struct {\n\t\t\t// +optional\n\t\t\tOptionalField string\n\n\t\t\t// +required\n\t\t\tRequiredField string\n\n\t\t\t// +required\n\t\t\tRequiredPointerField *string ` + \"`json:\\\"requiredPointerField,omitempty\\\"`\" + `\n\n\t\t\t// +optional\n\t\t\tOptionalPointerField *string ` + \"`json:\\\"optionalPointerField,omitempty\\\"`\" + `\n\n\t\t\tImplicitlyRequiredField string\n\t\t\tImplicitlyOptionalField string ` + \"`json:\\\"implicitlyOptionalField,omitempty\\\"`\" + `\n\t\t}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, _, funcBuffer, imports := testOpenAPITypeWriter(t, e.Config)\n\t\tif funcErr != nil {\n\t\t\tt.Fatalf(\"Unexpected funcErr: %v\", funcErr)\n\t\t}\n\t\tif callErr != nil {\n\t\t\tt.Fatalf(\"Unexpected callErr: %v\", callErr)\n\t\t}\n\t\texpImports := []string{\n\t\t\t`foo \"example.com/base/foo\"`,\n\t\t\t`common \"k8s.io/kube-openapi/pkg/common\"`,\n\t\t\t`spec \"k8s.io/kube-openapi/pkg/validation/spec\"`,\n\t\t}\n\t\tif !cmp.Equal(imports, expImports) {\n\t\t\tt.Errorf(\"wrong imports:\\n%s\", cmp.Diff(expImports, imports))\n\t\t}\n\n\t\tif formatted, err := format.Source(funcBuffer.Bytes()); err != nil {\n\t\t\tt.Fatalf(\"%v\\n%v\", err, string(funcBuffer.Bytes()))\n\t\t} else {\n\t\t\tformatted_expected, ree := format.Source([]byte(`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\t\treturn common.OpenAPIDefinition{\n\t\t\tSchema: spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType: \t\t\t  []string{\"object\"},\n\t\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\t\"OptionalField\": {\n\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n   \t\t\t\t\t\t\"RequiredField\": {\n   \t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n   \t\t\t\t\t\t\t\tDefault: \"\",\n   \t\t\t\t\t\t\t\tType:    []string{\"string\"},\n   \t\t\t\t\t\t\t\tFormat:  \"\",\n   \t\t\t\t\t\t\t},\n   \t\t\t\t\t\t},\n   \t\t\t\t\t\t\"requiredPointerField\": {\n   \t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n   \t\t\t\t\t\t\t\tType:   []string{\"string\"},\n   \t\t\t\t\t\t\t\tFormat: \"\",\n   \t\t\t\t\t\t\t},\n   \t\t\t\t\t\t},\n   \t\t\t\t\t\t\"optionalPointerField\": {\n   \t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n   \t\t\t\t\t\t\t\tType:   []string{\"string\"},\n   \t\t\t\t\t\t\t\tFormat: \"\",\n   \t\t\t\t\t\t\t},\n   \t\t\t\t\t\t},\n   \t\t\t\t\t\t\"ImplicitlyRequiredField\": {\n   \t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n   \t\t\t\t\t\t\t\tDefault: \"\",\n   \t\t\t\t\t\t\t\tType:    []string{\"string\"},\n   \t\t\t\t\t\t\t\tFormat:  \"\",\n   \t\t\t\t\t\t\t},\n   \t\t\t\t\t\t},\n   \t\t\t\t\t\t\"implicitlyOptionalField\": {\n   \t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n   \t\t\t\t\t\t\t\tType:   []string{\"string\"},\n   \t\t\t\t\t\t\t\tFormat: \"\",\n   \t\t\t\t\t\t\t},\n   \t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRequired: []string{\"RequiredField\", \"requiredPointerField\", \"ImplicitlyRequiredField\"},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t}`))\n\t\t\tif ree != nil {\n\t\t\t\tt.Fatal(ree)\n\t\t\t}\n\t\t\tassertEqual(t, string(formatted_expected), string(formatted))\n\t\t}\n\t})\n\n\t// Show specifying both is an error\n\tbadFile := `\n\t\tpackage foo\n\n\t\t// +k8s:openapi-gen=true\n\t\ttype Blah struct {\n\t\t\t// +optional\n\t\t\t// +required\n\t\t\tConfusingField string\n\t\t}`\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": badFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, _, _, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Errorf(\"Unexpected callErr: %v\", callErr)\n\t\t}\n\t\tif funcErr == nil {\n\t\t\tt.Fatalf(\"Expected funcErr\")\n\t\t}\n\t\tif !strings.Contains(funcErr.Error(), \"cannot be both optional and required\") {\n\t\t\tt.Errorf(\"Unexpected error: %v\", funcErr)\n\t\t}\n\t})\n}\n\nfunc TestMarkerCommentsCustomDefsV3(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\timport openapi \"k8s.io/kube-openapi/pkg/common\"\n\n\t\t// +k8s:validation:maxProperties=10\n\t\ttype Blah struct {\n\t\t}\n\n\t\tfunc (_ Blah) OpenAPIV3Definition() openapi.OpenAPIDefinition {\n\t\t\treturn openapi.OpenAPIDefinition{\n\t\t\t\tSchema: spec.Schema{\n\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\tType:   []string{\"object\"},\n\t\t\t\t\t\tMaxProperties: ptr.To[int64](10),\n\t\t\t\t\t\tFormat: \"ipv4\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t\tfunc (_ Blah) OpenAPISchemaType() []string { return []string{\"object\"} }\n\t\tfunc (_ Blah) OpenAPISchemaFormat() string { return \"ipv4\" }`\n\tcommonFile := `package common\n\n\t\ttype OpenAPIDefinition struct {}`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}, {\n\t\t\tName: \"k8s.io/kube-openapi/pkg/common\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"common.go\": commonFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.EmbedOpenAPIDefinitionIntoV2Extension(foo.Blah{}.OpenAPIV3Definition(), common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nType:foo.Blah{}.OpenAPISchemaType(),\nFormat:foo.Blah{}.OpenAPISchemaFormat(),\nMaxProperties: ptr.To[int64](10),\n},\n},\n})\n}`)\n\t})\n}\n\nfunc TestMarkerCommentsV3OneOfTypes(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// +k8s:validation:maxLength=10\n\t\ttype Blah struct {\n\t\t}\n\n\t\tfunc (_ Blah) OpenAPISchemaType() []string { return []string{\"string\"} }\n\t\tfunc (_ Blah) OpenAPIV3OneOfTypes() []string { return []string{\"string\", \"array\"} }\n\t\tfunc (_ Blah) OpenAPISchemaFormat() string { return \"ipv4\" }`\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, callBuffer, funcBuffer, _ := testOpenAPITypeWriter(t, e.Config)\n\t\tif callErr != nil {\n\t\t\tt.Fatal(callErr)\n\t\t}\n\t\tif funcErr != nil {\n\t\t\tt.Fatal(funcErr)\n\t\t}\n\t\tassertEqual(t, callBuffer.String(),\n\t\t\t`\"example.com/base/foo.Blah\": schema_examplecom_base_foo_Blah(ref),`)\n\t\tassertEqual(t, funcBuffer.String(),\n\t\t\t`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\nreturn common.EmbedOpenAPIDefinitionIntoV2Extension(common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nOneOf:common.GenerateOpenAPIV3OneOfSchema(foo.Blah{}.OpenAPIV3OneOfTypes()),\nFormat:foo.Blah{}.OpenAPISchemaFormat(),\nMaxLength: ptr.To[int64](10),\n},\n},\n},common.OpenAPIDefinition{\nSchema: spec.Schema{\nSchemaProps: spec.SchemaProps{\nType:foo.Blah{}.OpenAPISchemaType(),\nFormat:foo.Blah{}.OpenAPISchemaFormat(),\nMaxLength: ptr.To[int64](10),\n},\n},\n})\n}`)\n\t})\n}\n\nfunc TestNestedMarkers(t *testing.T) {\n\tinputFile := `\n\t\tpackage foo\n\n\t\t// +k8s:openapi-gen=true\n\t\t// +k8s:validation:properties:field:items:maxLength=10\n\t\t// +k8s:validation:properties:aliasMap:additionalProperties:pattern>^foo$\n\t\ttype Blah struct {\n\t\t\t// +k8s:validation:items:cel[0]:rule=\"self.length() % 2 == 0\"\n\t\t\tField MyAlias ` + \"`json:\\\"field,omitempty\\\"`\" + `\n\n\t\t\t// +k8s:validation:additionalProperties:maxLength=10\n\t\t\tAliasMap MyAliasMap ` + \"`json:\\\"aliasMap,omitempty\\\"`\" + `\n\t\t}\n\t\t\n\t\ttype MyAliasMap map[string]MyAlias\n\t\ttype MyAlias []string`\n\n\tpackagestest.TestAll(t, func(t *testing.T, x packagestest.Exporter) {\n\t\te := packagestest.Export(t, x, []packagestest.Module{{\n\t\t\tName: \"example.com/base/foo\",\n\t\t\tFiles: map[string]interface{}{\n\t\t\t\t\"foo.go\": inputFile,\n\t\t\t},\n\t\t}})\n\t\tdefer e.Cleanup()\n\n\t\tcallErr, funcErr, _, funcBuffer, imports := testOpenAPITypeWriter(t, e.Config)\n\t\tif funcErr != nil {\n\t\t\tt.Fatalf(\"Unexpected funcErr: %v\", funcErr)\n\t\t}\n\t\tif callErr != nil {\n\t\t\tt.Fatalf(\"Unexpected callErr: %v\", callErr)\n\t\t}\n\t\texpImports := []string{\n\t\t\t`foo \"example.com/base/foo\"`,\n\t\t\t`common \"k8s.io/kube-openapi/pkg/common\"`,\n\t\t\t`spec \"k8s.io/kube-openapi/pkg/validation/spec\"`,\n\t\t\t`ptr \"k8s.io/utils/ptr\"`,\n\t\t}\n\t\tif !cmp.Equal(imports, expImports) {\n\t\t\tt.Errorf(\"wrong imports:\\n%s\", cmp.Diff(expImports, imports))\n\t\t}\n\n\t\tif formatted, err := format.Source(funcBuffer.Bytes()); err != nil {\n\t\t\tt.Fatalf(\"%v\\n%v\", err, funcBuffer.String())\n\t\t} else {\n\t\t\tformatted_expected, ree := format.Source([]byte(`func schema_examplecom_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {\n                return common.OpenAPIDefinition{\n                        Schema: spec.Schema{\n                                SchemaProps: spec.SchemaProps{\n                                        Type: []string{\"object\"},\n                                        AllOf: []spec.Schema{\n                                                {\n                                                        SchemaProps: spec.SchemaProps{\n                                                                Properties: map[string]spec.Schema{\n                                                                        \"aliasMap\": {\n                                                                                SchemaProps: spec.SchemaProps{\n                                                                                                AllOf: []spec.Schema{\n                                                                                                 {\n                                                                                                 SchemaProps: spec.SchemaProps{\n                                                                                                 AdditionalProperties: &spec.SchemaOrBool{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t     Allows: true,\n                                                                                                 Schema: &spec.Schema{\n                                                                                                 SchemaProps: spec.SchemaProps{\n                                                                                                 Pattern: \"^foo$\",\n                                                                                                 },\n                                                                                                 },\n                                                                                                 },\n                                                                                                 },\n                                                                                                 },\n                                                                                                },\n                                                                                },\n                                                                        },\n                                                                        \"field\": {\n                                                                                SchemaProps: spec.SchemaProps{\n                                                                                                AllOf: []spec.Schema{\n                                                                                                 {\n                                                                                                 SchemaProps: spec.SchemaProps{\n                                                                                                 Items: &spec.SchemaOrArray{\n                                                                                                 Schema: &spec.Schema{\n                                                                                                 SchemaProps: spec.SchemaProps{\n                                                                                                 MaxLength: ptr.To[int64](10),\n                                                                                                 },\n                                                                                                 },\n                                                                                                 },\n                                                                                                 },\n                                                                                                 },\n                                                                                                },\n                                                                                },\n                                                                        },\n                                                                },\n                                                        },\n                                                },\n                                        },\n                                        Properties: map[string]spec.Schema{\n                                                \"field\": {\n                                                        SchemaProps: spec.SchemaProps{\n                                                                AllOf: []spec.Schema{\n                                                                        {\n                                                                                SchemaProps: spec.SchemaProps{\n                                                                                        Items: &spec.SchemaOrArray{\n                                                                                                Schema: &spec.Schema{\n                                                                                                 VendorExtensible: spec.VendorExtensible{\n                                                                                                 Extensions: spec.Extensions{\n                                                                                                 \"x-kubernetes-validations\": []interface{}{map[string]interface{}{\"rule\": \"self.length() % 2 == 0\"}},\n                                                                                                 },\n                                                                                                 },\n                                                                                                },\n                                                                                        },\n                                                                                },\n                                                                        },\n                                                                },\n                                                                Type: []string{\"array\"},\n                                                                Items: &spec.SchemaOrArray{\n                                                                        Schema: &spec.Schema{\n                                                                                SchemaProps: spec.SchemaProps{\n                                                                                        Default: \"\",\n                                                                                        Type:    []string{\"string\"},\n                                                                                        Format:  \"\",\n                                                                                },\n                                                                        },\n                                                                },\n                                                        },\n                                                },\n                                                \"aliasMap\": {\n                                                        SchemaProps: spec.SchemaProps{\n                                                                AllOf: []spec.Schema{\n                                                                        {\n                                                                                SchemaProps: spec.SchemaProps{\n                                                                                        AdditionalProperties: &spec.SchemaOrBool{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    Allows: true,\n                                                                                                Schema: &spec.Schema{\n                                                                                                 SchemaProps: spec.SchemaProps{\n                                                                                                 MaxLength: ptr.To[int64](10),\n                                                                                                 },\n                                                                                                },\n                                                                                        },\n                                                                                },\n                                                                        },\n                                                                },\n                                                                Type: []string{\"object\"},\n                                                                AdditionalProperties: &spec.SchemaOrBool{\n                                                                        Allows: true,\n                                                                        Schema: &spec.Schema{\n                                                                                SchemaProps: spec.SchemaProps{\n                                                                                        Type: []string{\"array\"},\n                                                                                        Items: &spec.SchemaOrArray{\n                                                                                                Schema: &spec.Schema{\n                                                                                                 SchemaProps: spec.SchemaProps{\n                                                                                                 Default: \"\",\n                                                                                                 Type:    []string{\"string\"},\n                                                                                                 Format:  \"\",\n                                                                                                 },\n                                                                                                },\n                                                                                        },\n                                                                                },\n                                                                        },\n                                                                },\n                                                        },\n                                                },\n                                        },\n                                },\n                        },\n                }\n        }`))\n\t\t\tif ree != nil {\n\t\t\t\tt.Fatal(ree)\n\t\t\t}\n\t\t\tassertEqual(t, string(formatted), string(formatted_expected))\n\t\t}\n\t})\n\n}\n\nfunc TestShouldInlineMembers(t *testing.T) {\n\ttests := []struct {\n\t\tname     string\n\t\tmember   types.Member\n\t\texpected bool\n\t}{\n\t\t{\n\t\t\tname:     \"embedded with ,inline tag\",\n\t\t\tmember:   types.Member{Name: \"TypeMeta\", Embedded: true, Tags: `json:\",inline\"`},\n\t\t\texpected: true,\n\t\t},\n\t\t{\n\t\t\tname:     \"embedded with empty json tag\",\n\t\t\tmember:   types.Member{Name: \"TypeMeta\", Embedded: true, Tags: `json:\"\"`},\n\t\t\texpected: true,\n\t\t},\n\t\t{\n\t\t\tname:     \"embedded with ,inline,omitempty tag\",\n\t\t\tmember:   types.Member{Name: \"ObjectMeta\", Embedded: true, Tags: `json:\",inline,omitempty\"`},\n\t\t\texpected: true,\n\t\t},\n\t\t{\n\t\t\tname:     \"embedded with no json tag\",\n\t\t\tmember:   types.Member{Name: \"TypeMeta\", Embedded: true, Tags: ``},\n\t\t\texpected: false,\n\t\t},\n\t\t{\n\t\t\tname:     \"embedded with explicit name\",\n\t\t\tmember:   types.Member{Name: \"TypeMeta\", Embedded: true, Tags: `json:\"typemeta\"`},\n\t\t\texpected: false,\n\t\t},\n\t\t{\n\t\t\tname:     \"non-embedded with ,inline tag\",\n\t\t\tmember:   types.Member{Name: \"TypeMeta\", Embedded: false, Tags: `json:\",inline\"`},\n\t\t\texpected: false,\n\t\t},\n\t\t{\n\t\t\tname:     \"non-embedded with empty json tag\",\n\t\t\tmember:   types.Member{Name: \"TypeMeta\", Embedded: false, Tags: `json:\"\"`},\n\t\t\texpected: false,\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tif got := shouldInlineMembers(&tc.member); got != tc.expected {\n\t\t\t\tt.Errorf(\"shouldInlineMembers(%+v) = %v, want %v\", tc.member, got, tc.expected)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/generators/rules/OWNERS",
    "content": "reviewers:\n- roycaihw\napprovers:\n- roycaihw\n"
  },
  {
    "path": "pkg/generators/rules/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package rules contains API rules that are enforced in OpenAPI spec generation\n// as part of the machinery. Files under this package implement APIRule interface\n// which evaluates Go type and produces list of API rule violations.\n//\n// Implementations of APIRule should be added to API linter under openAPIGen code-\n// generator to get integrated in the generation process.\npackage rules\n"
  },
  {
    "path": "pkg/generators/rules/idl_tag.go",
    "content": "package rules\n\nimport (\n\t\"k8s.io/gengo/v2\"\n\t\"k8s.io/gengo/v2/types\"\n)\n\nconst ListTypeIDLTag = \"listType\"\n\n// ListTypeMissing implements APIRule interface.\n// A list type is required for inlined list.\ntype ListTypeMissing struct{}\n\n// Name returns the name of APIRule\nfunc (l *ListTypeMissing) Name() string {\n\treturn \"list_type_missing\"\n}\n\n// Validate evaluates API rule on type t and returns a list of field names in\n// the type that violate the rule. Empty field name [\"\"] implies the entire\n// type violates the rule.\nfunc (l *ListTypeMissing) Validate(t *types.Type) ([]string, error) {\n\tfields := make([]string, 0)\n\n\tswitch t.Kind {\n\tcase types.Struct:\n\t\tfor _, m := range t.Members {\n\t\t\thasListType := gengo.ExtractCommentTags(\"+\", m.CommentLines)[ListTypeIDLTag] != nil\n\n\t\t\tif m.Name == \"Items\" && m.Type.Kind == types.Slice && hasNamedMember(t, \"ListMeta\") {\n\t\t\t\tif hasListType {\n\t\t\t\t\tfields = append(fields, m.Name)\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// All slice fields must have a list-type tag except []byte\n\t\t\tif m.Type.Kind == types.Slice && m.Type.Elem != types.Byte && !hasListType {\n\t\t\t\tfields = append(fields, m.Name)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fields, nil\n}\n\nfunc hasNamedMember(t *types.Type, name string) bool {\n\tfor _, m := range t.Members {\n\t\tif m.Name == name {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "pkg/generators/rules/idl_tag_test.go",
    "content": "package rules\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n\n\t\"k8s.io/gengo/v2/types\"\n)\n\nfunc TestListTypeMissing(t *testing.T) {\n\ttcs := []struct {\n\t\t// name of test case\n\t\tname string\n\t\tt    *types.Type\n\n\t\t// expected list of violation fields\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\tname:     \"none\",\n\t\t\tt:        &types.Type{},\n\t\t\texpected: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"simple missing\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Containers\",\n\t\t\t\t\t\tType: &types.Type{\n\t\t\t\t\t\t\tKind: types.Slice,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"Containers\"},\n\t\t},\n\t\t{\n\t\t\tname: \"simple passing\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Containers\",\n\t\t\t\t\t\tType: &types.Type{\n\t\t\t\t\t\t\tKind: types.Slice,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tCommentLines: []string{\"+listType=map\"},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\n\t\t{\n\t\t\tname: \"list Items field should not be annotated\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t\tType: &types.Type{\n\t\t\t\t\t\t\tKind: types.Slice,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tCommentLines: []string{\"+listType=map\"},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName:     \"ListMeta\",\n\t\t\t\t\t\tEmbedded: true,\n\t\t\t\t\t\tType: &types.Type{\n\t\t\t\t\t\t\tKind: types.Struct,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"Items\"},\n\t\t},\n\n\t\t{\n\t\t\tname: \"list Items field without annotation should pass validation\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t\tType: &types.Type{\n\t\t\t\t\t\t\tKind: types.Slice,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName:     \"ListMeta\",\n\t\t\t\t\t\tEmbedded: true,\n\t\t\t\t\t\tType: &types.Type{\n\t\t\t\t\t\t\tKind: types.Struct,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\n\t\t{\n\t\t\tname: \"a list that happens to be called Items (i.e. nested, not top-level list) needs annotations\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t\tType: &types.Type{\n\t\t\t\t\t\t\tKind: types.Slice,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"Items\"},\n\t\t},\n\n\t\t{\n\t\t\tname: \"a byte-slice field without annotation should pass validation\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ByteSliceField\",\n\t\t\t\t\t\tType: &types.Type{\n\t\t\t\t\t\t\tKind: types.Slice,\n\t\t\t\t\t\t\tElem: types.Byte,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t}\n\n\trule := &ListTypeMissing{}\n\tfor _, tc := range tcs {\n\t\tif violations, _ := rule.Validate(tc.t); !reflect.DeepEqual(violations, tc.expected) {\n\t\t\tt.Errorf(\"unexpected validation result: test name %q, want: %v, got: %v\",\n\t\t\t\ttc.name, tc.expected, violations)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/generators/rules/list_type_streaming_tags.go",
    "content": "/*\nCopyright 2025 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rules\n\nimport (\n\t\"reflect\"\n\n\t\"k8s.io/gengo/v2/types\"\n)\n\n// StreamingListTypeFieldOrder implements APIRule interface.\n// Fields must be ordered TypeMeta, ListMeta, Items\ntype StreamingListTypeFieldOrder struct{}\n\nfunc (l *StreamingListTypeFieldOrder) Name() string {\n\treturn \"streaming_list_type_field_order\"\n}\nfunc (l *StreamingListTypeFieldOrder) Validate(t *types.Type) ([]string, error) {\n\tif !isListType(t) {\n\t\treturn nil, nil\n\t}\n\tvar fields []string\n\tif t.Members[0].Name != \"TypeMeta\" {\n\t\tfields = append(fields, \"TypeMeta\")\n\t}\n\tif t.Members[1].Name != \"ListMeta\" {\n\t\tfields = append(fields, \"ListMeta\")\n\t}\n\tif t.Members[2].Name != \"Items\" {\n\t\tfields = append(fields, \"Items\")\n\t}\n\treturn fields, nil\n}\n\n// StreamingListTypeJSONTags implements APIRule interface.\n// Fields must be JSON-tagged\ntype StreamingListTypeJSONTags struct{}\n\nfunc (l *StreamingListTypeJSONTags) Name() string {\n\treturn \"streaming_list_type_json_tags\"\n}\n\nfunc (l *StreamingListTypeJSONTags) Validate(t *types.Type) ([]string, error) {\n\tif !isListType(t) {\n\t\treturn nil, nil\n\t}\n\tvar fields []string\n\tfor _, m := range t.Members {\n\t\tswitch m.Name {\n\t\tcase \"TypeMeta\":\n\t\t\tif !m.Embedded {\n\t\t\t\t// field must be embedded to inline\n\t\t\t\tfields = append(fields, \"TypeMeta\")\n\t\t\t} else if jsonTag, jsonTagExists := reflect.StructTag(m.Tags).Lookup(\"json\"); !jsonTagExists {\n\t\t\t\t// field should declare a json tag to indicate it is serialized\n\t\t\t\tfields = append(fields, \"TypeMeta\")\n\t\t\t} else if jsonTag != \"\" && jsonTag != \",inline\" {\n\t\t\t\t// expect a completely empty json tag (preferred) or an empty name segment and only an ,inline directive (previously used)\n\t\t\t\tfields = append(fields, \"TypeMeta\")\n\t\t\t}\n\t\tcase \"ListMeta\":\n\t\t\tif reflect.StructTag(m.Tags).Get(\"json\") != \"metadata,omitempty\" {\n\t\t\t\tfields = append(fields, \"ListMeta\")\n\t\t\t}\n\t\tcase \"Items\":\n\t\t\tif reflect.StructTag(m.Tags).Get(\"json\") != \"items\" {\n\t\t\t\tfields = append(fields, \"Items\")\n\t\t\t}\n\t\t}\n\t}\n\treturn fields, nil\n}\n\n// StreamingListTypeProtoTags implements APIRule interface.\n// Fields must be Proto-tagged with specific tags for streaming to work.\ntype StreamingListTypeProtoTags struct{}\n\nfunc (l *StreamingListTypeProtoTags) Name() string {\n\treturn \"streaming_list_type_proto_tags\"\n}\nfunc (l *StreamingListTypeProtoTags) Validate(t *types.Type) ([]string, error) {\n\tif !isListType(t) {\n\t\treturn nil, nil\n\t}\n\tvar fields []string\n\tfor _, m := range t.Members {\n\t\tswitch m.Name {\n\t\tcase \"TypeMeta\":\n\t\t\tif v := reflect.StructTag(m.Tags).Get(\"protobuf\"); v != \"\" {\n\t\t\t\tfields = append(fields, \"TypeMeta\")\n\t\t\t}\n\t\tcase \"ListMeta\":\n\t\t\tif v := reflect.StructTag(m.Tags).Get(\"protobuf\"); v != \"\" && v != \"bytes,1,opt,name=metadata\" {\n\t\t\t\tfields = append(fields, \"ListMeta\")\n\t\t\t}\n\t\tcase \"Items\":\n\t\t\tif v := reflect.StructTag(m.Tags).Get(\"protobuf\"); v != \"\" && v != \"bytes,2,rep,name=items\" {\n\t\t\t\tfields = append(fields, \"Items\")\n\t\t\t}\n\t\t}\n\t}\n\treturn fields, nil\n}\n\nfunc isListType(t *types.Type) bool {\n\treturn len(t.Members) == 3 &&\n\t\thasNamedMember(t, \"TypeMeta\") &&\n\t\thasNamedMember(t, \"ListMeta\") &&\n\t\thasNamedMember(t, \"Items\")\n}\n"
  },
  {
    "path": "pkg/generators/rules/list_type_streaming_tags_test.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rules\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n\n\t\"k8s.io/gengo/v2/types\"\n)\n\nfunc TestStreamingListTypeFieldOrder(t *testing.T) {\n\ttcs := []struct {\n\t\t// name of test case\n\t\tname string\n\t\tt    *types.Type\n\n\t\t// expected list of violation fields\n\t\texpectedFields []string\n\t}{\n\t\t{\n\t\t\tname: \"simple list\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"TypeMeta\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"not a list\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"extended list\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"TypeMeta\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Additional\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"list with bad field order\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"TypeMeta\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedFields: []string{\"ListMeta\", \"Items\"},\n\t\t},\n\t}\n\n\tn := &StreamingListTypeFieldOrder{}\n\tfor _, tc := range tcs {\n\t\tif fields, _ := n.Validate(tc.t); !reflect.DeepEqual(fields, tc.expectedFields) {\n\t\t\tt.Errorf(\"unexpected validation result: test name %v, want: %v, got: %v\",\n\t\t\t\ttc.name, tc.expectedFields, fields)\n\t\t}\n\t}\n}\n\nfunc TestStreamingListTypeJSONTags(t *testing.T) {\n\ttcs := []struct {\n\t\t// name of test case\n\t\tname string\n\t\tt    *types.Type\n\n\t\t// expected list of violation fields\n\t\texpectedFields []string\n\t}{\n\t\t{\n\t\t\tname: \"simple list with inline tag\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName:     \"TypeMeta\",\n\t\t\t\t\t\tEmbedded: true,\n\t\t\t\t\t\tTags:     `json:\",inline\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t\tTags: `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t\tTags: `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"simple list with empty json tag\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName:     \"TypeMeta\",\n\t\t\t\t\t\tEmbedded: true,\n\t\t\t\t\t\tTags:     `json:\"\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t\tTags: `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t\tTags: `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"not a list\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"extended list\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"TypeMeta\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Additional\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"bad typemeta json tag\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName:     \"TypeMeta\",\n\t\t\t\t\t\tEmbedded: true,\n\t\t\t\t\t\tTags:     `json:\"typemeta\"`, // subfield typemeta instead of inline\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t\tTags: `json:\"metadata,omitempty\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t\tTags: `json:\"items\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedFields: []string{\"TypeMeta\"},\n\t\t},\n\t\t{\n\t\t\tname: \"bad listmeta json tag\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName:     \"TypeMeta\",\n\t\t\t\t\t\tEmbedded: true,\n\t\t\t\t\t\tTags:     `json:\",inline\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t\tTags: `json:\"listmeta,omitempty\"`, // renamed from \"metadata\" to \"listmeta\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t\tTags: `json:\"items\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedFields: []string{\"ListMeta\"},\n\t\t},\n\t\t{\n\t\t\tname: \"bad items json tag\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName:     \"TypeMeta\",\n\t\t\t\t\t\tEmbedded: true,\n\t\t\t\t\t\tTags:     `json:\",inline\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t\tTags: `json:\"metadata,omitempty\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t\tTags: `json:\"items,omitempty\"`, // added omitempty\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedFields: []string{\"Items\"},\n\t\t},\n\t}\n\n\tn := &StreamingListTypeJSONTags{}\n\tfor _, tc := range tcs {\n\t\tif fields, _ := n.Validate(tc.t); !reflect.DeepEqual(fields, tc.expectedFields) {\n\t\t\tt.Errorf(\"unexpected validation result: test name %v, want: %v, got: %v\",\n\t\t\t\ttc.name, tc.expectedFields, fields)\n\t\t}\n\t}\n}\n\nfunc TestStreamingListTypeProtoTags(t *testing.T) {\n\ttcs := []struct {\n\t\t// name of test case\n\t\tname string\n\t\tt    *types.Type\n\n\t\t// expected list of violation fields\n\t\texpectedFields []string\n\t}{\n\t\t{\n\t\t\tname: \"simple list\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName:     \"TypeMeta\",\n\t\t\t\t\t\tEmbedded: true,\n\t\t\t\t\t\tTags:     `json:\",inline\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t\tTags: `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t\tTags: `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"not a list\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"extended list\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"TypeMeta\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Additional\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"bad typemeta proto tag\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName:     \"TypeMeta\",\n\t\t\t\t\t\tEmbedded: true,\n\t\t\t\t\t\tTags:     `json:\",inline\" protobuf:\"bytes,3,opt,name=typemeta\"`, // Added protobuf tag\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t\tTags: `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t\tTags: `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedFields: []string{\"TypeMeta\"},\n\t\t},\n\t\t{\n\t\t\tname: \"bad listmeta proto tag\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName:     \"TypeMeta\",\n\t\t\t\t\t\tEmbedded: true,\n\t\t\t\t\t\tTags:     `json:\",inline\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t\tTags: `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=listmetadata\"`, // Changed name to listmeta\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t\tTags: `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedFields: []string{\"ListMeta\"},\n\t\t},\n\t\t{\n\t\t\tname: \"bad items proto tag\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName:     \"TypeMeta\",\n\t\t\t\t\t\tEmbedded: true,\n\t\t\t\t\t\tTags:     `json:\",inline\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t\tTags: `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Items\",\n\t\t\t\t\t\tTags: `json:\"items\" protobuf:\"bytes,3,rep,name=items\"`, // Change field number to 3\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedFields: []string{\"Items\"},\n\t\t},\n\t}\n\n\tn := &StreamingListTypeProtoTags{}\n\tfor _, tc := range tcs {\n\t\tif fields, _ := n.Validate(tc.t); !reflect.DeepEqual(fields, tc.expectedFields) {\n\t\t\tt.Errorf(\"unexpected validation result: test name %v, want: %v, got: %v\",\n\t\t\t\ttc.name, tc.expectedFields, fields)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/generators/rules/names_match.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rules\n\nimport (\n\t\"reflect\"\n\t\"strings\"\n\n\t\"k8s.io/kube-openapi/pkg/util/sets\"\n\n\t\"k8s.io/gengo/v2/types\"\n)\n\nvar (\n\t// Blacklist of JSON tags that should skip match evaluation\n\tjsonTagBlacklist = sets.NewString(\n\t\t// Omitted field is ignored by the package\n\t\t\"-\",\n\t)\n\n\t// List of substrings that aren't allowed in Go name and JSON name\n\tdisallowedNameSubstrings = sets.NewString(\n\t\t// Underscore is not allowed in either name\n\t\t\"_\",\n\t\t// Dash is not allowed in either name. Note that since dash is a valid JSON tag, this should be checked\n\t\t// after JSON tag blacklist check.\n\t\t\"-\",\n\t)\n)\n\n/*\nNamesMatch implements APIRule interface.\nGo field names must be CamelCase. JSON field names must be camelCase. Other than capitalization of the\ninitial letter, the two should almost always match. No underscores nor dashes in either.\nThis rule verifies the convention \"Other than capitalization of the initial letter, the two should almost always match.\"\nExamples (also in unit test):\n\n\tGo name      | JSON name    | match\n\t               podSpec        false\n\tPodSpec        podSpec        true\n\tPodSpec        PodSpec        false\n\tpodSpec        podSpec        false\n\tPodSpec        spec           false\n\tSpec           podSpec        false\n\tJSONSpec       jsonSpec       true\n\tJSONSpec       jsonspec       false\n\tHTTPJSONSpec   httpJSONSpec   true\n\nNOTE: this validator cannot tell two sequential all-capital words from one word, therefore the case below\nis also considered matched.\n\n\tHTTPJSONSpec   httpjsonSpec   true\n\nNOTE: an empty JSON name is valid only for inlined structs or pointer to structs.\nIt cannot be empty for anything else because capitalization must be set explicitly.\n\nNOTE: metav1.ListMeta and metav1.ObjectMeta by convention must have \"metadata\" as name.\nOther fields may have that JSON name if the field name matches.\n*/\ntype NamesMatch struct{}\n\n// Name returns the name of APIRule\nfunc (n *NamesMatch) Name() string {\n\treturn \"names_match\"\n}\n\n// Validate evaluates API rule on type t and returns a list of field names in\n// the type that violate the rule. Empty field name [\"\"] implies the entire\n// type violates the rule.\nfunc (n *NamesMatch) Validate(t *types.Type) ([]string, error) {\n\tfields := make([]string, 0)\n\n\t// Only validate struct type and ignore the rest\n\tswitch t.Kind {\n\tcase types.Struct:\n\t\tfor _, m := range t.Members {\n\t\t\tgoName := m.Name\n\t\t\tjsonTag, ok := reflect.StructTag(m.Tags).Lookup(\"json\")\n\t\t\t// Distinguish empty JSON tag and missing JSON tag. Empty JSON tag / name is\n\t\t\t// allowed (in JSON name blacklist) but missing JSON tag is invalid.\n\t\t\tif !ok {\n\t\t\t\tfields = append(fields, goName)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif jsonTagBlacklist.Has(jsonTag) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tjsonName := strings.Split(jsonTag, \",\")[0]\n\t\t\tif !nameIsOkay(m, jsonName) {\n\t\t\t\tfields = append(fields, goName)\n\t\t\t}\n\t\t}\n\t}\n\treturn fields, nil\n}\n\nfunc nameIsOkay(member types.Member, jsonName string) bool {\n\tif jsonName == \"\" {\n\t\treturn member.Type.Kind == types.Struct ||\n\t\t\tmember.Type.Kind == types.Pointer && member.Type.Elem.Kind == types.Struct\n\t}\n\n\ttypeName := member.Type.String()\n\tswitch typeName {\n\tcase \"k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta\",\n\t\t\"k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta\":\n\t\treturn jsonName == \"metadata\"\n\t}\n\n\treturn namesMatch(member.Name, jsonName)\n}\n\n// namesMatch evaluates if goName and jsonName match the API rule\n// TODO: Use an off-the-shelf CamelCase solution instead of implementing this logic. The following existing\n//\n//\t      packages have been tried out:\n//\t\t\tgithub.com/markbates/inflect\n//\t\t\tgithub.com/segmentio/go-camelcase\n//\t\t\tgithub.com/iancoleman/strcase\n//\t\t\tgithub.com/fatih/camelcase\n//\t\t Please see https://github.com/kubernetes/kube-openapi/pull/83#issuecomment-400842314 for more details\n//\t\t about why they don't satisfy our need. What we need can be a function that detects an acronym at the\n//\t\t beginning of a string.\nfunc namesMatch(goName, jsonName string) bool {\n\tif !isAllowedName(goName) || !isAllowedName(jsonName) {\n\t\treturn false\n\t}\n\tif !strings.EqualFold(goName, jsonName) {\n\t\treturn false\n\t}\n\t// Go field names must be CamelCase. JSON field names must be camelCase.\n\tif !isCapital(goName[0]) || isCapital(jsonName[0]) {\n\t\treturn false\n\t}\n\tfor i := 0; i < len(goName); i++ {\n\t\tif goName[i] == jsonName[i] {\n\t\t\t// goName[0:i-1] is uppercase and jsonName[0:i-1] is lowercase, goName[i:]\n\t\t\t// and jsonName[i:] should match;\n\t\t\t// goName[i] should be lowercase if i is equal to 1, e.g.:\n\t\t\t//\tgoName   | jsonName\n\t\t\t//\tPodSpec     podSpec\n\t\t\t// or uppercase if i is greater than 1, e.g.:\n\t\t\t//      goname   | jsonName\n\t\t\t//      JSONSpec   jsonSpec\n\t\t\t// This is to rule out cases like:\n\t\t\t//      goname   | jsonName\n\t\t\t//      JSONSpec   jsonspec\n\t\t\treturn goName[i:] == jsonName[i:] && (i == 1 || isCapital(goName[i]))\n\t\t}\n\t}\n\treturn true\n}\n\n// isCapital returns true if one character is capital\nfunc isCapital(b byte) bool {\n\treturn b >= 'A' && b <= 'Z'\n}\n\n// isAllowedName checks the list of disallowedNameSubstrings and returns true if name doesn't contain\n// any disallowed substring.\nfunc isAllowedName(name string) bool {\n\tfor _, substr := range disallowedNameSubstrings.UnsortedList() {\n\t\tif strings.Contains(name, substr) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "pkg/generators/rules/names_match_test.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rules\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n\n\t\"k8s.io/gengo/v2/types\"\n)\n\nfunc TestNamesMatch(t *testing.T) {\n\tsomeStruct := &types.Type{\n\t\tName: types.Name{Name: \"SomeStruct\"},\n\t\tKind: types.Struct,\n\t}\n\tsomeStructPtr := &types.Type{\n\t\tName: types.Name{Name: \"SomeStructPtr\"},\n\t\tKind: types.Pointer,\n\t\tElem: someStruct,\n\t}\n\tintPtr := &types.Type{\n\t\tName: types.Name{Name: \"IntPtr\"},\n\t\tKind: types.Pointer,\n\t\tElem: types.Int,\n\t}\n\tlistMeta := &types.Type{\n\t\tName: types.Name{Package: \"k8s.io/apimachinery/pkg/apis/meta/v1\", Name: \"ListMeta\"},\n\t\tKind: types.Struct,\n\t}\n\tlistMetaPtr := &types.Type{\n\t\tName: types.Name{Package: \"k8s.io/apimachinery/pkg/apis/meta/v1\", Name: \"ListMetaPtr\"},\n\t\tKind: types.Pointer,\n\t\tElem: listMeta,\n\t}\n\tobjectMeta := &types.Type{\n\t\tName: types.Name{Package: \"k8s.io/apimachinery/pkg/apis/meta/v1\", Name: \"ObjectMeta\"},\n\t\tKind: types.Struct,\n\t}\n\tobjectMetaPtr := &types.Type{\n\t\tName: types.Name{Package: \"k8s.io/apimachinery/pkg/apis/meta/v1\", Name: \"ObjectMetaPtr\"},\n\t\tKind: types.Pointer,\n\t\tElem: objectMeta,\n\t}\n\n\ttcs := []struct {\n\t\t// name of test case\n\t\tname string\n\t\tt    *types.Type\n\n\t\t// expected list of violation fields\n\t\texpected []string\n\t}{\n\t\t// The comments are in format of {goName, jsonName, match},\n\t\t// {\"PodSpec\", \"podSpec\", true},\n\t\t{\n\t\t\tname: \"simple\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"PodSpec\",\n\t\t\t\t\t\tTags: `json:\"podSpec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t// {\"PodSpec\", \"podSpec\", true},\n\t\t{\n\t\t\tname: \"multiple_json_tags\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"PodSpec\",\n\t\t\t\t\t\tTags: `json:\"podSpec,omitempty\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t// {\"PodSpec\", \"podSpec\", true},\n\t\t{\n\t\t\tname: \"protobuf_tag\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"PodSpec\",\n\t\t\t\t\t\tTags: `json:\"podSpec,omitempty\" protobuf:\"bytes,1,opt,name=podSpec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t// {\"\", \"podSpec\", false},\n\t\t{\n\t\t\tname: \"empty\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"\",\n\t\t\t\t\t\tTags: `json:\"podSpec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"\"},\n\t\t},\n\t\t// {\"PodSpec\", \"PodSpec\", false},\n\t\t{\n\t\t\tname: \"CamelCase_CamelCase\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"PodSpec\",\n\t\t\t\t\t\tTags: `json:\"PodSpec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"PodSpec\"},\n\t\t},\n\t\t// {\"podSpec\", \"podSpec\", false},\n\t\t{\n\t\t\tname: \"camelCase_camelCase\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"podSpec\",\n\t\t\t\t\t\tTags: `json:\"podSpec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"podSpec\"},\n\t\t},\n\t\t// {\"PodSpec\", \"spec\", false},\n\t\t{\n\t\t\tname: \"short_json_name\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"PodSpec\",\n\t\t\t\t\t\tTags: `json:\"spec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"PodSpec\"},\n\t\t},\n\t\t// {\"Spec\", \"podSpec\", false},\n\t\t{\n\t\t\tname: \"long_json_name\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Spec\",\n\t\t\t\t\t\tTags: `json:\"podSpec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"Spec\"},\n\t\t},\n\t\t// {\"JSONSpec\", \"jsonSpec\", true},\n\t\t{\n\t\t\tname: \"acronym\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"JSONSpec\",\n\t\t\t\t\t\tTags: `json:\"jsonSpec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t// {\"JSONSpec\", \"jsonspec\", false},\n\t\t{\n\t\t\tname: \"acronym_invalid\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"JSONSpec\",\n\t\t\t\t\t\tTags: `json:\"jsonspec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"JSONSpec\"},\n\t\t},\n\t\t// {\"HTTPJSONSpec\", \"httpJSONSpec\", true},\n\t\t{\n\t\t\tname: \"multiple_acronym\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"HTTPJSONSpec\",\n\t\t\t\t\t\tTags: `json:\"httpJSONSpec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t// // NOTE: this validator cannot tell two sequential all-capital words from one word,\n\t\t// // therefore the case below is also considered matched.\n\t\t// {\"HTTPJSONSpec\", \"httpjsonSpec\", true},\n\t\t{\n\t\t\tname: \"multiple_acronym_as_one\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"HTTPJSONSpec\",\n\t\t\t\t\t\tTags: `json:\"httpjsonSpec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t// NOTE: JSON tags in jsonTagBlacklist should skip evaluation\n\t\t{\n\t\t\tname: \"blacklist_tag_dash\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"podSpec\",\n\t\t\t\t\t\tTags: `json:\"-\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t// {\"PodSpec\", \"-\", false},\n\t\t{\n\t\t\tname: \"invalid_json_name_dash\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"PodSpec\",\n\t\t\t\t\t\tTags: `json:\"-,\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"PodSpec\"},\n\t\t},\n\t\t// {\"podSpec\", \"metadata\", false},\n\t\t{\n\t\t\tname: \"blacklist_metadata\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"podSpec\",\n\t\t\t\t\t\tTags: `json:\"metadata\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"podSpec\"},\n\t\t},\n\t\t{\n\t\t\tname: \"non_struct\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Map,\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"no_json_tag\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"PodSpec\",\n\t\t\t\t\t\tTags: `podSpec`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"PodSpec\"},\n\t\t},\n\t\t// NOTE: this is to expand test coverage\n\t\t// {\"S\", \"s\", true},\n\t\t{\n\t\t\tname: \"single_character\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"S\",\n\t\t\t\t\t\tTags: `json:\"s\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t// NOTE: names with disallowed substrings should fail evaluation\n\t\t// {\"Pod-Spec\", \"pod-Spec\", false},\n\t\t{\n\t\t\tname: \"disallowed_substring_dash\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Pod-Spec\",\n\t\t\t\t\t\tTags: `json:\"pod-Spec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"Pod-Spec\"},\n\t\t},\n\t\t// {\"Pod_Spec\", \"pod_Spec\", false},\n\t\t{\n\t\t\tname: \"disallowed_substring_underscore\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Pod_Spec\",\n\t\t\t\t\t\tTags: `json:\"pod_Spec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"Pod_Spec\"},\n\t\t},\n\t\t{\n\t\t\tname: \"empty_JSON_name\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Int\",\n\t\t\t\t\t\tTags: `json:\"\"`, // Not okay!\n\t\t\t\t\t\tType: types.Int,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"Struct\",\n\t\t\t\t\t\tTags: `json:\"\"`, // Okay, inlined.\n\t\t\t\t\t\tType: someStruct,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"IntPtr\",\n\t\t\t\t\t\tTags: `json:\"\"`, // Not okay!\n\t\t\t\t\t\tType: intPtr,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"StructPtr\",\n\t\t\t\t\t\tTags: `json:\"\"`, // Okay, inlined.\n\t\t\t\t\t\tType: someStructPtr,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\n\t\t\t\t\"Int\",\n\t\t\t\t\"IntPtr\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"metadata_no_pointers\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t\tTags: `json:\"listMeta\"`, // Not okay, should be \"metadata\"!\n\t\t\t\t\t\tType: listMeta,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ObjectMeta\",\n\t\t\t\t\t\tTags: `json:\"objectMeta\"`, // Not okay, should be metadata\"!\n\t\t\t\t\t\tType: objectMeta,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"SomeStruct\",\n\t\t\t\t\t\tTags: `json:\"metadata\"`, // Not okay, name mismatch!\n\t\t\t\t\t\tType: someStruct,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\n\t\t\t\t\"ListMeta\",\n\t\t\t\t\"ObjectMeta\",\n\t\t\t\t\"SomeStruct\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"metadata_pointers\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ListMeta\",\n\t\t\t\t\t\tTags: `json:\"listMeta\"`, // Okay, convention only applies to struct.\n\t\t\t\t\t\tType: listMetaPtr,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"ObjectMeta\",\n\t\t\t\t\t\tTags: `json:\"objectMeta\"`, // Okay, convention only applies to struct.\n\t\t\t\t\t\tType: objectMetaPtr,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"SomeStruct\",\n\t\t\t\t\t\tTags: `json:\"metadata\"`, // Not okay, name mismatch!\n\t\t\t\t\t\tType: someStructPtr,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\n\t\t\t\t\"SomeStruct\",\n\t\t\t},\n\t\t},\n\t}\n\n\tn := &NamesMatch{}\n\tfor _, tc := range tcs {\n\t\tif violations, _ := n.Validate(tc.t); !reflect.DeepEqual(violations, tc.expected) {\n\t\t\tt.Errorf(\"unexpected validation result: test name %v, want: %v, got: %v\",\n\t\t\t\ttc.name, tc.expected, violations)\n\t\t}\n\t}\n}\n\n// TestRuleName tests the Name of API rule. This is to expand test coverage\nfunc TestRuleName(t *testing.T) {\n\truleName := \"names_match\"\n\tn := &NamesMatch{}\n\tif n.Name() != ruleName {\n\t\tt.Errorf(\"unexpected API rule name: want: %v, got: %v\", ruleName, n.Name())\n\t}\n}\n"
  },
  {
    "path": "pkg/generators/rules/omitempty_match_case.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rules\n\nimport (\n\t\"reflect\"\n\t\"strings\"\n\n\t\"k8s.io/gengo/v2/types\"\n)\n\n// OmitEmptyMatchCase implements APIRule interface.\n// \"omitempty\" must appear verbatim (no case variants).\ntype OmitEmptyMatchCase struct{}\n\nfunc (n *OmitEmptyMatchCase) Name() string {\n\treturn \"omitempty_match_case\"\n}\n\nfunc (n *OmitEmptyMatchCase) Validate(t *types.Type) ([]string, error) {\n\tfields := make([]string, 0)\n\n\t// Only validate struct type and ignore the rest\n\tswitch t.Kind {\n\tcase types.Struct:\n\t\tfor _, m := range t.Members {\n\t\t\tgoName := m.Name\n\t\t\tjsonTag, ok := reflect.StructTag(m.Tags).Lookup(\"json\")\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tparts := strings.Split(jsonTag, \",\")\n\t\t\tif len(parts) < 2 {\n\t\t\t\t// no tags other than name\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif parts[0] == \"-\" {\n\t\t\t\t// not serialized\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfor _, part := range parts[1:] {\n\t\t\t\tif strings.EqualFold(part, \"omitempty\") && part != \"omitempty\" {\n\t\t\t\t\tfields = append(fields, goName)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn fields, nil\n}\n"
  },
  {
    "path": "pkg/generators/rules/omitempty_match_case_test.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rules\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n\n\t\"k8s.io/gengo/v2/types\"\n)\n\nfunc TestOmitEmptyMatchCase(t *testing.T) {\n\ttcs := []struct {\n\t\t// name of test case\n\t\tname string\n\t\tt    *types.Type\n\n\t\t// expected list of violation fields\n\t\texpected []string\n\t}{\n\t\t{\n\t\t\tname: \"simple\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"PodSpec\",\n\t\t\t\t\t\tTags: `json:\"podSpec\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"unserialized\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"PodSpec\",\n\t\t\t\t\t\tTags: `json:\"-,inline\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"named_omitEmpty\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"OmitEmpty\",\n\t\t\t\t\t\tTags: `json:\"omitEmpty,inline\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"valid\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"PodSpec\",\n\t\t\t\t\t\tTags: `json:\"podSpec,omitempty\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{},\n\t\t},\n\t\t{\n\t\t\tname: \"invalid\",\n\t\t\tt: &types.Type{\n\t\t\t\tKind: types.Struct,\n\t\t\t\tMembers: []types.Member{\n\t\t\t\t\t{\n\t\t\t\t\t\tName: \"PodSpec\",\n\t\t\t\t\t\tTags: `json:\"podSpec,omitEmpty\"`,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpected: []string{\"PodSpec\"},\n\t\t},\n\t}\n\n\tn := &OmitEmptyMatchCase{}\n\tfor _, tc := range tcs {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tif violations, _ := n.Validate(tc.t); !reflect.DeepEqual(violations, tc.expected) {\n\t\t\t\tt.Errorf(\"unexpected validation result: want: %v, got: %v\", tc.expected, violations)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/generators/union.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage generators\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\n\t\"k8s.io/gengo/v2\"\n\t\"k8s.io/gengo/v2/types\"\n)\n\nconst tagUnionMember = \"union\"\nconst tagUnionDeprecated = \"unionDeprecated\"\nconst tagUnionDiscriminator = \"unionDiscriminator\"\n\ntype union struct {\n\tdiscriminator         string\n\tfieldsToDiscriminated map[string]string\n}\n\n// emit prints the union, can be called on a nil union (emits nothing)\nfunc (u *union) emit(g openAPITypeWriter) {\n\tif u == nil {\n\t\treturn\n\t}\n\tg.Do(\"map[string]interface{}{\\n\", nil)\n\tif u.discriminator != \"\" {\n\t\tg.Do(\"\\\"discriminator\\\": \\\"$.$\\\",\\n\", u.discriminator)\n\t}\n\tg.Do(\"\\\"fields-to-discriminateBy\\\": map[string]interface{}{\\n\", nil)\n\tkeys := []string{}\n\tfor field := range u.fieldsToDiscriminated {\n\t\tkeys = append(keys, field)\n\t}\n\tsort.Strings(keys)\n\tfor _, field := range keys {\n\t\tg.Do(\"\\\"$.$\\\": \", field)\n\t\tg.Do(\"\\\"$.$\\\",\\n\", u.fieldsToDiscriminated[field])\n\t}\n\tg.Do(\"},\\n\", nil)\n\tg.Do(\"},\\n\", nil)\n}\n\n// Sets the discriminator if it's not set yet, otherwise return an error\nfunc (u *union) setDiscriminator(value string) []error {\n\terrors := []error{}\n\tif u.discriminator != \"\" {\n\t\terrors = append(errors, fmt.Errorf(\"at least two discriminators found: %v and %v\", value, u.discriminator))\n\t}\n\tu.discriminator = value\n\treturn errors\n}\n\n// Add a new member to the union\nfunc (u *union) addMember(jsonName, variableName string) {\n\tif _, ok := u.fieldsToDiscriminated[jsonName]; ok {\n\t\tpanic(fmt.Errorf(\"same field (%v) found multiple times\", jsonName))\n\t}\n\tu.fieldsToDiscriminated[jsonName] = variableName\n}\n\n// Makes sure that the union is valid, specifically looking for re-used discriminated\nfunc (u *union) isValid() []error {\n\terrors := []error{}\n\t// Case 1: discriminator but no fields\n\tif u.discriminator != \"\" && len(u.fieldsToDiscriminated) == 0 {\n\t\terrors = append(errors, fmt.Errorf(\"discriminator set with no fields in union\"))\n\t}\n\t// Case 2: two fields have the same discriminated value\n\tdiscriminated := map[string]struct{}{}\n\tfor _, d := range u.fieldsToDiscriminated {\n\t\tif _, ok := discriminated[d]; ok {\n\t\t\terrors = append(errors, fmt.Errorf(\"discriminated value is used twice: %v\", d))\n\t\t}\n\t\tdiscriminated[d] = struct{}{}\n\t}\n\t// Case 3: a field is both discriminator AND part of the union\n\tif u.discriminator != \"\" {\n\t\tif _, ok := u.fieldsToDiscriminated[u.discriminator]; ok {\n\t\t\terrors = append(errors, fmt.Errorf(\"%v can't be both discriminator and part of the union\", u.discriminator))\n\t\t}\n\t}\n\treturn errors\n}\n\n// Find unions either directly on the members (or inlined members, not\n// going across types) or on the type itself, or on embedded types.\nfunc parseUnions(t *types.Type) ([]union, []error) {\n\terrors := []error{}\n\tunions := []union{}\n\tsu, err := parseUnionStruct(t)\n\tif su != nil {\n\t\tunions = append(unions, *su)\n\t}\n\terrors = append(errors, err...)\n\teu, err := parseEmbeddedUnion(t)\n\tunions = append(unions, eu...)\n\terrors = append(errors, err...)\n\tmu, err := parseUnionMembers(t)\n\tif mu != nil {\n\t\tunions = append(unions, *mu)\n\t}\n\terrors = append(errors, err...)\n\treturn unions, errors\n}\n\n// Find unions in embedded types, unions shouldn't go across types.\nfunc parseEmbeddedUnion(t *types.Type) ([]union, []error) {\n\terrors := []error{}\n\tunions := []union{}\n\tfor _, m := range t.Members {\n\t\tif hasOpenAPITagValue(m.CommentLines, tagValueFalse) {\n\t\t\tcontinue\n\t\t}\n\t\tif !shouldInlineMembers(&m) {\n\t\t\tcontinue\n\t\t}\n\t\tu, err := parseUnions(m.Type)\n\t\tunions = append(unions, u...)\n\t\terrors = append(errors, err...)\n\t}\n\treturn unions, errors\n}\n\n// Look for union tag on a struct, and then include all the fields\n// (except the discriminator if there is one). The struct shouldn't have\n// embedded types.\nfunc parseUnionStruct(t *types.Type) (*union, []error) {\n\terrors := []error{}\n\tif gengo.ExtractCommentTags(\"+\", t.CommentLines)[tagUnionMember] == nil {\n\t\treturn nil, nil\n\t}\n\n\tu := &union{fieldsToDiscriminated: map[string]string{}}\n\n\tfor _, m := range t.Members {\n\t\tjsonName := getReferableName(&m)\n\t\tif jsonName == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif shouldInlineMembers(&m) {\n\t\t\terrors = append(errors, fmt.Errorf(\"union structures can't have embedded fields: %v.%v\", t.Name, m.Name))\n\t\t\tcontinue\n\t\t}\n\t\tif gengo.ExtractCommentTags(\"+\", m.CommentLines)[tagUnionDeprecated] != nil {\n\t\t\terrors = append(errors, fmt.Errorf(\"union struct can't have unionDeprecated members: %v.%v\", t.Name, m.Name))\n\t\t\tcontinue\n\t\t}\n\t\tif gengo.ExtractCommentTags(\"+\", m.CommentLines)[tagUnionDiscriminator] != nil {\n\t\t\terrors = append(errors, u.setDiscriminator(jsonName)...)\n\t\t} else {\n\t\t\tif optional, err := isOptional(&m); !optional || err != nil {\n\t\t\t\terrors = append(errors, fmt.Errorf(\"union members must be optional: %v.%v\", t.Name, m.Name))\n\t\t\t}\n\t\t\tu.addMember(jsonName, m.Name)\n\t\t}\n\t}\n\n\treturn u, errors\n}\n\n// Find unions specifically on members.\nfunc parseUnionMembers(t *types.Type) (*union, []error) {\n\terrors := []error{}\n\tu := &union{fieldsToDiscriminated: map[string]string{}}\n\n\tfor _, m := range t.Members {\n\t\tjsonName := getReferableName(&m)\n\t\tif jsonName == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif shouldInlineMembers(&m) {\n\t\t\tcontinue\n\t\t}\n\t\tif gengo.ExtractCommentTags(\"+\", m.CommentLines)[tagUnionDiscriminator] != nil {\n\t\t\terrors = append(errors, u.setDiscriminator(jsonName)...)\n\t\t}\n\t\tif gengo.ExtractCommentTags(\"+\", m.CommentLines)[tagUnionMember] != nil {\n\t\t\terrors = append(errors, fmt.Errorf(\"union tag is not accepted on struct members: %v.%v\", t.Name, m.Name))\n\t\t\tcontinue\n\t\t}\n\t\tif gengo.ExtractCommentTags(\"+\", m.CommentLines)[tagUnionDeprecated] != nil {\n\t\t\tif optional, err := isOptional(&m); !optional || err != nil {\n\t\t\t\terrors = append(errors, fmt.Errorf(\"union members must be optional: %v.%v\", t.Name, m.Name))\n\t\t\t}\n\t\t\tu.addMember(jsonName, m.Name)\n\t\t}\n\t}\n\tif len(u.fieldsToDiscriminated) == 0 {\n\t\treturn nil, nil\n\t}\n\treturn u, append(errors, u.isValid()...)\n}\n"
  },
  {
    "path": "pkg/handler/default_pruning.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage handler\n\nimport \"k8s.io/kube-openapi/pkg/validation/spec\"\n\n// PruneDefaults remove all the defaults recursively from all the\n// schemas in the definitions, and does not modify the definitions in\n// place.\nfunc PruneDefaults(definitions spec.Definitions) spec.Definitions {\n\tdefinitionsCloned := false\n\tfor k, v := range definitions {\n\t\tif s := PruneDefaultsSchema(&v); s != &v {\n\t\t\tif !definitionsCloned {\n\t\t\t\tdefinitionsCloned = true\n\t\t\t\torig := definitions\n\t\t\t\tdefinitions = make(spec.Definitions, len(orig))\n\t\t\t\tfor k2, v2 := range orig {\n\t\t\t\t\tdefinitions[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tdefinitions[k] = *s\n\t\t}\n\t}\n\treturn definitions\n}\n\n// PruneDefaultsSchema remove all the defaults recursively from the\n// schema in place.\nfunc PruneDefaultsSchema(schema *spec.Schema) *spec.Schema {\n\tif schema == nil {\n\t\treturn nil\n\t}\n\n\torig := schema\n\tclone := func() {\n\t\tif orig == schema {\n\t\t\tschema = &spec.Schema{}\n\t\t\t*schema = *orig\n\t\t}\n\t}\n\n\tif schema.Default != nil {\n\t\tclone()\n\t\tschema.Default = nil\n\t}\n\n\tdefinitionsCloned := false\n\tfor k, v := range schema.Definitions {\n\t\tif s := PruneDefaultsSchema(&v); s != &v {\n\t\t\tif !definitionsCloned {\n\t\t\t\tdefinitionsCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.Definitions = make(spec.Definitions, len(orig.Definitions))\n\t\t\t\tfor k2, v2 := range orig.Definitions {\n\t\t\t\t\tschema.Definitions[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tschema.Definitions[k] = *s\n\t\t}\n\t}\n\n\tpropertiesCloned := false\n\tfor k, v := range schema.Properties {\n\t\tif s := PruneDefaultsSchema(&v); s != &v {\n\t\t\tif !propertiesCloned {\n\t\t\t\tpropertiesCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.Properties = make(map[string]spec.Schema, len(orig.Properties))\n\t\t\t\tfor k2, v2 := range orig.Properties {\n\t\t\t\t\tschema.Properties[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tschema.Properties[k] = *s\n\t\t}\n\t}\n\n\tpatternPropertiesCloned := false\n\tfor k, v := range schema.PatternProperties {\n\t\tif s := PruneDefaultsSchema(&v); s != &v {\n\t\t\tif !patternPropertiesCloned {\n\t\t\t\tpatternPropertiesCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.PatternProperties = make(map[string]spec.Schema, len(orig.PatternProperties))\n\t\t\t\tfor k2, v2 := range orig.PatternProperties {\n\t\t\t\t\tschema.PatternProperties[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tschema.PatternProperties[k] = *s\n\t\t}\n\t}\n\n\tdependenciesCloned := false\n\tfor k, v := range schema.Dependencies {\n\t\tif s := PruneDefaultsSchema(v.Schema); s != v.Schema {\n\t\t\tif !dependenciesCloned {\n\t\t\t\tdependenciesCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.Dependencies = make(spec.Dependencies, len(orig.Dependencies))\n\t\t\t\tfor k2, v2 := range orig.Dependencies {\n\t\t\t\t\tschema.Dependencies[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tv.Schema = s\n\t\t\tschema.Dependencies[k] = v\n\t\t}\n\t}\n\n\tallOfCloned := false\n\tfor i := range schema.AllOf {\n\t\tif s := PruneDefaultsSchema(&schema.AllOf[i]); s != &schema.AllOf[i] {\n\t\t\tif !allOfCloned {\n\t\t\t\tallOfCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.AllOf = make([]spec.Schema, len(orig.AllOf))\n\t\t\t\tcopy(schema.AllOf, orig.AllOf)\n\t\t\t}\n\t\t\tschema.AllOf[i] = *s\n\t\t}\n\t}\n\n\tanyOfCloned := false\n\tfor i := range schema.AnyOf {\n\t\tif s := PruneDefaultsSchema(&schema.AnyOf[i]); s != &schema.AnyOf[i] {\n\t\t\tif !anyOfCloned {\n\t\t\t\tanyOfCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.AnyOf = make([]spec.Schema, len(orig.AnyOf))\n\t\t\t\tcopy(schema.AnyOf, orig.AnyOf)\n\t\t\t}\n\t\t\tschema.AnyOf[i] = *s\n\t\t}\n\t}\n\n\toneOfCloned := false\n\tfor i := range schema.OneOf {\n\t\tif s := PruneDefaultsSchema(&schema.OneOf[i]); s != &schema.OneOf[i] {\n\t\t\tif !oneOfCloned {\n\t\t\t\toneOfCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.OneOf = make([]spec.Schema, len(orig.OneOf))\n\t\t\t\tcopy(schema.OneOf, orig.OneOf)\n\t\t\t}\n\t\t\tschema.OneOf[i] = *s\n\t\t}\n\t}\n\n\tif schema.Not != nil {\n\t\tif s := PruneDefaultsSchema(schema.Not); s != schema.Not {\n\t\t\tclone()\n\t\t\tschema.Not = s\n\t\t}\n\t}\n\n\tif schema.AdditionalProperties != nil && schema.AdditionalProperties.Schema != nil {\n\t\tif s := PruneDefaultsSchema(schema.AdditionalProperties.Schema); s != schema.AdditionalProperties.Schema {\n\t\t\tclone()\n\t\t\tschema.AdditionalProperties = &spec.SchemaOrBool{Schema: s, Allows: schema.AdditionalProperties.Allows}\n\t\t}\n\t}\n\n\tif schema.AdditionalItems != nil && schema.AdditionalItems.Schema != nil {\n\t\tif s := PruneDefaultsSchema(schema.AdditionalItems.Schema); s != schema.AdditionalItems.Schema {\n\t\t\tclone()\n\t\t\tschema.AdditionalItems = &spec.SchemaOrBool{Schema: s, Allows: schema.AdditionalItems.Allows}\n\t\t}\n\t}\n\n\tif schema.Items != nil {\n\t\tif schema.Items.Schema != nil {\n\t\t\tif s := PruneDefaultsSchema(schema.Items.Schema); s != schema.Items.Schema {\n\t\t\t\tclone()\n\t\t\t\tschema.Items = &spec.SchemaOrArray{Schema: s}\n\t\t\t}\n\t\t} else {\n\t\t\titemsCloned := false\n\t\t\tfor i := range schema.Items.Schemas {\n\t\t\t\tif s := PruneDefaultsSchema(&schema.Items.Schemas[i]); s != &schema.Items.Schemas[i] {\n\t\t\t\t\tif !itemsCloned {\n\t\t\t\t\t\tclone()\n\t\t\t\t\t\tschema.Items = &spec.SchemaOrArray{\n\t\t\t\t\t\t\tSchemas: make([]spec.Schema, len(orig.Items.Schemas)),\n\t\t\t\t\t\t}\n\t\t\t\t\t\titemsCloned = true\n\t\t\t\t\t\tcopy(schema.Items.Schemas, orig.Items.Schemas)\n\t\t\t\t\t}\n\t\t\t\t\tschema.Items.Schemas[i] = *s\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn schema\n}\n"
  },
  {
    "path": "pkg/handler/default_pruning_test.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage handler_test\n\nimport (\n\t\"encoding/json\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"k8s.io/kube-openapi/pkg/handler\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestDefaultPruning(t *testing.T) {\n\tdef := spec.Definitions{\n\t\t\"foo\": spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDefault: 0,\n\t\t\t\tAllOf:   []spec.Schema{{SchemaProps: spec.SchemaProps{Default: \"default-string\", Title: \"Field\"}}},\n\t\t\t\tAnyOf:   []spec.Schema{{SchemaProps: spec.SchemaProps{Default: \"default-string\", Title: \"Field\"}}},\n\t\t\t\tOneOf:   []spec.Schema{{SchemaProps: spec.SchemaProps{Default: \"default-string\", Title: \"Field\"}}},\n\t\t\t\tNot:     &spec.Schema{SchemaProps: spec.SchemaProps{Default: \"default-string\", Title: \"Field\"}},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"foo\": {SchemaProps: spec.SchemaProps{Default: \"default-string\", Title: \"Field\"}},\n\t\t\t\t},\n\t\t\t\tAdditionalProperties: &spec.SchemaOrBool{Schema: &spec.Schema{SchemaProps: spec.SchemaProps{Default: \"default-string\", Title: \"Field\"}}},\n\t\t\t\tPatternProperties: map[string]spec.Schema{\n\t\t\t\t\t\"foo\": {SchemaProps: spec.SchemaProps{Default: \"default-string\", Title: \"Field\"}},\n\t\t\t\t},\n\t\t\t\tDependencies: spec.Dependencies{\n\t\t\t\t\t\"foo\": spec.SchemaOrStringArray{Schema: &spec.Schema{SchemaProps: spec.SchemaProps{Default: \"default-string\", Title: \"Field\"}}},\n\t\t\t\t},\n\t\t\t\tAdditionalItems: &spec.SchemaOrBool{\n\t\t\t\t\tSchema: &spec.Schema{SchemaProps: spec.SchemaProps{Default: \"default-string\", Title: \"Field\"}},\n\t\t\t\t},\n\t\t\t\tDefinitions: spec.Definitions{\n\t\t\t\t\t\"bar\": spec.Schema{SchemaProps: spec.SchemaProps{Default: \"default-string\", Title: \"Field\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\tjsonDef, err := json.Marshal(def)\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to marshal definition: %v\", err)\n\t}\n\twanted := spec.Definitions{\n\t\t\"foo\": spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tAllOf: []spec.Schema{{SchemaProps: spec.SchemaProps{Title: \"Field\"}}},\n\t\t\t\tAnyOf: []spec.Schema{{SchemaProps: spec.SchemaProps{Title: \"Field\"}}},\n\t\t\t\tOneOf: []spec.Schema{{SchemaProps: spec.SchemaProps{Title: \"Field\"}}},\n\t\t\t\tNot:   &spec.Schema{SchemaProps: spec.SchemaProps{Title: \"Field\"}},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"foo\": {SchemaProps: spec.SchemaProps{Title: \"Field\"}},\n\t\t\t\t},\n\t\t\t\tAdditionalProperties: &spec.SchemaOrBool{Schema: &spec.Schema{SchemaProps: spec.SchemaProps{Title: \"Field\"}}},\n\t\t\t\tPatternProperties: map[string]spec.Schema{\n\t\t\t\t\t\"foo\": {SchemaProps: spec.SchemaProps{Title: \"Field\"}},\n\t\t\t\t},\n\t\t\t\tDependencies: spec.Dependencies{\n\t\t\t\t\t\"foo\": spec.SchemaOrStringArray{Schema: &spec.Schema{SchemaProps: spec.SchemaProps{Title: \"Field\"}}},\n\t\t\t\t},\n\t\t\t\tAdditionalItems: &spec.SchemaOrBool{\n\t\t\t\t\tSchema: &spec.Schema{SchemaProps: spec.SchemaProps{Title: \"Field\"}},\n\t\t\t\t},\n\t\t\t\tDefinitions: spec.Definitions{\n\t\t\t\t\t\"bar\": spec.Schema{SchemaProps: spec.SchemaProps{Title: \"Field\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tgot := handler.PruneDefaults(def)\n\tif !reflect.DeepEqual(got, wanted) {\n\t\tgotJSON, _ := json.Marshal(got)\n\t\twantedJSON, _ := json.Marshal(wanted)\n\t\tt.Fatalf(\"got: %v\\nwanted %v\", string(gotJSON), string(wantedJSON))\n\t}\n\t// Make sure that def hasn't been changed.\n\tnewDef, _ := json.Marshal(def)\n\tif string(newDef) != string(jsonDef) {\n\t\tt.Fatalf(\"prune removed defaults from initial config:\\nBefore: %v\\nAfter: %v\", string(jsonDef), string(newDef))\n\t}\n\t// Make sure that no-op doesn't change the object.\n\tif reflect.ValueOf(handler.PruneDefaults(got)).Pointer() != reflect.ValueOf(got).Pointer() {\n\t\tt.Fatal(\"no-op prune returned new object\")\n\t}\n}\n"
  },
  {
    "path": "pkg/handler/handler.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage handler\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha512\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/NYTimes/gziphandler\"\n\t\"github.com/emicklei/go-restful/v3\"\n\topenapi_v2 \"github.com/google/gnostic-models/openapiv2\"\n\t\"github.com/google/uuid\"\n\t\"github.com/munnerz/goautoneg\"\n\t\"google.golang.org/protobuf/proto\"\n\n\tklog \"k8s.io/klog/v2\"\n\t\"k8s.io/kube-openapi/pkg/builder\"\n\t\"k8s.io/kube-openapi/pkg/cached\"\n\t\"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/common/restfuladapter\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nconst (\n\tsubTypeProtobufDeprecated = \"com.github.proto-openapi.spec.v2@v1.0+protobuf\"\n\tsubTypeProtobuf           = \"com.github.proto-openapi.spec.v2.v1.0+protobuf\"\n\tsubTypeJSON               = \"json\"\n)\n\nfunc computeETag(data []byte) string {\n\tif data == nil {\n\t\treturn \"\"\n\t}\n\treturn fmt.Sprintf(\"%X\", sha512.Sum512(data))\n}\n\ntype timedSpec struct {\n\tspec         []byte\n\tlastModified time.Time\n}\n\n// OpenAPIService is the service responsible for serving OpenAPI spec. It has\n// the ability to safely change the spec while serving it.\ntype OpenAPIService struct {\n\tspecCache  cached.LastSuccess[*spec.Swagger]\n\tjsonCache  cached.Value[timedSpec]\n\tprotoCache cached.Value[timedSpec]\n}\n\n// NewOpenAPIService builds an OpenAPIService starting with the given spec.\nfunc NewOpenAPIService(swagger *spec.Swagger) *OpenAPIService {\n\treturn NewOpenAPIServiceLazy(cached.Static(swagger, uuid.New().String()))\n}\n\n// NewOpenAPIServiceLazy builds an OpenAPIService from lazy spec.\nfunc NewOpenAPIServiceLazy(swagger cached.Value[*spec.Swagger]) *OpenAPIService {\n\to := &OpenAPIService{}\n\to.UpdateSpecLazy(swagger)\n\n\to.jsonCache = cached.Transform[*spec.Swagger](func(spec *spec.Swagger, etag string, err error) (timedSpec, string, error) {\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\tjson, err := spec.MarshalJSON()\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\treturn timedSpec{spec: json, lastModified: time.Now()}, computeETag(json), nil\n\t}, &o.specCache)\n\to.protoCache = cached.Transform(func(ts timedSpec, etag string, err error) (timedSpec, string, error) {\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\tproto, err := ToProtoBinary(ts.spec)\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\t// We can re-use the same etag as json because of the Vary header.\n\t\treturn timedSpec{spec: proto, lastModified: ts.lastModified}, etag, nil\n\t}, o.jsonCache)\n\treturn o\n}\n\nfunc (o *OpenAPIService) UpdateSpec(swagger *spec.Swagger) error {\n\to.UpdateSpecLazy(cached.Static(swagger, uuid.New().String()))\n\treturn nil\n}\n\nfunc (o *OpenAPIService) UpdateSpecLazy(swagger cached.Value[*spec.Swagger]) {\n\to.specCache.Store(swagger)\n}\n\nfunc ToProtoBinary(json []byte) ([]byte, error) {\n\tdocument, err := openapi_v2.ParseDocument(json)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn proto.Marshal(document)\n}\n\n// RegisterOpenAPIVersionedService registers a handler to provide access to provided swagger spec.\n//\n// Deprecated: use OpenAPIService.RegisterOpenAPIVersionedService instead.\nfunc RegisterOpenAPIVersionedService(spec *spec.Swagger, servePath string, handler common.PathHandler) *OpenAPIService {\n\to := NewOpenAPIService(spec)\n\to.RegisterOpenAPIVersionedService(servePath, handler)\n\treturn o\n}\n\n// RegisterOpenAPIVersionedService registers a handler to provide access to provided swagger spec.\nfunc (o *OpenAPIService) RegisterOpenAPIVersionedService(servePath string, handler common.PathHandler) {\n\taccepted := []struct {\n\t\tType                string\n\t\tSubType             string\n\t\tReturnedContentType string\n\t\tGetDataAndEtag      cached.Value[timedSpec]\n\t}{\n\t\t{\"application\", subTypeJSON, \"application/\" + subTypeJSON, o.jsonCache},\n\t\t{\"application\", subTypeProtobufDeprecated, \"application/\" + subTypeProtobuf, o.protoCache},\n\t\t{\"application\", subTypeProtobuf, \"application/\" + subTypeProtobuf, o.protoCache},\n\t}\n\n\thandler.Handle(servePath, gziphandler.GzipHandler(http.HandlerFunc(\n\t\tfunc(w http.ResponseWriter, r *http.Request) {\n\t\t\tdecipherableFormats := r.Header.Get(\"Accept\")\n\t\t\tif decipherableFormats == \"\" {\n\t\t\t\tdecipherableFormats = \"*/*\"\n\t\t\t}\n\t\t\tclauses := goautoneg.ParseAccept(decipherableFormats)\n\t\t\tw.Header().Add(\"Vary\", \"Accept\")\n\t\t\tfor _, clause := range clauses {\n\t\t\t\tfor _, accepts := range accepted {\n\t\t\t\t\tif clause.Type != accepts.Type && clause.Type != \"*\" {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tif clause.SubType != accepts.SubType && clause.SubType != \"*\" {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\t// serve the first matching media type in the sorted clause list\n\t\t\t\t\tts, etag, err := accepts.GetDataAndEtag.Get()\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tklog.Errorf(\"Error in OpenAPI handler: %s\", err)\n\t\t\t\t\t\t// only return a 503 if we have no older cache data to serve\n\t\t\t\t\t\tif ts.spec == nil {\n\t\t\t\t\t\t\tw.WriteHeader(http.StatusServiceUnavailable)\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Set Content-Type header in the reponse\n\t\t\t\t\tw.Header().Set(\"Content-Type\", accepts.ReturnedContentType)\n\n\t\t\t\t\t// ETag must be enclosed in double quotes: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag\n\t\t\t\t\tw.Header().Set(\"Etag\", strconv.Quote(etag))\n\t\t\t\t\t// ServeContent will take care of caching using eTag.\n\t\t\t\t\thttp.ServeContent(w, r, servePath, ts.lastModified, bytes.NewReader(ts.spec))\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Return 406 for not acceptable format\n\t\t\tw.WriteHeader(406)\n\t\t\treturn\n\t\t}),\n\t))\n}\n\n// BuildAndRegisterOpenAPIVersionedService builds the spec and registers a handler to provide access to it.\n// Use this method if your OpenAPI spec is static. If you want to update the spec, use BuildOpenAPISpec then RegisterOpenAPIVersionedService.\n//\n// Deprecated: BuildAndRegisterOpenAPIVersionedServiceFromRoutes should be used instead.\nfunc BuildAndRegisterOpenAPIVersionedService(servePath string, webServices []*restful.WebService, config *common.Config, handler common.PathHandler) (*OpenAPIService, error) {\n\treturn BuildAndRegisterOpenAPIVersionedServiceFromRoutes(servePath, restfuladapter.AdaptWebServices(webServices), config, handler)\n}\n\n// BuildAndRegisterOpenAPIVersionedServiceFromRoutes builds the spec and registers a handler to provide access to it.\n// Use this method if your OpenAPI spec is static. If you want to update the spec, use BuildOpenAPISpec then RegisterOpenAPIVersionedService.\nfunc BuildAndRegisterOpenAPIVersionedServiceFromRoutes(servePath string, routeContainers []common.RouteContainer, config *common.Config, handler common.PathHandler) (*OpenAPIService, error) {\n\tspec, err := builder.BuildOpenAPISpecFromRoutes(routeContainers, config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\to := NewOpenAPIService(spec)\n\to.RegisterOpenAPIVersionedService(servePath, handler)\n\treturn o, nil\n}\n"
  },
  {
    "path": "pkg/handler/handler_test.go",
    "content": "package handler\n\nimport (\n\tjson \"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"os\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"k8s.io/kube-openapi/pkg/cached\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nvar returnedSwagger = []byte(`{\n  \"swagger\": \"2.0\",\n  \"info\": {\n   \"title\": \"Kubernetes\",\n   \"version\": \"v1.11.0\"\n  }}`)\n\nfunc TestRegisterOpenAPIVersionedService(t *testing.T) {\n\tvar s spec.Swagger\n\terr := s.UnmarshalJSON(returnedSwagger)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error in unmarshalling SwaggerJSON: %v\", err)\n\t}\n\n\treturnedJSON := normalizeSwaggerOrDie(returnedSwagger)\n\tvar decodedJSON map[string]interface{}\n\tif err := json.Unmarshal(returnedJSON, &decodedJSON); err != nil {\n\t\tt.Fatal(err)\n\t}\n\treturnedPb, err := ToProtoBinary(returnedJSON)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error in preparing returnedPb: %v\", err)\n\t}\n\n\tmux := http.NewServeMux()\n\to := NewOpenAPIService(&s)\n\to.RegisterOpenAPIVersionedService(\"/openapi/v2\", mux)\n\tserver := httptest.NewServer(mux)\n\tdefer server.Close()\n\tclient := server.Client()\n\n\ttcs := []struct {\n\t\tacceptHeader              string\n\t\trespStatus                int\n\t\tresponseContentTypeHeader string\n\t\trespBody                  []byte\n\t}{\n\t\t{\"\", 200, \"application/json\", returnedJSON},\n\t\t{\"*/*\", 200, \"application/json\", returnedJSON},\n\t\t{\"application/*\", 200, \"application/json\", returnedJSON},\n\t\t{\"application/json\", 200, \"application/json\", returnedJSON},\n\t\t{\"test/test\", 406, \"\", []byte{}},\n\t\t{\"application/test\", 406, \"\", []byte{}},\n\t\t{\"application/test, */*\", 200, \"application/json\", returnedJSON},\n\t\t{\"application/test, application/json\", 200, \"application/json\", returnedJSON},\n\t\t{\"application/com.github.proto-openapi.spec.v2.v1.0+protobuf\", 200, \"application/com.github.proto-openapi.spec.v2.v1.0+protobuf\", returnedPb},\n\t\t{\"application/json, application/com.github.proto-openapi.spec.v2.v1.0+protobuf\", 200, \"application/json\", returnedJSON},\n\t\t{\"application/com.github.proto-openapi.spec.v2.v1.0+protobuf, application/json\", 200, \"application/com.github.proto-openapi.spec.v2.v1.0+protobuf\", returnedPb},\n\t\t{\"application/com.github.proto-openapi.spec.v2.v1.0+protobuf; q=0.5, application/json\", 200, \"application/json\", returnedJSON},\n\t\t{\"application/com.github.proto-openapi.spec.v2@v1.0+protobuf\", 200, \"application/com.github.proto-openapi.spec.v2.v1.0+protobuf\", returnedPb},\n\t\t{\"application/json, application/com.github.proto-openapi.spec.v2@v1.0+protobuf\", 200, \"application/json\", returnedJSON},\n\t\t{\"application/com.github.proto-openapi.spec.v2@v1.0+protobuf, application/json\", 200, \"application/com.github.proto-openapi.spec.v2.v1.0+protobuf\", returnedPb},\n\t\t{\"application/com.github.proto-openapi.spec.v2@v1.0+protobuf; q=0.5, application/json\", 200, \"application/json\", returnedJSON},\n\t}\n\n\tfor _, tc := range tcs {\n\t\treq, err := http.NewRequest(\"GET\", server.URL+\"/openapi/v2\", nil)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected error in creating new request: %v\", tc.acceptHeader, err)\n\t\t}\n\n\t\treq.Header.Add(\"Accept\", tc.acceptHeader)\n\t\tresp, err := client.Do(req)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected error in serving HTTP request: %v\", tc.acceptHeader, err)\n\t\t}\n\n\t\tif resp.StatusCode != tc.respStatus {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected response status code, want: %v, got: %v\", tc.acceptHeader, tc.respStatus, resp.StatusCode)\n\t\t}\n\t\tif tc.respStatus != 200 {\n\t\t\tcontinue\n\t\t}\n\n\t\tresponseContentType := resp.Header.Get(\"Content-Type\")\n\t\tif responseContentType != tc.responseContentTypeHeader {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected content type in response, want: %v, got: %v\", tc.acceptHeader, tc.responseContentTypeHeader, responseContentType)\n\t\t}\n\n\t\t_, _, err = mime.ParseMediaType(responseContentType)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Unexpected error in parsing response content type: %v, err: %v\", responseContentType, err)\n\t\t}\n\n\t\tdefer resp.Body.Close()\n\t\tbody, err := io.ReadAll(resp.Body)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected error in reading response body: %v\", tc.acceptHeader, err)\n\t\t}\n\t\tif !reflect.DeepEqual(body, tc.respBody) {\n\t\t\tt.Errorf(\"Accept: %v: Response body mismatches, \\nwant: %s, \\ngot:  %s\", tc.acceptHeader, string(tc.respBody), string(body))\n\t\t}\n\t}\n}\n\nvar updatedSwagger = []byte(`{\n  \"swagger\": \"2.0\",\n  \"info\": {\n   \"title\": \"Kubernetes\",\n   \"version\": \"v1.12.0\"\n  }}`)\n\nfunc getJSONBodyOrDie(server *httptest.Server) []byte {\n\treturn getBodyOrDie(server, \"application/json\")\n}\n\nfunc getProtoBodyOrDie(server *httptest.Server) []byte {\n\treturn getBodyOrDie(server, \"application/com.github.proto-openapi.spec.v2.v1.0+protobuf\")\n}\n\nfunc getBodyOrDie(server *httptest.Server, acceptHeader string) []byte {\n\treq, err := http.NewRequest(\"GET\", server.URL+\"/openapi/v2\", nil)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"Unexpected error in creating new request: %v\", err))\n\t}\n\n\treq.Header.Add(\"Accept\", acceptHeader)\n\tresp, err := server.Client().Do(req)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"Unexpected error in serving HTTP request: %v\", err))\n\t}\n\n\tdefer resp.Body.Close()\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"Unexpected error in reading response body: %v\", err))\n\t}\n\treturn body\n}\n\nfunc normalizeSwaggerOrDie(j []byte) []byte {\n\tvar s spec.Swagger\n\terr := s.UnmarshalJSON(j)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"Unexpected error in unmarshalling SwaggerJSON: %v\", err))\n\t}\n\trj, err := json.Marshal(s)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"Unexpected error in preparing returnedJSON: %v\", err))\n\t}\n\treturn rj\n}\n\nfunc TestUpdateSpecLazy(t *testing.T) {\n\treturnedJSON := normalizeSwaggerOrDie(returnedSwagger)\n\tvar s spec.Swagger\n\terr := s.UnmarshalJSON(returnedJSON)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error in unmarshalling SwaggerJSON: %v\", err)\n\t}\n\n\tmux := http.NewServeMux()\n\to := NewOpenAPIService(&s)\n\to.RegisterOpenAPIVersionedService(\"/openapi/v2\", mux)\n\tserver := httptest.NewServer(mux)\n\tdefer server.Close()\n\n\tbody := string(getJSONBodyOrDie(server))\n\tif body != string(returnedJSON) {\n\t\tt.Errorf(\"Unexpected swagger received, got %q, expected %q\", body, string(returnedSwagger))\n\t}\n\n\to.UpdateSpecLazy(cached.Func(func() (*spec.Swagger, string, error) {\n\t\tvar s spec.Swagger\n\t\terr := s.UnmarshalJSON(updatedSwagger)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Unexpected error in unmarshalling SwaggerJSON: %v\", err)\n\t\t}\n\t\treturn &s, \"SOMEHASH\", nil\n\t}))\n\n\tupdatedJSON := normalizeSwaggerOrDie(updatedSwagger)\n\tbody = string(getJSONBodyOrDie(server))\n\n\tif body != string(updatedJSON) {\n\t\tt.Errorf(\"Unexpected swagger received, got %q, expected %q\", body, string(updatedJSON))\n\t}\n}\n\nfunc TestToProtoBinary(t *testing.T) {\n\tbs, err := os.ReadFile(\"../../test/integration/testdata/aggregator/openapi.json\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif _, err := ToProtoBinary(bs); err != nil {\n\t\tt.Fatal()\n\t}\n\t// TODO: add some kind of roundtrip test here\n}\n\nfunc TestConcurrentReadStaleCache(t *testing.T) {\n\t// Number of requests sent in parallel\n\tconcurrency := 5\n\n\tvar s spec.Swagger\n\terr := s.UnmarshalJSON(returnedSwagger)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error in unmarshalling SwaggerJSON: %v\", err)\n\t}\n\n\tmux := http.NewServeMux()\n\to := NewOpenAPIService(&s)\n\to.RegisterOpenAPIVersionedService(\"/openapi/v2\", mux)\n\tserver := httptest.NewServer(mux)\n\tdefer server.Close()\n\n\treturnedJSON := normalizeSwaggerOrDie(returnedSwagger)\n\treturnedPb, err := ToProtoBinary(returnedJSON)\n\tif err != nil {\n\t\tt.Errorf(\"Unexpected error in preparing returnedPb: %v\", err)\n\t}\n\n\tjsonResultsChan := make(chan []byte)\n\tprotoResultsChan := make(chan []byte)\n\tupdateSpecChan := make(chan struct{})\n\tfor i := 0; i < concurrency; i++ {\n\t\tgo func() {\n\t\t\tsc := s\n\t\t\to.UpdateSpec(&sc)\n\t\t\tupdateSpecChan <- struct{}{}\n\t\t}()\n\t\tgo func() { jsonResultsChan <- getJSONBodyOrDie(server) }()\n\t\tgo func() { protoResultsChan <- getProtoBodyOrDie(server) }()\n\t}\n\tfor i := 0; i < concurrency; i++ {\n\t\tr := <-jsonResultsChan\n\t\tif !reflect.DeepEqual(r, returnedJSON) {\n\t\t\tt.Errorf(\"Returned and expected JSON do not match: got %v, want %v\", string(r), string(returnedJSON))\n\t\t}\n\t}\n\tfor i := 0; i < concurrency; i++ {\n\t\tr := <-protoResultsChan\n\t\tif !reflect.DeepEqual(r, returnedPb) {\n\t\t\tt.Errorf(\"Returned and expected pb do not match: got %v, want %v\", r, returnedPb)\n\t\t}\n\t}\n\tfor i := 0; i < concurrency; i++ {\n\t\t<-updateSpecChan\n\t}\n}\n"
  },
  {
    "path": "pkg/handler3/handler.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage handler3\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha512\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"path\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\topenapi_v3 \"github.com/google/gnostic-models/openapiv3\"\n\t\"github.com/google/uuid\"\n\t\"github.com/munnerz/goautoneg\"\n\t\"google.golang.org/protobuf/proto\"\n\n\t\"k8s.io/klog/v2\"\n\t\"k8s.io/kube-openapi/pkg/cached\"\n\t\"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n)\n\nconst (\n\tsubTypeProtobufDeprecated = \"com.github.proto-openapi.spec.v3@v1.0+protobuf\"\n\tsubTypeProtobuf           = \"com.github.proto-openapi.spec.v3.v1.0+protobuf\"\n\tsubTypeJSON               = \"json\"\n)\n\n// OpenAPIV3Discovery is the format of the Discovery document for OpenAPI V3\n// It maps Discovery paths to their corresponding URLs with a hash parameter included\ntype OpenAPIV3Discovery struct {\n\tPaths map[string]OpenAPIV3DiscoveryGroupVersion `json:\"paths\"`\n}\n\n// OpenAPIV3DiscoveryGroupVersion includes information about a group version and URL\n// for accessing the OpenAPI. The URL includes a hash parameter to support client side caching\ntype OpenAPIV3DiscoveryGroupVersion struct {\n\t// Path is an absolute path of an OpenAPI V3 document in the form of /openapi/v3/apis/apps/v1?hash=014fbff9a07c\n\tServerRelativeURL string `json:\"serverRelativeURL\"`\n}\n\nfunc ToV3ProtoBinary(json []byte) ([]byte, error) {\n\tdocument, err := openapi_v3.ParseDocument(json)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn proto.Marshal(document)\n}\n\ntype timedSpec struct {\n\tspec         []byte\n\tlastModified time.Time\n}\n\n// This type is protected by the lock on OpenAPIService.\ntype openAPIV3Group struct {\n\tspecCache cached.LastSuccess[*spec3.OpenAPI]\n\tpbCache   cached.Value[timedSpec]\n\tjsonCache cached.Value[timedSpec]\n}\n\nfunc newOpenAPIV3Group() *openAPIV3Group {\n\to := &openAPIV3Group{}\n\to.jsonCache = cached.Transform[*spec3.OpenAPI](func(spec *spec3.OpenAPI, etag string, err error) (timedSpec, string, error) {\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\tjson, err := json.Marshal(spec)\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\treturn timedSpec{spec: json, lastModified: time.Now()}, computeETag(json), nil\n\t}, &o.specCache)\n\to.pbCache = cached.Transform(func(ts timedSpec, etag string, err error) (timedSpec, string, error) {\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\tproto, err := ToV3ProtoBinary(ts.spec)\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\treturn timedSpec{spec: proto, lastModified: ts.lastModified}, etag, nil\n\t}, o.jsonCache)\n\treturn o\n}\n\nfunc (o *openAPIV3Group) UpdateSpec(openapi cached.Value[*spec3.OpenAPI]) {\n\to.specCache.Store(openapi)\n}\n\n// OpenAPIService is the service responsible for serving OpenAPI spec. It has\n// the ability to safely change the spec while serving it.\ntype OpenAPIService struct {\n\t// Mutex protects the schema map.\n\tmutex    sync.Mutex\n\tv3Schema map[string]*openAPIV3Group\n\n\tdiscoveryCache cached.LastSuccess[timedSpec]\n}\n\nfunc computeETag(data []byte) string {\n\tif data == nil {\n\t\treturn \"\"\n\t}\n\treturn fmt.Sprintf(\"%X\", sha512.Sum512(data))\n}\n\nfunc constructServerRelativeURL(gvString, etag string) string {\n\tu := url.URL{Path: path.Join(\"/openapi/v3\", gvString)}\n\tquery := url.Values{}\n\tquery.Set(\"hash\", etag)\n\tu.RawQuery = query.Encode()\n\treturn u.String()\n}\n\n// NewOpenAPIService builds an OpenAPIService starting with the given spec.\nfunc NewOpenAPIService() *OpenAPIService {\n\to := &OpenAPIService{}\n\to.v3Schema = make(map[string]*openAPIV3Group)\n\t// We're not locked because we haven't shared the structure yet.\n\to.discoveryCache.Store(o.buildDiscoveryCacheLocked())\n\treturn o\n}\n\nfunc (o *OpenAPIService) buildDiscoveryCacheLocked() cached.Value[timedSpec] {\n\tcaches := make(map[string]cached.Value[timedSpec], len(o.v3Schema))\n\tfor gvName, group := range o.v3Schema {\n\t\tcaches[gvName] = group.jsonCache\n\t}\n\treturn cached.Merge(func(results map[string]cached.Result[timedSpec]) (timedSpec, string, error) {\n\t\tdiscovery := &OpenAPIV3Discovery{Paths: make(map[string]OpenAPIV3DiscoveryGroupVersion)}\n\t\tfor gvName, result := range results {\n\t\t\tif result.Err != nil {\n\t\t\t\treturn timedSpec{}, \"\", result.Err\n\t\t\t}\n\t\t\tdiscovery.Paths[gvName] = OpenAPIV3DiscoveryGroupVersion{\n\t\t\t\tServerRelativeURL: constructServerRelativeURL(gvName, result.Etag),\n\t\t\t}\n\t\t}\n\t\tj, err := json.Marshal(discovery)\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\treturn timedSpec{spec: j, lastModified: time.Now()}, computeETag(j), nil\n\t}, caches)\n}\n\nfunc (o *OpenAPIService) getSingleGroupBytes(getType string, group string) ([]byte, string, time.Time, error) {\n\to.mutex.Lock()\n\tdefer o.mutex.Unlock()\n\tv, ok := o.v3Schema[group]\n\tif !ok {\n\t\treturn nil, \"\", time.Now(), fmt.Errorf(\"Cannot find CRD group %s\", group)\n\t}\n\tswitch getType {\n\tcase subTypeJSON:\n\t\tts, etag, err := v.jsonCache.Get()\n\t\treturn ts.spec, etag, ts.lastModified, err\n\tcase subTypeProtobuf, subTypeProtobufDeprecated:\n\t\tts, etag, err := v.pbCache.Get()\n\t\treturn ts.spec, etag, ts.lastModified, err\n\tdefault:\n\t\treturn nil, \"\", time.Now(), fmt.Errorf(\"Invalid accept clause %s\", getType)\n\t}\n}\n\n// UpdateGroupVersionLazy adds or updates an existing group with the new cached.\nfunc (o *OpenAPIService) UpdateGroupVersionLazy(group string, openapi cached.Value[*spec3.OpenAPI]) {\n\to.mutex.Lock()\n\tdefer o.mutex.Unlock()\n\tif _, ok := o.v3Schema[group]; !ok {\n\t\to.v3Schema[group] = newOpenAPIV3Group()\n\t\t// Since there is a new item, we need to re-build the cache map.\n\t\to.discoveryCache.Store(o.buildDiscoveryCacheLocked())\n\t}\n\to.v3Schema[group].UpdateSpec(openapi)\n}\n\nfunc (o *OpenAPIService) UpdateGroupVersion(group string, openapi *spec3.OpenAPI) {\n\to.UpdateGroupVersionLazy(group, cached.Static(openapi, uuid.New().String()))\n}\n\nfunc (o *OpenAPIService) DeleteGroupVersion(group string) {\n\to.mutex.Lock()\n\tdefer o.mutex.Unlock()\n\tdelete(o.v3Schema, group)\n\t// Rebuild the merge cache map since the items have changed.\n\to.discoveryCache.Store(o.buildDiscoveryCacheLocked())\n}\n\nfunc (o *OpenAPIService) HandleDiscovery(w http.ResponseWriter, r *http.Request) {\n\tts, etag, err := o.discoveryCache.Get()\n\tif err != nil {\n\t\tklog.Errorf(\"Error serving discovery: %s\", err)\n\t\tw.WriteHeader(http.StatusInternalServerError)\n\t\treturn\n\t}\n\tw.Header().Set(\"Etag\", strconv.Quote(etag))\n\tw.Header().Set(\"Content-Type\", \"application/json\")\n\thttp.ServeContent(w, r, \"/openapi/v3\", ts.lastModified, bytes.NewReader(ts.spec))\n}\n\nfunc (o *OpenAPIService) HandleGroupVersion(w http.ResponseWriter, r *http.Request) {\n\turl := strings.SplitAfterN(r.URL.Path, \"/\", 4)\n\tgroup := url[3]\n\n\tdecipherableFormats := r.Header.Get(\"Accept\")\n\tif decipherableFormats == \"\" {\n\t\tdecipherableFormats = \"*/*\"\n\t}\n\tclauses := goautoneg.ParseAccept(decipherableFormats)\n\tw.Header().Add(\"Vary\", \"Accept\")\n\n\tif len(clauses) == 0 {\n\t\treturn\n\t}\n\n\taccepted := []struct {\n\t\tType                string\n\t\tSubType             string\n\t\tReturnedContentType string\n\t}{\n\t\t{\"application\", subTypeJSON, \"application/\" + subTypeJSON},\n\t\t{\"application\", subTypeProtobuf, \"application/\" + subTypeProtobuf},\n\t\t{\"application\", subTypeProtobufDeprecated, \"application/\" + subTypeProtobuf},\n\t}\n\n\tfor _, clause := range clauses {\n\t\tfor _, accepts := range accepted {\n\t\t\tif clause.Type != accepts.Type && clause.Type != \"*\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif clause.SubType != accepts.SubType && clause.SubType != \"*\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdata, etag, lastModified, err := o.getSingleGroupBytes(accepts.SubType, group)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Set Content-Type header in the reponse\n\t\t\tw.Header().Set(\"Content-Type\", accepts.ReturnedContentType)\n\n\t\t\t// ETag must be enclosed in double quotes: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag\n\t\t\tw.Header().Set(\"Etag\", strconv.Quote(etag))\n\n\t\t\tif hash := r.URL.Query().Get(\"hash\"); hash != \"\" {\n\t\t\t\tif hash != etag {\n\t\t\t\t\tu := constructServerRelativeURL(group, etag)\n\t\t\t\t\thttp.Redirect(w, r, u, 301)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t// The Vary header is required because the Accept header can\n\t\t\t\t// change the contents returned. This prevents clients from caching\n\t\t\t\t// protobuf as JSON and vice versa.\n\t\t\t\tw.Header().Set(\"Vary\", \"Accept\")\n\n\t\t\t\t// Only set these headers when a hash is given.\n\t\t\t\tw.Header().Set(\"Cache-Control\", \"public, immutable\")\n\t\t\t\t// Set the Expires directive to the maximum value of one year from the request,\n\t\t\t\t// effectively indicating that the cache never expires.\n\t\t\t\tw.Header().Set(\"Expires\", time.Now().AddDate(1, 0, 0).Format(time.RFC1123))\n\t\t\t}\n\t\t\thttp.ServeContent(w, r, \"\", lastModified, bytes.NewReader(data))\n\t\t\treturn\n\t\t}\n\t}\n\tw.WriteHeader(406)\n\treturn\n}\n\nfunc (o *OpenAPIService) RegisterOpenAPIV3VersionedService(servePath string, handler common.PathHandlerByGroupVersion) error {\n\thandler.Handle(servePath, http.HandlerFunc(o.HandleDiscovery))\n\thandler.HandlePrefix(servePath+\"/\", http.HandlerFunc(o.HandleGroupVersion))\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/handler3/handler_test.go",
    "content": "/*\n   Copyright 2021 The Kubernetes Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage handler3\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"testing\"\n\t\"time\"\n\n\t\"encoding/json\"\n\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n)\n\nvar returnedOpenAPI = []byte(`{\n  \"openapi\": \"3.0\",\n  \"info\": {\n   \"title\": \"Kubernetes\",\n   \"version\": \"v1.23.0\"\n  },\n  \"paths\": {}}`)\n\nfunc TestRegisterOpenAPIVersionedService(t *testing.T) {\n\tvar s *spec3.OpenAPI\n\tbuffer := new(bytes.Buffer)\n\tif err := json.Compact(buffer, returnedOpenAPI); err != nil {\n\t\tt.Errorf(\"%v\", err)\n\t}\n\tcompactOpenAPI := buffer.Bytes()\n\tvar hash = computeETag(compactOpenAPI)\n\n\tvar returnedGroupVersionListJSON = []byte(`{\"paths\":{\"apis/apps/v1\":{\"serverRelativeURL\":\"/openapi/v3/apis/apps/v1?hash=` + hash + `\"}}}`)\n\n\tjson.Unmarshal(compactOpenAPI, &s)\n\n\treturnedJSON, err := json.Marshal(s)\n\tif err != nil {\n\t\tt.Fatalf(\"Unexpected error in preparing returnedJSON: %v\", err)\n\t}\n\n\treturnedPb, err := ToV3ProtoBinary(compactOpenAPI)\n\n\tif err != nil {\n\t\tt.Fatalf(\"Unexpected error in preparing returnedPb: %v\", err)\n\t}\n\n\tmux := http.NewServeMux()\n\to := NewOpenAPIService()\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tmux.Handle(\"/openapi/v3\", http.HandlerFunc(o.HandleDiscovery))\n\tmux.Handle(\"/openapi/v3/apis/apps/v1\", http.HandlerFunc(o.HandleGroupVersion))\n\n\to.UpdateGroupVersion(\"apis/apps/v1\", s)\n\n\tserver := httptest.NewServer(mux)\n\tdefer server.Close()\n\tclient := server.Client()\n\n\ttcs := []struct {\n\t\tacceptHeader              string\n\t\trespStatus                int\n\t\turlPath                   string\n\t\trespBody                  []byte\n\t\texpectedETag              string\n\t\tsendETag                  bool\n\t\tresponseContentTypeHeader string\n\t}{\n\t\t{\n\t\t\tacceptHeader:              \"\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3\",\n\t\t\trespBody:                  returnedGroupVersionListJSON,\n\t\t\texpectedETag:              computeETag(returnedGroupVersionListJSON),\n\t\t\tresponseContentTypeHeader: \"application/json\",\n\t\t}, {\n\t\t\tacceptHeader: \"\",\n\t\t\trespStatus:   304,\n\t\t\turlPath:      \"openapi/v3\",\n\t\t\trespBody:     returnedGroupVersionListJSON,\n\t\t\texpectedETag: computeETag(returnedGroupVersionListJSON),\n\t\t\tsendETag:     true,\n\t\t}, {\n\t\t\tacceptHeader:              \"\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:                  returnedJSON,\n\t\t\texpectedETag:              computeETag(returnedJSON),\n\t\t\tresponseContentTypeHeader: \"application/json\",\n\t\t}, {\n\t\t\tacceptHeader: \"\",\n\t\t\trespStatus:   304,\n\t\t\turlPath:      \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:     returnedJSON,\n\t\t\texpectedETag: computeETag(returnedJSON),\n\t\t\tsendETag:     true,\n\t\t}, {\n\t\t\tacceptHeader:              \"*/*\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:                  returnedJSON,\n\t\t\texpectedETag:              computeETag(returnedJSON),\n\t\t\tresponseContentTypeHeader: \"application/json\",\n\t\t}, {\n\t\t\tacceptHeader:              \"application/json\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:                  returnedJSON,\n\t\t\texpectedETag:              computeETag(returnedJSON),\n\t\t\tresponseContentTypeHeader: \"application/json\",\n\t\t}, {\n\t\t\tacceptHeader:              \"application/*\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:                  returnedJSON,\n\t\t\texpectedETag:              computeETag(returnedJSON),\n\t\t\tresponseContentTypeHeader: \"application/json\",\n\t\t}, {\n\t\t\tacceptHeader: \"test/test\",\n\t\t\trespStatus:   406,\n\t\t\turlPath:      \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:     []byte{},\n\t\t}, {\n\t\t\tacceptHeader: \"application/test\",\n\t\t\trespStatus:   406,\n\t\t\turlPath:      \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:     []byte{},\n\t\t}, {\n\t\t\tacceptHeader:              \"application/test,  */*\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:                  returnedJSON,\n\t\t\texpectedETag:              computeETag(returnedJSON),\n\t\t\tresponseContentTypeHeader: \"application/json\",\n\t\t}, {\n\t\t\tacceptHeader:              \"application/com.github.proto-openapi.spec.v3.v1.0+protobuf\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:                  returnedPb,\n\t\t\texpectedETag:              computeETag(returnedJSON),\n\t\t\tresponseContentTypeHeader: \"application/com.github.proto-openapi.spec.v3.v1.0+protobuf\",\n\t\t}, {\n\t\t\tacceptHeader: \"application/com.github.proto-openapi.spec.v3.v1.0+protobuf\",\n\t\t\trespStatus:   304,\n\t\t\turlPath:      \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:     returnedPb,\n\t\t\texpectedETag: computeETag(returnedJSON),\n\t\t\tsendETag:     true,\n\t\t}, {\n\t\t\tacceptHeader:              \"application/json, application/com.github.proto-openapi.spec.v2.v1.0+protobuf\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:                  returnedJSON,\n\t\t\texpectedETag:              computeETag(returnedJSON),\n\t\t\tresponseContentTypeHeader: \"application/json\",\n\t\t}, {\n\t\t\tacceptHeader:              \"application/com.github.proto-openapi.spec.v3.v1.0+protobuf, application/json\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:                  returnedPb,\n\t\t\texpectedETag:              computeETag(returnedJSON),\n\t\t\tresponseContentTypeHeader: \"application/com.github.proto-openapi.spec.v3.v1.0+protobuf\",\n\t\t}, {\n\t\t\tacceptHeader: \"application/com.github.proto-openapi.spec.v3.v1.0+protobuf, application/json\",\n\t\t\trespStatus:   304,\n\t\t\turlPath:      \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:     returnedPb,\n\t\t\texpectedETag: computeETag(returnedJSON),\n\t\t\tsendETag:     true,\n\t\t}, {\n\t\t\tacceptHeader:              \"application/com.github.proto-openapi.spec.v3.v1.0+protobuf; q=0.5, application/json\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:                  returnedJSON,\n\t\t\texpectedETag:              computeETag(returnedJSON),\n\t\t\tresponseContentTypeHeader: \"application/json\",\n\t\t}, {\n\t\t\tacceptHeader:              \"application/com.github.proto-openapi.spec.v3@v1.0+protobuf\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:                  returnedPb,\n\t\t\texpectedETag:              computeETag(returnedJSON),\n\t\t\tresponseContentTypeHeader: \"application/com.github.proto-openapi.spec.v3.v1.0+protobuf\",\n\t\t}, {\n\t\t\tacceptHeader: \"application/com.github.proto-openapi.spec.v3@v1.0+protobuf\",\n\t\t\trespStatus:   304,\n\t\t\turlPath:      \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:     returnedPb,\n\t\t\texpectedETag: computeETag(returnedJSON),\n\t\t\tsendETag:     true,\n\t\t}, {\n\t\t\tacceptHeader:              \"application/com.github.proto-openapi.spec.v3@v1.0+protobuf, application/json\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:                  returnedPb,\n\t\t\texpectedETag:              computeETag(returnedJSON),\n\t\t\tresponseContentTypeHeader: \"application/com.github.proto-openapi.spec.v3.v1.0+protobuf\",\n\t\t}, {\n\t\t\tacceptHeader:              \"application/com.github.proto-openapi.spec.v3@v1.0+protobuf; q=0.5, application/json\",\n\t\t\trespStatus:                200,\n\t\t\turlPath:                   \"openapi/v3/apis/apps/v1\",\n\t\t\trespBody:                  returnedJSON,\n\t\t\texpectedETag:              computeETag(returnedJSON),\n\t\t\tresponseContentTypeHeader: \"application/json\",\n\t\t},\n\t}\n\n\tfor _, tc := range tcs {\n\t\treq, err := http.NewRequest(\"GET\", server.URL+\"/\"+tc.urlPath, nil)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected error in creating new request: %v\", tc.acceptHeader, err)\n\t\t}\n\n\t\treq.Header.Add(\"Accept\", tc.acceptHeader)\n\t\tif tc.sendETag {\n\t\t\treq.Header.Add(\"If-None-Match\", strconv.Quote(tc.expectedETag))\n\t\t}\n\t\tresp, err := client.Do(req)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected error in serving HTTP request: %v\", tc.acceptHeader, err)\n\t\t}\n\t\tdefer resp.Body.Close()\n\n\t\tif resp.StatusCode != tc.respStatus {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected response status code, want: %v, got: %v\", tc.acceptHeader, tc.respStatus, resp.StatusCode)\n\t\t}\n\n\t\tif tc.respStatus == 304 {\n\t\t\tbody, err := io.ReadAll(resp.Body)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Accept: %v: Unexpected error in reading response body: %v\", tc.acceptHeader, err)\n\t\t\t}\n\t\t\tif len(body) != 0 {\n\t\t\t\tt.Errorf(\"Response Body length must be 0 if 304 is returned.\")\n\t\t\t}\n\t\t}\n\t\tif tc.respStatus != 200 {\n\t\t\tcontinue\n\t\t}\n\n\t\tresponseContentType := resp.Header.Get(\"Content-Type\")\n\t\tif responseContentType != tc.responseContentTypeHeader {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected content type in response, want: %v, got: %v\", tc.acceptHeader, tc.responseContentTypeHeader, responseContentType)\n\t\t}\n\t\t_, _, err = mime.ParseMediaType(responseContentType)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Unexpected error in parsing response content type: %v, err: %v\", responseContentType, err)\n\t\t}\n\n\t\tgotETag := resp.Header.Get(\"ETag\")\n\t\tif strconv.Quote(tc.expectedETag) != gotETag {\n\t\t\tt.Errorf(\"Expect ETag %s, got %s\", strconv.Quote(tc.expectedETag), gotETag)\n\t\t}\n\n\t\tbody, err := io.ReadAll(resp.Body)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected error in reading response body: %v\", tc.acceptHeader, err)\n\t\t}\n\t\tif !reflect.DeepEqual(body, tc.respBody) {\n\t\t\tt.Errorf(\"Accept: %v: Response body mismatches, \\nwant: %s, \\ngot:  %s\", tc.acceptHeader, string(tc.respBody), string(body))\n\t\t}\n\t}\n}\n\nfunc TestCacheBusting(t *testing.T) {\n\tvar s *spec3.OpenAPI\n\tbuffer := new(bytes.Buffer)\n\tif err := json.Compact(buffer, returnedOpenAPI); err != nil {\n\t\tt.Errorf(\"%v\", err)\n\t}\n\tcompactOpenAPI := buffer.Bytes()\n\tvar hash = computeETag(compactOpenAPI)\n\n\tjson.Unmarshal(compactOpenAPI, &s)\n\n\treturnedJSON, err := json.Marshal(s)\n\tif err != nil {\n\t\tt.Fatalf(\"Unexpected error in preparing returnedJSON: %v\", err)\n\t}\n\n\treturnedPb, err := ToV3ProtoBinary(compactOpenAPI)\n\n\tif err != nil {\n\t\tt.Fatalf(\"Unexpected error in preparing returnedPb: %v\", err)\n\t}\n\n\tmux := http.NewServeMux()\n\to := NewOpenAPIService()\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tmux.Handle(\"/openapi/v3\", http.HandlerFunc(o.HandleDiscovery))\n\tmux.Handle(\"/openapi/v3/apis/apps/v1\", http.HandlerFunc(o.HandleGroupVersion))\n\n\to.UpdateGroupVersion(\"apis/apps/v1\", s)\n\n\tserver := httptest.NewServer(mux)\n\tdefer server.Close()\n\tclient := server.Client()\n\n\ttcs := []struct {\n\t\tacceptHeader string\n\t\trespStatus   int\n\t\turlPath      string\n\t\trespBody     []byte\n\t\texpectedHash string\n\t\tcacheControl string\n\t}{\n\t\t// Correct hash should yield the proper expiry and Cache Control headers\n\t\t{\"application/json\",\n\t\t\t200,\n\t\t\t\"openapi/v3/apis/apps/v1?hash=\" + hash,\n\t\t\treturnedJSON,\n\t\t\thash,\n\t\t\t\"public, immutable\",\n\t\t},\n\t\t{\"application/com.github.proto-openapi.spec.v3.v1.0+protobuf\",\n\t\t\t200,\n\t\t\t\"openapi/v3/apis/apps/v1?hash=\" + hash,\n\t\t\treturnedPb,\n\t\t\thash,\n\t\t\t\"public, immutable\",\n\t\t},\n\t\t// Incorrect hash should redirect to the page with the correct hash\n\t\t{\"application/json\",\n\t\t\t200,\n\t\t\t\"openapi/v3/apis/apps/v1?hash=OUTDATEDHASH\",\n\t\t\treturnedJSON,\n\t\t\thash,\n\t\t\t\"public, immutable\",\n\t\t},\n\t\t{\"application/com.github.proto-openapi.spec.v3.v1.0+protobuf\",\n\t\t\t200,\n\t\t\t\"openapi/v3/apis/apps/v1?hash=OUTDATEDHASH\",\n\t\t\treturnedPb,\n\t\t\thash,\n\t\t\t\"public, immutable\",\n\t\t},\n\t\t// No hash should not return Cache Control information\n\t\t{\"application/json\",\n\t\t\t200,\n\t\t\t\"openapi/v3/apis/apps/v1\",\n\t\t\treturnedJSON,\n\t\t\t\"\",\n\t\t\t\"\",\n\t\t},\n\t\t{\"application/com.github.proto-openapi.spec.v3.v1.0+protobuf\",\n\t\t\t200,\n\t\t\t\"openapi/v3/apis/apps/v1\",\n\t\t\treturnedPb,\n\t\t\t\"\",\n\t\t\t\"\",\n\t\t},\n\t}\n\n\tfor _, tc := range tcs {\n\t\treq, err := http.NewRequest(\"GET\", server.URL+\"/\"+tc.urlPath, nil)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected error in creating new request: %v\", tc.acceptHeader, err)\n\t\t}\n\n\t\treq.Header.Add(\"Accept\", tc.acceptHeader)\n\t\tresp, err := client.Do(req)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected error in serving HTTP request: %v\", tc.acceptHeader, err)\n\t\t}\n\n\t\tif resp.StatusCode != 200 {\n\t\t\tt.Errorf(\"Accept: Unexpected response status code, want: %v, got: %v\", 200, resp.StatusCode)\n\t\t}\n\n\t\tif cacheControl := resp.Header.Get(\"Cache-Control\"); cacheControl != tc.cacheControl {\n\t\t\tt.Errorf(\"Expected Cache Control %v, got %v\", tc.cacheControl, cacheControl)\n\t\t}\n\n\t\tif tc.expectedHash != \"\" {\n\t\t\tif hash := resp.Request.URL.Query().Get(\"hash\"); hash != tc.expectedHash {\n\t\t\t\tt.Errorf(\"Expected Hash: %s, got %s\", tc.expectedHash, hash)\n\t\t\t}\n\n\t\t\texpires := resp.Header.Get(\"Expires\")\n\t\t\tparsedTime, err := time.Parse(time.RFC1123, expires)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"Could not parse cache expiry %v\", expires)\n\t\t\t}\n\n\t\t\tdifference := parsedTime.Sub(time.Now()).Hours()\n\t\t\tif difference <= 0 {\n\t\t\t\tt.Errorf(\"Expected cache expiry to be in the future\")\n\t\t\t}\n\t\t} else {\n\t\t\thash := resp.Request.URL.Query()[\"hash\"]\n\t\t\tif len(hash) != 0 {\n\t\t\t\tt.Errorf(\"Expect no redirect and empty hash if the hash is not provide\")\n\t\t\t}\n\t\t\texpires := resp.Header.Get(\"Expires\")\n\t\t\tif expires != \"\" {\n\t\t\t\tt.Errorf(\"Expected an empty Expiry if hash is not provided,  got %v\", expires)\n\t\t\t}\n\t\t}\n\n\t\tdefer resp.Body.Close()\n\t\tbody, err := io.ReadAll(resp.Body)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Accept: %v: Unexpected error in reading response body: %v\", tc.acceptHeader, err)\n\t\t}\n\t\tif !reflect.DeepEqual(body, tc.respBody) {\n\t\t\tt.Errorf(\"Accept: %v: Response body mismatches, \\nwant: %s, \\ngot:  %s\", tc.acceptHeader, string(tc.respBody), string(body))\n\t\t}\n\t}\n}\n\nfunc openAPIOrDie(name string) *spec3.OpenAPI {\n\topenapi := fmt.Sprintf(`{\n  \"openapi\": \"3.0\",\n  \"info\": {\n   \"title\": \"%s\",\n   \"version\": \"v1.23.0\"\n  },\n  \"paths\": {}}`, name)\n\tspec := spec3.OpenAPI{}\n\tif err := json.Unmarshal([]byte(openapi), &spec); err != nil {\n\t\tpanic(err)\n\t}\n\treturn &spec\n}\n\nfunc getDiscovery(server *httptest.Server, path string) (*OpenAPIV3Discovery, string, error) {\n\tclient := server.Client()\n\treq, err := http.NewRequest(\"GET\", server.URL+\"/\"+path, nil)\n\tif err != nil {\n\t\treturn nil, \"\", fmt.Errorf(\"error in creating new request: %v\", err)\n\t}\n\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn nil, \"\", fmt.Errorf(\"error in serving HTTP request: %v\", err)\n\t}\n\tif resp.StatusCode != 200 {\n\t\treturn nil, \"\", fmt.Errorf(\"unexpected response status code, want: %v, got: %v\", 200, resp.StatusCode)\n\t}\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn nil, \"\", fmt.Errorf(\"Failed to read request body: %v\", err)\n\t}\n\n\tdiscovery := &OpenAPIV3Discovery{}\n\tif err := json.Unmarshal(body, &discovery); err != nil {\n\t\treturn nil, \"\", fmt.Errorf(\"failed to unmarshal discovery: %v\", err)\n\t}\n\treturn discovery, resp.Header.Get(\"etag\"), nil\n}\n\nfunc TestUpdateGroupVersion(t *testing.T) {\n\tmux := http.NewServeMux()\n\to := NewOpenAPIService()\n\n\tmux.Handle(\"/openapi/v3\", http.HandlerFunc(o.HandleDiscovery))\n\n\to.UpdateGroupVersion(\"apis/apps/v1\", openAPIOrDie(\"apps-v1\"))\n\n\tserver := httptest.NewServer(mux)\n\tdefer server.Close()\n\n\tdiscovery, discovery_etag, err := getDiscovery(server, \"/openapi/v3\")\n\tif err != nil {\n\t\tt.Fatalf(\"failed to get /openapi/v3: %v\", err)\n\t}\n\tetag, ok := discovery.Paths[\"apis/apps/v1\"]\n\tif !ok {\n\t\tt.Fatalf(\"missing apis/apps/v1\")\n\t}\n\n\t// Update with the same thing, make sure we don't update anything.\n\to.UpdateGroupVersion(\"apis/apps/v1\", openAPIOrDie(\"apps-v1\"))\n\n\tdiscovery, discovery_etag_updated, err := getDiscovery(server, \"/openapi/v3\")\n\tif err != nil {\n\t\tt.Fatalf(\"failed to get /openapi/v3: %v\", err)\n\t}\n\tif len(discovery.Paths) != 1 {\n\t\tt.Fatalf(\"Invalid number of Paths, expected 1: %v\", discovery.Paths)\n\t}\n\tetag_updated, ok := discovery.Paths[\"apis/apps/v1\"]\n\tif !ok {\n\t\tt.Fatalf(\"missing apis/apps/v1\")\n\t}\n\n\tif discovery_etag_updated != discovery_etag {\n\t\tt.Fatalf(\"No-op update shouldn't update OpenAPI Discovery etag\")\n\t}\n\n\tif etag_updated != etag {\n\t\tt.Fatalf(\"No-op update shouldn't update OpenAPI etag\")\n\t}\n\n\t// Add one more, make sure it's in the list\n\to.UpdateGroupVersion(\"apis/something/v1\", openAPIOrDie(\"something-v1\"))\n\tdiscovery, _, err = getDiscovery(server, \"/openapi/v3\")\n\tif err != nil {\n\t\tt.Fatalf(\"failed to get /openapi/v3: %v\", err)\n\t}\n\tif len(discovery.Paths) != 2 {\n\t\tt.Fatalf(\"Invalid number of Paths, expected 2: %v\", discovery.Paths)\n\t}\n\n\t// And remove\n\to.DeleteGroupVersion(\"apis/apps/v1\")\n\tdiscovery, _, err = getDiscovery(server, \"/openapi/v3\")\n\tif err != nil {\n\t\tt.Fatalf(\"failed to get /openapi/v3: %v\", err)\n\t}\n\tif len(discovery.Paths) != 1 {\n\t\tt.Fatalf(\"Invalid number of Paths, expected 2: %v\", discovery.Paths)\n\t}\n}\n"
  },
  {
    "path": "pkg/idl/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// The IDL package describes comment directives that may be applied to\n// API types and fields.\npackage idl\n\n// ListType annotates a list to further describe its topology. It may\n// have 3 possible values: \"atomic\", \"map\", or \"set\". Note that there is\n// no default, and the generation step will fail if a list is found that\n// is missing the tag.\n//\n// This tag MUST only be used on lists, or the generation step will\n// fail.\n//\n// # Atomic\n//\n// Example:\n//\n//\t+listType=atomic\n//\n// Atomic lists will be entirely replaced when updated. This tag may be\n// used on any type of list (struct, scalar, ...).\n//\n// Using this tag will generate the following OpenAPI extension:\n//\n//\t\"x-kubernetes-list-type\": \"atomic\"\n//\n// # Map\n//\n// Example:\n//\n//\t+listType=map\n//\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. Using the map\n// tag on a list with non-struct elements will result in an error during\n// the generation step.\n//\n// Using this tag will generate the following OpenAPI extension:\n//\n//\t\"x-kubernetes-list-type\": \"map\"\n//\n// # Set\n//\n// Example:\n//\n//\t+listType=set\n//\n// Sets are lists that must not have multiple times the same value. Each\n// value must be a scalar (or another atomic type).\n//\n// Using this tag will generate the following OpenAPI extension:\n//\n//\t\"x-kubernetes-list-type\": \"set\"\ntype ListType string\n\n// ListMapKey annotates map lists by specifying the key used as the index of the map.\n//\n// This tag MUST only be used on lists that have the listType=map\n// attribute, or the generation step will fail. Also, the value\n// specified for this attribute must be a scalar typed field of the\n// child structure (no nesting is supported).\n//\n// An example of how this can be used is shown in the ListType (map) example.\n//\n// Example:\n//\n//\t+listMapKey=name\n//\n// Using this tag will generate the following OpenAPI extension:\n//\n//\t\"x-kubernetes-list-map-key\": \"name\"\ntype ListMapKey string\n\n// MapType annotates a map to further describe its topology. It may\n// have one of two values: `atomic` or `granular`. `atomic` means that the entire map is\n// considered as a whole; actors that wish to update the map can only\n// entirely replace it. `granular` means that specific values in the map can be\n// updated separately from other fields.\n//\n// By default, a map will be considered as a set of distinct values that\n// can be updated individually (i.e. the equivalent of `granular`).\n// This default will still generate an OpenAPI extension with key: \"x-kubernetes-map-type\".\n//\n// This tag MUST only be used on maps, or the generation step will fail.\n//\n// # Atomic\n//\n// Example:\n//\n//\t+mapType=atomic\n//\n// Atomic maps will be entirely replaced when updated. This tag may be\n// used on any map.\n//\n// Using this tag will generate the following OpenAPI extension:\n//\n//\t\"x-kubernetes-map-type\": \"atomic\"\ntype MapType string\n\n// OpenAPIGen needs to be described.\ntype OpenAPIGen string\n\n// Optional annotates a field to specify it may be omitted.\n// By default, fields will be marked as required if not otherwise specified.\n//\n// Example:\n//\n//\t+optional\n//\n// Additionally, the json struct tag directive \"omitempty\" can be used to imply\n// the same.\n//\n// Example:\n//\n//\tOptionalField `json:\"optionalField,omitempty\"`\ntype Optional string\n\n// PatchMergeKey needs to be described.\ntype PatchMergeKey string\n\n// PatchStrategy needs to be described.\ntype PatchStrategy string\n\n// StructType annotates a struct to further describe its topology. It may\n// have one of two values: `atomic` or `granular`. `atomic` means that the entire struct is\n// considered as a whole; actors that wish to update the struct can only\n// entirely replace it. `granular` means that specific fields in the struct can be\n// updated separately from other fields.\n//\n// By default, a struct will be considered as a set of distinct values that\n// can be updated individually (`granular`).\n// This default will still generate an OpenAPI extension with key: \"x-kubernetes-map-type\".\n//\n// This tag MUST only be used on structs, or the generation step will fail.\n//\n// # Atomic\n//\n// Example:\n//\n//\t+structType=atomic\n//\n// Atomic structs will be entirely replaced when updated. This tag may be\n// used on any struct.\n//\n// Using this tag will generate the following OpenAPI extension:\n//\n//\t\"x-kubernetes-map-type\": \"atomic\"\ntype StructType string\n\n// Union is TBD.\ntype Union string\n"
  },
  {
    "path": "pkg/idl/listtype_test.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage idl_test\n\nimport (\n\t_ \"k8s.io/kube-openapi/pkg/idl\"\n)\n\n// This example shows how to use the listType map attribute and how to\n// specify a key to identify elements of the list. The listMapKey\n// attribute is used to specify that Name is the key of the map.\nfunc ExampleListType_map() {\n\ttype SomeStruct struct {\n\t\tName  string\n\t\tValue string\n\t}\n\ttype SomeAPI struct {\n\t\t// +listType=map\n\t\t// +listMapKey=name\n\t\telements []SomeStruct\n\t}\n}\n\n// This example shows how to use the listType set attribute to specify\n// that this list should be treated as a set: items in the list can't be\n// duplicated.\nfunc ExampleListType_set() {\n\ttype SomeAPI struct {\n\t\t// +listType=set\n\t\tkeys []string\n\t}\n}\n\n// This example shows how to use the listType atomic attribute to\n// specify that this list should be treated as a whole.\nfunc ExampleListType_atomic() {\n\ttype SomeStruct struct {\n\t\tName  string\n\t\tValue string\n\t}\n\n\ttype SomeAPI struct {\n\t\t// +listType=atomic\n\t\telements []SomeStruct\n\t}\n}\n"
  },
  {
    "path": "pkg/idl/maptype_test.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage idl_test\n\nimport (\n\t_ \"k8s.io/kube-openapi/pkg/idl\"\n)\n\n// This example shows how to use the mapType atomic attribute to\n// specify that this map should be treated as a whole.\nfunc ExampleMapType_atomic() {\n\ttype SomeAPI struct {\n\t\t// +mapType=atomic\n\t\telements map[string]string\n\t}\n}\n"
  },
  {
    "path": "pkg/idl/structtype_test.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage idl_test\n\nimport (\n\t_ \"k8s.io/kube-openapi/pkg/idl\"\n)\n\n// This example shows how to use the structType atomic attribute to\n// specify that this struct should be treated as a whole.\nfunc ExampleStructType_atomic() {\n\ttype SomeStruct struct {\n\t\tName  string\n\t\tValue string\n\t}\n\ttype SomeAPI struct {\n\t\t// +structType=atomic\n\t\telements SomeStruct\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/flags.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\n// Used by tests to selectively disable experimental JSON unmarshaler\nvar UseOptimizedJSONUnmarshaling bool = true\nvar UseOptimizedJSONUnmarshalingV3 bool = true\n\n// Used by tests to selectively disable experimental JSON marshaler\nvar UseOptimizedJSONMarshaling bool = true\nvar UseOptimizedJSONMarshalingV3 bool = true\n"
  },
  {
    "path": "pkg/internal/serialization.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"github.com/go-openapi/jsonreference\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// DeterministicMarshal calls the jsonv2 library with the deterministic\n// flag in order to have stable marshaling.\nfunc DeterministicMarshal(in any) ([]byte, error) {\n\treturn jsonv2.MarshalOptions{Deterministic: true}.Marshal(jsonv2.EncodeOptions{}, in)\n}\n\n// JSONRefFromMap populates a json reference object if the map v contains a $ref key.\nfunc JSONRefFromMap(jsonRef *jsonreference.Ref, v map[string]interface{}) error {\n\tif v == nil {\n\t\treturn nil\n\t}\n\tif vv, ok := v[\"$ref\"]; ok {\n\t\tif str, ok := vv.(string); ok {\n\t\t\tref, err := jsonreference.New(str)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t*jsonRef = ref\n\t\t}\n\t}\n\treturn nil\n}\n\n// SanitizeExtensions sanitizes the input map such that non extension\n// keys (non x-*, X-*) keys are dropped from the map. Returns the new\n// modified map, or nil if the map is now empty.\nfunc SanitizeExtensions(e map[string]interface{}) map[string]interface{} {\n\tfor k := range e {\n\t\tif !IsExtensionKey(k) {\n\t\t\tdelete(e, k)\n\t\t}\n\t}\n\tif len(e) == 0 {\n\t\te = nil\n\t}\n\treturn e\n}\n\n// IsExtensionKey returns true if the input string is of format x-* or X-*\nfunc IsExtensionKey(k string) bool {\n\treturn len(k) > 1 && (k[0] == 'x' || k[0] == 'X') && k[1] == '-'\n}\n"
  },
  {
    "path": "pkg/internal/serialization_test.go",
    "content": "/*\n Copyright 2023 The Kubernetes Authors.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"github.com/go-openapi/jsonreference\"\n\t\"reflect\"\n\t\"testing\"\n)\n\nfunc TestJSONRefFromMap(t *testing.T) {\n\ttestcases := []struct {\n\t\tname            string\n\t\tfromMap         map[string]interface{}\n\t\texpectNil       bool\n\t\texpectRefString string\n\t}{\n\t\t{\n\t\t\tname:            \"nil map\",\n\t\t\texpectRefString: \"\",\n\t\t}, {\n\t\t\tname:            \"map with no $ref\",\n\t\t\tfromMap:         map[string]interface{}{\"a\": \"b\"},\n\t\t\texpectRefString: \"\",\n\t\t}, {\n\t\t\tname:            \"ref path\",\n\t\t\tfromMap:         map[string]interface{}{\"$ref\": \"#/path\"},\n\t\t\texpectRefString: \"#/path\",\n\t\t},\n\t}\n\n\tfor _, tc := range testcases {\n\t\tvar tmp jsonreference.Ref\n\t\terr := JSONRefFromMap(&tmp, tc.fromMap)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Expect no error from JSONRefMap %s, got error %v\", tc.name, err)\n\t\t}\n\n\t\tif tmp.String() != tc.expectRefString {\n\t\t\tt.Errorf(\"Expect jsonRef to be %s, got %s for %s\", tc.expectRefString, tmp.String(), tc.name)\n\t\t}\n\n\t}\n}\n\nfunc TestSanitizeExtensions(t *testing.T) {\n\ttestcases := []struct {\n\t\tin       map[string]interface{}\n\t\texpected map[string]interface{}\n\t}{\n\t\t{\n\t\t\tin:       map[string]interface{}{\"a\": \"b\", \"x-extension\": \"foo\"},\n\t\t\texpected: map[string]interface{}{\"x-extension\": \"foo\"},\n\t\t},\n\t\t{\n\t\t\tin:       map[string]interface{}{\"a\": \"b\"},\n\t\t\texpected: nil,\n\t\t},\n\t\t{\n\t\t\tin:       map[string]interface{}{},\n\t\t\texpected: nil,\n\t\t},\n\t}\n\n\tfor _, tc := range testcases {\n\t\te := SanitizeExtensions(tc.in)\n\t\tif !reflect.DeepEqual(tc.expected, e) {\n\t\t\tt.Errorf(\"Error: sanitize extensions does not match expected\")\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/README.md",
    "content": "Forked from: https://github.com/go-json-experiment/json\nCommit Hash: 540f014424240312547dcccddf11a8229ca0f463\n\nThis internal fork exists to prevent dependency issues with go-json-experiment\nuntil its API stabilizes.\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/AUTHORS",
    "content": "# This source code refers to The Go Authors for copyright purposes.\n# The master list of authors is in the main Go distribution,\n# visible at https://tip.golang.org/AUTHORS.\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/CONTRIBUTORS",
    "content": "# This source code was written by the Go contributors.\n# The master list of contributors is in the main Go distribution,\n# visible at https://tip.golang.org/CONTRIBUTORS.\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/LICENSE",
    "content": "Copyright (c) 2020 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/README.md",
    "content": "# JSON Serialization (v2)\n\n[![GoDev](https://img.shields.io/static/v1?label=godev&message=reference&color=00add8)](https://pkg.go.dev/github.com/go-json-experiment/json)\n[![Build Status](https://github.com/go-json-experiment/json/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/go-json-experiment/json/actions)\n\nThis module hosts an experimental implementation of v2 `encoding/json`.\nThe API is unstable and breaking changes will regularly be made.\nDo not depend on this in publicly available modules.\n\n## Goals and objectives\n\n* **Mostly backwards compatible:** If possible, v2 should aim to be _mostly_\ncompatible with v1 in terms of both API and default behavior to ease migration.\nFor example, the `Marshal` and `Unmarshal` functions are the most widely used\ndeclarations in the v1 package. It seems sensible for equivalent functionality\nin v2 to be named the same and have the same signature.\nBehaviorally, we should aim for 95% to 99% backwards compatibility.\nWe do not aim for 100% compatibility since we want the freedom to break\ncertain behaviors that are now considered to have been a mistake.\nWe may provide options that can bring the v2 implementation to 100% compatibility,\nbut it will not be the default.\n\n* **More flexible:** There is a\n[long list of feature requests](https://github.com/golang/go/issues?q=is%3Aissue+is%3Aopen+encoding%2Fjson+in%3Atitle).\nWe should aim to provide the most flexible features that addresses most usages.\nWe do not want to over fit the v2 API to handle every possible use case.\nIdeally, the features provided should be orthogonal in nature such that\nany combination of features results in as few surprising edge cases as possible.\n\n* **More performant:** JSON serialization is widely used and any bit of extra\nperformance gains will be greatly appreciated. Some rarely used behaviors of v1\nmay be dropped in favor of better performance. For example,\ndespite `Encoder` and `Decoder` operating on an `io.Writer` and `io.Reader`,\nthey do not operate in a truly streaming manner,\nleading to a loss in performance. The v2 implementation should aim to be truly\nstreaming by default (see [#33714](https://golang.org/issue/33714)).\n\n* **Easy to use (hard to misuse):** The v2 API should aim to make\nthe common case easy and the less common case at least possible.\nThe API should avoid behavior that goes contrary to user expectation,\nwhich may result in subtle bugs (see [#36225](https://golang.org/issue/36225)).\n\n* **v1 and v2 maintainability:** Since the v1 implementation must stay forever,\nit would be beneficial if v1 could be implemented under the hood with v2,\nallowing for less maintenance burden in the future. This probably implies that\nbehavioral changes in v2 relative to v1 need to be exposed as options.\n\n* **Avoid unsafe:** Standard library packages generally avoid the use of\npackage `unsafe` even if it could provide a performance boost.\nWe aim to preserve this property.\n\n## Expectations\n\nWhile this module aims to possibly be the v2 implementation of `encoding/json`,\nthere is no guarantee that this outcome will occur. As with any major change\nto the Go standard library, this will eventually go through the\n[Go proposal process](https://github.com/golang/proposal#readme).\nAt the present moment, this is still in the design and experimentation phase\nand is not ready for a formal proposal.\n\nThere are several possible outcomes from this experiment:\n1. We determine that a v2 `encoding/json` would not provide sufficient benefit\nover the existing v1 `encoding/json` package. Thus, we abandon this effort.\n2. We propose a v2 `encoding/json` design, but it is rejected in favor of some\nother design that is considered superior.\n3. We propose a v2 `encoding/json` design, but rather than adding an entirely\nnew v2 `encoding/json` package, we decide to merge its functionality into\nthe existing v1 `encoding/json` package.\n4. We propose a v2 `encoding/json` design and it is accepted, resulting in\nits addition to the standard library.\n5. Some other unforeseen outcome (among the infinite number of possibilities).\n\n## Development\n\nThis module is primarily developed by\n[@dsnet](https://github.com/dsnet),\n[@mvdan](https://github.com/mvdan), and\n[@johanbrandhorst](https://github.com/johanbrandhorst)\nwith feedback provided by\n[@rogpeppe](https://github.com/rogpeppe),\n[@ChrisHines](https://github.com/ChrisHines), and\n[@rsc](https://github.com/rsc).\n\nDiscussion about semantics occur semi-regularly, where a\n[record of past meetings can be found here](https://docs.google.com/document/d/1rovrOTd-wTawGMPPlPuKhwXaYBg9VszTXR9AQQL5LfI/edit?usp=sharing).\n\n## Design overview\n\nThis package aims to provide a clean separation between syntax and semantics.\nSyntax deals with the structural representation of JSON (as specified in\n[RFC 4627](https://tools.ietf.org/html/rfc4627),\n[RFC 7159](https://tools.ietf.org/html/rfc7159),\n[RFC 7493](https://tools.ietf.org/html/rfc7493),\n[RFC 8259](https://tools.ietf.org/html/rfc8259), and\n[RFC 8785](https://tools.ietf.org/html/rfc8785)).\nSemantics deals with the meaning of syntactic data as usable application data.\n\nThe `Encoder` and `Decoder` types are streaming tokenizers concerned with the\npacking or parsing of JSON data. They operate on `Token` and `RawValue` types\nwhich represent the common data structures that are representable in JSON.\n`Encoder` and `Decoder` do not aim to provide any interpretation of the data.\n\nFunctions like `Marshal`, `MarshalFull`, `MarshalNext`, `Unmarshal`,\n`UnmarshalFull`, and `UnmarshalNext` provide semantic meaning by correlating\nany arbitrary Go type with some JSON representation of that type (as stored in\ndata types like `[]byte`, `io.Writer`, `io.Reader`, `Encoder`, or `Decoder`).\n\n![API overview](api.png)\n\nThis diagram provides a high-level overview of the v2 `json` package.\nPurple blocks represent types, while blue blocks represent functions or methods.\nThe arrows and their direction represent the approximate flow of data.\nThe bottom half of the diagram contains functionality that is only concerned\nwith syntax, while the upper half contains functionality that assigns\nsemantic meaning to syntactic data handled by the bottom half.\n\nIn contrast to v1 `encoding/json`, options are represented as separate types\nrather than being setter methods on the `Encoder` or `Decoder` types.\n\n## Behavior changes\n\nThe v2 `json` package changes the default behavior of `Marshal` and `Unmarshal`\nrelative to the v1 `json` package to be more sensible.\nSome of these behavior changes have options and workarounds to opt into\nbehavior similar to what v1 provided.\n\nThis table shows an overview of the changes:\n\n| v1 | v2 | Details |\n| -- | -- | ------- |\n| JSON object members are unmarshaled into a Go struct using a **case-insensitive name match**. | JSON object members are unmarshaled into a Go struct using a **case-sensitive name match**. | [CaseSensitivity](/diff_test.go#:~:text=TestCaseSensitivity) |\n| When marshaling a Go struct, a struct field marked as `omitempty` is omitted if **the field value is an empty Go value**, which is defined as false, 0, a nil pointer, a nil interface value, and any empty array, slice, map, or string. | When marshaling a Go struct, a struct field marked as `omitempty` is omitted if **the field value would encode as an empty JSON value**, which is defined as a JSON null, or an empty JSON string, object, or array. | [OmitEmptyOption](/diff_test.go#:~:text=TestOmitEmptyOption) |\n| The `string` option **does affect** Go bools. | The `string` option **does not affect** Go bools. | [StringOption](/diff_test.go#:~:text=TestStringOption) |\n| The `string` option **does not recursively affect** sub-values of the Go field value. | The `string` option **does recursively affect** sub-values of the Go field value. | [StringOption](/diff_test.go#:~:text=TestStringOption) |\n| The `string` option **sometimes accepts** a JSON null escaped within a JSON string. | The `string` option **never accepts** a JSON null escaped within a JSON string. | [StringOption](/diff_test.go#:~:text=TestStringOption) |\n| A nil Go slice is marshaled as a **JSON null**. | A nil Go slice is marshaled as an **empty JSON array**. | [NilSlicesAndMaps](/diff_test.go#:~:text=TestNilSlicesAndMaps) |\n| A nil Go map is marshaled as a **JSON null**. | A nil Go map is marshaled as an **empty JSON object**. | [NilSlicesAndMaps](/diff_test.go#:~:text=TestNilSlicesAndMaps) |\n| A Go array may be unmarshaled from a **JSON array of any length**. | A Go array must be unmarshaled from a **JSON array of the same length**. | [Arrays](/diff_test.go#:~:text=Arrays) |\n| A Go byte array is represented as a **JSON array of JSON numbers**. | A Go byte array is represented as a **Base64-encoded JSON string**. | [ByteArrays](/diff_test.go#:~:text=TestByteArrays) |\n| `MarshalJSON` and `UnmarshalJSON` methods declared on a pointer receiver are **inconsistently called**. | `MarshalJSON` and `UnmarshalJSON` methods declared on a pointer receiver are **consistently called**. | [PointerReceiver](/diff_test.go#:~:text=TestPointerReceiver) |\n| A Go map is marshaled in a **deterministic order**. | A Go map is marshaled in a **non-deterministic order**. | [MapDeterminism](/diff_test.go#:~:text=TestMapDeterminism) |\n| JSON strings are encoded **with HTML-specific characters being escaped**. | JSON strings are encoded **without any characters being escaped** (unless necessary). | [EscapeHTML](/diff_test.go#:~:text=TestEscapeHTML) |\n| When marshaling, invalid UTF-8 within a Go string **are silently replaced**. | When marshaling, invalid UTF-8 within a Go string **results in an error**. | [InvalidUTF8](/diff_test.go#:~:text=TestInvalidUTF8) |\n| When unmarshaling, invalid UTF-8 within a JSON string **are silently replaced**. | When unmarshaling, invalid UTF-8 within a JSON string **results in an error**. | [InvalidUTF8](/diff_test.go#:~:text=TestInvalidUTF8) |\n| When marshaling, **an error does not occur** if the output JSON value contains objects with duplicate names. | When marshaling, **an error does occur** if the output JSON value contains objects with duplicate names. | [DuplicateNames](/diff_test.go#:~:text=TestDuplicateNames) |\n| When unmarshaling, **an error does not occur** if the input JSON value contains objects with duplicate names. | When unmarshaling, **an error does occur** if the input JSON value contains objects with duplicate names. | [DuplicateNames](/diff_test.go#:~:text=TestDuplicateNames) |\n| Unmarshaling a JSON null into a non-empty Go value **inconsistently clears the value or does nothing**. | Unmarshaling a JSON null into a non-empty Go value **always clears the value**. | [MergeNull](/diff_test.go#:~:text=TestMergeNull) |\n| Unmarshaling a JSON value into a non-empty Go value **follows inconsistent and bizarre behavior**. | Unmarshaling a JSON value into a non-empty Go value **always merges if the input is an object, and otherwise replaces**.  | [MergeComposite](/diff_test.go#:~:text=TestMergeComposite) |\n| A `time.Duration` is represented as a **JSON number containing the decimal number of nanoseconds**. | A `time.Duration` is represented as a **JSON string containing the formatted duration (e.g., \"1h2m3.456s\")**. | [TimeDurations](/diff_test.go#:~:text=TestTimeDurations) |\n| Unmarshaling a JSON number into a Go float beyond its representation **results in an error**. | Unmarshaling a JSON number into a Go float beyond its representation **uses the closest representable value (e.g., ±`math.MaxFloat`)**. | [MaxFloats](/diff_test.go#:~:text=TestMaxFloats) |\n| A Go struct with only unexported fields **can be serialized**. | A Go struct with only unexported fields **cannot be serialized**. | [EmptyStructs](/diff_test.go#:~:text=TestEmptyStructs) |\n| A Go struct that embeds an unexported struct type **can sometimes be serialized**. | A Go struct that embeds an unexported struct type **cannot be serialized**. | [EmbedUnexported](/diff_test.go#:~:text=TestEmbedUnexported) |\n\nSee [diff_test.go](/diff_test.go) for details about every change.\n\n## Performance\n\nOne of the goals of the v2 module is to be more performant than v1.\n\nEach of the charts below show the performance across\nseveral different JSON implementations:\n\n* `JSONv1` is `encoding/json` at `v1.18.2`\n* `JSONv2` is `github.com/go-json-experiment/json` at `v0.0.0-20220524042235-dd8be80fc4a7`\n* `JSONIterator` is `github.com/json-iterator/go` at `v1.1.12`\n* `SegmentJSON` is `github.com/segmentio/encoding/json` at `v0.3.5`\n* `GoJSON` is `github.com/goccy/go-json` at `v0.9.7`\n* `SonicJSON` is `github.com/bytedance/sonic` at `v1.3.0`\n\nBenchmarks were run across various datasets:\n\n* `CanadaGeometry` is a GeoJSON (RFC 7946) representation of Canada.\n  It contains many JSON arrays of arrays of two-element arrays of numbers.\n* `CITMCatalog` contains many JSON objects using numeric names.\n* `SyntheaFHIR` is sample JSON data from the healthcare industry.\n  It contains many nested JSON objects with mostly string values,\n  where the set of unique string values is relatively small.\n* `TwitterStatus` is the JSON response from the Twitter API.\n  It contains a mix of all different JSON kinds, where string values\n  are a mix of both single-byte ASCII and multi-byte Unicode.\n* `GolangSource` is a simple tree representing the Go source code.\n  It contains many nested JSON objects, each with the same schema.\n* `StringUnicode` contains many strings with multi-byte Unicode runes.\n\nAll of the implementations other than `JSONv1` and `JSONv2` make\nextensive use of `unsafe`. As such, we expect those to generally be faster,\nbut at the cost of memory and type safety. `SonicJSON` goes a step even further\nand uses just-in-time compilation to generate machine code specialized\nfor the Go type being marshaled or unmarshaled.\nAlso, `SonicJSON` does not validate JSON strings for valid UTF-8,\nand so gains a notable performance boost on datasets with multi-byte Unicode.\nBenchmarks are performed based on the default marshal and unmarshal behavior\nof each package. Note that `JSONv2` aims to be safe and correct by default,\nwhich may not be the most performant strategy.\n\n`JSONv2` has several semantic changes relative to `JSONv1` that\nimpacts performance:\n\n1.  When marshaling, `JSONv2` no longer sorts the keys of a Go map.\n    This will improve performance.\n2.  When marshaling or unmarshaling, `JSONv2` always checks\n    to make sure JSON object names are unique.\n    This will hurt performance, but is more correct.\n3.  When marshaling or unmarshaling, `JSONv2` always\n    shallow copies the underlying value for a Go interface and\n    shallow copies the key and value for entries in a Go map.\n    This is done to keep the value as addressable so that `JSONv2` can\n    call methods and functions that operate on a pointer receiver.\n    This will hurt performance, but is more correct.\n\nAll of the charts are unit-less since the values are normalized\nrelative to `JSONv1`, which is why `JSONv1` always has a value of 1.\nA lower value is better (i.e., runs faster).\n\nBenchmarks were performed on an AMD Ryzen 9 5900X.\n\nThe code for the benchmarks is located at\nhttps://github.com/go-json-experiment/jsonbench.\n\n### Marshal Performance\n\n#### Concrete types\n\n![Benchmark Marshal Concrete](benchmark-marshal-concrete.png)\n\n* This compares marshal performance when serializing\n  [from concrete types](/testdata_test.go).\n* The `JSONv1` implementation is close to optimal (without the use of `unsafe`).\n* Relative to `JSONv1`, `JSONv2` is generally as fast or slightly faster.\n* Relative to `JSONIterator`, `JSONv2` is up to 1.3x faster.\n* Relative to `SegmentJSON`, `JSONv2` is up to 1.8x slower.\n* Relative to `GoJSON`, `JSONv2` is up to 2.0x slower.\n* Relative to `SonicJSON`, `JSONv2` is about 1.8x to 3.2x slower\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* For `JSONv1` and `JSONv2`, marshaling from concrete types is\n  mostly limited by the performance of Go reflection.\n\n#### Interface types\n\n![Benchmark Marshal Interface](benchmark-marshal-interface.png)\n\n* This compares marshal performance when serializing from\n  `any`, `map[string]any`, and `[]any` types.\n* Relative to `JSONv1`, `JSONv2` is about 1.5x to 4.2x faster.\n* Relative to `JSONIterator`, `JSONv2` is about 1.1x to 2.4x faster.\n* Relative to `SegmentJSON`, `JSONv2` is about 1.2x to 1.8x faster.\n* Relative to `GoJSON`, `JSONv2` is about 1.1x to 2.5x faster.\n* Relative to `SonicJSON`, `JSONv2` is up to 1.5x slower\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* `JSONv2` is faster than the alternatives.\n  One advantange is because it does not sort the keys for a `map[string]any`,\n  while alternatives (except `SonicJSON` and `JSONIterator`) do sort the keys.\n\n#### RawValue types\n\n![Benchmark Marshal Rawvalue](benchmark-marshal-rawvalue.png)\n\n* This compares performance when marshaling from a `json.RawValue`.\n  This mostly exercises the underlying encoder and\n  hides the cost of Go reflection.\n* Relative to `JSONv1`, `JSONv2` is about 3.5x to 7.8x faster.\n* `JSONIterator` is blazingly fast because\n  [it does not validate whether the raw value is valid](https://go.dev/play/p/bun9IXQCKRe)\n  and simply copies it to the output.\n* Relative to `SegmentJSON`, `JSONv2` is about 1.5x to 2.7x faster.\n* Relative to `GoJSON`, `JSONv2` is up to 2.2x faster.\n* Relative to `SonicJSON`, `JSONv2` is up to 1.5x faster.\n* Aside from `JSONIterator`, `JSONv2` is generally the fastest.\n\n### Unmarshal Performance\n\n#### Concrete types\n\n![Benchmark Unmarshal Concrete](benchmark-unmarshal-concrete.png)\n\n* This compares unmarshal performance when deserializing\n  [into concrete types](/testdata_test.go).\n* Relative to `JSONv1`, `JSONv2` is about 1.8x to 5.7x faster.\n* Relative to `JSONIterator`, `JSONv2` is about 1.1x to 1.6x slower.\n* Relative to `SegmentJSON`, `JSONv2` is up to 2.5x slower.\n* Relative to `GoJSON`, `JSONv2` is about 1.4x to 2.1x slower.\n* Relative to `SonicJSON`, `JSONv2` is up to 4.0x slower\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* For `JSONv1` and `JSONv2`, unmarshaling into concrete types is\n  mostly limited by the performance of Go reflection.\n\n#### Interface types\n\n![Benchmark Unmarshal Interface](benchmark-unmarshal-interface.png)\n\n* This compares unmarshal performance when deserializing into\n  `any`, `map[string]any`, and `[]any` types.\n* Relative to `JSONv1`, `JSONv2` is about 1.tx to 4.3x faster.\n* Relative to `JSONIterator`, `JSONv2` is up to 1.5x faster.\n* Relative to `SegmentJSON`, `JSONv2` is about 1.5 to 3.7x faster.\n* Relative to `GoJSON`, `JSONv2` is up to 1.3x faster.\n* Relative to `SonicJSON`, `JSONv2` is up to 1.5x slower\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* Aside from `SonicJSON`, `JSONv2` is generally just as fast\n  or faster than all the alternatives.\n\n#### RawValue types\n\n![Benchmark Unmarshal Rawvalue](benchmark-unmarshal-rawvalue.png)\n\n* This compares performance when unmarshaling into a `json.RawValue`.\n  This mostly exercises the underlying decoder and\n  hides away most of the cost of Go reflection.\n* Relative to `JSONv1`, `JSONv2` is about 8.3x to 17.0x faster.\n* Relative to `JSONIterator`, `JSONv2` is up to 2.0x faster.\n* Relative to `SegmentJSON`, `JSONv2` is up to 1.6x faster or 1.7x slower.\n* Relative to `GoJSON`, `JSONv2` is up to 1.9x faster or 2.1x slower.\n* Relative to `SonicJSON`, `JSONv2` is up to 2.0x faster\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* `JSONv1` takes a\n  [lexical scanning approach](https://talks.golang.org/2011/lex.slide#1),\n  which performs a virtual function call for every byte of input.\n  In contrast, `JSONv2` makes heavy use of iterative and linear parsing logic\n  (with extra complexity to resume parsing when encountering segmented buffers).\n* `JSONv2` is comparable to the alternatives that use `unsafe`.\n  Generally it is faster, but sometimes it is slower.\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/arshal.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"reflect\"\n\t\"sync\"\n)\n\n// MarshalOptions configures how Go data is serialized as JSON data.\n// The zero value is equivalent to the default marshal settings.\ntype MarshalOptions struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// Marshalers is a list of type-specific marshalers to use.\n\tMarshalers *Marshalers\n\n\t// StringifyNumbers specifies that numeric Go types should be serialized\n\t// as a JSON string containing the equivalent JSON number value.\n\t//\n\t// According to RFC 8259, section 6, a JSON implementation may choose to\n\t// limit the representation of a JSON number to an IEEE 754 binary64 value.\n\t// This may cause decoders to lose precision for int64 and uint64 types.\n\t// Escaping JSON numbers as a JSON string preserves the exact precision.\n\tStringifyNumbers bool\n\n\t// DiscardUnknownMembers specifies that marshaling should ignore any\n\t// JSON object members stored in Go struct fields dedicated to storing\n\t// unknown JSON object members.\n\tDiscardUnknownMembers bool\n\n\t// Deterministic specifies that the same input value will be serialized\n\t// as the exact same output bytes. Different processes of\n\t// the same program will serialize equal values to the same bytes,\n\t// but different versions of the same program are not guaranteed\n\t// to produce the exact same sequence of bytes.\n\tDeterministic bool\n\n\t// formatDepth is the depth at which we respect the format flag.\n\tformatDepth int\n\t// format is custom formatting for the value at the specified depth.\n\tformat string\n}\n\n// Marshal serializes a Go value as a []byte with default options.\n// It is a thin wrapper over MarshalOptions.Marshal.\nfunc Marshal(in any) (out []byte, err error) {\n\treturn MarshalOptions{}.Marshal(EncodeOptions{}, in)\n}\n\n// MarshalFull serializes a Go value into an io.Writer with default options.\n// It is a thin wrapper over MarshalOptions.MarshalFull.\nfunc MarshalFull(out io.Writer, in any) error {\n\treturn MarshalOptions{}.MarshalFull(EncodeOptions{}, out, in)\n}\n\n// Marshal serializes a Go value as a []byte according to the provided\n// marshal and encode options. It does not terminate the output with a newline.\n// See MarshalNext for details about the conversion of a Go value into JSON.\nfunc (mo MarshalOptions) Marshal(eo EncodeOptions, in any) (out []byte, err error) {\n\tenc := getBufferedEncoder(eo)\n\tdefer putBufferedEncoder(enc)\n\tenc.options.omitTopLevelNewline = true\n\terr = mo.MarshalNext(enc, in)\n\t// TODO(https://go.dev/issue/45038): Use bytes.Clone.\n\treturn append([]byte(nil), enc.buf...), err\n}\n\n// MarshalFull serializes a Go value into an io.Writer according to the provided\n// marshal and encode options. It does not terminate the output with a newline.\n// See MarshalNext for details about the conversion of a Go value into JSON.\nfunc (mo MarshalOptions) MarshalFull(eo EncodeOptions, out io.Writer, in any) error {\n\tenc := getStreamingEncoder(out, eo)\n\tdefer putStreamingEncoder(enc)\n\tenc.options.omitTopLevelNewline = true\n\terr := mo.MarshalNext(enc, in)\n\treturn err\n}\n\n// MarshalNext encodes a Go value as the next JSON value according to\n// the provided marshal options.\n//\n// Type-specific marshal functions and methods take precedence\n// over the default representation of a value.\n// Functions or methods that operate on *T are only called when encoding\n// a value of type T (by taking its address) or a non-nil value of *T.\n// MarshalNext ensures that a value is always addressable\n// (by boxing it on the heap if necessary) so that\n// these functions and methods can be consistently called. For performance,\n// it is recommended that MarshalNext be passed a non-nil pointer to the value.\n//\n// The input value is encoded as JSON according the following rules:\n//\n//   - If any type-specific functions in MarshalOptions.Marshalers match\n//     the value type, then those functions are called to encode the value.\n//     If all applicable functions return SkipFunc,\n//     then the value is encoded according to subsequent rules.\n//\n//   - If the value type implements MarshalerV2,\n//     then the MarshalNextJSON method is called to encode the value.\n//\n//   - If the value type implements MarshalerV1,\n//     then the MarshalJSON method is called to encode the value.\n//\n//   - If the value type implements encoding.TextMarshaler,\n//     then the MarshalText method is called to encode the value and\n//     subsequently encode its result as a JSON string.\n//\n//   - Otherwise, the value is encoded according to the value's type\n//     as described in detail below.\n//\n// Most Go types have a default JSON representation.\n// Certain types support specialized formatting according to\n// a format flag optionally specified in the Go struct tag\n// for the struct field that contains the current value\n// (see the “JSON Representation of Go structs” section for more details).\n//\n// The representation of each type is as follows:\n//\n//   - A Go boolean is encoded as a JSON boolean (e.g., true or false).\n//     It does not support any custom format flags.\n//\n//   - A Go string is encoded as a JSON string.\n//     It does not support any custom format flags.\n//\n//   - A Go []byte or [N]byte is encoded as a JSON string containing\n//     the binary value encoded using RFC 4648.\n//     If the format is \"base64\" or unspecified, then this uses RFC 4648, section 4.\n//     If the format is \"base64url\", then this uses RFC 4648, section 5.\n//     If the format is \"base32\", then this uses RFC 4648, section 6.\n//     If the format is \"base32hex\", then this uses RFC 4648, section 7.\n//     If the format is \"base16\" or \"hex\", then this uses RFC 4648, section 8.\n//     If the format is \"array\", then the bytes value is encoded as a JSON array\n//     where each byte is recursively JSON-encoded as each JSON array element.\n//\n//   - A Go integer is encoded as a JSON number without fractions or exponents.\n//     If MarshalOptions.StringifyNumbers is specified, then the JSON number is\n//     encoded within a JSON string. It does not support any custom format\n//     flags.\n//\n//   - A Go float is encoded as a JSON number.\n//     If MarshalOptions.StringifyNumbers is specified,\n//     then the JSON number is encoded within a JSON string.\n//     If the format is \"nonfinite\", then NaN, +Inf, and -Inf are encoded as\n//     the JSON strings \"NaN\", \"Infinity\", and \"-Infinity\", respectively.\n//     Otherwise, the presence of non-finite numbers results in a SemanticError.\n//\n//   - A Go map is encoded as a JSON object, where each Go map key and value\n//     is recursively encoded as a name and value pair in the JSON object.\n//     The Go map key must encode as a JSON string, otherwise this results\n//     in a SemanticError. When encoding keys, MarshalOptions.StringifyNumbers\n//     is automatically applied so that numeric keys encode as JSON strings.\n//     The Go map is traversed in a non-deterministic order.\n//     For deterministic encoding, consider using RawValue.Canonicalize.\n//     If the format is \"emitnull\", then a nil map is encoded as a JSON null.\n//     Otherwise by default, a nil map is encoded as an empty JSON object.\n//\n//   - A Go struct is encoded as a JSON object.\n//     See the “JSON Representation of Go structs” section\n//     in the package-level documentation for more details.\n//\n//   - A Go slice is encoded as a JSON array, where each Go slice element\n//     is recursively JSON-encoded as the elements of the JSON array.\n//     If the format is \"emitnull\", then a nil slice is encoded as a JSON null.\n//     Otherwise by default, a nil slice is encoded as an empty JSON array.\n//\n//   - A Go array is encoded as a JSON array, where each Go array element\n//     is recursively JSON-encoded as the elements of the JSON array.\n//     The JSON array length is always identical to the Go array length.\n//     It does not support any custom format flags.\n//\n//   - A Go pointer is encoded as a JSON null if nil, otherwise it is\n//     the recursively JSON-encoded representation of the underlying value.\n//     Format flags are forwarded to the encoding of the underlying value.\n//\n//   - A Go interface is encoded as a JSON null if nil, otherwise it is\n//     the recursively JSON-encoded representation of the underlying value.\n//     It does not support any custom format flags.\n//\n//   - A Go time.Time is encoded as a JSON string containing the timestamp\n//     formatted in RFC 3339 with nanosecond resolution.\n//     If the format matches one of the format constants declared\n//     in the time package (e.g., RFC1123), then that format is used.\n//     Otherwise, the format is used as-is with time.Time.Format if non-empty.\n//\n//   - A Go time.Duration is encoded as a JSON string containing the duration\n//     formatted according to time.Duration.String.\n//     If the format is \"nanos\", it is encoded as a JSON number\n//     containing the number of nanoseconds in the duration.\n//\n//   - All other Go types (e.g., complex numbers, channels, and functions)\n//     have no default representation and result in a SemanticError.\n//\n// JSON cannot represent cyclic data structures and\n// MarshalNext does not handle them.\n// Passing cyclic structures will result in an error.\nfunc (mo MarshalOptions) MarshalNext(out *Encoder, in any) error {\n\tv := reflect.ValueOf(in)\n\tif !v.IsValid() || (v.Kind() == reflect.Pointer && v.IsNil()) {\n\t\treturn out.WriteToken(Null)\n\t}\n\t// Shallow copy non-pointer values to obtain an addressable value.\n\t// It is beneficial to performance to always pass pointers to avoid this.\n\tif v.Kind() != reflect.Pointer {\n\t\tv2 := reflect.New(v.Type())\n\t\tv2.Elem().Set(v)\n\t\tv = v2\n\t}\n\tva := addressableValue{v.Elem()} // dereferenced pointer is always addressable\n\tt := va.Type()\n\n\t// Lookup and call the marshal function for this type.\n\tmarshal := lookupArshaler(t).marshal\n\tif mo.Marshalers != nil {\n\t\tmarshal, _ = mo.Marshalers.lookup(marshal, t)\n\t}\n\tif err := marshal(mo, out, va); err != nil {\n\t\tif !out.options.AllowDuplicateNames {\n\t\t\tout.tokens.invalidateDisabledNamespaces()\n\t\t}\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// UnmarshalOptions configures how JSON data is deserialized as Go data.\n// The zero value is equivalent to the default unmarshal settings.\ntype UnmarshalOptions struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// Unmarshalers is a list of type-specific unmarshalers to use.\n\tUnmarshalers *Unmarshalers\n\n\t// StringifyNumbers specifies that numeric Go types can be deserialized\n\t// from either a JSON number or a JSON string containing a JSON number\n\t// without any surrounding whitespace.\n\tStringifyNumbers bool\n\n\t// RejectUnknownMembers specifies that unknown members should be rejected\n\t// when unmarshaling a JSON object, regardless of whether there is a field\n\t// to store unknown members.\n\tRejectUnknownMembers bool\n\n\t// formatDepth is the depth at which we respect the format flag.\n\tformatDepth int\n\t// format is custom formatting for the value at the specified depth.\n\tformat string\n}\n\n// Unmarshal deserializes a Go value from a []byte with default options.\n// It is a thin wrapper over UnmarshalOptions.Unmarshal.\nfunc Unmarshal(in []byte, out any) error {\n\treturn UnmarshalOptions{}.Unmarshal(DecodeOptions{}, in, out)\n}\n\n// UnmarshalFull deserializes a Go value from an io.Reader with default options.\n// It is a thin wrapper over UnmarshalOptions.UnmarshalFull.\nfunc UnmarshalFull(in io.Reader, out any) error {\n\treturn UnmarshalOptions{}.UnmarshalFull(DecodeOptions{}, in, out)\n}\n\n// Unmarshal deserializes a Go value from a []byte according to the\n// provided unmarshal and decode options. The output must be a non-nil pointer.\n// The input must be a single JSON value with optional whitespace interspersed.\n// See UnmarshalNext for details about the conversion of JSON into a Go value.\nfunc (uo UnmarshalOptions) Unmarshal(do DecodeOptions, in []byte, out any) error {\n\tdec := getBufferedDecoder(in, do)\n\tdefer putBufferedDecoder(dec)\n\treturn uo.unmarshalFull(dec, out)\n}\n\n// UnmarshalFull deserializes a Go value from an io.Reader according to the\n// provided unmarshal and decode options. The output must be a non-nil pointer.\n// The input must be a single JSON value with optional whitespace interspersed.\n// It consumes the entirety of io.Reader until io.EOF is encountered.\n// See UnmarshalNext for details about the conversion of JSON into a Go value.\nfunc (uo UnmarshalOptions) UnmarshalFull(do DecodeOptions, in io.Reader, out any) error {\n\tdec := getStreamingDecoder(in, do)\n\tdefer putStreamingDecoder(dec)\n\treturn uo.unmarshalFull(dec, out)\n}\nfunc (uo UnmarshalOptions) unmarshalFull(in *Decoder, out any) error {\n\tswitch err := uo.UnmarshalNext(in, out); err {\n\tcase nil:\n\t\treturn in.checkEOF()\n\tcase io.EOF:\n\t\treturn io.ErrUnexpectedEOF\n\tdefault:\n\t\treturn err\n\t}\n}\n\n// UnmarshalNext decodes the next JSON value into a Go value according to\n// the provided unmarshal options. The output must be a non-nil pointer.\n//\n// Type-specific unmarshal functions and methods take precedence\n// over the default representation of a value.\n// Functions or methods that operate on *T are only called when decoding\n// a value of type T (by taking its address) or a non-nil value of *T.\n// UnmarshalNext ensures that a value is always addressable\n// (by boxing it on the heap if necessary) so that\n// these functions and methods can be consistently called.\n//\n// The input is decoded into the output according the following rules:\n//\n//   - If any type-specific functions in UnmarshalOptions.Unmarshalers match\n//     the value type, then those functions are called to decode the JSON\n//     value. If all applicable functions return SkipFunc,\n//     then the input is decoded according to subsequent rules.\n//\n//   - If the value type implements UnmarshalerV2,\n//     then the UnmarshalNextJSON method is called to decode the JSON value.\n//\n//   - If the value type implements UnmarshalerV1,\n//     then the UnmarshalJSON method is called to decode the JSON value.\n//\n//   - If the value type implements encoding.TextUnmarshaler,\n//     then the input is decoded as a JSON string and\n//     the UnmarshalText method is called with the decoded string value.\n//     This fails with a SemanticError if the input is not a JSON string.\n//\n//   - Otherwise, the JSON value is decoded according to the value's type\n//     as described in detail below.\n//\n// Most Go types have a default JSON representation.\n// Certain types support specialized formatting according to\n// a format flag optionally specified in the Go struct tag\n// for the struct field that contains the current value\n// (see the “JSON Representation of Go structs” section for more details).\n// A JSON null may be decoded into every supported Go value where\n// it is equivalent to storing the zero value of the Go value.\n// If the input JSON kind is not handled by the current Go value type,\n// then this fails with a SemanticError. Unless otherwise specified,\n// the decoded value replaces any pre-existing value.\n//\n// The representation of each type is as follows:\n//\n//   - A Go boolean is decoded from a JSON boolean (e.g., true or false).\n//     It does not support any custom format flags.\n//\n//   - A Go string is decoded from a JSON string.\n//     It does not support any custom format flags.\n//\n//   - A Go []byte or [N]byte is decoded from a JSON string\n//     containing the binary value encoded using RFC 4648.\n//     If the format is \"base64\" or unspecified, then this uses RFC 4648, section 4.\n//     If the format is \"base64url\", then this uses RFC 4648, section 5.\n//     If the format is \"base32\", then this uses RFC 4648, section 6.\n//     If the format is \"base32hex\", then this uses RFC 4648, section 7.\n//     If the format is \"base16\" or \"hex\", then this uses RFC 4648, section 8.\n//     If the format is \"array\", then the Go slice or array is decoded from a\n//     JSON array where each JSON element is recursively decoded for each byte.\n//     When decoding into a non-nil []byte, the slice length is reset to zero\n//     and the decoded input is appended to it.\n//     When decoding into a [N]byte, the input must decode to exactly N bytes,\n//     otherwise it fails with a SemanticError.\n//\n//   - A Go integer is decoded from a JSON number.\n//     It may also be decoded from a JSON string containing a JSON number\n//     if UnmarshalOptions.StringifyNumbers is specified.\n//     It fails with a SemanticError if the JSON number\n//     has a fractional or exponent component.\n//     It also fails if it overflows the representation of the Go integer type.\n//     It does not support any custom format flags.\n//\n//   - A Go float is decoded from a JSON number.\n//     It may also be decoded from a JSON string containing a JSON number\n//     if UnmarshalOptions.StringifyNumbers is specified.\n//     The JSON number is parsed as the closest representable Go float value.\n//     If the format is \"nonfinite\", then the JSON strings\n//     \"NaN\", \"Infinity\", and \"-Infinity\" are decoded as NaN, +Inf, and -Inf.\n//     Otherwise, the presence of such strings results in a SemanticError.\n//\n//   - A Go map is decoded from a JSON object,\n//     where each JSON object name and value pair is recursively decoded\n//     as the Go map key and value. When decoding keys,\n//     UnmarshalOptions.StringifyNumbers is automatically applied so that\n//     numeric keys can decode from JSON strings. Maps are not cleared.\n//     If the Go map is nil, then a new map is allocated to decode into.\n//     If the decoded key matches an existing Go map entry, the entry value\n//     is reused by decoding the JSON object value into it.\n//     The only supported format is \"emitnull\" and has no effect when decoding.\n//\n//   - A Go struct is decoded from a JSON object.\n//     See the “JSON Representation of Go structs” section\n//     in the package-level documentation for more details.\n//\n//   - A Go slice is decoded from a JSON array, where each JSON element\n//     is recursively decoded and appended to the Go slice.\n//     Before appending into a Go slice, a new slice is allocated if it is nil,\n//     otherwise the slice length is reset to zero.\n//     The only supported format is \"emitnull\" and has no effect when decoding.\n//\n//   - A Go array is decoded from a JSON array, where each JSON array element\n//     is recursively decoded as each corresponding Go array element.\n//     Each Go array element is zeroed before decoding into it.\n//     It fails with a SemanticError if the JSON array does not contain\n//     the exact same number of elements as the Go array.\n//     It does not support any custom format flags.\n//\n//   - A Go pointer is decoded based on the JSON kind and underlying Go type.\n//     If the input is a JSON null, then this stores a nil pointer.\n//     Otherwise, it allocates a new underlying value if the pointer is nil,\n//     and recursively JSON decodes into the underlying value.\n//     Format flags are forwarded to the decoding of the underlying type.\n//\n//   - A Go interface is decoded based on the JSON kind and underlying Go type.\n//     If the input is a JSON null, then this stores a nil interface value.\n//     Otherwise, a nil interface value of an empty interface type is initialized\n//     with a zero Go bool, string, float64, map[string]any, or []any if the\n//     input is a JSON boolean, string, number, object, or array, respectively.\n//     If the interface value is still nil, then this fails with a SemanticError\n//     since decoding could not determine an appropriate Go type to decode into.\n//     For example, unmarshaling into a nil io.Reader fails since\n//     there is no concrete type to populate the interface value with.\n//     Otherwise an underlying value exists and it recursively decodes\n//     the JSON input into it. It does not support any custom format flags.\n//\n//   - A Go time.Time is decoded from a JSON string containing the time\n//     formatted in RFC 3339 with nanosecond resolution.\n//     If the format matches one of the format constants declared in\n//     the time package (e.g., RFC1123), then that format is used for parsing.\n//     Otherwise, the format is used as-is with time.Time.Parse if non-empty.\n//\n//   - A Go time.Duration is decoded from a JSON string by\n//     passing the decoded string to time.ParseDuration.\n//     If the format is \"nanos\", it is instead decoded from a JSON number\n//     containing the number of nanoseconds in the duration.\n//\n//   - All other Go types (e.g., complex numbers, channels, and functions)\n//     have no default representation and result in a SemanticError.\n//\n// In general, unmarshaling follows merge semantics (similar to RFC 7396)\n// where the decoded Go value replaces the destination value\n// for any JSON kind other than an object.\n// For JSON objects, the input object is merged into the destination value\n// where matching object members recursively apply merge semantics.\nfunc (uo UnmarshalOptions) UnmarshalNext(in *Decoder, out any) error {\n\tv := reflect.ValueOf(out)\n\tif !v.IsValid() || v.Kind() != reflect.Pointer || v.IsNil() {\n\t\tvar t reflect.Type\n\t\tif v.IsValid() {\n\t\t\tt = v.Type()\n\t\t\tif t.Kind() == reflect.Pointer {\n\t\t\t\tt = t.Elem()\n\t\t\t}\n\t\t}\n\t\terr := errors.New(\"value must be passed as a non-nil pointer reference\")\n\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t}\n\tva := addressableValue{v.Elem()} // dereferenced pointer is always addressable\n\tt := va.Type()\n\n\t// Lookup and call the unmarshal function for this type.\n\tunmarshal := lookupArshaler(t).unmarshal\n\tif uo.Unmarshalers != nil {\n\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, t)\n\t}\n\tif err := unmarshal(uo, in, va); err != nil {\n\t\tif !in.options.AllowDuplicateNames {\n\t\t\tin.tokens.invalidateDisabledNamespaces()\n\t\t}\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// addressableValue is a reflect.Value that is guaranteed to be addressable\n// such that calling the Addr and Set methods do not panic.\n//\n// There is no compile magic that enforces this property,\n// but rather the need to construct this type makes it easier to examine each\n// construction site to ensure that this property is upheld.\ntype addressableValue struct{ reflect.Value }\n\n// newAddressableValue constructs a new addressable value of type t.\nfunc newAddressableValue(t reflect.Type) addressableValue {\n\treturn addressableValue{reflect.New(t).Elem()}\n}\n\n// All marshal and unmarshal behavior is implemented using these signatures.\ntype (\n\tmarshaler   = func(MarshalOptions, *Encoder, addressableValue) error\n\tunmarshaler = func(UnmarshalOptions, *Decoder, addressableValue) error\n)\n\ntype arshaler struct {\n\tmarshal    marshaler\n\tunmarshal  unmarshaler\n\tnonDefault bool\n}\n\nvar lookupArshalerCache sync.Map // map[reflect.Type]*arshaler\n\nfunc lookupArshaler(t reflect.Type) *arshaler {\n\tif v, ok := lookupArshalerCache.Load(t); ok {\n\t\treturn v.(*arshaler)\n\t}\n\n\tfncs := makeDefaultArshaler(t)\n\tfncs = makeMethodArshaler(fncs, t)\n\tfncs = makeTimeArshaler(fncs, t)\n\n\t// Use the last stored so that duplicate arshalers can be garbage collected.\n\tv, _ := lookupArshalerCache.LoadOrStore(t, fncs)\n\treturn v.(*arshaler)\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/arshal_any.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport \"reflect\"\n\n// This files contains an optimized marshal and unmarshal implementation\n// for the any type. This type is often used when the Go program has\n// no knowledge of the JSON schema. This is a common enough occurrence\n// to justify the complexity of adding logic for this.\n\nfunc marshalValueAny(mo MarshalOptions, enc *Encoder, val any) error {\n\tswitch val := val.(type) {\n\tcase nil:\n\t\treturn enc.WriteToken(Null)\n\tcase bool:\n\t\treturn enc.WriteToken(Bool(val))\n\tcase string:\n\t\treturn enc.WriteToken(String(val))\n\tcase float64:\n\t\treturn enc.WriteToken(Float(val))\n\tcase map[string]any:\n\t\treturn marshalObjectAny(mo, enc, val)\n\tcase []any:\n\t\treturn marshalArrayAny(mo, enc, val)\n\tdefault:\n\t\tv := newAddressableValue(reflect.TypeOf(val))\n\t\tv.Set(reflect.ValueOf(val))\n\t\tmarshal := lookupArshaler(v.Type()).marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, v.Type())\n\t\t}\n\t\treturn marshal(mo, enc, v)\n\t}\n}\n\nfunc unmarshalValueAny(uo UnmarshalOptions, dec *Decoder) (any, error) {\n\tswitch k := dec.PeekKind(); k {\n\tcase '{':\n\t\treturn unmarshalObjectAny(uo, dec)\n\tcase '[':\n\t\treturn unmarshalArrayAny(uo, dec)\n\tdefault:\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch val.Kind() {\n\t\tcase 'n':\n\t\t\treturn nil, nil\n\t\tcase 'f':\n\t\t\treturn false, nil\n\t\tcase 't':\n\t\t\treturn true, nil\n\t\tcase '\"':\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tif dec.stringCache == nil {\n\t\t\t\tdec.stringCache = new(stringCache)\n\t\t\t}\n\t\t\treturn dec.stringCache.make(val), nil\n\t\tcase '0':\n\t\t\tfv, _ := parseFloat(val, 64) // ignore error since readValue guarantees val is valid\n\t\t\treturn fv, nil\n\t\tdefault:\n\t\t\tpanic(\"BUG: invalid kind: \" + k.String())\n\t\t}\n\t}\n}\n\nfunc marshalObjectAny(mo MarshalOptions, enc *Encoder, obj map[string]any) error {\n\t// Check for cycles.\n\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\tv := reflect.ValueOf(obj)\n\t\tif err := enc.seenPointers.visit(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefer enc.seenPointers.leave(v)\n\t}\n\n\t// Optimize for marshaling an empty map without any preceding whitespace.\n\tif len(obj) == 0 && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '{')\n\t\tenc.buf = append(enc.buf, \"{}\"...)\n\t\tenc.tokens.last.increment()\n\t\tif enc.needFlush() {\n\t\t\treturn enc.flush()\n\t\t}\n\t\treturn nil\n\t}\n\n\tif err := enc.WriteToken(ObjectStart); err != nil {\n\t\treturn err\n\t}\n\t// A Go map guarantees that each entry has a unique key\n\t// The only possibility of duplicates is due to invalid UTF-8.\n\tif !enc.options.AllowInvalidUTF8 {\n\t\tenc.tokens.last.disableNamespace()\n\t}\n\tif !mo.Deterministic || len(obj) <= 1 {\n\t\tfor name, val := range obj {\n\t\t\tif err := enc.WriteToken(String(name)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := marshalValueAny(mo, enc, val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnames := getStrings(len(obj))\n\t\tvar i int\n\t\tfor name := range obj {\n\t\t\t(*names)[i] = name\n\t\t\ti++\n\t\t}\n\t\tnames.Sort()\n\t\tfor _, name := range *names {\n\t\t\tif err := enc.WriteToken(String(name)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := marshalValueAny(mo, enc, obj[name]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tputStrings(names)\n\t}\n\tif err := enc.WriteToken(ObjectEnd); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc unmarshalObjectAny(uo UnmarshalOptions, dec *Decoder) (map[string]any, error) {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tk := tok.Kind()\n\tswitch k {\n\tcase 'n':\n\t\treturn nil, nil\n\tcase '{':\n\t\tobj := make(map[string]any)\n\t\t// A Go map guarantees that each entry has a unique key\n\t\t// The only possibility of duplicates is due to invalid UTF-8.\n\t\tif !dec.options.AllowInvalidUTF8 {\n\t\t\tdec.tokens.last.disableNamespace()\n\t\t}\n\t\tfor dec.PeekKind() != '}' {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn obj, err\n\t\t\t}\n\t\t\tname := tok.String()\n\n\t\t\t// Manually check for duplicate names.\n\t\t\tif _, ok := obj[name]; ok {\n\t\t\t\tname := dec.previousBuffer()\n\t\t\t\terr := &SyntacticError{str: \"duplicate name \" + string(name) + \" in object\"}\n\t\t\t\treturn obj, err.withOffset(dec.InputOffset() - int64(len(name)))\n\t\t\t}\n\n\t\t\tval, err := unmarshalValueAny(uo, dec)\n\t\t\tobj[name] = val\n\t\t\tif err != nil {\n\t\t\t\treturn obj, err\n\t\t\t}\n\t\t}\n\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\treturn obj, err\n\t\t}\n\t\treturn obj, nil\n\t}\n\treturn nil, &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: mapStringAnyType}\n}\n\nfunc marshalArrayAny(mo MarshalOptions, enc *Encoder, arr []any) error {\n\t// Check for cycles.\n\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\tv := reflect.ValueOf(arr)\n\t\tif err := enc.seenPointers.visit(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefer enc.seenPointers.leave(v)\n\t}\n\n\t// Optimize for marshaling an empty slice without any preceding whitespace.\n\tif len(arr) == 0 && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '[')\n\t\tenc.buf = append(enc.buf, \"[]\"...)\n\t\tenc.tokens.last.increment()\n\t\tif enc.needFlush() {\n\t\t\treturn enc.flush()\n\t\t}\n\t\treturn nil\n\t}\n\n\tif err := enc.WriteToken(ArrayStart); err != nil {\n\t\treturn err\n\t}\n\tfor _, val := range arr {\n\t\tif err := marshalValueAny(mo, enc, val); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := enc.WriteToken(ArrayEnd); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc unmarshalArrayAny(uo UnmarshalOptions, dec *Decoder) ([]any, error) {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tk := tok.Kind()\n\tswitch k {\n\tcase 'n':\n\t\treturn nil, nil\n\tcase '[':\n\t\tarr := []any{}\n\t\tfor dec.PeekKind() != ']' {\n\t\t\tval, err := unmarshalValueAny(uo, dec)\n\t\t\tarr = append(arr, val)\n\t\t\tif err != nil {\n\t\t\t\treturn arr, err\n\t\t\t}\n\t\t}\n\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\treturn arr, err\n\t\t}\n\t\treturn arr, nil\n\t}\n\treturn nil, &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: sliceAnyType}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/arshal_default.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"encoding/base32\"\n\t\"encoding/base64\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"sync\"\n)\n\n// optimizeCommon specifies whether to use optimizations targeted for certain\n// common patterns, rather than using the slower, but more general logic.\n// All tests should pass regardless of whether this is true or not.\nconst optimizeCommon = true\n\nvar (\n\t// Most natural Go type that correspond with each JSON type.\n\tanyType          = reflect.TypeOf((*any)(nil)).Elem()            // JSON value\n\tboolType         = reflect.TypeOf((*bool)(nil)).Elem()           // JSON bool\n\tstringType       = reflect.TypeOf((*string)(nil)).Elem()         // JSON string\n\tfloat64Type      = reflect.TypeOf((*float64)(nil)).Elem()        // JSON number\n\tmapStringAnyType = reflect.TypeOf((*map[string]any)(nil)).Elem() // JSON object\n\tsliceAnyType     = reflect.TypeOf((*[]any)(nil)).Elem()          // JSON array\n\n\tbytesType       = reflect.TypeOf((*[]byte)(nil)).Elem()\n\temptyStructType = reflect.TypeOf((*struct{})(nil)).Elem()\n)\n\nconst startDetectingCyclesAfter = 1000\n\ntype seenPointers map[typedPointer]struct{}\n\ntype typedPointer struct {\n\ttyp reflect.Type\n\tptr any // always stores unsafe.Pointer, but avoids depending on unsafe\n}\n\n// visit visits pointer p of type t, reporting an error if seen before.\n// If successfully visited, then the caller must eventually call leave.\nfunc (m *seenPointers) visit(v reflect.Value) error {\n\tp := typedPointer{v.Type(), v.UnsafePointer()}\n\tif _, ok := (*m)[p]; ok {\n\t\treturn &SemanticError{action: \"marshal\", GoType: p.typ, Err: errors.New(\"encountered a cycle\")}\n\t}\n\tif *m == nil {\n\t\t*m = make(map[typedPointer]struct{})\n\t}\n\t(*m)[p] = struct{}{}\n\treturn nil\n}\nfunc (m *seenPointers) leave(v reflect.Value) {\n\tp := typedPointer{v.Type(), v.UnsafePointer()}\n\tdelete(*m, p)\n}\n\nfunc makeDefaultArshaler(t reflect.Type) *arshaler {\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\treturn makeBoolArshaler(t)\n\tcase reflect.String:\n\t\treturn makeStringArshaler(t)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn makeIntArshaler(t)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn makeUintArshaler(t)\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn makeFloatArshaler(t)\n\tcase reflect.Map:\n\t\treturn makeMapArshaler(t)\n\tcase reflect.Struct:\n\t\treturn makeStructArshaler(t)\n\tcase reflect.Slice:\n\t\tfncs := makeSliceArshaler(t)\n\t\tif t.AssignableTo(bytesType) {\n\t\t\treturn makeBytesArshaler(t, fncs)\n\t\t}\n\t\treturn fncs\n\tcase reflect.Array:\n\t\tfncs := makeArrayArshaler(t)\n\t\tif reflect.SliceOf(t.Elem()).AssignableTo(bytesType) {\n\t\t\treturn makeBytesArshaler(t, fncs)\n\t\t}\n\t\treturn fncs\n\tcase reflect.Pointer:\n\t\treturn makePointerArshaler(t)\n\tcase reflect.Interface:\n\t\treturn makeInterfaceArshaler(t)\n\tdefault:\n\t\treturn makeInvalidArshaler(t)\n\t}\n}\n\nfunc makeBoolArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\n\t\t// Optimize for marshaling without preceding whitespace.\n\t\tif optimizeCommon && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, 't')\n\t\t\tif va.Bool() {\n\t\t\t\tenc.buf = append(enc.buf, \"true\"...)\n\t\t\t} else {\n\t\t\t\tenc.buf = append(enc.buf, \"false\"...)\n\t\t\t}\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\treturn enc.WriteToken(Bool(va.Bool()))\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetBool(false)\n\t\t\treturn nil\n\t\tcase 't', 'f':\n\t\t\tva.SetBool(tok.Bool())\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeStringArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\t\treturn enc.WriteToken(String(va.String()))\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetString(\"\")\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tif dec.stringCache == nil {\n\t\t\t\tdec.stringCache = new(stringCache)\n\t\t\t}\n\t\t\tstr := dec.stringCache.make(val)\n\t\t\tva.SetString(str)\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nvar (\n\tencodeBase16        = func(dst, src []byte) { hex.Encode(dst, src) }\n\tencodeBase32        = base32.StdEncoding.Encode\n\tencodeBase32Hex     = base32.HexEncoding.Encode\n\tencodeBase64        = base64.StdEncoding.Encode\n\tencodeBase64URL     = base64.URLEncoding.Encode\n\tencodedLenBase16    = hex.EncodedLen\n\tencodedLenBase32    = base32.StdEncoding.EncodedLen\n\tencodedLenBase32Hex = base32.HexEncoding.EncodedLen\n\tencodedLenBase64    = base64.StdEncoding.EncodedLen\n\tencodedLenBase64URL = base64.URLEncoding.EncodedLen\n\tdecodeBase16        = hex.Decode\n\tdecodeBase32        = base32.StdEncoding.Decode\n\tdecodeBase32Hex     = base32.HexEncoding.Decode\n\tdecodeBase64        = base64.StdEncoding.Decode\n\tdecodeBase64URL     = base64.URLEncoding.Decode\n\tdecodedLenBase16    = hex.DecodedLen\n\tdecodedLenBase32    = base32.StdEncoding.WithPadding(base32.NoPadding).DecodedLen\n\tdecodedLenBase32Hex = base32.HexEncoding.WithPadding(base32.NoPadding).DecodedLen\n\tdecodedLenBase64    = base64.StdEncoding.WithPadding(base64.NoPadding).DecodedLen\n\tdecodedLenBase64URL = base64.URLEncoding.WithPadding(base64.NoPadding).DecodedLen\n)\n\nfunc makeBytesArshaler(t reflect.Type, fncs *arshaler) *arshaler {\n\t// NOTE: This handles both []byte and [N]byte.\n\tmarshalDefault := fncs.marshal\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tencode, encodedLen := encodeBase64, encodedLenBase64\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\tswitch mo.format {\n\t\t\tcase \"base64\":\n\t\t\t\tencode, encodedLen = encodeBase64, encodedLenBase64\n\t\t\tcase \"base64url\":\n\t\t\t\tencode, encodedLen = encodeBase64URL, encodedLenBase64URL\n\t\t\tcase \"base32\":\n\t\t\t\tencode, encodedLen = encodeBase32, encodedLenBase32\n\t\t\tcase \"base32hex\":\n\t\t\t\tencode, encodedLen = encodeBase32Hex, encodedLenBase32Hex\n\t\t\tcase \"base16\", \"hex\":\n\t\t\t\tencode, encodedLen = encodeBase16, encodedLenBase16\n\t\t\tcase \"array\":\n\t\t\t\tmo.format = \"\"\n\t\t\t\treturn marshalDefault(mo, enc, va)\n\t\t\tdefault:\n\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t}\n\t\t}\n\t\tval := enc.UnusedBuffer()\n\t\tb := va.Bytes()\n\t\tn := len(`\"`) + encodedLen(len(b)) + len(`\"`)\n\t\tif cap(val) < n {\n\t\t\tval = make([]byte, n)\n\t\t} else {\n\t\t\tval = val[:n]\n\t\t}\n\t\tval[0] = '\"'\n\t\tencode(val[len(`\"`):len(val)-len(`\"`)], b)\n\t\tval[len(val)-1] = '\"'\n\t\treturn enc.WriteValue(val)\n\t}\n\tunmarshalDefault := fncs.unmarshal\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tdecode, decodedLen, encodedLen := decodeBase64, decodedLenBase64, encodedLenBase64\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\tswitch uo.format {\n\t\t\tcase \"base64\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase64, decodedLenBase64, encodedLenBase64\n\t\t\tcase \"base64url\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase64URL, decodedLenBase64URL, encodedLenBase64URL\n\t\t\tcase \"base32\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase32, decodedLenBase32, encodedLenBase32\n\t\t\tcase \"base32hex\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase32Hex, decodedLenBase32Hex, encodedLenBase32Hex\n\t\t\tcase \"base16\", \"hex\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase16, decodedLenBase16, encodedLenBase16\n\t\t\tcase \"array\":\n\t\t\t\tuo.format = \"\"\n\t\t\t\treturn unmarshalDefault(uo, dec, va)\n\t\t\tdefault:\n\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t}\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\n\t\t\t// For base64 and base32, decodedLen computes the maximum output size\n\t\t\t// when given the original input size. To compute the exact size,\n\t\t\t// adjust the input size by excluding trailing padding characters.\n\t\t\t// This is unnecessary for base16, but also harmless.\n\t\t\tn := len(val)\n\t\t\tfor n > 0 && val[n-1] == '=' {\n\t\t\t\tn--\n\t\t\t}\n\t\t\tn = decodedLen(n)\n\t\t\tb := va.Bytes()\n\t\t\tif va.Kind() == reflect.Array {\n\t\t\t\tif n != len(b) {\n\t\t\t\t\terr := fmt.Errorf(\"decoded base64 length of %d mismatches array length of %d\", n, len(b))\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif b == nil || cap(b) < n {\n\t\t\t\t\tb = make([]byte, n)\n\t\t\t\t} else {\n\t\t\t\t\tb = b[:n]\n\t\t\t\t}\n\t\t\t}\n\t\t\tn2, err := decode(b, val)\n\t\t\tif err == nil && len(val) != encodedLen(n2) {\n\t\t\t\t// TODO(https://go.dev/issue/53845): RFC 4648, section 3.3,\n\t\t\t\t// specifies that non-alphabet characters must be rejected.\n\t\t\t\t// Unfortunately, the \"base32\" and \"base64\" packages allow\n\t\t\t\t// '\\r' and '\\n' characters by default.\n\t\t\t\terr = errors.New(\"illegal data at input byte \" + strconv.Itoa(bytes.IndexAny(val, \"\\r\\n\")))\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tif va.Kind() == reflect.Slice {\n\t\t\t\tva.SetBytes(b)\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn fncs\n}\n\nfunc makeIntArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tbits := t.Bits()\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\n\t\t// Optimize for marshaling without preceding whitespace or string escaping.\n\t\tif optimizeCommon && !enc.options.multiline && !mo.StringifyNumbers && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '0')\n\t\t\tenc.buf = strconv.AppendInt(enc.buf, va.Int(), 10)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tx := math.Float64frombits(uint64(va.Int()))\n\t\treturn enc.writeNumber(x, rawIntNumber, mo.StringifyNumbers)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetInt(0)\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tif !uo.StringifyNumbers {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tfallthrough\n\t\tcase '0':\n\t\t\tvar negOffset int\n\t\t\tneg := val[0] == '-'\n\t\t\tif neg {\n\t\t\t\tnegOffset = 1\n\t\t\t}\n\t\t\tn, ok := parseDecUint(val[negOffset:])\n\t\t\tmaxInt := uint64(1) << (bits - 1)\n\t\t\toverflow := (neg && n > maxInt) || (!neg && n > maxInt-1)\n\t\t\tif !ok {\n\t\t\t\tif n != math.MaxUint64 {\n\t\t\t\t\terr := fmt.Errorf(\"cannot parse %q as signed integer: %w\", val, strconv.ErrSyntax)\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\toverflow = true\n\t\t\t}\n\t\t\tif overflow {\n\t\t\t\terr := fmt.Errorf(\"cannot parse %q as signed integer: %w\", val, strconv.ErrRange)\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tif neg {\n\t\t\t\tva.SetInt(int64(-n))\n\t\t\t} else {\n\t\t\t\tva.SetInt(int64(+n))\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeUintArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tbits := t.Bits()\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\n\t\t// Optimize for marshaling without preceding whitespace or string escaping.\n\t\tif optimizeCommon && !enc.options.multiline && !mo.StringifyNumbers && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '0')\n\t\t\tenc.buf = strconv.AppendUint(enc.buf, va.Uint(), 10)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tx := math.Float64frombits(va.Uint())\n\t\treturn enc.writeNumber(x, rawUintNumber, mo.StringifyNumbers)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetUint(0)\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tif !uo.StringifyNumbers {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tfallthrough\n\t\tcase '0':\n\t\t\tn, ok := parseDecUint(val)\n\t\t\tmaxUint := uint64(1) << bits\n\t\t\toverflow := n > maxUint-1\n\t\t\tif !ok {\n\t\t\t\tif n != math.MaxUint64 {\n\t\t\t\t\terr := fmt.Errorf(\"cannot parse %q as unsigned integer: %w\", val, strconv.ErrSyntax)\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\toverflow = true\n\t\t\t}\n\t\t\tif overflow {\n\t\t\t\terr := fmt.Errorf(\"cannot parse %q as unsigned integer: %w\", val, strconv.ErrRange)\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tva.SetUint(n)\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeFloatArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tbits := t.Bits()\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tvar allowNonFinite bool\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\tif mo.format == \"nonfinite\" {\n\t\t\t\tallowNonFinite = true\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t}\n\t\t}\n\n\t\tfv := va.Float()\n\t\tif math.IsNaN(fv) || math.IsInf(fv, 0) {\n\t\t\tif !allowNonFinite {\n\t\t\t\terr := fmt.Errorf(\"invalid value: %v\", fv)\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn enc.WriteToken(Float(fv))\n\t\t}\n\n\t\t// Optimize for marshaling without preceding whitespace or string escaping.\n\t\tif optimizeCommon && !enc.options.multiline && !mo.StringifyNumbers && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '0')\n\t\t\tenc.buf = appendNumber(enc.buf, fv, bits)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\treturn enc.writeNumber(fv, bits, mo.StringifyNumbers)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tvar allowNonFinite bool\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\tif uo.format == \"nonfinite\" {\n\t\t\t\tallowNonFinite = true\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t}\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetFloat(0)\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tif allowNonFinite {\n\t\t\t\tswitch string(val) {\n\t\t\t\tcase \"NaN\":\n\t\t\t\t\tva.SetFloat(math.NaN())\n\t\t\t\t\treturn nil\n\t\t\t\tcase \"Infinity\":\n\t\t\t\t\tva.SetFloat(math.Inf(+1))\n\t\t\t\t\treturn nil\n\t\t\t\tcase \"-Infinity\":\n\t\t\t\t\tva.SetFloat(math.Inf(-1))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !uo.StringifyNumbers {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif n, err := consumeNumber(val); n != len(val) || err != nil {\n\t\t\t\terr := fmt.Errorf(\"cannot parse %q as JSON number: %w\", val, strconv.ErrSyntax)\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tfallthrough\n\t\tcase '0':\n\t\t\t// NOTE: Floating-point parsing is by nature a lossy operation.\n\t\t\t// We never report an overflow condition since we can always\n\t\t\t// round the input to the closest representable finite value.\n\t\t\t// For extremely large numbers, the closest value is ±MaxFloat.\n\t\t\tfv, _ := parseFloat(val, bits)\n\t\t\tva.SetFloat(fv)\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeMapArshaler(t reflect.Type) *arshaler {\n\t// NOTE: The logic below disables namespaces for tracking duplicate names\n\t// when handling map keys with a unique representation.\n\n\t// NOTE: Values retrieved from a map are not addressable,\n\t// so we shallow copy the values to make them addressable and\n\t// store them back into the map afterwards.\n\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tkeyFncs *arshaler\n\t\tvalFncs *arshaler\n\t)\n\tinit := func() {\n\t\tkeyFncs = lookupArshaler(t.Key())\n\t\tvalFncs = lookupArshaler(t.Elem())\n\t}\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t// Check for cycles.\n\t\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\t\tif err := enc.seenPointers.visit(va.Value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefer enc.seenPointers.leave(va.Value)\n\t\t}\n\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\tif mo.format == \"emitnull\" {\n\t\t\t\tif va.IsNil() {\n\t\t\t\t\treturn enc.WriteToken(Null)\n\t\t\t\t}\n\t\t\t\tmo.format = \"\"\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t}\n\t\t}\n\n\t\t// Optimize for marshaling an empty map without any preceding whitespace.\n\t\tn := va.Len()\n\t\tif optimizeCommon && n == 0 && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '{')\n\t\t\tenc.buf = append(enc.buf, \"{}\"...)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tonce.Do(init)\n\t\tif err := enc.WriteToken(ObjectStart); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif n > 0 {\n\t\t\t// Handle maps with numeric key types by stringifying them.\n\t\t\tmko := mo\n\t\t\tmko.StringifyNumbers = true\n\n\t\t\tnonDefaultKey := keyFncs.nonDefault\n\t\t\tmarshalKey := keyFncs.marshal\n\t\t\tmarshalVal := valFncs.marshal\n\t\t\tif mo.Marshalers != nil {\n\t\t\t\tvar ok bool\n\t\t\t\tmarshalKey, ok = mo.Marshalers.lookup(marshalKey, t.Key())\n\t\t\t\tmarshalVal, _ = mo.Marshalers.lookup(marshalVal, t.Elem())\n\t\t\t\tnonDefaultKey = nonDefaultKey || ok\n\t\t\t}\n\t\t\tk := newAddressableValue(t.Key())\n\t\t\tv := newAddressableValue(t.Elem())\n\n\t\t\t// A Go map guarantees that each entry has a unique key.\n\t\t\t// As such, disable the expensive duplicate name check if we know\n\t\t\t// that every Go key will serialize as a unique JSON string.\n\t\t\tif !nonDefaultKey && mapKeyWithUniqueRepresentation(k.Kind(), enc.options.AllowInvalidUTF8) {\n\t\t\t\tenc.tokens.last.disableNamespace()\n\t\t\t}\n\n\t\t\tswitch {\n\t\t\tcase !mo.Deterministic || n <= 1:\n\t\t\t\tfor iter := va.Value.MapRange(); iter.Next(); {\n\t\t\t\t\tk.SetIterKey(iter)\n\t\t\t\t\tif err := marshalKey(mko, enc, k); err != nil {\n\t\t\t\t\t\t// TODO: If err is errMissingName, then wrap it as a\n\t\t\t\t\t\t// SemanticError since this key type cannot be serialized\n\t\t\t\t\t\t// as a JSON string.\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tv.SetIterValue(iter)\n\t\t\t\t\tif err := marshalVal(mo, enc, v); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase !nonDefaultKey && t.Key().Kind() == reflect.String:\n\t\t\t\tnames := getStrings(n)\n\t\t\t\tfor i, iter := 0, va.Value.MapRange(); i < n && iter.Next(); i++ {\n\t\t\t\t\tk.SetIterKey(iter)\n\t\t\t\t\t(*names)[i] = k.String()\n\t\t\t\t}\n\t\t\t\tnames.Sort()\n\t\t\t\tfor _, name := range *names {\n\t\t\t\t\tif err := enc.WriteToken(String(name)); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\t// TODO(https://go.dev/issue/57061): Use v.SetMapIndexOf.\n\t\t\t\t\tk.SetString(name)\n\t\t\t\t\tv.Set(va.MapIndex(k.Value))\n\t\t\t\t\tif err := marshalVal(mo, enc, v); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tputStrings(names)\n\t\t\tdefault:\n\t\t\t\ttype member struct {\n\t\t\t\t\tname string // unquoted name\n\t\t\t\t\tkey  addressableValue\n\t\t\t\t}\n\t\t\t\tmembers := make([]member, n)\n\t\t\t\tkeys := reflect.MakeSlice(reflect.SliceOf(t.Key()), n, n)\n\t\t\t\tfor i, iter := 0, va.Value.MapRange(); i < n && iter.Next(); i++ {\n\t\t\t\t\t// Marshal the member name.\n\t\t\t\t\tk := addressableValue{keys.Index(i)} // indexed slice element is always addressable\n\t\t\t\t\tk.SetIterKey(iter)\n\t\t\t\t\tif err := marshalKey(mko, enc, k); err != nil {\n\t\t\t\t\t\t// TODO: If err is errMissingName, then wrap it as a\n\t\t\t\t\t\t// SemanticError since this key type cannot be serialized\n\t\t\t\t\t\t// as a JSON string.\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tname := enc.unwriteOnlyObjectMemberName()\n\t\t\t\t\tmembers[i] = member{name, k}\n\t\t\t\t}\n\t\t\t\t// TODO: If AllowDuplicateNames is enabled, then sort according\n\t\t\t\t// to reflect.Value as well if the names are equal.\n\t\t\t\t// See internal/fmtsort.\n\t\t\t\t// TODO(https://go.dev/issue/47619): Use slices.SortFunc instead.\n\t\t\t\tsort.Slice(members, func(i, j int) bool {\n\t\t\t\t\treturn lessUTF16(members[i].name, members[j].name)\n\t\t\t\t})\n\t\t\t\tfor _, member := range members {\n\t\t\t\t\tif err := enc.WriteToken(String(member.name)); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\t// TODO(https://go.dev/issue/57061): Use v.SetMapIndexOf.\n\t\t\t\t\tv.Set(va.MapIndex(member.key.Value))\n\t\t\t\t\tif err := marshalVal(mo, enc, v); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif err := enc.WriteToken(ObjectEnd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\tif uo.format == \"emitnull\" {\n\t\t\t\tuo.format = \"\" // only relevant for marshaling\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t}\n\t\t}\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '{':\n\t\t\tonce.Do(init)\n\t\t\tif va.IsNil() {\n\t\t\t\tva.Set(reflect.MakeMap(t))\n\t\t\t}\n\n\t\t\t// Handle maps with numeric key types by stringifying them.\n\t\t\tuko := uo\n\t\t\tuko.StringifyNumbers = true\n\n\t\t\tnonDefaultKey := keyFncs.nonDefault\n\t\t\tunmarshalKey := keyFncs.unmarshal\n\t\t\tunmarshalVal := valFncs.unmarshal\n\t\t\tif uo.Unmarshalers != nil {\n\t\t\t\tvar ok bool\n\t\t\t\tunmarshalKey, ok = uo.Unmarshalers.lookup(unmarshalKey, t.Key())\n\t\t\t\tunmarshalVal, _ = uo.Unmarshalers.lookup(unmarshalVal, t.Elem())\n\t\t\t\tnonDefaultKey = nonDefaultKey || ok\n\t\t\t}\n\t\t\tk := newAddressableValue(t.Key())\n\t\t\tv := newAddressableValue(t.Elem())\n\n\t\t\t// Manually check for duplicate entries by virtue of whether the\n\t\t\t// unmarshaled key already exists in the destination Go map.\n\t\t\t// Consequently, syntactically different names (e.g., \"0\" and \"-0\")\n\t\t\t// will be rejected as duplicates since they semantically refer\n\t\t\t// to the same Go value. This is an unusual interaction\n\t\t\t// between syntax and semantics, but is more correct.\n\t\t\tif !nonDefaultKey && mapKeyWithUniqueRepresentation(k.Kind(), dec.options.AllowInvalidUTF8) {\n\t\t\t\tdec.tokens.last.disableNamespace()\n\t\t\t}\n\n\t\t\t// In the rare case where the map is not already empty,\n\t\t\t// then we need to manually track which keys we already saw\n\t\t\t// since existing presence alone is insufficient to indicate\n\t\t\t// whether the input had a duplicate name.\n\t\t\tvar seen reflect.Value\n\t\t\tif !dec.options.AllowDuplicateNames && va.Len() > 0 {\n\t\t\t\tseen = reflect.MakeMap(reflect.MapOf(k.Type(), emptyStructType))\n\t\t\t}\n\n\t\t\tfor dec.PeekKind() != '}' {\n\t\t\t\tk.Set(reflect.Zero(t.Key()))\n\t\t\t\tif err := unmarshalKey(uko, dec, k); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif k.Kind() == reflect.Interface && !k.IsNil() && !k.Elem().Type().Comparable() {\n\t\t\t\t\terr := fmt.Errorf(\"invalid incomparable key type %v\", k.Elem().Type())\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t\t}\n\n\t\t\t\tif v2 := va.MapIndex(k.Value); v2.IsValid() {\n\t\t\t\t\tif !dec.options.AllowDuplicateNames && (!seen.IsValid() || seen.MapIndex(k.Value).IsValid()) {\n\t\t\t\t\t\t// TODO: Unread the object name.\n\t\t\t\t\t\tname := dec.previousBuffer()\n\t\t\t\t\t\terr := &SyntacticError{str: \"duplicate name \" + string(name) + \" in object\"}\n\t\t\t\t\t\treturn err.withOffset(dec.InputOffset() - int64(len(name)))\n\t\t\t\t\t}\n\t\t\t\t\tv.Set(v2)\n\t\t\t\t} else {\n\t\t\t\t\tv.Set(reflect.Zero(v.Type()))\n\t\t\t\t}\n\t\t\t\terr := unmarshalVal(uo, dec, v)\n\t\t\t\tva.SetMapIndex(k.Value, v.Value)\n\t\t\t\tif seen.IsValid() {\n\t\t\t\t\tseen.SetMapIndex(k.Value, reflect.Zero(emptyStructType))\n\t\t\t\t}\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\n// mapKeyWithUniqueRepresentation reports whether all possible values of k\n// marshal to a different JSON value, and whether all possible JSON values\n// that can unmarshal into k unmarshal to different Go values.\n// In other words, the representation must be a bijective.\nfunc mapKeyWithUniqueRepresentation(k reflect.Kind, allowInvalidUTF8 bool) bool {\n\tswitch k {\n\tcase reflect.Bool,\n\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn true\n\tcase reflect.String:\n\t\t// For strings, we have to be careful since names with invalid UTF-8\n\t\t// maybe unescape to the same Go string value.\n\t\treturn !allowInvalidUTF8\n\tdefault:\n\t\t// Floating-point kinds are not listed above since NaNs\n\t\t// can appear multiple times and all serialize as \"NaN\".\n\t\treturn false\n\t}\n}\n\nfunc makeStructArshaler(t reflect.Type) *arshaler {\n\t// NOTE: The logic below disables namespaces for tracking duplicate names\n\t// and does the tracking locally with an efficient bit-set based on which\n\t// Go struct fields were seen.\n\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tfields  structFields\n\t\terrInit *SemanticError\n\t)\n\tinit := func() {\n\t\tfields, errInit = makeStructFields(t)\n\t}\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\t\tonce.Do(init)\n\t\tif errInit != nil {\n\t\t\terr := *errInit // shallow copy SemanticError\n\t\t\terr.action = \"marshal\"\n\t\t\treturn &err\n\t\t}\n\t\tif err := enc.WriteToken(ObjectStart); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar seenIdxs uintSet\n\t\tprevIdx := -1\n\t\tenc.tokens.last.disableNamespace() // we manually ensure unique names below\n\t\tfor i := range fields.flattened {\n\t\t\tf := &fields.flattened[i]\n\t\t\tv := addressableValue{va.Field(f.index[0])} // addressable if struct value is addressable\n\t\t\tif len(f.index) > 1 {\n\t\t\t\tv = v.fieldByIndex(f.index[1:], false)\n\t\t\t\tif !v.IsValid() {\n\t\t\t\t\tcontinue // implies a nil inlined field\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// OmitZero skips the field if the Go value is zero,\n\t\t\t// which we can determine up front without calling the marshaler.\n\t\t\tif f.omitzero && ((f.isZero == nil && v.IsZero()) || (f.isZero != nil && f.isZero(v))) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tmarshal := f.fncs.marshal\n\t\t\tnonDefault := f.fncs.nonDefault\n\t\t\tif mo.Marshalers != nil {\n\t\t\t\tvar ok bool\n\t\t\t\tmarshal, ok = mo.Marshalers.lookup(marshal, f.typ)\n\t\t\t\tnonDefault = nonDefault || ok\n\t\t\t}\n\n\t\t\t// OmitEmpty skips the field if the marshaled JSON value is empty,\n\t\t\t// which we can know up front if there are no custom marshalers,\n\t\t\t// otherwise we must marshal the value and unwrite it if empty.\n\t\t\tif f.omitempty && !nonDefault && f.isEmpty != nil && f.isEmpty(v) {\n\t\t\t\tcontinue // fast path for omitempty\n\t\t\t}\n\n\t\t\t// Write the object member name.\n\t\t\t//\n\t\t\t// The logic below is semantically equivalent to:\n\t\t\t//\tenc.WriteToken(String(f.name))\n\t\t\t// but specialized and simplified because:\n\t\t\t//\t1. The Encoder must be expecting an object name.\n\t\t\t//\t2. The object namespace is guaranteed to be disabled.\n\t\t\t//\t3. The object name is guaranteed to be valid and pre-escaped.\n\t\t\t//\t4. There is no need to flush the buffer (for unwrite purposes).\n\t\t\t//\t5. There is no possibility of an error occurring.\n\t\t\tif optimizeCommon {\n\t\t\t\t// Append any delimiters or optional whitespace.\n\t\t\t\tif enc.tokens.last.length() > 0 {\n\t\t\t\t\tenc.buf = append(enc.buf, ',')\n\t\t\t\t}\n\t\t\t\tif enc.options.multiline {\n\t\t\t\t\tenc.buf = enc.appendIndent(enc.buf, enc.tokens.needIndent('\"'))\n\t\t\t\t}\n\n\t\t\t\t// Append the token to the output and to the state machine.\n\t\t\t\tn0 := len(enc.buf) // offset before calling appendString\n\t\t\t\tif enc.options.EscapeRune == nil {\n\t\t\t\t\tenc.buf = append(enc.buf, f.quotedName...)\n\t\t\t\t} else {\n\t\t\t\t\tenc.buf, _ = appendString(enc.buf, f.name, false, enc.options.EscapeRune)\n\t\t\t\t}\n\t\t\t\tif !enc.options.AllowDuplicateNames {\n\t\t\t\t\tenc.names.replaceLastQuotedOffset(n0)\n\t\t\t\t}\n\t\t\t\tenc.tokens.last.increment()\n\t\t\t} else {\n\t\t\t\tif err := enc.WriteToken(String(f.name)); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Write the object member value.\n\t\t\tmo2 := mo\n\t\t\tif f.string {\n\t\t\t\tmo2.StringifyNumbers = true\n\t\t\t}\n\t\t\tif f.format != \"\" {\n\t\t\t\tmo2.formatDepth = enc.tokens.depth()\n\t\t\t\tmo2.format = f.format\n\t\t\t}\n\t\t\tif err := marshal(mo2, enc, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Try unwriting the member if empty (slow path for omitempty).\n\t\t\tif f.omitempty {\n\t\t\t\tvar prevName *string\n\t\t\t\tif prevIdx >= 0 {\n\t\t\t\t\tprevName = &fields.flattened[prevIdx].name\n\t\t\t\t}\n\t\t\t\tif enc.unwriteEmptyObjectMember(prevName) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remember the previous written object member.\n\t\t\t// The set of seen fields only needs to be updated to detect\n\t\t\t// duplicate names with those from the inlined fallback.\n\t\t\tif !enc.options.AllowDuplicateNames && fields.inlinedFallback != nil {\n\t\t\t\tseenIdxs.insert(uint(f.id))\n\t\t\t}\n\t\t\tprevIdx = f.id\n\t\t}\n\t\tif fields.inlinedFallback != nil && !(mo.DiscardUnknownMembers && fields.inlinedFallback.unknown) {\n\t\t\tvar insertUnquotedName func([]byte) bool\n\t\t\tif !enc.options.AllowDuplicateNames {\n\t\t\t\tinsertUnquotedName = func(name []byte) bool {\n\t\t\t\t\t// Check that the name from inlined fallback does not match\n\t\t\t\t\t// one of the previously marshaled names from known fields.\n\t\t\t\t\tif foldedFields := fields.byFoldedName[string(foldName(name))]; len(foldedFields) > 0 {\n\t\t\t\t\t\tif f := fields.byActualName[string(name)]; f != nil {\n\t\t\t\t\t\t\treturn seenIdxs.insert(uint(f.id))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor _, f := range foldedFields {\n\t\t\t\t\t\t\tif f.nocase {\n\t\t\t\t\t\t\t\treturn seenIdxs.insert(uint(f.id))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check that the name does not match any other name\n\t\t\t\t\t// previously marshaled from the inlined fallback.\n\t\t\t\t\treturn enc.namespaces.last().insertUnquoted(name)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := marshalInlinedFallbackAll(mo, enc, va, fields.inlinedFallback, insertUnquotedName); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := enc.WriteToken(ObjectEnd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '{':\n\t\t\tonce.Do(init)\n\t\t\tif errInit != nil {\n\t\t\t\terr := *errInit // shallow copy SemanticError\n\t\t\t\terr.action = \"unmarshal\"\n\t\t\t\treturn &err\n\t\t\t}\n\t\t\tvar seenIdxs uintSet\n\t\t\tdec.tokens.last.disableNamespace()\n\t\t\tfor dec.PeekKind() != '}' {\n\t\t\t\t// Process the object member name.\n\t\t\t\tvar flags valueFlags\n\t\t\t\tval, err := dec.readValue(&flags)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tname := unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\t\tf := fields.byActualName[string(name)]\n\t\t\t\tif f == nil {\n\t\t\t\t\tfor _, f2 := range fields.byFoldedName[string(foldName(name))] {\n\t\t\t\t\t\tif f2.nocase {\n\t\t\t\t\t\t\tf = f2\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif f == nil {\n\t\t\t\t\t\tif uo.RejectUnknownMembers && (fields.inlinedFallback == nil || fields.inlinedFallback.unknown) {\n\t\t\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: fmt.Errorf(\"unknown name %s\", val)}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif !dec.options.AllowDuplicateNames && !dec.namespaces.last().insertUnquoted(name) {\n\t\t\t\t\t\t\t// TODO: Unread the object name.\n\t\t\t\t\t\t\terr := &SyntacticError{str: \"duplicate name \" + string(val) + \" in object\"}\n\t\t\t\t\t\t\treturn err.withOffset(dec.InputOffset() - int64(len(val)))\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif fields.inlinedFallback == nil {\n\t\t\t\t\t\t\t// Skip unknown value since we have no place to store it.\n\t\t\t\t\t\t\tif err := dec.SkipValue(); err != nil {\n\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Marshal into value capable of storing arbitrary object members.\n\t\t\t\t\t\t\tif err := unmarshalInlinedFallbackNext(uo, dec, va, fields.inlinedFallback, val, name); err != nil {\n\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif !dec.options.AllowDuplicateNames && !seenIdxs.insert(uint(f.id)) {\n\t\t\t\t\t// TODO: Unread the object name.\n\t\t\t\t\terr := &SyntacticError{str: \"duplicate name \" + string(val) + \" in object\"}\n\t\t\t\t\treturn err.withOffset(dec.InputOffset() - int64(len(val)))\n\t\t\t\t}\n\n\t\t\t\t// Process the object member value.\n\t\t\t\tunmarshal := f.fncs.unmarshal\n\t\t\t\tif uo.Unmarshalers != nil {\n\t\t\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, f.typ)\n\t\t\t\t}\n\t\t\t\tuo2 := uo\n\t\t\t\tif f.string {\n\t\t\t\t\tuo2.StringifyNumbers = true\n\t\t\t\t}\n\t\t\t\tif f.format != \"\" {\n\t\t\t\t\tuo2.formatDepth = dec.tokens.depth()\n\t\t\t\t\tuo2.format = f.format\n\t\t\t\t}\n\t\t\t\tv := addressableValue{va.Field(f.index[0])} // addressable if struct value is addressable\n\t\t\t\tif len(f.index) > 1 {\n\t\t\t\t\tv = v.fieldByIndex(f.index[1:], true)\n\t\t\t\t}\n\t\t\t\tif err := unmarshal(uo2, dec, v); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc (va addressableValue) fieldByIndex(index []int, mayAlloc bool) addressableValue {\n\tfor _, i := range index {\n\t\tva = va.indirect(mayAlloc)\n\t\tif !va.IsValid() {\n\t\t\treturn va\n\t\t}\n\t\tva = addressableValue{va.Field(i)} // addressable if struct value is addressable\n\t}\n\treturn va\n}\n\nfunc (va addressableValue) indirect(mayAlloc bool) addressableValue {\n\tif va.Kind() == reflect.Pointer {\n\t\tif va.IsNil() {\n\t\t\tif !mayAlloc {\n\t\t\t\treturn addressableValue{}\n\t\t\t}\n\t\t\tva.Set(reflect.New(va.Type().Elem()))\n\t\t}\n\t\tva = addressableValue{va.Elem()} // dereferenced pointer is always addressable\n\t}\n\treturn va\n}\n\nfunc makeSliceArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tvalFncs *arshaler\n\t)\n\tinit := func() {\n\t\tvalFncs = lookupArshaler(t.Elem())\n\t}\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t// Check for cycles.\n\t\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\t\tif err := enc.seenPointers.visit(va.Value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefer enc.seenPointers.leave(va.Value)\n\t\t}\n\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\tif mo.format == \"emitnull\" {\n\t\t\t\tif va.IsNil() {\n\t\t\t\t\treturn enc.WriteToken(Null)\n\t\t\t\t}\n\t\t\t\tmo.format = \"\"\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t}\n\t\t}\n\n\t\t// Optimize for marshaling an empty slice without any preceding whitespace.\n\t\tn := va.Len()\n\t\tif optimizeCommon && n == 0 && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '[')\n\t\t\tenc.buf = append(enc.buf, \"[]\"...)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tonce.Do(init)\n\t\tif err := enc.WriteToken(ArrayStart); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmarshal := valFncs.marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, t.Elem())\n\t\t}\n\t\tfor i := 0; i < n; i++ {\n\t\t\tv := addressableValue{va.Index(i)} // indexed slice element is always addressable\n\t\t\tif err := marshal(mo, enc, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := enc.WriteToken(ArrayEnd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\temptySlice := reflect.MakeSlice(t, 0, 0)\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\tif uo.format == \"emitnull\" {\n\t\t\t\tuo.format = \"\" // only relevant for marshaling\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t}\n\t\t}\n\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '[':\n\t\t\tonce.Do(init)\n\t\t\tunmarshal := valFncs.unmarshal\n\t\t\tif uo.Unmarshalers != nil {\n\t\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, t.Elem())\n\t\t\t}\n\t\t\tmustZero := true // we do not know the cleanliness of unused capacity\n\t\t\tcap := va.Cap()\n\t\t\tif cap > 0 {\n\t\t\t\tva.SetLen(cap)\n\t\t\t}\n\t\t\tvar i int\n\t\t\tfor dec.PeekKind() != ']' {\n\t\t\t\tif i == cap {\n\t\t\t\t\t// TODO(https://go.dev/issue/48000): Use reflect.Value.Append.\n\t\t\t\t\tva.Set(reflect.Append(va.Value, reflect.Zero(t.Elem())))\n\t\t\t\t\tcap = va.Cap()\n\t\t\t\t\tva.SetLen(cap)\n\t\t\t\t\tmustZero = false // append guarantees that unused capacity is zero-initialized\n\t\t\t\t}\n\t\t\t\tv := addressableValue{va.Index(i)} // indexed slice element is always addressable\n\t\t\t\ti++\n\t\t\t\tif mustZero {\n\t\t\t\t\tv.Set(reflect.Zero(t.Elem()))\n\t\t\t\t}\n\t\t\t\tif err := unmarshal(uo, dec, v); err != nil {\n\t\t\t\t\tva.SetLen(i)\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif i == 0 {\n\t\t\t\tva.Set(emptySlice)\n\t\t\t} else {\n\t\t\t\tva.SetLen(i)\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeArrayArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tvalFncs *arshaler\n\t)\n\tinit := func() {\n\t\tvalFncs = lookupArshaler(t.Elem())\n\t}\n\tn := t.Len()\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\t\tonce.Do(init)\n\t\tif err := enc.WriteToken(ArrayStart); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmarshal := valFncs.marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, t.Elem())\n\t\t}\n\t\tfor i := 0; i < n; i++ {\n\t\t\tv := addressableValue{va.Index(i)} // indexed array element is addressable if array is addressable\n\t\t\tif err := marshal(mo, enc, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := enc.WriteToken(ArrayEnd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '[':\n\t\t\tonce.Do(init)\n\t\t\tunmarshal := valFncs.unmarshal\n\t\t\tif uo.Unmarshalers != nil {\n\t\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, t.Elem())\n\t\t\t}\n\t\t\tvar i int\n\t\t\tfor dec.PeekKind() != ']' {\n\t\t\t\tif i >= n {\n\t\t\t\t\terr := errors.New(\"too many array elements\")\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\tv := addressableValue{va.Index(i)} // indexed array element is addressable if array is addressable\n\t\t\t\tv.Set(reflect.Zero(v.Type()))\n\t\t\t\tif err := unmarshal(uo, dec, v); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\ti++\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif i < n {\n\t\t\t\terr := errors.New(\"too few array elements\")\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makePointerArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tvalFncs *arshaler\n\t)\n\tinit := func() {\n\t\tvalFncs = lookupArshaler(t.Elem())\n\t}\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t// Check for cycles.\n\t\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\t\tif err := enc.seenPointers.visit(va.Value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefer enc.seenPointers.leave(va.Value)\n\t\t}\n\n\t\t// NOTE: MarshalOptions.format is forwarded to underlying marshal.\n\t\tif va.IsNil() {\n\t\t\treturn enc.WriteToken(Null)\n\t\t}\n\t\tonce.Do(init)\n\t\tmarshal := valFncs.marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, t.Elem())\n\t\t}\n\t\tv := addressableValue{va.Elem()} // dereferenced pointer is always addressable\n\t\treturn marshal(mo, enc, v)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t// NOTE: UnmarshalOptions.format is forwarded to underlying unmarshal.\n\t\tif dec.PeekKind() == 'n' {\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\t}\n\t\tonce.Do(init)\n\t\tunmarshal := valFncs.unmarshal\n\t\tif uo.Unmarshalers != nil {\n\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, t.Elem())\n\t\t}\n\t\tif va.IsNil() {\n\t\t\tva.Set(reflect.New(t.Elem()))\n\t\t}\n\t\tv := addressableValue{va.Elem()} // dereferenced pointer is always addressable\n\t\treturn unmarshal(uo, dec, v)\n\t}\n\treturn &fncs\n}\n\nfunc makeInterfaceArshaler(t reflect.Type) *arshaler {\n\t// NOTE: Values retrieved from an interface are not addressable,\n\t// so we shallow copy the values to make them addressable and\n\t// store them back into the interface afterwards.\n\n\tvar fncs arshaler\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\t\tif va.IsNil() {\n\t\t\treturn enc.WriteToken(Null)\n\t\t}\n\t\tv := newAddressableValue(va.Elem().Type())\n\t\tv.Set(va.Elem())\n\t\tmarshal := lookupArshaler(v.Type()).marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, v.Type())\n\t\t}\n\t\t// Optimize for the any type if there are no special options.\n\t\tif optimizeCommon && t == anyType && !mo.StringifyNumbers && mo.format == \"\" && (mo.Marshalers == nil || !mo.Marshalers.fromAny) {\n\t\t\treturn marshalValueAny(mo, enc, va.Elem().Interface())\n\t\t}\n\t\treturn marshal(mo, enc, v)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\tif dec.PeekKind() == 'n' {\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\t}\n\t\tvar v addressableValue\n\t\tif va.IsNil() {\n\t\t\t// Optimize for the any type if there are no special options.\n\t\t\t// We do not care about stringified numbers since JSON strings\n\t\t\t// are always unmarshaled into an any value as Go strings.\n\t\t\t// Duplicate name check must be enforced since unmarshalValueAny\n\t\t\t// does not implement merge semantics.\n\t\t\tif optimizeCommon && t == anyType && uo.format == \"\" && (uo.Unmarshalers == nil || !uo.Unmarshalers.fromAny) && !dec.options.AllowDuplicateNames {\n\t\t\t\tv, err := unmarshalValueAny(uo, dec)\n\t\t\t\t// We must check for nil interface values up front.\n\t\t\t\t// See https://go.dev/issue/52310.\n\t\t\t\tif v != nil {\n\t\t\t\t\tva.Set(reflect.ValueOf(v))\n\t\t\t\t}\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tk := dec.PeekKind()\n\t\t\tif !isAnyType(t) {\n\t\t\t\terr := errors.New(\"cannot derive concrete type for non-empty interface\")\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tswitch k {\n\t\t\tcase 'f', 't':\n\t\t\t\tv = newAddressableValue(boolType)\n\t\t\tcase '\"':\n\t\t\t\tv = newAddressableValue(stringType)\n\t\t\tcase '0':\n\t\t\t\tv = newAddressableValue(float64Type)\n\t\t\tcase '{':\n\t\t\t\tv = newAddressableValue(mapStringAnyType)\n\t\t\tcase '[':\n\t\t\t\tv = newAddressableValue(sliceAnyType)\n\t\t\tdefault:\n\t\t\t\t// If k is invalid (e.g., due to an I/O or syntax error), then\n\t\t\t\t// that will be cached by PeekKind and returned by ReadValue.\n\t\t\t\t// If k is '}' or ']', then ReadValue must error since\n\t\t\t\t// those are invalid kinds at the start of a JSON value.\n\t\t\t\t_, err := dec.ReadValue()\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\t// Shallow copy the existing value to keep it addressable.\n\t\t\t// Any mutations at the top-level of the value will be observable\n\t\t\t// since we always store this value back into the interface value.\n\t\t\tv = newAddressableValue(va.Elem().Type())\n\t\t\tv.Set(va.Elem())\n\t\t}\n\t\tunmarshal := lookupArshaler(v.Type()).unmarshal\n\t\tif uo.Unmarshalers != nil {\n\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, v.Type())\n\t\t}\n\t\terr := unmarshal(uo, dec, v)\n\t\tva.Set(v.Value)\n\t\treturn err\n\t}\n\treturn &fncs\n}\n\n// isAnyType reports wether t is equivalent to the any interface type.\nfunc isAnyType(t reflect.Type) bool {\n\t// This is forward compatible if the Go language permits type sets within\n\t// ordinary interfaces where an interface with zero methods does not\n\t// necessarily mean it can hold every possible Go type.\n\t// See https://go.dev/issue/45346.\n\treturn t == anyType || anyType.Implements(t)\n}\n\nfunc makeInvalidArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\treturn &SemanticError{action: \"marshal\", GoType: t}\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\treturn &SemanticError{action: \"unmarshal\", GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc newInvalidFormatError(action string, t reflect.Type, format string) error {\n\terr := fmt.Errorf(\"invalid format flag: %q\", format)\n\treturn &SemanticError{action: action, GoType: t, Err: err}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/arshal_funcs.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n)\n\n// SkipFunc may be returned by MarshalFuncV2 and UnmarshalFuncV2 functions.\n//\n// Any function that returns SkipFunc must not cause observable side effects\n// on the provided Encoder or Decoder. For example, it is permissible to call\n// Decoder.PeekKind, but not permissible to call Decoder.ReadToken or\n// Encoder.WriteToken since such methods mutate the state.\nconst SkipFunc = jsonError(\"skip function\")\n\n// Marshalers is a list of functions that may override the marshal behavior\n// of specific types. Populate MarshalOptions.Marshalers to use it.\n// A nil *Marshalers is equivalent to an empty list.\ntype Marshalers = typedMarshalers\n\n// NewMarshalers constructs a flattened list of marshal functions.\n// If multiple functions in the list are applicable for a value of a given type,\n// then those earlier in the list take precedence over those that come later.\n// If a function returns SkipFunc, then the next applicable function is called,\n// otherwise the default marshaling behavior is used.\n//\n// For example:\n//\n//\tm1 := NewMarshalers(f1, f2)\n//\tm2 := NewMarshalers(f0, m1, f3)     // equivalent to m3\n//\tm3 := NewMarshalers(f0, f1, f2, f3) // equivalent to m2\nfunc NewMarshalers(ms ...*Marshalers) *Marshalers {\n\treturn newMarshalers(ms...)\n}\n\n// Unmarshalers is a list of functions that may override the unmarshal behavior\n// of specific types. Populate UnmarshalOptions.Unmarshalers to use it.\n// A nil *Unmarshalers is equivalent to an empty list.\ntype Unmarshalers = typedUnmarshalers\n\n// NewUnmarshalers constructs a flattened list of unmarshal functions.\n// If multiple functions in the list are applicable for a value of a given type,\n// then those earlier in the list take precedence over those that come later.\n// If a function returns SkipFunc, then the next applicable function is called,\n// otherwise the default unmarshaling behavior is used.\n//\n// For example:\n//\n//\tu1 := NewUnmarshalers(f1, f2)\n//\tu2 := NewUnmarshalers(f0, u1, f3)     // equivalent to u3\n//\tu3 := NewUnmarshalers(f0, f1, f2, f3) // equivalent to u2\nfunc NewUnmarshalers(us ...*Unmarshalers) *Unmarshalers {\n\treturn newUnmarshalers(us...)\n}\n\ntype typedMarshalers = typedArshalers[MarshalOptions, Encoder]\ntype typedUnmarshalers = typedArshalers[UnmarshalOptions, Decoder]\ntype typedArshalers[Options, Coder any] struct {\n\tnonComparable\n\n\tfncVals  []typedArshaler[Options, Coder]\n\tfncCache sync.Map // map[reflect.Type]arshaler\n\n\t// fromAny reports whether any of Go types used to represent arbitrary JSON\n\t// (i.e., any, bool, string, float64, map[string]any, or []any) matches\n\t// any of the provided type-specific arshalers.\n\t//\n\t// This bit of information is needed in arshal_default.go to determine\n\t// whether to use the specialized logic in arshal_any.go to handle\n\t// the any interface type. The logic in arshal_any.go does not support\n\t// type-specific arshal functions, so we must avoid using that logic\n\t// if this is true.\n\tfromAny bool\n}\ntype typedMarshaler = typedArshaler[MarshalOptions, Encoder]\ntype typedUnmarshaler = typedArshaler[UnmarshalOptions, Decoder]\ntype typedArshaler[Options, Coder any] struct {\n\ttyp     reflect.Type\n\tfnc     func(Options, *Coder, addressableValue) error\n\tmaySkip bool\n}\n\nfunc newMarshalers(ms ...*Marshalers) *Marshalers       { return newTypedArshalers(ms...) }\nfunc newUnmarshalers(us ...*Unmarshalers) *Unmarshalers { return newTypedArshalers(us...) }\nfunc newTypedArshalers[Options, Coder any](as ...*typedArshalers[Options, Coder]) *typedArshalers[Options, Coder] {\n\tvar a typedArshalers[Options, Coder]\n\tfor _, a2 := range as {\n\t\tif a2 != nil {\n\t\t\ta.fncVals = append(a.fncVals, a2.fncVals...)\n\t\t\ta.fromAny = a.fromAny || a2.fromAny\n\t\t}\n\t}\n\tif len(a.fncVals) == 0 {\n\t\treturn nil\n\t}\n\treturn &a\n}\n\nfunc (a *typedArshalers[Options, Coder]) lookup(fnc func(Options, *Coder, addressableValue) error, t reflect.Type) (func(Options, *Coder, addressableValue) error, bool) {\n\tif a == nil {\n\t\treturn fnc, false\n\t}\n\tif v, ok := a.fncCache.Load(t); ok {\n\t\tif v == nil {\n\t\t\treturn fnc, false\n\t\t}\n\t\treturn v.(func(Options, *Coder, addressableValue) error), true\n\t}\n\n\t// Collect a list of arshalers that can be called for this type.\n\t// This list may be longer than 1 since some arshalers can be skipped.\n\tvar fncs []func(Options, *Coder, addressableValue) error\n\tfor _, fncVal := range a.fncVals {\n\t\tif !castableTo(t, fncVal.typ) {\n\t\t\tcontinue\n\t\t}\n\t\tfncs = append(fncs, fncVal.fnc)\n\t\tif !fncVal.maySkip {\n\t\t\tbreak // subsequent arshalers will never be called\n\t\t}\n\t}\n\n\tif len(fncs) == 0 {\n\t\ta.fncCache.Store(t, nil) // nil to indicate that no funcs found\n\t\treturn fnc, false\n\t}\n\n\t// Construct an arshaler that may call every applicable arshaler.\n\tfncDefault := fnc\n\tfnc = func(o Options, c *Coder, v addressableValue) error {\n\t\tfor _, fnc := range fncs {\n\t\t\tif err := fnc(o, c, v); err != SkipFunc {\n\t\t\t\treturn err // may be nil or non-nil\n\t\t\t}\n\t\t}\n\t\treturn fncDefault(o, c, v)\n\t}\n\n\t// Use the first stored so duplicate work can be garbage collected.\n\tv, _ := a.fncCache.LoadOrStore(t, fnc)\n\treturn v.(func(Options, *Coder, addressableValue) error), true\n}\n\n// MarshalFuncV1 constructs a type-specific marshaler that\n// specifies how to marshal values of type T.\n// T can be any type except a named pointer.\n// The function is always provided with a non-nil pointer value\n// if T is an interface or pointer type.\n//\n// The function must marshal exactly one JSON value.\n// The value of T must not be retained outside the function call.\n// It may not return SkipFunc.\nfunc MarshalFuncV1[T any](fn func(T) ([]byte, error)) *Marshalers {\n\tt := reflect.TypeOf((*T)(nil)).Elem()\n\tassertCastableTo(t, true)\n\ttypFnc := typedMarshaler{\n\t\ttyp: t,\n\t\tfnc: func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tval, err := fn(va.castTo(t).Interface().(T))\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"marshal function of type func(T) ([]byte, error)\")\n\t\t\t\t// TODO: Avoid wrapping semantic errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\t// TODO: Avoid wrapping semantic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: RawValue(val).Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t}\n\treturn &Marshalers{fncVals: []typedMarshaler{typFnc}, fromAny: castableToFromAny(t)}\n}\n\n// MarshalFuncV2 constructs a type-specific marshaler that\n// specifies how to marshal values of type T.\n// T can be any type except a named pointer.\n// The function is always provided with a non-nil pointer value\n// if T is an interface or pointer type.\n//\n// The function must marshal exactly one JSON value by calling write methods\n// on the provided encoder. It may return SkipFunc such that marshaling can\n// move on to the next marshal function. However, no mutable method calls may\n// be called on the encoder if SkipFunc is returned.\n// The pointer to Encoder and the value of T must not be retained\n// outside the function call.\nfunc MarshalFuncV2[T any](fn func(MarshalOptions, *Encoder, T) error) *Marshalers {\n\tt := reflect.TypeOf((*T)(nil)).Elem()\n\tassertCastableTo(t, true)\n\ttypFnc := typedMarshaler{\n\t\ttyp: t,\n\t\tfnc: func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tprevDepth, prevLength := enc.tokens.depthLength()\n\t\t\terr := fn(mo, enc, va.castTo(t).Interface().(T))\n\t\t\tcurrDepth, currLength := enc.tokens.depthLength()\n\t\t\tif err == nil && (prevDepth != currDepth || prevLength+1 != currLength) {\n\t\t\t\terr = errors.New(\"must write exactly one JSON value\")\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\tif err == SkipFunc {\n\t\t\t\t\tif prevDepth == currDepth && prevLength == currLength {\n\t\t\t\t\t\treturn SkipFunc\n\t\t\t\t\t}\n\t\t\t\t\terr = errors.New(\"must not write any JSON tokens when skipping\")\n\t\t\t\t}\n\t\t\t\t// TODO: Avoid wrapping semantic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t\tmaySkip: true,\n\t}\n\treturn &Marshalers{fncVals: []typedMarshaler{typFnc}, fromAny: castableToFromAny(t)}\n}\n\n// UnmarshalFuncV1 constructs a type-specific unmarshaler that\n// specifies how to unmarshal values of type T.\n// T must be an unnamed pointer or an interface type.\n// The function is always provided with a non-nil pointer value.\n//\n// The function must unmarshal exactly one JSON value.\n// The input []byte must not be mutated.\n// The input []byte and value T must not be retained outside the function call.\n// It may not return SkipFunc.\nfunc UnmarshalFuncV1[T any](fn func([]byte, T) error) *Unmarshalers {\n\tt := reflect.TypeOf((*T)(nil)).Elem()\n\tassertCastableTo(t, false)\n\ttypFnc := typedUnmarshaler{\n\t\ttyp: t,\n\t\tfnc: func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tval, err := dec.ReadValue()\n\t\t\tif err != nil {\n\t\t\t\treturn err // must be a syntactic or I/O error\n\t\t\t}\n\t\t\terr = fn(val, va.castTo(t).Interface().(T))\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"unmarshal function of type func([]byte, T) error\")\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: val.Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t}\n\treturn &Unmarshalers{fncVals: []typedUnmarshaler{typFnc}, fromAny: castableToFromAny(t)}\n}\n\n// UnmarshalFuncV2 constructs a type-specific unmarshaler that\n// specifies how to unmarshal values of type T.\n// T must be an unnamed pointer or an interface type.\n// The function is always provided with a non-nil pointer value.\n//\n// The function must unmarshal exactly one JSON value by calling read methods\n// on the provided decoder. It may return SkipFunc such that unmarshaling can\n// move on to the next unmarshal function. However, no mutable method calls may\n// be called on the decoder if SkipFunc is returned.\n// The pointer to Decoder and the value of T must not be retained\n// outside the function call.\nfunc UnmarshalFuncV2[T any](fn func(UnmarshalOptions, *Decoder, T) error) *Unmarshalers {\n\tt := reflect.TypeOf((*T)(nil)).Elem()\n\tassertCastableTo(t, false)\n\ttypFnc := typedUnmarshaler{\n\t\ttyp: t,\n\t\tfnc: func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tprevDepth, prevLength := dec.tokens.depthLength()\n\t\t\terr := fn(uo, dec, va.castTo(t).Interface().(T))\n\t\t\tcurrDepth, currLength := dec.tokens.depthLength()\n\t\t\tif err == nil && (prevDepth != currDepth || prevLength+1 != currLength) {\n\t\t\t\terr = errors.New(\"must read exactly one JSON value\")\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\tif err == SkipFunc {\n\t\t\t\t\tif prevDepth == currDepth && prevLength == currLength {\n\t\t\t\t\t\treturn SkipFunc\n\t\t\t\t\t}\n\t\t\t\t\terr = errors.New(\"must not read any JSON tokens when skipping\")\n\t\t\t\t}\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t\tmaySkip: true,\n\t}\n\treturn &Unmarshalers{fncVals: []typedUnmarshaler{typFnc}, fromAny: castableToFromAny(t)}\n}\n\n// assertCastableTo asserts that \"to\" is a valid type to be casted to.\n// These are the Go types that type-specific arshalers may operate upon.\n//\n// Let AllTypes be the universal set of all possible Go types.\n// This function generally asserts that:\n//\n//\tlen([from for from in AllTypes if castableTo(from, to)]) > 0\n//\n// otherwise it panics.\n//\n// As a special-case if marshal is false, then we forbid any non-pointer or\n// non-interface type since it is almost always a bug trying to unmarshal\n// into something where the end-user caller did not pass in an addressable value\n// since they will not observe the mutations.\nfunc assertCastableTo(to reflect.Type, marshal bool) {\n\tswitch to.Kind() {\n\tcase reflect.Interface:\n\t\treturn\n\tcase reflect.Pointer:\n\t\t// Only allow unnamed pointers to be consistent with the fact that\n\t\t// taking the address of a value produces an unnamed pointer type.\n\t\tif to.Name() == \"\" {\n\t\t\treturn\n\t\t}\n\tdefault:\n\t\t// Technically, non-pointer types are permissible for unmarshal.\n\t\t// However, they are often a bug since the receiver would be immutable.\n\t\t// Thus, only allow them for marshaling.\n\t\tif marshal {\n\t\t\treturn\n\t\t}\n\t}\n\tif marshal {\n\t\tpanic(fmt.Sprintf(\"input type %v must be an interface type, an unnamed pointer type, or a non-pointer type\", to))\n\t} else {\n\t\tpanic(fmt.Sprintf(\"input type %v must be an interface type or an unnamed pointer type\", to))\n\t}\n}\n\n// castableTo checks whether values of type \"from\" can be casted to type \"to\".\n// Nil pointer or interface \"from\" values are never considered castable.\n//\n// This function must be kept in sync with addressableValue.castTo.\nfunc castableTo(from, to reflect.Type) bool {\n\tswitch to.Kind() {\n\tcase reflect.Interface:\n\t\t// TODO: This breaks when ordinary interfaces can have type sets\n\t\t// since interfaces now exist where only the value form of a type (T)\n\t\t// implements the interface, but not the pointer variant (*T).\n\t\t// See https://go.dev/issue/45346.\n\t\treturn reflect.PointerTo(from).Implements(to)\n\tcase reflect.Pointer:\n\t\t// Common case for unmarshaling.\n\t\t// From must be a concrete or interface type.\n\t\treturn reflect.PointerTo(from) == to\n\tdefault:\n\t\t// Common case for marshaling.\n\t\t// From must be a concrete type.\n\t\treturn from == to\n\t}\n}\n\n// castTo casts va to the specified type.\n// If the type is an interface, then the underlying type will always\n// be a non-nil pointer to a concrete type.\n//\n// Requirement: castableTo(va.Type(), to) must hold.\nfunc (va addressableValue) castTo(to reflect.Type) reflect.Value {\n\tswitch to.Kind() {\n\tcase reflect.Interface:\n\t\treturn va.Addr().Convert(to)\n\tcase reflect.Pointer:\n\t\treturn va.Addr()\n\tdefault:\n\t\treturn va.Value\n\t}\n}\n\n// castableToFromAny reports whether \"to\" can be casted to from any\n// of the dynamic types used to represent arbitrary JSON.\nfunc castableToFromAny(to reflect.Type) bool {\n\tfor _, from := range []reflect.Type{anyType, boolType, stringType, float64Type, mapStringAnyType, sliceAnyType} {\n\t\tif castableTo(from, to) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc wrapSkipFunc(err error, what string) error {\n\tif err == SkipFunc {\n\t\treturn errors.New(what + \" cannot be skipped\")\n\t}\n\treturn err\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/arshal_inlined.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"reflect\"\n)\n\n// This package supports \"inlining\" a Go struct field, where the contents\n// of the serialized field (which must be a JSON object) are treated as if\n// they are part of the parent Go struct (which represents a JSON object).\n//\n// Generally, inlined fields are of a Go struct type, where the fields of the\n// nested struct are virtually hoisted up to the parent struct using rules\n// similar to how Go embedding works (but operating within the JSON namespace).\n//\n// However, inlined fields may also be of a Go map type with a string key\n// or a RawValue. Such inlined fields are called \"fallback\" fields since they\n// represent any arbitrary JSON object member. Explicitly named fields take\n// precedence over the inlined fallback. Only one inlined fallback is allowed.\n\nvar rawValueType = reflect.TypeOf((*RawValue)(nil)).Elem()\n\n// marshalInlinedFallbackAll marshals all the members in an inlined fallback.\nfunc marshalInlinedFallbackAll(mo MarshalOptions, enc *Encoder, va addressableValue, f *structField, insertUnquotedName func([]byte) bool) error {\n\tv := addressableValue{va.Field(f.index[0])} // addressable if struct value is addressable\n\tif len(f.index) > 1 {\n\t\tv = v.fieldByIndex(f.index[1:], false)\n\t\tif !v.IsValid() {\n\t\t\treturn nil // implies a nil inlined field\n\t\t}\n\t}\n\tv = v.indirect(false)\n\tif !v.IsValid() {\n\t\treturn nil\n\t}\n\n\tif v.Type() == rawValueType {\n\t\tb := v.Interface().(RawValue)\n\t\tif len(b) == 0 { // TODO: Should this be nil? What if it were all whitespace?\n\t\t\treturn nil\n\t\t}\n\n\t\tdec := getBufferedDecoder(b, DecodeOptions{AllowDuplicateNames: true, AllowInvalidUTF8: true})\n\t\tdefer putBufferedDecoder(dec)\n\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t}\n\t\tif tok.Kind() != '{' {\n\t\t\terr := errors.New(\"inlined raw value must be a JSON object\")\n\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: tok.Kind(), GoType: rawValueType, Err: err}\n\t\t}\n\t\tfor dec.PeekKind() != '}' {\n\t\t\t// Parse the JSON object name.\n\t\t\tvar flags valueFlags\n\t\t\tval, err := dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t\t}\n\t\t\tif insertUnquotedName != nil {\n\t\t\t\tname := unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\t\tif !insertUnquotedName(name) {\n\t\t\t\t\treturn &SyntacticError{str: \"duplicate name \" + string(val) + \" in object\"}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Parse the JSON object value.\n\t\t\tval, err = dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t}\n\t\tif err := dec.checkEOF(); err != nil {\n\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t}\n\t\treturn nil\n\t} else {\n\t\tm := v // must be a map[string]V\n\t\tn := m.Len()\n\t\tif n == 0 {\n\t\t\treturn nil\n\t\t}\n\t\tmk := newAddressableValue(stringType)\n\t\tmv := newAddressableValue(m.Type().Elem())\n\t\tmarshalKey := func(mk addressableValue) error {\n\t\t\tb, err := appendString(enc.UnusedBuffer(), mk.String(), !enc.options.AllowInvalidUTF8, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif insertUnquotedName != nil {\n\t\t\t\tisVerbatim := bytes.IndexByte(b, '\\\\') < 0\n\t\t\t\tname := unescapeStringMayCopy(b, isVerbatim)\n\t\t\t\tif !insertUnquotedName(name) {\n\t\t\t\t\treturn &SyntacticError{str: \"duplicate name \" + string(b) + \" in object\"}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn enc.WriteValue(b)\n\t\t}\n\t\tmarshalVal := f.fncs.marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshalVal, _ = mo.Marshalers.lookup(marshalVal, mv.Type())\n\t\t}\n\t\tif !mo.Deterministic || n <= 1 {\n\t\t\tfor iter := m.MapRange(); iter.Next(); {\n\t\t\t\tmk.SetIterKey(iter)\n\t\t\t\tif err := marshalKey(mk); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tmv.Set(iter.Value())\n\t\t\t\tif err := marshalVal(mo, enc, mv); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tnames := getStrings(n)\n\t\t\tfor i, iter := 0, m.Value.MapRange(); i < n && iter.Next(); i++ {\n\t\t\t\tmk.SetIterKey(iter)\n\t\t\t\t(*names)[i] = mk.String()\n\t\t\t}\n\t\t\tnames.Sort()\n\t\t\tfor _, name := range *names {\n\t\t\t\tmk.SetString(name)\n\t\t\t\tif err := marshalKey(mk); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\t// TODO(https://go.dev/issue/57061): Use mv.SetMapIndexOf.\n\t\t\t\tmv.Set(m.MapIndex(mk.Value))\n\t\t\t\tif err := marshalVal(mo, enc, mv); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tputStrings(names)\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// unmarshalInlinedFallbackNext unmarshals only the next member in an inlined fallback.\nfunc unmarshalInlinedFallbackNext(uo UnmarshalOptions, dec *Decoder, va addressableValue, f *structField, quotedName, unquotedName []byte) error {\n\tv := addressableValue{va.Field(f.index[0])} // addressable if struct value is addressable\n\tif len(f.index) > 1 {\n\t\tv = v.fieldByIndex(f.index[1:], true)\n\t}\n\tv = v.indirect(true)\n\n\tif v.Type() == rawValueType {\n\t\tb := v.Addr().Interface().(*RawValue)\n\t\tif len(*b) == 0 { // TODO: Should this be nil? What if it were all whitespace?\n\t\t\t*b = append(*b, '{')\n\t\t} else {\n\t\t\t*b = trimSuffixWhitespace(*b)\n\t\t\tif hasSuffixByte(*b, '}') {\n\t\t\t\t// TODO: When merging into an object for the first time,\n\t\t\t\t// should we verify that it is valid?\n\t\t\t\t*b = trimSuffixByte(*b, '}')\n\t\t\t\t*b = trimSuffixWhitespace(*b)\n\t\t\t\tif !hasSuffixByte(*b, ',') && !hasSuffixByte(*b, '{') {\n\t\t\t\t\t*b = append(*b, ',')\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terr := errors.New(\"inlined raw value must be a JSON object\")\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: rawValueType, Err: err}\n\t\t\t}\n\t\t}\n\t\t*b = append(*b, quotedName...)\n\t\t*b = append(*b, ':')\n\t\trawValue, err := dec.ReadValue()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*b = append(*b, rawValue...)\n\t\t*b = append(*b, '}')\n\t\treturn nil\n\t} else {\n\t\tname := string(unquotedName) // TODO: Intern this?\n\n\t\tm := v // must be a map[string]V\n\t\tif m.IsNil() {\n\t\t\tm.Set(reflect.MakeMap(m.Type()))\n\t\t}\n\t\tmk := reflect.ValueOf(name)\n\t\tmv := newAddressableValue(v.Type().Elem()) // TODO: Cache across calls?\n\t\tif v2 := m.MapIndex(mk); v2.IsValid() {\n\t\t\tmv.Set(v2)\n\t\t}\n\n\t\tunmarshal := f.fncs.unmarshal\n\t\tif uo.Unmarshalers != nil {\n\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, mv.Type())\n\t\t}\n\t\terr := unmarshal(uo, dec, mv)\n\t\tm.SetMapIndex(mk, mv.Value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/arshal_methods.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"encoding\"\n\t\"errors\"\n\t\"reflect\"\n)\n\n// Interfaces for custom serialization.\nvar (\n\tjsonMarshalerV1Type   = reflect.TypeOf((*MarshalerV1)(nil)).Elem()\n\tjsonMarshalerV2Type   = reflect.TypeOf((*MarshalerV2)(nil)).Elem()\n\tjsonUnmarshalerV1Type = reflect.TypeOf((*UnmarshalerV1)(nil)).Elem()\n\tjsonUnmarshalerV2Type = reflect.TypeOf((*UnmarshalerV2)(nil)).Elem()\n\ttextMarshalerType     = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem()\n\ttextUnmarshalerType   = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem()\n)\n\n// MarshalerV1 is implemented by types that can marshal themselves.\n// It is recommended that types implement MarshalerV2 unless the implementation\n// is trying to avoid a hard dependency on the \"jsontext\" package.\n//\n// It is recommended that implementations return a buffer that is safe\n// for the caller to retain and potentially mutate.\ntype MarshalerV1 interface {\n\tMarshalJSON() ([]byte, error)\n}\n\n// MarshalerV2 is implemented by types that can marshal themselves.\n// It is recommended that types implement MarshalerV2 instead of MarshalerV1\n// since this is both more performant and flexible.\n// If a type implements both MarshalerV1 and MarshalerV2,\n// then MarshalerV2 takes precedence. In such a case, both implementations\n// should aim to have equivalent behavior for the default marshal options.\n//\n// The implementation must write only one JSON value to the Encoder and\n// must not retain the pointer to Encoder.\ntype MarshalerV2 interface {\n\tMarshalNextJSON(MarshalOptions, *Encoder) error\n\n\t// TODO: Should users call the MarshalOptions.MarshalNext method or\n\t// should/can they call this method directly? Does it matter?\n}\n\n// UnmarshalerV1 is implemented by types that can unmarshal themselves.\n// It is recommended that types implement UnmarshalerV2 unless\n// the implementation is trying to avoid a hard dependency on this package.\n//\n// The input can be assumed to be a valid encoding of a JSON value\n// if called from unmarshal functionality in this package.\n// UnmarshalJSON must copy the JSON data if it is retained after returning.\n// It is recommended that UnmarshalJSON implement merge semantics when\n// unmarshaling into a pre-populated value.\n//\n// Implementations must not retain or mutate the input []byte.\ntype UnmarshalerV1 interface {\n\tUnmarshalJSON([]byte) error\n}\n\n// UnmarshalerV2 is implemented by types that can unmarshal themselves.\n// It is recommended that types implement UnmarshalerV2 instead of UnmarshalerV1\n// since this is both more performant and flexible.\n// If a type implements both UnmarshalerV1 and UnmarshalerV2,\n// then UnmarshalerV2 takes precedence. In such a case, both implementations\n// should aim to have equivalent behavior for the default unmarshal options.\n//\n// The implementation must read only one JSON value from the Decoder.\n// It is recommended that UnmarshalNextJSON implement merge semantics when\n// unmarshaling into a pre-populated value.\n//\n// Implementations must not retain the pointer to Decoder.\ntype UnmarshalerV2 interface {\n\tUnmarshalNextJSON(UnmarshalOptions, *Decoder) error\n\n\t// TODO: Should users call the UnmarshalOptions.UnmarshalNext method or\n\t// should/can they call this method directly? Does it matter?\n}\n\nfunc makeMethodArshaler(fncs *arshaler, t reflect.Type) *arshaler {\n\t// Avoid injecting method arshaler on the pointer or interface version\n\t// to avoid ever calling the method on a nil pointer or interface receiver.\n\t// Let it be injected on the value receiver (which is always addressable).\n\tif t.Kind() == reflect.Pointer || t.Kind() == reflect.Interface {\n\t\treturn fncs\n\t}\n\n\t// Handle custom marshaler.\n\tswitch which, needAddr := implementsWhich(t, jsonMarshalerV2Type, jsonMarshalerV1Type, textMarshalerType); which {\n\tcase jsonMarshalerV2Type:\n\t\tfncs.nonDefault = true\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tprevDepth, prevLength := enc.tokens.depthLength()\n\t\t\terr := va.addrWhen(needAddr).Interface().(MarshalerV2).MarshalNextJSON(mo, enc)\n\t\t\tcurrDepth, currLength := enc.tokens.depthLength()\n\t\t\tif (prevDepth != currDepth || prevLength+1 != currLength) && err == nil {\n\t\t\t\terr = errors.New(\"must write exactly one JSON value\")\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"marshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase jsonMarshalerV1Type:\n\t\tfncs.nonDefault = true\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tmarshaler := va.addrWhen(needAddr).Interface().(MarshalerV1)\n\t\t\tval, err := marshaler.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"marshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\t// TODO: Avoid wrapping semantic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: RawValue(val).Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase textMarshalerType:\n\t\tfncs.nonDefault = true\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tmarshaler := va.addrWhen(needAddr).Interface().(encoding.TextMarshaler)\n\t\t\ts, err := marshaler.MarshalText()\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"marshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: t, Err: err}\n\t\t\t}\n\t\t\tval := enc.UnusedBuffer()\n\t\t\tval, err = appendString(val, string(s), true, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: t, Err: err}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\t// TODO: Avoid wrapping syntactic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// Handle custom unmarshaler.\n\tswitch which, needAddr := implementsWhich(t, jsonUnmarshalerV2Type, jsonUnmarshalerV1Type, textUnmarshalerType); which {\n\tcase jsonUnmarshalerV2Type:\n\t\tfncs.nonDefault = true\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tprevDepth, prevLength := dec.tokens.depthLength()\n\t\t\terr := va.addrWhen(needAddr).Interface().(UnmarshalerV2).UnmarshalNextJSON(uo, dec)\n\t\t\tcurrDepth, currLength := dec.tokens.depthLength()\n\t\t\tif (prevDepth != currDepth || prevLength+1 != currLength) && err == nil {\n\t\t\t\terr = errors.New(\"must read exactly one JSON value\")\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"unmarshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase jsonUnmarshalerV1Type:\n\t\tfncs.nonDefault = true\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tval, err := dec.ReadValue()\n\t\t\tif err != nil {\n\t\t\t\treturn err // must be a syntactic or I/O error\n\t\t\t}\n\t\t\tunmarshaler := va.addrWhen(needAddr).Interface().(UnmarshalerV1)\n\t\t\tif err := unmarshaler.UnmarshalJSON(val); err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"unmarshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: val.Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase textUnmarshalerType:\n\t\tfncs.nonDefault = true\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tvar flags valueFlags\n\t\t\tval, err := dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn err // must be a syntactic or I/O error\n\t\t\t}\n\t\t\tif val.Kind() != '\"' {\n\t\t\t\terr = errors.New(\"JSON value must be string type\")\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: val.Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\ts := unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tunmarshaler := va.addrWhen(needAddr).Interface().(encoding.TextUnmarshaler)\n\t\t\tif err := unmarshaler.UnmarshalText(s); err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"unmarshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: val.Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn fncs\n}\n\n// implementsWhich is like t.Implements(ifaceType) for a list of interfaces,\n// but checks whether either t or reflect.PointerTo(t) implements the interface.\n// It returns the first interface type that matches and whether a value of t\n// needs to be addressed first before it implements the interface.\nfunc implementsWhich(t reflect.Type, ifaceTypes ...reflect.Type) (which reflect.Type, needAddr bool) {\n\tfor _, ifaceType := range ifaceTypes {\n\t\tswitch {\n\t\tcase t.Implements(ifaceType):\n\t\t\treturn ifaceType, false\n\t\tcase reflect.PointerTo(t).Implements(ifaceType):\n\t\t\treturn ifaceType, true\n\t\t}\n\t}\n\treturn nil, false\n}\n\n// addrWhen returns va.Addr if addr is specified, otherwise it returns itself.\nfunc (va addressableValue) addrWhen(addr bool) reflect.Value {\n\tif addr {\n\t\treturn va.Addr()\n\t}\n\treturn va.Value\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/arshal_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"encoding\"\n\t\"encoding/base32\"\n\t\"encoding/base64\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"net\"\n\t\"path\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n)\n\ntype testName struct {\n\tname  string\n\twhere pc\n}\n\nfunc name(s string) (t testName) {\n\tt.name = s\n\truntime.Callers(2, t.where[:])\n\treturn t\n}\n\ntype pc [1]uintptr\n\nfunc (pc pc) String() string {\n\tframes := runtime.CallersFrames(pc[:])\n\tframe, _ := frames.Next()\n\treturn fmt.Sprintf(\"%s:%d\", path.Base(frame.File), frame.Line)\n}\n\ntype (\n\tjsonObject = map[string]any\n\tjsonArray  = []any\n\n\tnamedAny     any\n\tnamedBool    bool\n\tnamedString  string\n\tnamedBytes   []byte\n\tnamedInt64   int64\n\tnamedUint64  uint64\n\tnamedFloat64 float64\n\tnamedByte    byte\n\n\trecursiveMap     map[string]recursiveMap\n\trecursiveSlice   []recursiveSlice\n\trecursivePointer struct{ P *recursivePointer }\n\n\tstructEmpty       struct{}\n\tstructConflicting struct {\n\t\tA string `json:\"conflict\"`\n\t\tB string `json:\"conflict\"`\n\t}\n\tstructNoneExported struct {\n\t\tunexported string\n\t}\n\tstructUnexportedIgnored struct {\n\t\tignored string `json:\"-\"`\n\t}\n\tstructMalformedTag struct {\n\t\tMalformed string `json:\"\\\"\"`\n\t}\n\tstructUnexportedTag struct {\n\t\tunexported string `json:\"name\"`\n\t}\n\tstructUnexportedEmbedded struct {\n\t\tnamedString\n\t}\n\tstructIgnoredUnexportedEmbedded struct {\n\t\tnamedString `json:\"-\"`\n\t}\n\tstructWeirdNames struct {\n\t\tEmpty string `json:\"''\"`\n\t\tComma string `json:\"','\"`\n\t\tQuote string `json:\"'\\\"'\"`\n\t}\n\tstructNoCase struct {\n\t\tAaA string `json:\",nocase\"`\n\t\tAAa string `json:\",nocase\"`\n\t\tAAA string\n\t}\n\tstructScalars struct {\n\t\tunexported bool\n\t\tIgnored    bool `json:\"-\"`\n\n\t\tBool   bool\n\t\tString string\n\t\tBytes  []byte\n\t\tInt    int64\n\t\tUint   uint64\n\t\tFloat  float64\n\t}\n\tstructSlices struct {\n\t\tunexported bool\n\t\tIgnored    bool `json:\"-\"`\n\n\t\tSliceBool   []bool\n\t\tSliceString []string\n\t\tSliceBytes  [][]byte\n\t\tSliceInt    []int64\n\t\tSliceUint   []uint64\n\t\tSliceFloat  []float64\n\t}\n\tstructMaps struct {\n\t\tunexported bool\n\t\tIgnored    bool `json:\"-\"`\n\n\t\tMapBool   map[string]bool\n\t\tMapString map[string]string\n\t\tMapBytes  map[string][]byte\n\t\tMapInt    map[string]int64\n\t\tMapUint   map[string]uint64\n\t\tMapFloat  map[string]float64\n\t}\n\tstructAll struct {\n\t\tBool          bool\n\t\tString        string\n\t\tBytes         []byte\n\t\tInt           int64\n\t\tUint          uint64\n\t\tFloat         float64\n\t\tMap           map[string]string\n\t\tStructScalars structScalars\n\t\tStructMaps    structMaps\n\t\tStructSlices  structSlices\n\t\tSlice         []string\n\t\tArray         [1]string\n\t\tPointer       *structAll\n\t\tInterface     any\n\t}\n\tstructStringifiedAll struct {\n\t\tBool          bool                  `json:\",string\"`\n\t\tString        string                `json:\",string\"`\n\t\tBytes         []byte                `json:\",string\"`\n\t\tInt           int64                 `json:\",string\"`\n\t\tUint          uint64                `json:\",string\"`\n\t\tFloat         float64               `json:\",string\"`\n\t\tMap           map[string]string     `json:\",string\"`\n\t\tStructScalars structScalars         `json:\",string\"`\n\t\tStructMaps    structMaps            `json:\",string\"`\n\t\tStructSlices  structSlices          `json:\",string\"`\n\t\tSlice         []string              `json:\",string\"`\n\t\tArray         [1]string             `json:\",string\"`\n\t\tPointer       *structStringifiedAll `json:\",string\"`\n\t\tInterface     any                   `json:\",string\"`\n\t}\n\tstructOmitZeroAll struct {\n\t\tBool          bool               `json:\",omitzero\"`\n\t\tString        string             `json:\",omitzero\"`\n\t\tBytes         []byte             `json:\",omitzero\"`\n\t\tInt           int64              `json:\",omitzero\"`\n\t\tUint          uint64             `json:\",omitzero\"`\n\t\tFloat         float64            `json:\",omitzero\"`\n\t\tMap           map[string]string  `json:\",omitzero\"`\n\t\tStructScalars structScalars      `json:\",omitzero\"`\n\t\tStructMaps    structMaps         `json:\",omitzero\"`\n\t\tStructSlices  structSlices       `json:\",omitzero\"`\n\t\tSlice         []string           `json:\",omitzero\"`\n\t\tArray         [1]string          `json:\",omitzero\"`\n\t\tPointer       *structOmitZeroAll `json:\",omitzero\"`\n\t\tInterface     any                `json:\",omitzero\"`\n\t}\n\tstructOmitZeroMethodAll struct {\n\t\tValueAlwaysZero                 valueAlwaysZero     `json:\",omitzero\"`\n\t\tValueNeverZero                  valueNeverZero      `json:\",omitzero\"`\n\t\tPointerAlwaysZero               pointerAlwaysZero   `json:\",omitzero\"`\n\t\tPointerNeverZero                pointerNeverZero    `json:\",omitzero\"`\n\t\tPointerValueAlwaysZero          *valueAlwaysZero    `json:\",omitzero\"`\n\t\tPointerValueNeverZero           *valueNeverZero     `json:\",omitzero\"`\n\t\tPointerPointerAlwaysZero        *pointerAlwaysZero  `json:\",omitzero\"`\n\t\tPointerPointerNeverZero         *pointerNeverZero   `json:\",omitzero\"`\n\t\tPointerPointerValueAlwaysZero   **valueAlwaysZero   `json:\",omitzero\"`\n\t\tPointerPointerValueNeverZero    **valueNeverZero    `json:\",omitzero\"`\n\t\tPointerPointerPointerAlwaysZero **pointerAlwaysZero `json:\",omitzero\"`\n\t\tPointerPointerPointerNeverZero  **pointerNeverZero  `json:\",omitzero\"`\n\t}\n\tstructOmitZeroMethodInterfaceAll struct {\n\t\tValueAlwaysZero          isZeroer `json:\",omitzero\"`\n\t\tValueNeverZero           isZeroer `json:\",omitzero\"`\n\t\tPointerValueAlwaysZero   isZeroer `json:\",omitzero\"`\n\t\tPointerValueNeverZero    isZeroer `json:\",omitzero\"`\n\t\tPointerPointerAlwaysZero isZeroer `json:\",omitzero\"`\n\t\tPointerPointerNeverZero  isZeroer `json:\",omitzero\"`\n\t}\n\tstructOmitEmptyAll struct {\n\t\tBool                  bool                    `json:\",omitempty\"`\n\t\tPointerBool           *bool                   `json:\",omitempty\"`\n\t\tString                string                  `json:\",omitempty\"`\n\t\tStringEmpty           stringMarshalEmpty      `json:\",omitempty\"`\n\t\tStringNonEmpty        stringMarshalNonEmpty   `json:\",omitempty\"`\n\t\tPointerString         *string                 `json:\",omitempty\"`\n\t\tPointerStringEmpty    *stringMarshalEmpty     `json:\",omitempty\"`\n\t\tPointerStringNonEmpty *stringMarshalNonEmpty  `json:\",omitempty\"`\n\t\tBytes                 []byte                  `json:\",omitempty\"`\n\t\tBytesEmpty            bytesMarshalEmpty       `json:\",omitempty\"`\n\t\tBytesNonEmpty         bytesMarshalNonEmpty    `json:\",omitempty\"`\n\t\tPointerBytes          *[]byte                 `json:\",omitempty\"`\n\t\tPointerBytesEmpty     *bytesMarshalEmpty      `json:\",omitempty\"`\n\t\tPointerBytesNonEmpty  *bytesMarshalNonEmpty   `json:\",omitempty\"`\n\t\tFloat                 float64                 `json:\",omitempty\"`\n\t\tPointerFloat          *float64                `json:\",omitempty\"`\n\t\tMap                   map[string]string       `json:\",omitempty\"`\n\t\tMapEmpty              mapMarshalEmpty         `json:\",omitempty\"`\n\t\tMapNonEmpty           mapMarshalNonEmpty      `json:\",omitempty\"`\n\t\tPointerMap            *map[string]string      `json:\",omitempty\"`\n\t\tPointerMapEmpty       *mapMarshalEmpty        `json:\",omitempty\"`\n\t\tPointerMapNonEmpty    *mapMarshalNonEmpty     `json:\",omitempty\"`\n\t\tSlice                 []string                `json:\",omitempty\"`\n\t\tSliceEmpty            sliceMarshalEmpty       `json:\",omitempty\"`\n\t\tSliceNonEmpty         sliceMarshalNonEmpty    `json:\",omitempty\"`\n\t\tPointerSlice          *[]string               `json:\",omitempty\"`\n\t\tPointerSliceEmpty     *sliceMarshalEmpty      `json:\",omitempty\"`\n\t\tPointerSliceNonEmpty  *sliceMarshalNonEmpty   `json:\",omitempty\"`\n\t\tPointer               *structOmitZeroEmptyAll `json:\",omitempty\"`\n\t\tInterface             any                     `json:\",omitempty\"`\n\t}\n\tstructOmitZeroEmptyAll struct {\n\t\tBool      bool                    `json:\",omitzero,omitempty\"`\n\t\tString    string                  `json:\",omitzero,omitempty\"`\n\t\tBytes     []byte                  `json:\",omitzero,omitempty\"`\n\t\tInt       int64                   `json:\",omitzero,omitempty\"`\n\t\tUint      uint64                  `json:\",omitzero,omitempty\"`\n\t\tFloat     float64                 `json:\",omitzero,omitempty\"`\n\t\tMap       map[string]string       `json:\",omitzero,omitempty\"`\n\t\tSlice     []string                `json:\",omitzero,omitempty\"`\n\t\tArray     [1]string               `json:\",omitzero,omitempty\"`\n\t\tPointer   *structOmitZeroEmptyAll `json:\",omitzero,omitempty\"`\n\t\tInterface any                     `json:\",omitzero,omitempty\"`\n\t}\n\tstructFormatBytes struct {\n\t\tBase16    []byte `json:\",format:base16\"`\n\t\tBase32    []byte `json:\",format:base32\"`\n\t\tBase32Hex []byte `json:\",format:base32hex\"`\n\t\tBase64    []byte `json:\",format:base64\"`\n\t\tBase64URL []byte `json:\",format:base64url\"`\n\t\tArray     []byte `json:\",format:array\"`\n\t}\n\tstructFormatFloats struct {\n\t\tNonFinite        float64  `json:\",format:nonfinite\"`\n\t\tPointerNonFinite *float64 `json:\",format:nonfinite\"`\n\t}\n\tstructFormatMaps struct {\n\t\tEmitNull        map[string]string  `json:\",format:emitnull\"`\n\t\tPointerEmitNull *map[string]string `json:\",format:emitnull\"`\n\t}\n\tstructFormatSlices struct {\n\t\tEmitNull        []string  `json:\",format:emitnull\"`\n\t\tPointerEmitNull *[]string `json:\",format:emitnull\"`\n\t}\n\tstructFormatInvalid struct {\n\t\tBool      bool              `json:\",omitzero,format:invalid\"`\n\t\tString    string            `json:\",omitzero,format:invalid\"`\n\t\tBytes     []byte            `json:\",omitzero,format:invalid\"`\n\t\tInt       int64             `json:\",omitzero,format:invalid\"`\n\t\tUint      uint64            `json:\",omitzero,format:invalid\"`\n\t\tFloat     float64           `json:\",omitzero,format:invalid\"`\n\t\tMap       map[string]string `json:\",omitzero,format:invalid\"`\n\t\tStruct    structAll         `json:\",omitzero,format:invalid\"`\n\t\tSlice     []string          `json:\",omitzero,format:invalid\"`\n\t\tArray     [1]string         `json:\",omitzero,format:invalid\"`\n\t\tInterface any               `json:\",omitzero,format:invalid\"`\n\t}\n\tstructTimeFormat struct {\n\t\tT1  time.Time\n\t\tT2  time.Time `json:\",format:ANSIC\"`\n\t\tT3  time.Time `json:\",format:UnixDate\"`\n\t\tT4  time.Time `json:\",format:RubyDate\"`\n\t\tT5  time.Time `json:\",format:RFC822\"`\n\t\tT6  time.Time `json:\",format:RFC822Z\"`\n\t\tT7  time.Time `json:\",format:RFC850\"`\n\t\tT8  time.Time `json:\",format:RFC1123\"`\n\t\tT9  time.Time `json:\",format:RFC1123Z\"`\n\t\tT10 time.Time `json:\",format:RFC3339\"`\n\t\tT11 time.Time `json:\",format:RFC3339Nano\"`\n\t\tT12 time.Time `json:\",format:Kitchen\"`\n\t\tT13 time.Time `json:\",format:Stamp\"`\n\t\tT14 time.Time `json:\",format:StampMilli\"`\n\t\tT15 time.Time `json:\",format:StampMicro\"`\n\t\tT16 time.Time `json:\",format:StampNano\"`\n\t\tT17 time.Time `json:\",format:'2006-01-02'\"`\n\t\tT18 time.Time `json:\",format:'\\\"weird\\\"2006'\"`\n\t}\n\tstructInlined struct {\n\t\tX             structInlinedL1 `json:\",inline\"`\n\t\t*StructEmbed2                 // implicit inline\n\t}\n\tstructInlinedL1 struct {\n\t\tX            *structInlinedL2 `json:\",inline\"`\n\t\tStructEmbed1 `json:\",inline\"`\n\t}\n\tstructInlinedL2       struct{ A, B, C string }\n\tStructEmbed1          struct{ C, D, E string }\n\tStructEmbed2          struct{ E, F, G string }\n\tstructUnknownRawValue struct {\n\t\tA int      `json:\",omitzero\"`\n\t\tX RawValue `json:\",unknown\"`\n\t\tB int      `json:\",omitzero\"`\n\t}\n\tstructInlineRawValue struct {\n\t\tA int      `json:\",omitzero\"`\n\t\tX RawValue `json:\",inline\"`\n\t\tB int      `json:\",omitzero\"`\n\t}\n\tstructInlinePointerRawValue struct {\n\t\tA int       `json:\",omitzero\"`\n\t\tX *RawValue `json:\",inline\"`\n\t\tB int       `json:\",omitzero\"`\n\t}\n\tstructInlinePointerInlineRawValue struct {\n\t\tX *struct {\n\t\t\tA int\n\t\t\tX RawValue `json:\",inline\"`\n\t\t} `json:\",inline\"`\n\t}\n\tstructInlineInlinePointerRawValue struct {\n\t\tX struct {\n\t\t\tX *RawValue `json:\",inline\"`\n\t\t} `json:\",inline\"`\n\t}\n\tstructInlineMapStringAny struct {\n\t\tA int        `json:\",omitzero\"`\n\t\tX jsonObject `json:\",inline\"`\n\t\tB int        `json:\",omitzero\"`\n\t}\n\tstructInlinePointerMapStringAny struct {\n\t\tA int         `json:\",omitzero\"`\n\t\tX *jsonObject `json:\",inline\"`\n\t\tB int         `json:\",omitzero\"`\n\t}\n\tstructInlinePointerInlineMapStringAny struct {\n\t\tX *struct {\n\t\t\tA int\n\t\t\tX jsonObject `json:\",inline\"`\n\t\t} `json:\",inline\"`\n\t}\n\tstructInlineInlinePointerMapStringAny struct {\n\t\tX struct {\n\t\t\tX *jsonObject `json:\",inline\"`\n\t\t} `json:\",inline\"`\n\t}\n\tstructInlineMapStringInt struct {\n\t\tX map[string]int `json:\",inline\"`\n\t}\n\tstructNoCaseInlineRawValue struct {\n\t\tAAA string   `json:\",omitempty\"`\n\t\tAaA string   `json:\",omitempty,nocase\"`\n\t\tAAa string   `json:\",omitempty,nocase\"`\n\t\tAaa string   `json:\",omitempty\"`\n\t\tX   RawValue `json:\",inline\"`\n\t}\n\tstructNoCaseInlineMapStringAny struct {\n\t\tAAA string     `json:\",omitempty\"`\n\t\tAaA string     `json:\",omitempty,nocase\"`\n\t\tAAa string     `json:\",omitempty,nocase\"`\n\t\tAaa string     `json:\",omitempty\"`\n\t\tX   jsonObject `json:\",inline\"`\n\t}\n\n\tallMethods struct {\n\t\tmethod string // the method that was called\n\t\tvalue  []byte // the raw value to provide or store\n\t}\n\tallMethodsExceptJSONv2 struct {\n\t\tallMethods\n\t\tMarshalNextJSON   struct{} // cancel out MarshalNextJSON method with collision\n\t\tUnmarshalNextJSON struct{} // cancel out UnmarshalNextJSON method with collision\n\t}\n\tallMethodsExceptJSONv1 struct {\n\t\tallMethods\n\t\tMarshalJSON   struct{} // cancel out MarshalJSON method with collision\n\t\tUnmarshalJSON struct{} // cancel out UnmarshalJSON method with collision\n\t}\n\tallMethodsExceptText struct {\n\t\tallMethods\n\t\tMarshalText   struct{} // cancel out MarshalText method with collision\n\t\tUnmarshalText struct{} // cancel out UnmarshalText method with collision\n\t}\n\tonlyMethodJSONv2 struct {\n\t\tallMethods\n\t\tMarshalJSON   struct{} // cancel out MarshalJSON method with collision\n\t\tUnmarshalJSON struct{} // cancel out UnmarshalJSON method with collision\n\t\tMarshalText   struct{} // cancel out MarshalText method with collision\n\t\tUnmarshalText struct{} // cancel out UnmarshalText method with collision\n\t}\n\tonlyMethodJSONv1 struct {\n\t\tallMethods\n\t\tMarshalNextJSON   struct{} // cancel out MarshalNextJSON method with collision\n\t\tUnmarshalNextJSON struct{} // cancel out UnmarshalNextJSON method with collision\n\t\tMarshalText       struct{} // cancel out MarshalText method with collision\n\t\tUnmarshalText     struct{} // cancel out UnmarshalText method with collision\n\t}\n\tonlyMethodText struct {\n\t\tallMethods\n\t\tMarshalNextJSON   struct{} // cancel out MarshalNextJSON method with collision\n\t\tUnmarshalNextJSON struct{} // cancel out UnmarshalNextJSON method with collision\n\t\tMarshalJSON       struct{} // cancel out MarshalJSON method with collision\n\t\tUnmarshalJSON     struct{} // cancel out UnmarshalJSON method with collision\n\t}\n\n\tstructMethodJSONv2 struct{ value string }\n\tstructMethodJSONv1 struct{ value string }\n\tstructMethodText   struct{ value string }\n\n\tmarshalJSONv2Func   func(MarshalOptions, *Encoder) error\n\tmarshalJSONv1Func   func() ([]byte, error)\n\tmarshalTextFunc     func() ([]byte, error)\n\tunmarshalJSONv2Func func(UnmarshalOptions, *Decoder) error\n\tunmarshalJSONv1Func func([]byte) error\n\tunmarshalTextFunc   func([]byte) error\n\n\tnocaseString string\n\n\tstringMarshalEmpty    string\n\tstringMarshalNonEmpty string\n\tbytesMarshalEmpty     []byte\n\tbytesMarshalNonEmpty  []byte\n\tmapMarshalEmpty       map[string]string\n\tmapMarshalNonEmpty    map[string]string\n\tsliceMarshalEmpty     []string\n\tsliceMarshalNonEmpty  []string\n\n\tvalueAlwaysZero   string\n\tvalueNeverZero    string\n\tpointerAlwaysZero string\n\tpointerNeverZero  string\n\n\tvalueStringer   struct{}\n\tpointerStringer struct{}\n\n\tcyclicA struct {\n\t\tB1 cyclicB `json:\",inline\"`\n\t\tB2 cyclicB `json:\",inline\"`\n\t}\n\tcyclicB struct {\n\t\tF int\n\t\tA *cyclicA `json:\",inline\"`\n\t}\n)\n\nfunc (p *allMethods) MarshalNextJSON(mo MarshalOptions, enc *Encoder) error {\n\tif got, want := \"MarshalNextJSON\", p.method; got != want {\n\t\treturn fmt.Errorf(\"called wrong method: got %v, want %v\", got, want)\n\t}\n\treturn enc.WriteValue(p.value)\n}\nfunc (p *allMethods) MarshalJSON() ([]byte, error) {\n\tif got, want := \"MarshalJSON\", p.method; got != want {\n\t\treturn nil, fmt.Errorf(\"called wrong method: got %v, want %v\", got, want)\n\t}\n\treturn p.value, nil\n}\nfunc (p *allMethods) MarshalText() ([]byte, error) {\n\tif got, want := \"MarshalText\", p.method; got != want {\n\t\treturn nil, fmt.Errorf(\"called wrong method: got %v, want %v\", got, want)\n\t}\n\treturn p.value, nil\n}\n\nfunc (p *allMethods) UnmarshalNextJSON(uo UnmarshalOptions, dec *Decoder) error {\n\tp.method = \"UnmarshalNextJSON\"\n\tval, err := dec.ReadValue()\n\tp.value = val\n\treturn err\n}\nfunc (p *allMethods) UnmarshalJSON(val []byte) error {\n\tp.method = \"UnmarshalJSON\"\n\tp.value = val\n\treturn nil\n}\nfunc (p *allMethods) UnmarshalText(val []byte) error {\n\tp.method = \"UnmarshalText\"\n\tp.value = val\n\treturn nil\n}\n\nfunc (s structMethodJSONv2) MarshalNextJSON(mo MarshalOptions, enc *Encoder) error {\n\treturn enc.WriteToken(String(s.value))\n}\nfunc (s *structMethodJSONv2) UnmarshalNextJSON(uo UnmarshalOptions, dec *Decoder) error {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif k := tok.Kind(); k != '\"' {\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: structMethodJSONv2Type}\n\t}\n\ts.value = tok.String()\n\treturn nil\n}\n\nfunc (s structMethodJSONv1) MarshalJSON() ([]byte, error) {\n\treturn appendString(nil, s.value, false, nil)\n}\nfunc (s *structMethodJSONv1) UnmarshalJSON(b []byte) error {\n\tif k := RawValue(b).Kind(); k != '\"' {\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: structMethodJSONv1Type}\n\t}\n\tb, _ = unescapeString(nil, b)\n\ts.value = string(b)\n\treturn nil\n}\n\nfunc (s structMethodText) MarshalText() ([]byte, error) {\n\treturn []byte(s.value), nil\n}\nfunc (s *structMethodText) UnmarshalText(b []byte) error {\n\ts.value = string(b)\n\treturn nil\n}\n\nfunc (f marshalJSONv2Func) MarshalNextJSON(mo MarshalOptions, enc *Encoder) error {\n\treturn f(mo, enc)\n}\nfunc (f marshalJSONv1Func) MarshalJSON() ([]byte, error) {\n\treturn f()\n}\nfunc (f marshalTextFunc) MarshalText() ([]byte, error) {\n\treturn f()\n}\nfunc (f unmarshalJSONv2Func) UnmarshalNextJSON(uo UnmarshalOptions, dec *Decoder) error {\n\treturn f(uo, dec)\n}\nfunc (f unmarshalJSONv1Func) UnmarshalJSON(b []byte) error {\n\treturn f(b)\n}\nfunc (f unmarshalTextFunc) UnmarshalText(b []byte) error {\n\treturn f(b)\n}\n\nfunc (k nocaseString) MarshalText() ([]byte, error) {\n\treturn []byte(strings.ToLower(string(k))), nil\n}\nfunc (k *nocaseString) UnmarshalText(b []byte) error {\n\t*k = nocaseString(strings.ToLower(string(b)))\n\treturn nil\n}\n\nfunc (stringMarshalEmpty) MarshalJSON() ([]byte, error)    { return []byte(`\"\"`), nil }\nfunc (stringMarshalNonEmpty) MarshalJSON() ([]byte, error) { return []byte(`\"value\"`), nil }\nfunc (bytesMarshalEmpty) MarshalJSON() ([]byte, error)     { return []byte(`[]`), nil }\nfunc (bytesMarshalNonEmpty) MarshalJSON() ([]byte, error)  { return []byte(`[\"value\"]`), nil }\nfunc (mapMarshalEmpty) MarshalJSON() ([]byte, error)       { return []byte(`{}`), nil }\nfunc (mapMarshalNonEmpty) MarshalJSON() ([]byte, error)    { return []byte(`{\"key\":\"value\"}`), nil }\nfunc (sliceMarshalEmpty) MarshalJSON() ([]byte, error)     { return []byte(`[]`), nil }\nfunc (sliceMarshalNonEmpty) MarshalJSON() ([]byte, error)  { return []byte(`[\"value\"]`), nil }\n\nfunc (valueAlwaysZero) IsZero() bool    { return true }\nfunc (valueNeverZero) IsZero() bool     { return false }\nfunc (*pointerAlwaysZero) IsZero() bool { return true }\nfunc (*pointerNeverZero) IsZero() bool  { return false }\n\nfunc (valueStringer) String() string    { return \"\" }\nfunc (*pointerStringer) String() string { return \"\" }\n\nvar (\n\tnamedBoolType                = reflect.TypeOf((*namedBool)(nil)).Elem()\n\tintType                      = reflect.TypeOf((*int)(nil)).Elem()\n\tint8Type                     = reflect.TypeOf((*int8)(nil)).Elem()\n\tint16Type                    = reflect.TypeOf((*int16)(nil)).Elem()\n\tint32Type                    = reflect.TypeOf((*int32)(nil)).Elem()\n\tint64Type                    = reflect.TypeOf((*int64)(nil)).Elem()\n\tuintType                     = reflect.TypeOf((*uint)(nil)).Elem()\n\tuint8Type                    = reflect.TypeOf((*uint8)(nil)).Elem()\n\tuint16Type                   = reflect.TypeOf((*uint16)(nil)).Elem()\n\tuint32Type                   = reflect.TypeOf((*uint32)(nil)).Elem()\n\tuint64Type                   = reflect.TypeOf((*uint64)(nil)).Elem()\n\tsliceStringType              = reflect.TypeOf((*[]string)(nil)).Elem()\n\tarray1StringType             = reflect.TypeOf((*[1]string)(nil)).Elem()\n\tarray0ByteType               = reflect.TypeOf((*[0]byte)(nil)).Elem()\n\tarray1ByteType               = reflect.TypeOf((*[1]byte)(nil)).Elem()\n\tarray2ByteType               = reflect.TypeOf((*[2]byte)(nil)).Elem()\n\tarray3ByteType               = reflect.TypeOf((*[3]byte)(nil)).Elem()\n\tarray4ByteType               = reflect.TypeOf((*[4]byte)(nil)).Elem()\n\tmapStringStringType          = reflect.TypeOf((*map[string]string)(nil)).Elem()\n\tstructAllType                = reflect.TypeOf((*structAll)(nil)).Elem()\n\tstructConflictingType        = reflect.TypeOf((*structConflicting)(nil)).Elem()\n\tstructNoneExportedType       = reflect.TypeOf((*structNoneExported)(nil)).Elem()\n\tstructMalformedTagType       = reflect.TypeOf((*structMalformedTag)(nil)).Elem()\n\tstructUnexportedTagType      = reflect.TypeOf((*structUnexportedTag)(nil)).Elem()\n\tstructUnexportedEmbeddedType = reflect.TypeOf((*structUnexportedEmbedded)(nil)).Elem()\n\tstructUnknownRawValueType    = reflect.TypeOf((*structUnknownRawValue)(nil)).Elem()\n\tallMethodsType               = reflect.TypeOf((*allMethods)(nil)).Elem()\n\tallMethodsExceptJSONv2Type   = reflect.TypeOf((*allMethodsExceptJSONv2)(nil)).Elem()\n\tallMethodsExceptJSONv1Type   = reflect.TypeOf((*allMethodsExceptJSONv1)(nil)).Elem()\n\tallMethodsExceptTextType     = reflect.TypeOf((*allMethodsExceptText)(nil)).Elem()\n\tonlyMethodJSONv2Type         = reflect.TypeOf((*onlyMethodJSONv2)(nil)).Elem()\n\tonlyMethodJSONv1Type         = reflect.TypeOf((*onlyMethodJSONv1)(nil)).Elem()\n\tonlyMethodTextType           = reflect.TypeOf((*onlyMethodText)(nil)).Elem()\n\tstructMethodJSONv2Type       = reflect.TypeOf((*structMethodJSONv2)(nil)).Elem()\n\tstructMethodJSONv1Type       = reflect.TypeOf((*structMethodJSONv1)(nil)).Elem()\n\tstructMethodTextType         = reflect.TypeOf((*structMethodText)(nil)).Elem()\n\tmarshalJSONv2FuncType        = reflect.TypeOf((*marshalJSONv2Func)(nil)).Elem()\n\tmarshalJSONv1FuncType        = reflect.TypeOf((*marshalJSONv1Func)(nil)).Elem()\n\tmarshalTextFuncType          = reflect.TypeOf((*marshalTextFunc)(nil)).Elem()\n\tunmarshalJSONv2FuncType      = reflect.TypeOf((*unmarshalJSONv2Func)(nil)).Elem()\n\tunmarshalJSONv1FuncType      = reflect.TypeOf((*unmarshalJSONv1Func)(nil)).Elem()\n\tunmarshalTextFuncType        = reflect.TypeOf((*unmarshalTextFunc)(nil)).Elem()\n\tnocaseStringType             = reflect.TypeOf((*nocaseString)(nil)).Elem()\n\tioReaderType                 = reflect.TypeOf((*io.Reader)(nil)).Elem()\n\tfmtStringerType              = reflect.TypeOf((*fmt.Stringer)(nil)).Elem()\n\tchanStringType               = reflect.TypeOf((*chan string)(nil)).Elem()\n)\n\nfunc addr[T any](v T) *T {\n\treturn &v\n}\n\nfunc mustParseTime(layout, value string) time.Time {\n\tt, err := time.Parse(layout, value)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn t\n}\n\nfunc TestMarshal(t *testing.T) {\n\ttests := []struct {\n\t\tname    testName\n\t\tmopts   MarshalOptions\n\t\teopts   EncodeOptions\n\t\tin      any\n\t\twant    string\n\t\twantErr error\n\n\t\tcanonicalize bool // canonicalize the output before comparing?\n\t\tuseWriter    bool // call MarshalFull instead of Marshal\n\t}{{\n\t\tname: name(\"Nil\"),\n\t\tin:   nil,\n\t\twant: `null`,\n\t}, {\n\t\tname: name(\"Bools\"),\n\t\tin:   []bool{false, true},\n\t\twant: `[false,true]`,\n\t}, {\n\t\tname: name(\"Bools/Named\"),\n\t\tin:   []namedBool{false, true},\n\t\twant: `[false,true]`,\n\t}, {\n\t\tname:  name(\"Bools/NotStringified\"),\n\t\tmopts: MarshalOptions{StringifyNumbers: true},\n\t\tin:    []bool{false, true},\n\t\twant:  `[false,true]`,\n\t}, {\n\t\tname:  name(\"Bools/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    true,\n\t\twant:  `true`,\n\t}, {\n\t\tname: name(\"Strings\"),\n\t\tin:   []string{\"\", \"hello\", \"世界\"},\n\t\twant: `[\"\",\"hello\",\"世界\"]`,\n\t}, {\n\t\tname: name(\"Strings/Named\"),\n\t\tin:   []namedString{\"\", \"hello\", \"世界\"},\n\t\twant: `[\"\",\"hello\",\"世界\"]`,\n\t}, {\n\t\tname:  name(\"Strings/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    \"string\",\n\t\twant:  `\"string\"`,\n\t}, {\n\t\tname: name(\"Bytes\"),\n\t\tin:   [][]byte{nil, {}, {1}, {1, 2}, {1, 2, 3}},\n\t\twant: `[\"\",\"\",\"AQ==\",\"AQI=\",\"AQID\"]`,\n\t}, {\n\t\tname: name(\"Bytes/Large\"),\n\t\tin:   []byte(\"the quick brown fox jumped over the lazy dog and ate the homework that I spent so much time on.\"),\n\t\twant: `\"dGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cgYW5kIGF0ZSB0aGUgaG9tZXdvcmsgdGhhdCBJIHNwZW50IHNvIG11Y2ggdGltZSBvbi4=\"`,\n\t}, {\n\t\tname: name(\"Bytes/Named\"),\n\t\tin:   []namedBytes{nil, {}, {1}, {1, 2}, {1, 2, 3}},\n\t\twant: `[\"\",\"\",\"AQ==\",\"AQI=\",\"AQID\"]`,\n\t}, {\n\t\tname:  name(\"Bytes/NotStringified\"),\n\t\tmopts: MarshalOptions{StringifyNumbers: true},\n\t\tin:    [][]byte{nil, {}, {1}, {1, 2}, {1, 2, 3}},\n\t\twant:  `[\"\",\"\",\"AQ==\",\"AQI=\",\"AQID\"]`,\n\t}, {\n\t\t// NOTE: []namedByte is not assignable to []byte,\n\t\t// so the following should be treated as a slice of uints.\n\t\tname: name(\"Bytes/Invariant\"),\n\t\tin:   [][]namedByte{nil, {}, {1}, {1, 2}, {1, 2, 3}},\n\t\twant: `[[],[],[1],[1,2],[1,2,3]]`,\n\t}, {\n\t\t// NOTE: This differs in behavior from v1,\n\t\t// but keeps the representation of slices and arrays more consistent.\n\t\tname: name(\"Bytes/ByteArray\"),\n\t\tin:   [5]byte{'h', 'e', 'l', 'l', 'o'},\n\t\twant: `\"aGVsbG8=\"`,\n\t}, {\n\t\t// NOTE: []namedByte is not assignable to []byte,\n\t\t// so the following should be treated as an array of uints.\n\t\tname: name(\"Bytes/NamedByteArray\"),\n\t\tin:   [5]namedByte{'h', 'e', 'l', 'l', 'o'},\n\t\twant: `[104,101,108,108,111]`,\n\t}, {\n\t\tname:  name(\"Bytes/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    []byte(\"hello\"),\n\t\twant:  `\"aGVsbG8=\"`,\n\t}, {\n\t\tname: name(\"Ints\"),\n\t\tin: []any{\n\t\t\tint(0), int8(math.MinInt8), int16(math.MinInt16), int32(math.MinInt32), int64(math.MinInt64), namedInt64(-6464),\n\t\t},\n\t\twant: `[0,-128,-32768,-2147483648,-9223372036854775808,-6464]`,\n\t}, {\n\t\tname:  name(\"Ints/Stringified\"),\n\t\tmopts: MarshalOptions{StringifyNumbers: true},\n\t\tin: []any{\n\t\t\tint(0), int8(math.MinInt8), int16(math.MinInt16), int32(math.MinInt32), int64(math.MinInt64), namedInt64(-6464),\n\t\t},\n\t\twant: `[\"0\",\"-128\",\"-32768\",\"-2147483648\",\"-9223372036854775808\",\"-6464\"]`,\n\t}, {\n\t\tname:  name(\"Ints/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    int(0),\n\t\twant:  `0`,\n\t}, {\n\t\tname: name(\"Uints\"),\n\t\tin: []any{\n\t\t\tuint(0), uint8(math.MaxUint8), uint16(math.MaxUint16), uint32(math.MaxUint32), uint64(math.MaxUint64), namedUint64(6464),\n\t\t},\n\t\twant: `[0,255,65535,4294967295,18446744073709551615,6464]`,\n\t}, {\n\t\tname:  name(\"Uints/Stringified\"),\n\t\tmopts: MarshalOptions{StringifyNumbers: true},\n\t\tin: []any{\n\t\t\tuint(0), uint8(math.MaxUint8), uint16(math.MaxUint16), uint32(math.MaxUint32), uint64(math.MaxUint64), namedUint64(6464),\n\t\t},\n\t\twant: `[\"0\",\"255\",\"65535\",\"4294967295\",\"18446744073709551615\",\"6464\"]`,\n\t}, {\n\t\tname:  name(\"Uints/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    uint(0),\n\t\twant:  `0`,\n\t}, {\n\t\tname: name(\"Floats\"),\n\t\tin: []any{\n\t\t\tfloat32(math.MaxFloat32), float64(math.MaxFloat64), namedFloat64(64.64),\n\t\t},\n\t\twant: `[3.4028235e+38,1.7976931348623157e+308,64.64]`,\n\t}, {\n\t\tname:  name(\"Floats/Stringified\"),\n\t\tmopts: MarshalOptions{StringifyNumbers: true},\n\t\tin: []any{\n\t\t\tfloat32(math.MaxFloat32), float64(math.MaxFloat64), namedFloat64(64.64),\n\t\t},\n\t\twant: `[\"3.4028235e+38\",\"1.7976931348623157e+308\",\"64.64\"]`,\n\t}, {\n\t\tname:    name(\"Floats/Invalid/NaN\"),\n\t\tmopts:   MarshalOptions{StringifyNumbers: true},\n\t\tin:      math.NaN(),\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: float64Type, Err: fmt.Errorf(\"invalid value: %v\", math.NaN())},\n\t}, {\n\t\tname:    name(\"Floats/Invalid/PositiveInfinity\"),\n\t\tin:      math.Inf(+1),\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: float64Type, Err: fmt.Errorf(\"invalid value: %v\", math.Inf(+1))},\n\t}, {\n\t\tname:    name(\"Floats/Invalid/NegativeInfinity\"),\n\t\tin:      math.Inf(-1),\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: float64Type, Err: fmt.Errorf(\"invalid value: %v\", math.Inf(-1))},\n\t}, {\n\t\tname:  name(\"Floats/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    float64(0),\n\t\twant:  `0`,\n\t}, {\n\t\tname:    name(\"Maps/InvalidKey/Bool\"),\n\t\tin:      map[bool]string{false: \"value\"},\n\t\twant:    `{`,\n\t\twantErr: errMissingName,\n\t}, {\n\t\tname:    name(\"Maps/InvalidKey/NamedBool\"),\n\t\tin:      map[namedBool]string{false: \"value\"},\n\t\twant:    `{`,\n\t\twantErr: errMissingName,\n\t}, {\n\t\tname:    name(\"Maps/InvalidKey/Array\"),\n\t\tin:      map[[1]string]string{{\"key\"}: \"value\"},\n\t\twant:    `{`,\n\t\twantErr: errMissingName,\n\t}, {\n\t\tname:    name(\"Maps/InvalidKey/Channel\"),\n\t\tin:      map[chan string]string{make(chan string): \"value\"},\n\t\twant:    `{`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: chanStringType},\n\t}, {\n\t\tname:         name(\"Maps/ValidKey/Int\"),\n\t\tin:           map[int64]string{math.MinInt64: \"MinInt64\", 0: \"Zero\", math.MaxInt64: \"MaxInt64\"},\n\t\tcanonicalize: true,\n\t\twant:         `{\"-9223372036854775808\":\"MinInt64\",\"0\":\"Zero\",\"9223372036854775807\":\"MaxInt64\"}`,\n\t}, {\n\t\tname:         name(\"Maps/ValidKey/NamedInt\"),\n\t\tin:           map[namedInt64]string{math.MinInt64: \"MinInt64\", 0: \"Zero\", math.MaxInt64: \"MaxInt64\"},\n\t\tcanonicalize: true,\n\t\twant:         `{\"-9223372036854775808\":\"MinInt64\",\"0\":\"Zero\",\"9223372036854775807\":\"MaxInt64\"}`,\n\t}, {\n\t\tname:         name(\"Maps/ValidKey/Uint\"),\n\t\tin:           map[uint64]string{0: \"Zero\", math.MaxUint64: \"MaxUint64\"},\n\t\tcanonicalize: true,\n\t\twant:         `{\"0\":\"Zero\",\"18446744073709551615\":\"MaxUint64\"}`,\n\t}, {\n\t\tname:         name(\"Maps/ValidKey/NamedUint\"),\n\t\tin:           map[namedUint64]string{0: \"Zero\", math.MaxUint64: \"MaxUint64\"},\n\t\tcanonicalize: true,\n\t\twant:         `{\"0\":\"Zero\",\"18446744073709551615\":\"MaxUint64\"}`,\n\t}, {\n\t\tname: name(\"Maps/ValidKey/Float\"),\n\t\tin:   map[float64]string{3.14159: \"value\"},\n\t\twant: `{\"3.14159\":\"value\"}`,\n\t}, {\n\t\tname:    name(\"Maps/InvalidKey/Float/NaN\"),\n\t\tin:      map[float64]string{math.NaN(): \"NaN\", math.NaN(): \"NaN\"},\n\t\twant:    `{`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: float64Type, Err: errors.New(\"invalid value: NaN\")},\n\t}, {\n\t\tname: name(\"Maps/ValidKey/Interface\"),\n\t\tin: map[any]any{\n\t\t\t\"key\":               \"key\",\n\t\t\tnamedInt64(-64):     int32(-32),\n\t\t\tnamedUint64(+64):    uint32(+32),\n\t\t\tnamedFloat64(64.64): float32(32.32),\n\t\t},\n\t\tcanonicalize: true,\n\t\twant:         `{\"-64\":-32,\"64\":32,\"64.64\":32.32,\"key\":\"key\"}`,\n\t}, {\n\t\tname:  name(\"Maps/DuplicateName/String/AllowInvalidUTF8+AllowDuplicateNames\"),\n\t\teopts: EncodeOptions{AllowInvalidUTF8: true, AllowDuplicateNames: true},\n\t\tin:    map[string]string{\"\\x80\": \"\", \"\\x81\": \"\"},\n\t\twant:  `{\"�\":\"\",\"�\":\"\"}`,\n\t}, {\n\t\tname:    name(\"Maps/DuplicateName/String/AllowInvalidUTF8\"),\n\t\teopts:   EncodeOptions{AllowInvalidUTF8: true},\n\t\tin:      map[string]string{\"\\x80\": \"\", \"\\x81\": \"\"},\n\t\twant:    `{\"�\":\"\"`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"�\" in object`},\n\t}, {\n\t\tname:  name(\"Maps/DuplicateName/NoCaseString/AllowDuplicateNames\"),\n\t\teopts: EncodeOptions{AllowDuplicateNames: true},\n\t\tin:    map[nocaseString]string{\"hello\": \"\", \"HELLO\": \"\"},\n\t\twant:  `{\"hello\":\"\",\"hello\":\"\"}`,\n\t}, {\n\t\tname:    name(\"Maps/DuplicateName/NoCaseString\"),\n\t\tin:      map[nocaseString]string{\"hello\": \"\", \"HELLO\": \"\"},\n\t\twant:    `{\"hello\":\"\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: reflect.TypeOf(nocaseString(\"\")), Err: &SyntacticError{str: `duplicate name \"hello\" in object`}},\n\t}, {\n\t\tname: name(\"Maps/InvalidValue/Channel\"),\n\t\tin: map[string]chan string{\n\t\t\t\"key\": nil,\n\t\t},\n\t\twant:    `{\"key\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: chanStringType},\n\t}, {\n\t\tname:  name(\"Maps/String/Deterministic\"),\n\t\tmopts: MarshalOptions{Deterministic: true},\n\t\tin:    map[string]int{\"a\": 0, \"b\": 1, \"c\": 2},\n\t\twant:  `{\"a\":0,\"b\":1,\"c\":2}`,\n\t}, {\n\t\tname:    name(\"Maps/String/Deterministic+AllowInvalidUTF8+RejectDuplicateNames\"),\n\t\tmopts:   MarshalOptions{Deterministic: true},\n\t\teopts:   EncodeOptions{AllowInvalidUTF8: true, AllowDuplicateNames: false},\n\t\tin:      map[string]int{\"\\xff\": 0, \"\\xfe\": 1},\n\t\twant:    `{\"�\":1`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"�\" in object`},\n\t}, {\n\t\tname:  name(\"Maps/String/Deterministic+AllowInvalidUTF8+AllowDuplicateNames\"),\n\t\tmopts: MarshalOptions{Deterministic: true},\n\t\teopts: EncodeOptions{AllowInvalidUTF8: true, AllowDuplicateNames: true},\n\t\tin:    map[string]int{\"\\xff\": 0, \"\\xfe\": 1},\n\t\twant:  `{\"�\":1,\"�\":0}`,\n\t}, {\n\t\tname: name(\"Maps/String/Deterministic+MarshalFuncs\"),\n\t\tmopts: MarshalOptions{\n\t\t\tDeterministic: true,\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v string) error {\n\t\t\t\tif p := enc.StackPointer(); p != \"/X\" {\n\t\t\t\t\treturn fmt.Errorf(\"invalid stack pointer: got %s, want /X\", p)\n\t\t\t\t}\n\t\t\t\tswitch v {\n\t\t\t\tcase \"a\":\n\t\t\t\t\treturn enc.WriteToken(String(\"b\"))\n\t\t\t\tcase \"b\":\n\t\t\t\t\treturn enc.WriteToken(String(\"a\"))\n\t\t\t\tdefault:\n\t\t\t\t\treturn fmt.Errorf(\"invalid value: %q\", v)\n\t\t\t\t}\n\t\t\t}),\n\t\t},\n\t\tin:   map[namedString]map[string]int{\"X\": {\"a\": -1, \"b\": 1}},\n\t\twant: `{\"X\":{\"a\":1,\"b\":-1}}`,\n\t}, {\n\t\tname: name(\"Maps/String/Deterministic+MarshalFuncs+RejectDuplicateNames\"),\n\t\tmopts: MarshalOptions{\n\t\t\tDeterministic: true,\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v string) error {\n\t\t\t\tif p := enc.StackPointer(); p != \"/X\" {\n\t\t\t\t\treturn fmt.Errorf(\"invalid stack pointer: got %s, want /X\", p)\n\t\t\t\t}\n\t\t\t\tswitch v {\n\t\t\t\tcase \"a\", \"b\":\n\t\t\t\t\treturn enc.WriteToken(String(\"x\"))\n\t\t\t\tdefault:\n\t\t\t\t\treturn fmt.Errorf(\"invalid value: %q\", v)\n\t\t\t\t}\n\t\t\t}),\n\t\t},\n\t\teopts:   EncodeOptions{AllowDuplicateNames: false},\n\t\tin:      map[namedString]map[string]int{\"X\": {\"a\": 1, \"b\": 1}},\n\t\twant:    `{\"X\":{\"x\":1`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"x\" in object`},\n\t}, {\n\t\tname: name(\"Maps/String/Deterministic+MarshalFuncs+AllowDuplicateNames\"),\n\t\tmopts: MarshalOptions{\n\t\t\tDeterministic: true,\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v string) error {\n\t\t\t\tif p := enc.StackPointer(); p != \"/0\" {\n\t\t\t\t\treturn fmt.Errorf(\"invalid stack pointer: got %s, want /0\", p)\n\t\t\t\t}\n\t\t\t\tswitch v {\n\t\t\t\tcase \"a\", \"b\":\n\t\t\t\t\treturn enc.WriteToken(String(\"x\"))\n\t\t\t\tdefault:\n\t\t\t\t\treturn fmt.Errorf(\"invalid value: %q\", v)\n\t\t\t\t}\n\t\t\t}),\n\t\t},\n\t\teopts: EncodeOptions{AllowDuplicateNames: true},\n\t\tin:    map[namedString]map[string]int{\"X\": {\"a\": 1, \"b\": 1}},\n\t\t// NOTE: Since the names are identical, the exact values may be\n\t\t// non-deterministic since sort cannot distinguish between members.\n\t\twant: `{\"X\":{\"x\":1,\"x\":1}}`,\n\t}, {\n\t\tname: name(\"Maps/RecursiveMap\"),\n\t\tin: recursiveMap{\n\t\t\t\"fizz\": {\n\t\t\t\t\"foo\": {},\n\t\t\t\t\"bar\": nil,\n\t\t\t},\n\t\t\t\"buzz\": nil,\n\t\t},\n\t\tcanonicalize: true,\n\t\twant:         `{\"buzz\":{},\"fizz\":{\"bar\":{},\"foo\":{}}}`,\n\t}, {\n\t\tname: name(\"Maps/CyclicMap\"),\n\t\tin: func() recursiveMap {\n\t\t\tm := recursiveMap{\"k\": nil}\n\t\t\tm[\"k\"] = m\n\t\t\treturn m\n\t\t}(),\n\t\twant:    strings.Repeat(`{\"k\":`, startDetectingCyclesAfter) + `{\"k\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: reflect.TypeOf(recursiveMap{}), Err: errors.New(\"encountered a cycle\")},\n\t}, {\n\t\tname:  name(\"Maps/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    map[string]string{},\n\t\twant:  `{}`,\n\t}, {\n\t\tname: name(\"Structs/Empty\"),\n\t\tin:   structEmpty{},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/UnexportedIgnored\"),\n\t\tin:   structUnexportedIgnored{ignored: \"ignored\"},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/IgnoredUnexportedEmbedded\"),\n\t\tin:   structIgnoredUnexportedEmbedded{namedString: \"ignored\"},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/WeirdNames\"),\n\t\tin:   structWeirdNames{Empty: \"empty\", Comma: \"comma\", Quote: \"quote\"},\n\t\twant: `{\"\":\"empty\",\",\":\"comma\",\"\\\"\":\"quote\"}`,\n\t}, {\n\t\tname:  name(\"Structs/EscapedNames\"),\n\t\teopts: EncodeOptions{EscapeRune: func(rune) bool { return true }},\n\t\tin:    structWeirdNames{Empty: \"empty\", Comma: \"comma\", Quote: \"quote\"},\n\t\twant:  `{\"\":\"\\u0065\\u006d\\u0070\\u0074\\u0079\",\"\\u002c\":\"\\u0063\\u006f\\u006d\\u006d\\u0061\",\"\\u0022\":\"\\u0071\\u0075\\u006f\\u0074\\u0065\"}`,\n\t}, {\n\t\tname: name(\"Structs/NoCase\"),\n\t\tin:   structNoCase{AaA: \"AaA\", AAa: \"AAa\", AAA: \"AAA\"},\n\t\twant: `{\"AaA\":\"AaA\",\"AAa\":\"AAa\",\"AAA\":\"AAA\"}`,\n\t}, {\n\t\tname:  name(\"Structs/Normal\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: structAll{\n\t\t\tBool:   true,\n\t\t\tString: \"hello\",\n\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\tInt:    -64,\n\t\t\tUint:   +64,\n\t\t\tFloat:  3.14159,\n\t\t\tMap:    map[string]string{\"key\": \"value\"},\n\t\t\tStructScalars: structScalars{\n\t\t\t\tBool:   true,\n\t\t\t\tString: \"hello\",\n\t\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\t\tInt:    -64,\n\t\t\t\tUint:   +64,\n\t\t\t\tFloat:  3.14159,\n\t\t\t},\n\t\t\tStructMaps: structMaps{\n\t\t\t\tMapBool:   map[string]bool{\"\": true},\n\t\t\t\tMapString: map[string]string{\"\": \"hello\"},\n\t\t\t\tMapBytes:  map[string][]byte{\"\": {1, 2, 3}},\n\t\t\t\tMapInt:    map[string]int64{\"\": -64},\n\t\t\t\tMapUint:   map[string]uint64{\"\": +64},\n\t\t\t\tMapFloat:  map[string]float64{\"\": 3.14159},\n\t\t\t},\n\t\t\tStructSlices: structSlices{\n\t\t\t\tSliceBool:   []bool{true},\n\t\t\t\tSliceString: []string{\"hello\"},\n\t\t\t\tSliceBytes:  [][]byte{{1, 2, 3}},\n\t\t\t\tSliceInt:    []int64{-64},\n\t\t\t\tSliceUint:   []uint64{+64},\n\t\t\t\tSliceFloat:  []float64{3.14159},\n\t\t\t},\n\t\t\tSlice:     []string{\"fizz\", \"buzz\"},\n\t\t\tArray:     [1]string{\"goodbye\"},\n\t\t\tPointer:   new(structAll),\n\t\t\tInterface: (*structAll)(nil),\n\t\t},\n\t\twant: `{\n\t\"Bool\": true,\n\t\"String\": \"hello\",\n\t\"Bytes\": \"AQID\",\n\t\"Int\": -64,\n\t\"Uint\": 64,\n\t\"Float\": 3.14159,\n\t\"Map\": {\n\t\t\"key\": \"value\"\n\t},\n\t\"StructScalars\": {\n\t\t\"Bool\": true,\n\t\t\"String\": \"hello\",\n\t\t\"Bytes\": \"AQID\",\n\t\t\"Int\": -64,\n\t\t\"Uint\": 64,\n\t\t\"Float\": 3.14159\n\t},\n\t\"StructMaps\": {\n\t\t\"MapBool\": {\n\t\t\t\"\": true\n\t\t},\n\t\t\"MapString\": {\n\t\t\t\"\": \"hello\"\n\t\t},\n\t\t\"MapBytes\": {\n\t\t\t\"\": \"AQID\"\n\t\t},\n\t\t\"MapInt\": {\n\t\t\t\"\": -64\n\t\t},\n\t\t\"MapUint\": {\n\t\t\t\"\": 64\n\t\t},\n\t\t\"MapFloat\": {\n\t\t\t\"\": 3.14159\n\t\t}\n\t},\n\t\"StructSlices\": {\n\t\t\"SliceBool\": [\n\t\t\ttrue\n\t\t],\n\t\t\"SliceString\": [\n\t\t\t\"hello\"\n\t\t],\n\t\t\"SliceBytes\": [\n\t\t\t\"AQID\"\n\t\t],\n\t\t\"SliceInt\": [\n\t\t\t-64\n\t\t],\n\t\t\"SliceUint\": [\n\t\t\t64\n\t\t],\n\t\t\"SliceFloat\": [\n\t\t\t3.14159\n\t\t]\n\t},\n\t\"Slice\": [\n\t\t\"fizz\",\n\t\t\"buzz\"\n\t],\n\t\"Array\": [\n\t\t\"goodbye\"\n\t],\n\t\"Pointer\": {\n\t\t\"Bool\": false,\n\t\t\"String\": \"\",\n\t\t\"Bytes\": \"\",\n\t\t\"Int\": 0,\n\t\t\"Uint\": 0,\n\t\t\"Float\": 0,\n\t\t\"Map\": {},\n\t\t\"StructScalars\": {\n\t\t\t\"Bool\": false,\n\t\t\t\"String\": \"\",\n\t\t\t\"Bytes\": \"\",\n\t\t\t\"Int\": 0,\n\t\t\t\"Uint\": 0,\n\t\t\t\"Float\": 0\n\t\t},\n\t\t\"StructMaps\": {\n\t\t\t\"MapBool\": {},\n\t\t\t\"MapString\": {},\n\t\t\t\"MapBytes\": {},\n\t\t\t\"MapInt\": {},\n\t\t\t\"MapUint\": {},\n\t\t\t\"MapFloat\": {}\n\t\t},\n\t\t\"StructSlices\": {\n\t\t\t\"SliceBool\": [],\n\t\t\t\"SliceString\": [],\n\t\t\t\"SliceBytes\": [],\n\t\t\t\"SliceInt\": [],\n\t\t\t\"SliceUint\": [],\n\t\t\t\"SliceFloat\": []\n\t\t},\n\t\t\"Slice\": [],\n\t\t\"Array\": [\n\t\t\t\"\"\n\t\t],\n\t\t\"Pointer\": null,\n\t\t\"Interface\": null\n\t},\n\t\"Interface\": null\n}`,\n\t}, {\n\t\tname:  name(\"Structs/Stringified\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: structStringifiedAll{\n\t\t\tBool:   true,\n\t\t\tString: \"hello\",\n\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\tInt:    -64,     // should be stringified\n\t\t\tUint:   +64,     // should be stringified\n\t\t\tFloat:  3.14159, // should be stringified\n\t\t\tMap:    map[string]string{\"key\": \"value\"},\n\t\t\tStructScalars: structScalars{\n\t\t\t\tBool:   true,\n\t\t\t\tString: \"hello\",\n\t\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\t\tInt:    -64,     // should be stringified\n\t\t\t\tUint:   +64,     // should be stringified\n\t\t\t\tFloat:  3.14159, // should be stringified\n\t\t\t},\n\t\t\tStructMaps: structMaps{\n\t\t\t\tMapBool:   map[string]bool{\"\": true},\n\t\t\t\tMapString: map[string]string{\"\": \"hello\"},\n\t\t\t\tMapBytes:  map[string][]byte{\"\": {1, 2, 3}},\n\t\t\t\tMapInt:    map[string]int64{\"\": -64},       // should be stringified\n\t\t\t\tMapUint:   map[string]uint64{\"\": +64},      // should be stringified\n\t\t\t\tMapFloat:  map[string]float64{\"\": 3.14159}, // should be stringified\n\t\t\t},\n\t\t\tStructSlices: structSlices{\n\t\t\t\tSliceBool:   []bool{true},\n\t\t\t\tSliceString: []string{\"hello\"},\n\t\t\t\tSliceBytes:  [][]byte{{1, 2, 3}},\n\t\t\t\tSliceInt:    []int64{-64},       // should be stringified\n\t\t\t\tSliceUint:   []uint64{+64},      // should be stringified\n\t\t\t\tSliceFloat:  []float64{3.14159}, // should be stringified\n\t\t\t},\n\t\t\tSlice:     []string{\"fizz\", \"buzz\"},\n\t\t\tArray:     [1]string{\"goodbye\"},\n\t\t\tPointer:   new(structStringifiedAll), // should be stringified\n\t\t\tInterface: (*structStringifiedAll)(nil),\n\t\t},\n\t\twant: `{\n\t\"Bool\": true,\n\t\"String\": \"hello\",\n\t\"Bytes\": \"AQID\",\n\t\"Int\": \"-64\",\n\t\"Uint\": \"64\",\n\t\"Float\": \"3.14159\",\n\t\"Map\": {\n\t\t\"key\": \"value\"\n\t},\n\t\"StructScalars\": {\n\t\t\"Bool\": true,\n\t\t\"String\": \"hello\",\n\t\t\"Bytes\": \"AQID\",\n\t\t\"Int\": \"-64\",\n\t\t\"Uint\": \"64\",\n\t\t\"Float\": \"3.14159\"\n\t},\n\t\"StructMaps\": {\n\t\t\"MapBool\": {\n\t\t\t\"\": true\n\t\t},\n\t\t\"MapString\": {\n\t\t\t\"\": \"hello\"\n\t\t},\n\t\t\"MapBytes\": {\n\t\t\t\"\": \"AQID\"\n\t\t},\n\t\t\"MapInt\": {\n\t\t\t\"\": \"-64\"\n\t\t},\n\t\t\"MapUint\": {\n\t\t\t\"\": \"64\"\n\t\t},\n\t\t\"MapFloat\": {\n\t\t\t\"\": \"3.14159\"\n\t\t}\n\t},\n\t\"StructSlices\": {\n\t\t\"SliceBool\": [\n\t\t\ttrue\n\t\t],\n\t\t\"SliceString\": [\n\t\t\t\"hello\"\n\t\t],\n\t\t\"SliceBytes\": [\n\t\t\t\"AQID\"\n\t\t],\n\t\t\"SliceInt\": [\n\t\t\t\"-64\"\n\t\t],\n\t\t\"SliceUint\": [\n\t\t\t\"64\"\n\t\t],\n\t\t\"SliceFloat\": [\n\t\t\t\"3.14159\"\n\t\t]\n\t},\n\t\"Slice\": [\n\t\t\"fizz\",\n\t\t\"buzz\"\n\t],\n\t\"Array\": [\n\t\t\"goodbye\"\n\t],\n\t\"Pointer\": {\n\t\t\"Bool\": false,\n\t\t\"String\": \"\",\n\t\t\"Bytes\": \"\",\n\t\t\"Int\": \"0\",\n\t\t\"Uint\": \"0\",\n\t\t\"Float\": \"0\",\n\t\t\"Map\": {},\n\t\t\"StructScalars\": {\n\t\t\t\"Bool\": false,\n\t\t\t\"String\": \"\",\n\t\t\t\"Bytes\": \"\",\n\t\t\t\"Int\": \"0\",\n\t\t\t\"Uint\": \"0\",\n\t\t\t\"Float\": \"0\"\n\t\t},\n\t\t\"StructMaps\": {\n\t\t\t\"MapBool\": {},\n\t\t\t\"MapString\": {},\n\t\t\t\"MapBytes\": {},\n\t\t\t\"MapInt\": {},\n\t\t\t\"MapUint\": {},\n\t\t\t\"MapFloat\": {}\n\t\t},\n\t\t\"StructSlices\": {\n\t\t\t\"SliceBool\": [],\n\t\t\t\"SliceString\": [],\n\t\t\t\"SliceBytes\": [],\n\t\t\t\"SliceInt\": [],\n\t\t\t\"SliceUint\": [],\n\t\t\t\"SliceFloat\": []\n\t\t},\n\t\t\"Slice\": [],\n\t\t\"Array\": [\n\t\t\t\"\"\n\t\t],\n\t\t\"Pointer\": null,\n\t\t\"Interface\": null\n\t},\n\t\"Interface\": null\n}`,\n\t}, {\n\t\tname:  name(\"Structs/Stringified/Escaped\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\", EscapeRune: func(rune) bool { return true }},\n\t\tin: structStringifiedAll{\n\t\t\tBool:   true,\n\t\t\tString: \"hello\",\n\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\tInt:    -64,     // should be stringified and escaped\n\t\t\tUint:   +64,     // should be stringified and escaped\n\t\t\tFloat:  3.14159, // should be stringified and escaped\n\t\t},\n\t\twant: `{\n\t\"\\u0042\\u006f\\u006f\\u006c\": true,\n\t\"\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\": \"\\u0068\\u0065\\u006c\\u006c\\u006f\",\n\t\"\\u0042\\u0079\\u0074\\u0065\\u0073\": \"\\u0041\\u0051\\u0049\\u0044\",\n\t\"\\u0049\\u006e\\u0074\": \"\\u002d\\u0036\\u0034\",\n\t\"\\u0055\\u0069\\u006e\\u0074\": \"\\u0036\\u0034\",\n\t\"\\u0046\\u006c\\u006f\\u0061\\u0074\": \"\\u0033\\u002e\\u0031\\u0034\\u0031\\u0035\\u0039\",\n\t\"\\u004d\\u0061\\u0070\": {},\n\t\"\\u0053\\u0074\\u0072\\u0075\\u0063\\u0074\\u0053\\u0063\\u0061\\u006c\\u0061\\u0072\\u0073\": {\n\t\t\"\\u0042\\u006f\\u006f\\u006c\": false,\n\t\t\"\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\": \"\",\n\t\t\"\\u0042\\u0079\\u0074\\u0065\\u0073\": \"\",\n\t\t\"\\u0049\\u006e\\u0074\": \"\\u0030\",\n\t\t\"\\u0055\\u0069\\u006e\\u0074\": \"\\u0030\",\n\t\t\"\\u0046\\u006c\\u006f\\u0061\\u0074\": \"\\u0030\"\n\t},\n\t\"\\u0053\\u0074\\u0072\\u0075\\u0063\\u0074\\u004d\\u0061\\u0070\\u0073\": {\n\t\t\"\\u004d\\u0061\\u0070\\u0042\\u006f\\u006f\\u006c\": {},\n\t\t\"\\u004d\\u0061\\u0070\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\": {},\n\t\t\"\\u004d\\u0061\\u0070\\u0042\\u0079\\u0074\\u0065\\u0073\": {},\n\t\t\"\\u004d\\u0061\\u0070\\u0049\\u006e\\u0074\": {},\n\t\t\"\\u004d\\u0061\\u0070\\u0055\\u0069\\u006e\\u0074\": {},\n\t\t\"\\u004d\\u0061\\u0070\\u0046\\u006c\\u006f\\u0061\\u0074\": {}\n\t},\n\t\"\\u0053\\u0074\\u0072\\u0075\\u0063\\u0074\\u0053\\u006c\\u0069\\u0063\\u0065\\u0073\": {\n\t\t\"\\u0053\\u006c\\u0069\\u0063\\u0065\\u0042\\u006f\\u006f\\u006c\": [],\n\t\t\"\\u0053\\u006c\\u0069\\u0063\\u0065\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\": [],\n\t\t\"\\u0053\\u006c\\u0069\\u0063\\u0065\\u0042\\u0079\\u0074\\u0065\\u0073\": [],\n\t\t\"\\u0053\\u006c\\u0069\\u0063\\u0065\\u0049\\u006e\\u0074\": [],\n\t\t\"\\u0053\\u006c\\u0069\\u0063\\u0065\\u0055\\u0069\\u006e\\u0074\": [],\n\t\t\"\\u0053\\u006c\\u0069\\u0063\\u0065\\u0046\\u006c\\u006f\\u0061\\u0074\": []\n\t},\n\t\"\\u0053\\u006c\\u0069\\u0063\\u0065\": [],\n\t\"\\u0041\\u0072\\u0072\\u0061\\u0079\": [\n\t\t\"\"\n\t],\n\t\"\\u0050\\u006f\\u0069\\u006e\\u0074\\u0065\\u0072\": null,\n\t\"\\u0049\\u006e\\u0074\\u0065\\u0072\\u0066\\u0061\\u0063\\u0065\": null\n}`,\n\t}, {\n\t\tname: name(\"Structs/OmitZero/Zero\"),\n\t\tin:   structOmitZeroAll{},\n\t\twant: `{}`,\n\t}, {\n\t\tname:  name(\"Structs/OmitZero/NonZero\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: structOmitZeroAll{\n\t\t\tBool:          true,                                   // not omitted since true is non-zero\n\t\t\tString:        \" \",                                    // not omitted since non-empty string is non-zero\n\t\t\tBytes:         []byte{},                               // not omitted since allocated slice is non-zero\n\t\t\tInt:           1,                                      // not omitted since 1 is non-zero\n\t\t\tUint:          1,                                      // not omitted since 1 is non-zero\n\t\t\tFloat:         math.SmallestNonzeroFloat64,            // not omitted since still slightly above zero\n\t\t\tMap:           map[string]string{},                    // not omitted since allocated map is non-zero\n\t\t\tStructScalars: structScalars{unexported: true},        // not omitted since unexported is non-zero\n\t\t\tStructSlices:  structSlices{Ignored: true},            // not omitted since Ignored is non-zero\n\t\t\tStructMaps:    structMaps{MapBool: map[string]bool{}}, // not omitted since MapBool is non-zero\n\t\t\tSlice:         []string{},                             // not omitted since allocated slice is non-zero\n\t\t\tArray:         [1]string{\" \"},                         // not omitted since single array element is non-zero\n\t\t\tPointer:       new(structOmitZeroAll),                 // not omitted since pointer is non-zero (even if all fields of the struct value are zero)\n\t\t\tInterface:     (*structOmitZeroAll)(nil),              // not omitted since interface value is non-zero (even if interface value is a nil pointer)\n\t\t},\n\t\twant: `{\n\t\"Bool\": true,\n\t\"String\": \" \",\n\t\"Bytes\": \"\",\n\t\"Int\": 1,\n\t\"Uint\": 1,\n\t\"Float\": 5e-324,\n\t\"Map\": {},\n\t\"StructScalars\": {\n\t\t\"Bool\": false,\n\t\t\"String\": \"\",\n\t\t\"Bytes\": \"\",\n\t\t\"Int\": 0,\n\t\t\"Uint\": 0,\n\t\t\"Float\": 0\n\t},\n\t\"StructMaps\": {\n\t\t\"MapBool\": {},\n\t\t\"MapString\": {},\n\t\t\"MapBytes\": {},\n\t\t\"MapInt\": {},\n\t\t\"MapUint\": {},\n\t\t\"MapFloat\": {}\n\t},\n\t\"StructSlices\": {\n\t\t\"SliceBool\": [],\n\t\t\"SliceString\": [],\n\t\t\"SliceBytes\": [],\n\t\t\"SliceInt\": [],\n\t\t\"SliceUint\": [],\n\t\t\"SliceFloat\": []\n\t},\n\t\"Slice\": [],\n\t\"Array\": [\n\t\t\" \"\n\t],\n\t\"Pointer\": {},\n\t\"Interface\": null\n}`,\n\t}, {\n\t\tname: name(\"Structs/OmitZeroMethod/Zero\"),\n\t\tin:   structOmitZeroMethodAll{},\n\t\twant: `{\"ValueNeverZero\":\"\",\"PointerNeverZero\":\"\"}`,\n\t}, {\n\t\tname:  name(\"Structs/OmitZeroMethod/NonZero\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: structOmitZeroMethodAll{\n\t\t\tValueAlwaysZero:                 valueAlwaysZero(\"nonzero\"),\n\t\t\tValueNeverZero:                  valueNeverZero(\"nonzero\"),\n\t\t\tPointerAlwaysZero:               pointerAlwaysZero(\"nonzero\"),\n\t\t\tPointerNeverZero:                pointerNeverZero(\"nonzero\"),\n\t\t\tPointerValueAlwaysZero:          addr(valueAlwaysZero(\"nonzero\")),\n\t\t\tPointerValueNeverZero:           addr(valueNeverZero(\"nonzero\")),\n\t\t\tPointerPointerAlwaysZero:        addr(pointerAlwaysZero(\"nonzero\")),\n\t\t\tPointerPointerNeverZero:         addr(pointerNeverZero(\"nonzero\")),\n\t\t\tPointerPointerValueAlwaysZero:   addr(addr(valueAlwaysZero(\"nonzero\"))), // marshaled since **valueAlwaysZero does not implement IsZero\n\t\t\tPointerPointerValueNeverZero:    addr(addr(valueNeverZero(\"nonzero\"))),\n\t\t\tPointerPointerPointerAlwaysZero: addr(addr(pointerAlwaysZero(\"nonzero\"))), // marshaled since **pointerAlwaysZero does not implement IsZero\n\t\t\tPointerPointerPointerNeverZero:  addr(addr(pointerNeverZero(\"nonzero\"))),\n\t\t},\n\t\twant: `{\n\t\"ValueNeverZero\": \"nonzero\",\n\t\"PointerNeverZero\": \"nonzero\",\n\t\"PointerValueNeverZero\": \"nonzero\",\n\t\"PointerPointerNeverZero\": \"nonzero\",\n\t\"PointerPointerValueAlwaysZero\": \"nonzero\",\n\t\"PointerPointerValueNeverZero\": \"nonzero\",\n\t\"PointerPointerPointerAlwaysZero\": \"nonzero\",\n\t\"PointerPointerPointerNeverZero\": \"nonzero\"\n}`,\n\t}, {\n\t\tname:  name(\"Structs/OmitZeroMethod/Interface/Zero\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin:    structOmitZeroMethodInterfaceAll{},\n\t\twant:  `{}`,\n\t}, {\n\t\tname:  name(\"Structs/OmitZeroMethod/Interface/PartialZero\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: structOmitZeroMethodInterfaceAll{\n\t\t\tValueAlwaysZero:          valueAlwaysZero(\"\"),\n\t\t\tValueNeverZero:           valueNeverZero(\"\"),\n\t\t\tPointerValueAlwaysZero:   (*valueAlwaysZero)(nil),\n\t\t\tPointerValueNeverZero:    (*valueNeverZero)(nil), // nil pointer, so method not called\n\t\t\tPointerPointerAlwaysZero: (*pointerAlwaysZero)(nil),\n\t\t\tPointerPointerNeverZero:  (*pointerNeverZero)(nil), // nil pointer, so method not called\n\t\t},\n\t\twant: `{\n\t\"ValueNeverZero\": \"\"\n}`,\n\t}, {\n\t\tname:  name(\"Structs/OmitZeroMethod/Interface/NonZero\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: structOmitZeroMethodInterfaceAll{\n\t\t\tValueAlwaysZero:          valueAlwaysZero(\"nonzero\"),\n\t\t\tValueNeverZero:           valueNeverZero(\"nonzero\"),\n\t\t\tPointerValueAlwaysZero:   addr(valueAlwaysZero(\"nonzero\")),\n\t\t\tPointerValueNeverZero:    addr(valueNeverZero(\"nonzero\")),\n\t\t\tPointerPointerAlwaysZero: addr(pointerAlwaysZero(\"nonzero\")),\n\t\t\tPointerPointerNeverZero:  addr(pointerNeverZero(\"nonzero\")),\n\t\t},\n\t\twant: `{\n\t\"ValueNeverZero\": \"nonzero\",\n\t\"PointerValueNeverZero\": \"nonzero\",\n\t\"PointerPointerNeverZero\": \"nonzero\"\n}`,\n\t}, {\n\t\tname:  name(\"Structs/OmitEmpty/Zero\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin:    structOmitEmptyAll{},\n\t\twant: `{\n\t\"Bool\": false,\n\t\"StringNonEmpty\": \"value\",\n\t\"BytesNonEmpty\": [\n\t\t\"value\"\n\t],\n\t\"Float\": 0,\n\t\"MapNonEmpty\": {\n\t\t\"key\": \"value\"\n\t},\n\t\"SliceNonEmpty\": [\n\t\t\"value\"\n\t]\n}`,\n\t}, {\n\t\tname:  name(\"Structs/OmitEmpty/EmptyNonZero\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: structOmitEmptyAll{\n\t\t\tString:                string(\"\"),\n\t\t\tStringEmpty:           stringMarshalEmpty(\"\"),\n\t\t\tStringNonEmpty:        stringMarshalNonEmpty(\"\"),\n\t\t\tPointerString:         addr(string(\"\")),\n\t\t\tPointerStringEmpty:    addr(stringMarshalEmpty(\"\")),\n\t\t\tPointerStringNonEmpty: addr(stringMarshalNonEmpty(\"\")),\n\t\t\tBytes:                 []byte(\"\"),\n\t\t\tBytesEmpty:            bytesMarshalEmpty([]byte(\"\")),\n\t\t\tBytesNonEmpty:         bytesMarshalNonEmpty([]byte(\"\")),\n\t\t\tPointerBytes:          addr([]byte(\"\")),\n\t\t\tPointerBytesEmpty:     addr(bytesMarshalEmpty([]byte(\"\"))),\n\t\t\tPointerBytesNonEmpty:  addr(bytesMarshalNonEmpty([]byte(\"\"))),\n\t\t\tMap:                   map[string]string{},\n\t\t\tMapEmpty:              mapMarshalEmpty{},\n\t\t\tMapNonEmpty:           mapMarshalNonEmpty{},\n\t\t\tPointerMap:            addr(map[string]string{}),\n\t\t\tPointerMapEmpty:       addr(mapMarshalEmpty{}),\n\t\t\tPointerMapNonEmpty:    addr(mapMarshalNonEmpty{}),\n\t\t\tSlice:                 []string{},\n\t\t\tSliceEmpty:            sliceMarshalEmpty{},\n\t\t\tSliceNonEmpty:         sliceMarshalNonEmpty{},\n\t\t\tPointerSlice:          addr([]string{}),\n\t\t\tPointerSliceEmpty:     addr(sliceMarshalEmpty{}),\n\t\t\tPointerSliceNonEmpty:  addr(sliceMarshalNonEmpty{}),\n\t\t\tPointer:               &structOmitZeroEmptyAll{},\n\t\t\tInterface:             []string{},\n\t\t},\n\t\twant: `{\n\t\"Bool\": false,\n\t\"StringNonEmpty\": \"value\",\n\t\"PointerStringNonEmpty\": \"value\",\n\t\"BytesNonEmpty\": [\n\t\t\"value\"\n\t],\n\t\"PointerBytesNonEmpty\": [\n\t\t\"value\"\n\t],\n\t\"Float\": 0,\n\t\"MapNonEmpty\": {\n\t\t\"key\": \"value\"\n\t},\n\t\"PointerMapNonEmpty\": {\n\t\t\"key\": \"value\"\n\t},\n\t\"SliceNonEmpty\": [\n\t\t\"value\"\n\t],\n\t\"PointerSliceNonEmpty\": [\n\t\t\"value\"\n\t]\n}`,\n\t}, {\n\t\tname:  name(\"Structs/OmitEmpty/NonEmpty\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: structOmitEmptyAll{\n\t\t\tBool:                  true,\n\t\t\tPointerBool:           addr(true),\n\t\t\tString:                string(\"value\"),\n\t\t\tStringEmpty:           stringMarshalEmpty(\"value\"),\n\t\t\tStringNonEmpty:        stringMarshalNonEmpty(\"value\"),\n\t\t\tPointerString:         addr(string(\"value\")),\n\t\t\tPointerStringEmpty:    addr(stringMarshalEmpty(\"value\")),\n\t\t\tPointerStringNonEmpty: addr(stringMarshalNonEmpty(\"value\")),\n\t\t\tBytes:                 []byte(\"value\"),\n\t\t\tBytesEmpty:            bytesMarshalEmpty([]byte(\"value\")),\n\t\t\tBytesNonEmpty:         bytesMarshalNonEmpty([]byte(\"value\")),\n\t\t\tPointerBytes:          addr([]byte(\"value\")),\n\t\t\tPointerBytesEmpty:     addr(bytesMarshalEmpty([]byte(\"value\"))),\n\t\t\tPointerBytesNonEmpty:  addr(bytesMarshalNonEmpty([]byte(\"value\"))),\n\t\t\tFloat:                 math.Copysign(0, -1),\n\t\t\tPointerFloat:          addr(math.Copysign(0, -1)),\n\t\t\tMap:                   map[string]string{\"\": \"\"},\n\t\t\tMapEmpty:              mapMarshalEmpty{\"key\": \"value\"},\n\t\t\tMapNonEmpty:           mapMarshalNonEmpty{\"key\": \"value\"},\n\t\t\tPointerMap:            addr(map[string]string{\"\": \"\"}),\n\t\t\tPointerMapEmpty:       addr(mapMarshalEmpty{\"key\": \"value\"}),\n\t\t\tPointerMapNonEmpty:    addr(mapMarshalNonEmpty{\"key\": \"value\"}),\n\t\t\tSlice:                 []string{\"\"},\n\t\t\tSliceEmpty:            sliceMarshalEmpty{\"value\"},\n\t\t\tSliceNonEmpty:         sliceMarshalNonEmpty{\"value\"},\n\t\t\tPointerSlice:          addr([]string{\"\"}),\n\t\t\tPointerSliceEmpty:     addr(sliceMarshalEmpty{\"value\"}),\n\t\t\tPointerSliceNonEmpty:  addr(sliceMarshalNonEmpty{\"value\"}),\n\t\t\tPointer:               &structOmitZeroEmptyAll{Float: math.SmallestNonzeroFloat64},\n\t\t\tInterface:             []string{\"\"},\n\t\t},\n\t\twant: `{\n\t\"Bool\": true,\n\t\"PointerBool\": true,\n\t\"String\": \"value\",\n\t\"StringNonEmpty\": \"value\",\n\t\"PointerString\": \"value\",\n\t\"PointerStringNonEmpty\": \"value\",\n\t\"Bytes\": \"dmFsdWU=\",\n\t\"BytesNonEmpty\": [\n\t\t\"value\"\n\t],\n\t\"PointerBytes\": \"dmFsdWU=\",\n\t\"PointerBytesNonEmpty\": [\n\t\t\"value\"\n\t],\n\t\"Float\": -0,\n\t\"PointerFloat\": -0,\n\t\"Map\": {\n\t\t\"\": \"\"\n\t},\n\t\"MapNonEmpty\": {\n\t\t\"key\": \"value\"\n\t},\n\t\"PointerMap\": {\n\t\t\"\": \"\"\n\t},\n\t\"PointerMapNonEmpty\": {\n\t\t\"key\": \"value\"\n\t},\n\t\"Slice\": [\n\t\t\"\"\n\t],\n\t\"SliceNonEmpty\": [\n\t\t\"value\"\n\t],\n\t\"PointerSlice\": [\n\t\t\"\"\n\t],\n\t\"PointerSliceNonEmpty\": [\n\t\t\"value\"\n\t],\n\t\"Pointer\": {\n\t\t\"Float\": 5e-324\n\t},\n\t\"Interface\": [\n\t\t\"\"\n\t]\n}`,\n\t}, {\n\t\tname: name(\"Structs/OmitEmpty/NonEmptyString\"),\n\t\tin: struct {\n\t\t\tX string `json:\",omitempty\"`\n\t\t}{`\"`},\n\t\twant: `{\"X\":\"\\\"\"}`,\n\t}, {\n\t\tname: name(\"Structs/OmitZeroEmpty/Zero\"),\n\t\tin:   structOmitZeroEmptyAll{},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/OmitZeroEmpty/Empty\"),\n\t\tin: structOmitZeroEmptyAll{\n\t\t\tBytes:     []byte{},\n\t\t\tMap:       map[string]string{},\n\t\t\tSlice:     []string{},\n\t\t\tPointer:   &structOmitZeroEmptyAll{},\n\t\t\tInterface: []string{},\n\t\t},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/OmitEmpty/PathologicalDepth\"),\n\t\tin: func() any {\n\t\t\ttype X struct {\n\t\t\t\tX *X `json:\",omitempty\"`\n\t\t\t}\n\t\t\tvar make func(int) *X\n\t\t\tmake = func(n int) *X {\n\t\t\t\tif n == 0 {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\treturn &X{make(n - 1)}\n\t\t\t}\n\t\t\treturn make(100)\n\t\t}(),\n\t\twant:      `{}`,\n\t\tuseWriter: true,\n\t}, {\n\t\tname: name(\"Structs/OmitEmpty/PathologicalBreadth\"),\n\t\tin: func() any {\n\t\t\tvar fields []reflect.StructField\n\t\t\tfor i := 0; i < 100; i++ {\n\t\t\t\tfields = append(fields, reflect.StructField{\n\t\t\t\t\tName: fmt.Sprintf(\"X%d\", i),\n\t\t\t\t\tType: reflect.TypeOf(stringMarshalEmpty(\"\")),\n\t\t\t\t\tTag:  `json:\",omitempty\"`,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn reflect.New(reflect.StructOf(fields)).Interface()\n\t\t}(),\n\t\twant:      `{}`,\n\t\tuseWriter: true,\n\t}, {\n\t\tname: name(\"Structs/OmitEmpty/PathologicalTree\"),\n\t\tin: func() any {\n\t\t\ttype X struct {\n\t\t\t\tXL, XR *X `json:\",omitempty\"`\n\t\t\t}\n\t\t\tvar make func(int) *X\n\t\t\tmake = func(n int) *X {\n\t\t\t\tif n == 0 {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\treturn &X{make(n - 1), make(n - 1)}\n\t\t\t}\n\t\t\treturn make(8)\n\t\t}(),\n\t\twant:      `{}`,\n\t\tuseWriter: true,\n\t}, {\n\t\tname: name(\"Structs/OmitZeroEmpty/NonEmpty\"),\n\t\tin: structOmitZeroEmptyAll{\n\t\t\tBytes:     []byte(\"value\"),\n\t\t\tMap:       map[string]string{\"\": \"\"},\n\t\t\tSlice:     []string{\"\"},\n\t\t\tPointer:   &structOmitZeroEmptyAll{Bool: true},\n\t\t\tInterface: []string{\"\"},\n\t\t},\n\t\twant: `{\"Bytes\":\"dmFsdWU=\",\"Map\":{\"\":\"\"},\"Slice\":[\"\"],\"Pointer\":{\"Bool\":true},\"Interface\":[\"\"]}`,\n\t}, {\n\t\tname:  name(\"Structs/Format/Bytes\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: structFormatBytes{\n\t\t\tBase16:    []byte(\"\\x01\\x23\\x45\\x67\\x89\\xab\\xcd\\xef\"),\n\t\t\tBase32:    []byte(\"\\x00D2\\x14\\xc7BT\\xb65τe:V\\xd7\\xc6u\\xbew\\xdf\"),\n\t\t\tBase32Hex: []byte(\"\\x00D2\\x14\\xc7BT\\xb65τe:V\\xd7\\xc6u\\xbew\\xdf\"),\n\t\t\tBase64:    []byte(\"\\x00\\x10\\x83\\x10Q\\x87 \\x92\\x8b0ӏA\\x14\\x93QU\\x97a\\x96\\x9bqן\\x82\\x18\\xa3\\x92Y\\xa7\\xa2\\x9a\\xab\\xb2ۯ\\xc3\\x1c\\xb3\\xd3]\\xb7㞻\\xf3߿\"),\n\t\t\tBase64URL: []byte(\"\\x00\\x10\\x83\\x10Q\\x87 \\x92\\x8b0ӏA\\x14\\x93QU\\x97a\\x96\\x9bqן\\x82\\x18\\xa3\\x92Y\\xa7\\xa2\\x9a\\xab\\xb2ۯ\\xc3\\x1c\\xb3\\xd3]\\xb7㞻\\xf3߿\"),\n\t\t\tArray:     []byte{1, 2, 3, 4},\n\t\t},\n\t\twant: `{\n\t\"Base16\": \"0123456789abcdef\",\n\t\"Base32\": \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",\n\t\"Base32Hex\": \"0123456789ABCDEFGHIJKLMNOPQRSTUV\",\n\t\"Base64\": \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",\n\t\"Base64URL\": \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\",\n\t\"Array\": [\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t4\n\t]\n}`}, {\n\t\tname: name(\"Structs/Format/Bytes/Array\"),\n\t\tmopts: MarshalOptions{Marshalers: MarshalFuncV1(func(in byte) ([]byte, error) {\n\t\t\tif in > 3 {\n\t\t\t\treturn []byte(\"true\"), nil\n\t\t\t} else {\n\t\t\t\treturn []byte(\"false\"), nil\n\t\t\t}\n\t\t})},\n\t\tin: struct {\n\t\t\tArray []byte `json:\",format:array\"`\n\t\t}{\n\t\t\tArray: []byte{1, 6, 2, 5, 3, 4},\n\t\t},\n\t\twant: `{\"Array\":[false,true,false,true,false,true]}`,\n\t}, {\n\t\tname:  name(\"Structs/Format/Floats\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: []structFormatFloats{\n\t\t\t{NonFinite: math.Pi, PointerNonFinite: addr(math.Pi)},\n\t\t\t{NonFinite: math.NaN(), PointerNonFinite: addr(math.NaN())},\n\t\t\t{NonFinite: math.Inf(-1), PointerNonFinite: addr(math.Inf(-1))},\n\t\t\t{NonFinite: math.Inf(+1), PointerNonFinite: addr(math.Inf(+1))},\n\t\t},\n\t\twant: `[\n\t{\n\t\t\"NonFinite\": 3.141592653589793,\n\t\t\"PointerNonFinite\": 3.141592653589793\n\t},\n\t{\n\t\t\"NonFinite\": \"NaN\",\n\t\t\"PointerNonFinite\": \"NaN\"\n\t},\n\t{\n\t\t\"NonFinite\": \"-Infinity\",\n\t\t\"PointerNonFinite\": \"-Infinity\"\n\t},\n\t{\n\t\t\"NonFinite\": \"Infinity\",\n\t\t\"PointerNonFinite\": \"Infinity\"\n\t}\n]`,\n\t}, {\n\t\tname:  name(\"Structs/Format/Maps\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: []structFormatMaps{\n\t\t\t{EmitNull: nil, PointerEmitNull: new(map[string]string)},\n\t\t\t{EmitNull: map[string]string{}, PointerEmitNull: addr(map[string]string{})},\n\t\t\t{EmitNull: map[string]string{\"k\": \"v\"}, PointerEmitNull: addr(map[string]string{\"k\": \"v\"})},\n\t\t},\n\t\twant: `[\n\t{\n\t\t\"EmitNull\": null,\n\t\t\"PointerEmitNull\": null\n\t},\n\t{\n\t\t\"EmitNull\": {},\n\t\t\"PointerEmitNull\": {}\n\t},\n\t{\n\t\t\"EmitNull\": {\n\t\t\t\"k\": \"v\"\n\t\t},\n\t\t\"PointerEmitNull\": {\n\t\t\t\"k\": \"v\"\n\t\t}\n\t}\n]`,\n\t}, {\n\t\tname:  name(\"Structs/Format/Slices\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: []structFormatSlices{\n\t\t\t{EmitNull: nil, PointerEmitNull: new([]string)},\n\t\t\t{EmitNull: []string{}, PointerEmitNull: addr([]string{})},\n\t\t\t{EmitNull: []string{\"v\"}, PointerEmitNull: addr([]string{\"v\"})},\n\t\t},\n\t\twant: `[\n\t{\n\t\t\"EmitNull\": null,\n\t\t\"PointerEmitNull\": null\n\t},\n\t{\n\t\t\"EmitNull\": [],\n\t\t\"PointerEmitNull\": []\n\t},\n\t{\n\t\t\"EmitNull\": [\n\t\t\t\"v\"\n\t\t],\n\t\t\"PointerEmitNull\": [\n\t\t\t\"v\"\n\t\t]\n\t}\n]`,\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Bool\"),\n\t\tin:      structFormatInvalid{Bool: true},\n\t\twant:    `{\"Bool\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: boolType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/String\"),\n\t\tin:      structFormatInvalid{String: \"string\"},\n\t\twant:    `{\"String\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: stringType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Bytes\"),\n\t\tin:      structFormatInvalid{Bytes: []byte(\"bytes\")},\n\t\twant:    `{\"Bytes\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: bytesType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Int\"),\n\t\tin:      structFormatInvalid{Int: 1},\n\t\twant:    `{\"Int\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: int64Type, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Uint\"),\n\t\tin:      structFormatInvalid{Uint: 1},\n\t\twant:    `{\"Uint\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: uint64Type, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Float\"),\n\t\tin:      structFormatInvalid{Float: 1},\n\t\twant:    `{\"Float\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: float64Type, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Map\"),\n\t\tin:      structFormatInvalid{Map: map[string]string{}},\n\t\twant:    `{\"Map\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: mapStringStringType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Struct\"),\n\t\tin:      structFormatInvalid{Struct: structAll{Bool: true}},\n\t\twant:    `{\"Struct\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: structAllType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Slice\"),\n\t\tin:      structFormatInvalid{Slice: []string{}},\n\t\twant:    `{\"Slice\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: sliceStringType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Array\"),\n\t\tin:      structFormatInvalid{Array: [1]string{\"string\"}},\n\t\twant:    `{\"Array\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: array1StringType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Interface\"),\n\t\tin:      structFormatInvalid{Interface: \"anything\"},\n\t\twant:    `{\"Interface\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: anyType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname: name(\"Structs/Inline/Zero\"),\n\t\tin:   structInlined{},\n\t\twant: `{\"D\":\"\"}`,\n\t}, {\n\t\tname: name(\"Structs/Inline/Alloc\"),\n\t\tin: structInlined{\n\t\t\tX: structInlinedL1{\n\t\t\t\tX:            &structInlinedL2{},\n\t\t\t\tStructEmbed1: StructEmbed1{},\n\t\t\t},\n\t\t\tStructEmbed2: &StructEmbed2{},\n\t\t},\n\t\twant: `{\"A\":\"\",\"B\":\"\",\"D\":\"\",\"E\":\"\",\"F\":\"\",\"G\":\"\"}`,\n\t}, {\n\t\tname: name(\"Structs/Inline/NonZero\"),\n\t\tin: structInlined{\n\t\t\tX: structInlinedL1{\n\t\t\t\tX:            &structInlinedL2{A: \"A1\", B: \"B1\", C: \"C1\"},\n\t\t\t\tStructEmbed1: StructEmbed1{C: \"C2\", D: \"D2\", E: \"E2\"},\n\t\t\t},\n\t\t\tStructEmbed2: &StructEmbed2{E: \"E3\", F: \"F3\", G: \"G3\"},\n\t\t},\n\t\twant: `{\"A\":\"A1\",\"B\":\"B1\",\"D\":\"D2\",\"E\":\"E3\",\"F\":\"F3\",\"G\":\"G3\"}`,\n\t}, {\n\t\tname: name(\"Structs/Inline/DualCycle\"),\n\t\tin: cyclicA{\n\t\t\tB1: cyclicB{F: 1}, // B1.F ignored since it conflicts with B2.F\n\t\t\tB2: cyclicB{F: 2}, // B2.F ignored since it conflicts with B1.F\n\t\t},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/RawValue/Nil\"),\n\t\tin:   structInlineRawValue{X: RawValue(nil)},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/RawValue/Empty\"),\n\t\tin:   structInlineRawValue{X: RawValue(\"\")},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/RawValue/NonEmptyN1\"),\n\t\tin:   structInlineRawValue{X: RawValue(` { \"fizz\" : \"buzz\" } `)},\n\t\twant: `{\"fizz\":\"buzz\"}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/RawValue/NonEmptyN2\"),\n\t\tin:   structInlineRawValue{X: RawValue(` { \"fizz\" : \"buzz\" , \"foo\" : \"bar\" } `)},\n\t\twant: `{\"fizz\":\"buzz\",\"foo\":\"bar\"}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/RawValue/NonEmptyWithOthers\"),\n\t\tin: structInlineRawValue{\n\t\t\tA: 1,\n\t\t\tX: RawValue(` { \"fizz\" : \"buzz\" , \"foo\" : \"bar\" } `),\n\t\t\tB: 2,\n\t\t},\n\t\t// NOTE: Inlined fallback fields are always serialized last.\n\t\twant: `{\"A\":1,\"B\":2,\"fizz\":\"buzz\",\"foo\":\"bar\"}`,\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/RawValue/RejectDuplicateNames\"),\n\t\teopts:   EncodeOptions{AllowDuplicateNames: false},\n\t\tin:      structInlineRawValue{X: RawValue(` { \"fizz\" : \"buzz\" , \"fizz\" : \"buzz\" } `)},\n\t\twant:    `{\"fizz\":\"buzz\"`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"fizz\" in object`},\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/AllowDuplicateNames\"),\n\t\teopts: EncodeOptions{AllowDuplicateNames: true},\n\t\tin:    structInlineRawValue{X: RawValue(` { \"fizz\" : \"buzz\" , \"fizz\" : \"buzz\" } `)},\n\t\twant:  `{\"fizz\":\"buzz\",\"fizz\":\"buzz\"}`,\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/RawValue/RejectInvalidUTF8\"),\n\t\teopts:   EncodeOptions{AllowInvalidUTF8: false},\n\t\tin:      structInlineRawValue{X: RawValue(`{\"` + \"\\xde\\xad\\xbe\\xef\" + `\":\"value\"}`)},\n\t\twant:    `{`,\n\t\twantErr: &SyntacticError{str: \"invalid UTF-8 within string\"},\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/AllowInvalidUTF8\"),\n\t\teopts: EncodeOptions{AllowInvalidUTF8: true},\n\t\tin:    structInlineRawValue{X: RawValue(`{\"` + \"\\xde\\xad\\xbe\\xef\" + `\":\"value\"}`)},\n\t\twant:  `{\"ޭ��\":\"value\"}`,\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/RawValue/InvalidWhitespace\"),\n\t\tin:      structInlineRawValue{X: RawValue(\"\\n\\r\\t \")},\n\t\twant:    `{`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: rawValueType, Err: io.EOF},\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/RawValue/InvalidObject\"),\n\t\tin:      structInlineRawValue{X: RawValue(` true `)},\n\t\twant:    `{`,\n\t\twantErr: &SemanticError{action: \"marshal\", JSONKind: 't', GoType: rawValueType, Err: errors.New(\"inlined raw value must be a JSON object\")},\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/RawValue/InvalidObjectName\"),\n\t\tin:      structInlineRawValue{X: RawValue(` { true : false } `)},\n\t\twant:    `{`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: rawValueType, Err: errMissingName.withOffset(int64(len(\" { \")))},\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/RawValue/InvalidObjectEnd\"),\n\t\tin:      structInlineRawValue{X: RawValue(` { \"name\" : false , } `)},\n\t\twant:    `{\"name\":false`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: rawValueType, Err: newInvalidCharacterError([]byte(\",\"), \"before next token\").withOffset(int64(len(` { \"name\" : false `)))},\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/RawValue/InvalidDualObject\"),\n\t\tin:      structInlineRawValue{X: RawValue(`{}{}`)},\n\t\twant:    `{`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: rawValueType, Err: newInvalidCharacterError([]byte(\"{\"), \"after top-level value\")},\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/RawValue/Nested/Nil\"),\n\t\tin:   structInlinePointerInlineRawValue{},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/PointerRawValue/Nil\"),\n\t\tin:   structInlinePointerRawValue{},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/PointerRawValue/NonEmpty\"),\n\t\tin:   structInlinePointerRawValue{X: addr(RawValue(` { \"fizz\" : \"buzz\" } `))},\n\t\twant: `{\"fizz\":\"buzz\"}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/PointerRawValue/Nested/Nil\"),\n\t\tin:   structInlineInlinePointerRawValue{},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/MapStringAny/Nil\"),\n\t\tin:   structInlineMapStringAny{X: nil},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/MapStringAny/Empty\"),\n\t\tin:   structInlineMapStringAny{X: make(jsonObject)},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/MapStringAny/NonEmptyN1\"),\n\t\tin:   structInlineMapStringAny{X: jsonObject{\"fizz\": nil}},\n\t\twant: `{\"fizz\":null}`,\n\t}, {\n\t\tname:         name(\"Structs/InlinedFallback/MapStringAny/NonEmptyN2\"),\n\t\tin:           structInlineMapStringAny{X: jsonObject{\"fizz\": time.Time{}, \"buzz\": math.Pi}},\n\t\twant:         `{\"buzz\":3.141592653589793,\"fizz\":\"0001-01-01T00:00:00Z\"}`,\n\t\tcanonicalize: true,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/MapStringAny/NonEmptyWithOthers\"),\n\t\tin: structInlineMapStringAny{\n\t\t\tA: 1,\n\t\t\tX: jsonObject{\"fizz\": nil},\n\t\t\tB: 2,\n\t\t},\n\t\t// NOTE: Inlined fallback fields are always serialized last.\n\t\twant: `{\"A\":1,\"B\":2,\"fizz\":null}`,\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/MapStringAny/RejectInvalidUTF8\"),\n\t\teopts:   EncodeOptions{AllowInvalidUTF8: false},\n\t\tin:      structInlineMapStringAny{X: jsonObject{\"\\xde\\xad\\xbe\\xef\": nil}},\n\t\twant:    `{`,\n\t\twantErr: &SyntacticError{str: \"invalid UTF-8 within string\"},\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringAny/AllowInvalidUTF8\"),\n\t\teopts: EncodeOptions{AllowInvalidUTF8: true},\n\t\tin:    structInlineMapStringAny{X: jsonObject{\"\\xde\\xad\\xbe\\xef\": nil}},\n\t\twant:  `{\"ޭ��\":null}`,\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/MapStringAny/InvalidValue\"),\n\t\teopts:   EncodeOptions{AllowInvalidUTF8: true},\n\t\tin:      structInlineMapStringAny{X: jsonObject{\"name\": make(chan string)}},\n\t\twant:    `{\"name\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: chanStringType},\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/MapStringAny/Nested/Nil\"),\n\t\tin:   structInlinePointerInlineMapStringAny{},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/MapStringAny/MarshalFuncV1\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(v float64) ([]byte, error) {\n\t\t\t\treturn []byte(fmt.Sprintf(`\"%v\"`, v)), nil\n\t\t\t}),\n\t\t},\n\t\tin:   structInlineMapStringAny{X: jsonObject{\"fizz\": 3.14159}},\n\t\twant: `{\"fizz\":\"3.14159\"}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/PointerMapStringAny/Nil\"),\n\t\tin:   structInlinePointerMapStringAny{X: nil},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/PointerMapStringAny/NonEmpty\"),\n\t\tin:   structInlinePointerMapStringAny{X: addr(jsonObject{\"name\": \"value\"})},\n\t\twant: `{\"name\":\"value\"}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/PointerMapStringAny/Nested/Nil\"),\n\t\tin:   structInlineInlinePointerMapStringAny{},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/MapStringInt\"),\n\t\tin: structInlineMapStringInt{\n\t\t\tX: map[string]int{\"zero\": 0, \"one\": 1, \"two\": 2},\n\t\t},\n\t\twant:         `{\"one\":1,\"two\":2,\"zero\":0}`,\n\t\tcanonicalize: true,\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringInt/Deterministic\"),\n\t\tmopts: MarshalOptions{Deterministic: true},\n\t\tin: structInlineMapStringInt{\n\t\t\tX: map[string]int{\"zero\": 0, \"one\": 1, \"two\": 2},\n\t\t},\n\t\twant: `{\"one\":1,\"two\":2,\"zero\":0}`,\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringInt/Deterministic+AllowInvalidUTF8+RejectDuplicateNames\"),\n\t\tmopts: MarshalOptions{Deterministic: true},\n\t\teopts: EncodeOptions{AllowInvalidUTF8: true, AllowDuplicateNames: false},\n\t\tin: structInlineMapStringInt{\n\t\t\tX: map[string]int{\"\\xff\": 0, \"\\xfe\": 1},\n\t\t},\n\t\twant:    `{\"�\":1`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"�\" in object`},\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringInt/Deterministic+AllowInvalidUTF8+AllowDuplicateNames\"),\n\t\tmopts: MarshalOptions{Deterministic: true},\n\t\teopts: EncodeOptions{AllowInvalidUTF8: true, AllowDuplicateNames: true},\n\t\tin: structInlineMapStringInt{\n\t\t\tX: map[string]int{\"\\xff\": 0, \"\\xfe\": 1},\n\t\t},\n\t\twant: `{\"�\":1,\"�\":0}`,\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringInt/StringifiedNumbers\"),\n\t\tmopts: MarshalOptions{StringifyNumbers: true},\n\t\tin: structInlineMapStringInt{\n\t\t\tX: map[string]int{\"zero\": 0, \"one\": 1, \"two\": 2},\n\t\t},\n\t\twant:         `{\"one\":\"1\",\"two\":\"2\",\"zero\":\"0\"}`,\n\t\tcanonicalize: true,\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/MapStringInt/MarshalFuncV1\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: NewMarshalers(\n\t\t\t\t// Marshalers do not affect the string key of inlined maps.\n\t\t\t\tMarshalFuncV1(func(v string) ([]byte, error) {\n\t\t\t\t\treturn []byte(fmt.Sprintf(`\"%q\"`, strings.ToUpper(v))), nil\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV1(func(v int) ([]byte, error) {\n\t\t\t\t\treturn []byte(fmt.Sprintf(`\"%v\"`, v)), nil\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tin: structInlineMapStringInt{\n\t\t\tX: map[string]int{\"zero\": 0, \"one\": 1, \"two\": 2},\n\t\t},\n\t\twant:         `{\"one\":\"1\",\"two\":\"2\",\"zero\":\"0\"}`,\n\t\tcanonicalize: true,\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/DiscardUnknownMembers\"),\n\t\tmopts: MarshalOptions{DiscardUnknownMembers: true},\n\t\tin: structInlineRawValue{\n\t\t\tA: 1,\n\t\t\tX: RawValue(` { \"fizz\" : \"buzz\" } `),\n\t\t\tB: 2,\n\t\t},\n\t\t// NOTE: DiscardUnknownMembers has no effect since this is \"inline\".\n\t\twant: `{\"A\":1,\"B\":2,\"fizz\":\"buzz\"}`,\n\t}, {\n\t\tname:  name(\"Structs/UnknownFallback/DiscardUnknownMembers\"),\n\t\tmopts: MarshalOptions{DiscardUnknownMembers: true},\n\t\tin: structUnknownRawValue{\n\t\t\tA: 1,\n\t\t\tX: RawValue(` { \"fizz\" : \"buzz\" } `),\n\t\t\tB: 2,\n\t\t},\n\t\twant: `{\"A\":1,\"B\":2}`,\n\t}, {\n\t\tname: name(\"Structs/UnknownFallback\"),\n\t\tin: structUnknownRawValue{\n\t\t\tA: 1,\n\t\t\tX: RawValue(` { \"fizz\" : \"buzz\" } `),\n\t\t\tB: 2,\n\t\t},\n\t\twant: `{\"A\":1,\"B\":2,\"fizz\":\"buzz\"}`,\n\t}, {\n\t\tname: name(\"Structs/DuplicateName/NoCaseInlineRawValue/Other\"),\n\t\tin: structNoCaseInlineRawValue{\n\t\t\tX: RawValue(`{\"dupe\":\"\",\"dupe\":\"\"}`),\n\t\t},\n\t\twant:    `{\"dupe\":\"\"`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"dupe\" in object`},\n\t}, {\n\t\tname:  name(\"Structs/DuplicateName/NoCaseInlineRawValue/Other/AllowDuplicateNames\"),\n\t\teopts: EncodeOptions{AllowDuplicateNames: true},\n\t\tin: structNoCaseInlineRawValue{\n\t\t\tX: RawValue(`{\"dupe\": \"\", \"dupe\": \"\"}`),\n\t\t},\n\t\twant: `{\"dupe\":\"\",\"dupe\":\"\"}`,\n\t}, {\n\t\tname: name(\"Structs/DuplicateName/NoCaseInlineRawValue/ExactDifferent\"),\n\t\tin: structNoCaseInlineRawValue{\n\t\t\tX: RawValue(`{\"Aaa\": \"\", \"AaA\": \"\", \"AAa\": \"\", \"AAA\": \"\"}`),\n\t\t},\n\t\twant: `{\"Aaa\":\"\",\"AaA\":\"\",\"AAa\":\"\",\"AAA\":\"\"}`,\n\t}, {\n\t\tname: name(\"Structs/DuplicateName/NoCaseInlineRawValue/ExactConflict\"),\n\t\tin: structNoCaseInlineRawValue{\n\t\t\tX: RawValue(`{\"Aaa\": \"\", \"Aaa\": \"\"}`),\n\t\t},\n\t\twant:    `{\"Aaa\":\"\"`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"Aaa\" in object`},\n\t}, {\n\t\tname:  name(\"Structs/DuplicateName/NoCaseInlineRawValue/ExactConflict/AllowDuplicateNames\"),\n\t\teopts: EncodeOptions{AllowDuplicateNames: true},\n\t\tin: structNoCaseInlineRawValue{\n\t\t\tX: RawValue(`{\"Aaa\": \"\", \"Aaa\": \"\"}`),\n\t\t},\n\t\twant: `{\"Aaa\":\"\",\"Aaa\":\"\"}`,\n\t}, {\n\t\tname: name(\"Structs/DuplicateName/NoCaseInlineRawValue/NoCaseConflict\"),\n\t\tin: structNoCaseInlineRawValue{\n\t\t\tX: RawValue(`{\"Aaa\": \"\", \"AaA\": \"\", \"aaa\": \"\"}`),\n\t\t},\n\t\twant:    `{\"Aaa\":\"\",\"AaA\":\"\"`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"aaa\" in object`},\n\t}, {\n\t\tname:  name(\"Structs/DuplicateName/NoCaseInlineRawValue/NoCaseConflict/AllowDuplicateNames\"),\n\t\teopts: EncodeOptions{AllowDuplicateNames: true},\n\t\tin: structNoCaseInlineRawValue{\n\t\t\tX: RawValue(`{\"Aaa\": \"\", \"AaA\": \"\", \"aaa\": \"\"}`),\n\t\t},\n\t\twant: `{\"Aaa\":\"\",\"AaA\":\"\",\"aaa\":\"\"}`,\n\t}, {\n\t\tname: name(\"Structs/DuplicateName/NoCaseInlineRawValue/ExactDifferentWithField\"),\n\t\tin: structNoCaseInlineRawValue{\n\t\t\tAAA: \"x\",\n\t\t\tAaA: \"x\",\n\t\t\tX:   RawValue(`{\"Aaa\": \"\"}`),\n\t\t},\n\t\twant: `{\"AAA\":\"x\",\"AaA\":\"x\",\"Aaa\":\"\"}`,\n\t}, {\n\t\tname: name(\"Structs/DuplicateName/NoCaseInlineRawValue/ExactConflictWithField\"),\n\t\tin: structNoCaseInlineRawValue{\n\t\t\tAAA: \"x\",\n\t\t\tAaA: \"x\",\n\t\t\tX:   RawValue(`{\"AAA\": \"\"}`),\n\t\t},\n\t\twant:    `{\"AAA\":\"x\",\"AaA\":\"x\"`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"AAA\" in object`},\n\t}, {\n\t\tname: name(\"Structs/DuplicateName/NoCaseInlineRawValue/NoCaseConflictWithField\"),\n\t\tin: structNoCaseInlineRawValue{\n\t\t\tAAA: \"x\",\n\t\t\tAaA: \"x\",\n\t\t\tX:   RawValue(`{\"aaa\": \"\"}`),\n\t\t},\n\t\twant:    `{\"AAA\":\"x\",\"AaA\":\"x\"`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"aaa\" in object`},\n\t}, {\n\t\tname: name(\"Structs/DuplicateName/NoCaseInlineMapStringAny/ExactDifferent\"),\n\t\tin: structNoCaseInlineMapStringAny{\n\t\t\tX: jsonObject{\"Aaa\": \"\", \"AaA\": \"\", \"AAa\": \"\", \"AAA\": \"\"},\n\t\t},\n\t\twant:         `{\"AAA\":\"\",\"AAa\":\"\",\"AaA\":\"\",\"Aaa\":\"\"}`,\n\t\tcanonicalize: true,\n\t}, {\n\t\tname: name(\"Structs/DuplicateName/NoCaseInlineMapStringAny/ExactDifferentWithField\"),\n\t\tin: structNoCaseInlineMapStringAny{\n\t\t\tAAA: \"x\",\n\t\t\tAaA: \"x\",\n\t\t\tX:   jsonObject{\"Aaa\": \"\"},\n\t\t},\n\t\twant: `{\"AAA\":\"x\",\"AaA\":\"x\",\"Aaa\":\"\"}`,\n\t}, {\n\t\tname: name(\"Structs/DuplicateName/NoCaseInlineMapStringAny/ExactConflictWithField\"),\n\t\tin: structNoCaseInlineMapStringAny{\n\t\t\tAAA: \"x\",\n\t\t\tAaA: \"x\",\n\t\t\tX:   jsonObject{\"AAA\": \"\"},\n\t\t},\n\t\twant:    `{\"AAA\":\"x\",\"AaA\":\"x\"`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"AAA\" in object`},\n\t}, {\n\t\tname: name(\"Structs/DuplicateName/NoCaseInlineMapStringAny/NoCaseConflictWithField\"),\n\t\tin: structNoCaseInlineMapStringAny{\n\t\t\tAAA: \"x\",\n\t\t\tAaA: \"x\",\n\t\t\tX:   jsonObject{\"aaa\": \"\"},\n\t\t},\n\t\twant:    `{\"AAA\":\"x\",\"AaA\":\"x\"`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"aaa\" in object`},\n\t}, {\n\t\tname:    name(\"Structs/Invalid/Conflicting\"),\n\t\tin:      structConflicting{},\n\t\twant:    ``,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: structConflictingType, Err: errors.New(\"Go struct fields A and B conflict over JSON object name \\\"conflict\\\"\")},\n\t}, {\n\t\tname:    name(\"Structs/Invalid/NoneExported\"),\n\t\tin:      structNoneExported{},\n\t\twant:    ``,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: structNoneExportedType, Err: errors.New(\"Go struct has no exported fields\")},\n\t}, {\n\t\tname:    name(\"Structs/Invalid/MalformedTag\"),\n\t\tin:      structMalformedTag{},\n\t\twant:    ``,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: structMalformedTagType, Err: errors.New(\"Go struct field Malformed has malformed `json` tag: invalid character '\\\"' at start of option (expecting Unicode letter or single quote)\")},\n\t}, {\n\t\tname:    name(\"Structs/Invalid/UnexportedTag\"),\n\t\tin:      structUnexportedTag{},\n\t\twant:    ``,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: structUnexportedTagType, Err: errors.New(\"unexported Go struct field unexported cannot have non-ignored `json:\\\"name\\\"` tag\")},\n\t}, {\n\t\tname:    name(\"Structs/Invalid/UnexportedEmbedded\"),\n\t\tin:      structUnexportedEmbedded{},\n\t\twant:    ``,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: structUnexportedEmbeddedType, Err: errors.New(\"embedded Go struct field namedString of an unexported type must be explicitly ignored with a `json:\\\"-\\\"` tag\")},\n\t}, {\n\t\tname:  name(\"Structs/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    struct{}{},\n\t\twant:  `{}`,\n\t}, {\n\t\tname: name(\"Slices/Interface\"),\n\t\tin: []any{\n\t\t\tfalse, true,\n\t\t\t\"hello\", []byte(\"world\"),\n\t\t\tint32(-32), namedInt64(-64),\n\t\t\tuint32(+32), namedUint64(+64),\n\t\t\tfloat32(32.32), namedFloat64(64.64),\n\t\t},\n\t\twant: `[false,true,\"hello\",\"d29ybGQ=\",-32,-64,32,64,32.32,64.64]`,\n\t}, {\n\t\tname:    name(\"Slices/Invalid/Channel\"),\n\t\tin:      [](chan string){nil},\n\t\twant:    `[`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: chanStringType},\n\t}, {\n\t\tname: name(\"Slices/RecursiveSlice\"),\n\t\tin: recursiveSlice{\n\t\t\tnil,\n\t\t\t{},\n\t\t\t{nil},\n\t\t\t{nil, {}},\n\t\t},\n\t\twant: `[[],[],[[]],[[],[]]]`,\n\t}, {\n\t\tname: name(\"Slices/CyclicSlice\"),\n\t\tin: func() recursiveSlice {\n\t\t\ts := recursiveSlice{{}}\n\t\t\ts[0] = s\n\t\t\treturn s\n\t\t}(),\n\t\twant:    strings.Repeat(`[`, startDetectingCyclesAfter) + `[`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: reflect.TypeOf(recursiveSlice{}), Err: errors.New(\"encountered a cycle\")},\n\t}, {\n\t\tname:  name(\"Slices/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    []string{\"hello\", \"goodbye\"},\n\t\twant:  `[\"hello\",\"goodbye\"]`,\n\t}, {\n\t\tname: name(\"Arrays/Empty\"),\n\t\tin:   [0]struct{}{},\n\t\twant: `[]`,\n\t}, {\n\t\tname: name(\"Arrays/Bool\"),\n\t\tin:   [2]bool{false, true},\n\t\twant: `[false,true]`,\n\t}, {\n\t\tname: name(\"Arrays/String\"),\n\t\tin:   [2]string{\"hello\", \"goodbye\"},\n\t\twant: `[\"hello\",\"goodbye\"]`,\n\t}, {\n\t\tname: name(\"Arrays/Bytes\"),\n\t\tin:   [2][]byte{[]byte(\"hello\"), []byte(\"goodbye\")},\n\t\twant: `[\"aGVsbG8=\",\"Z29vZGJ5ZQ==\"]`,\n\t}, {\n\t\tname: name(\"Arrays/Int\"),\n\t\tin:   [2]int64{math.MinInt64, math.MaxInt64},\n\t\twant: `[-9223372036854775808,9223372036854775807]`,\n\t}, {\n\t\tname: name(\"Arrays/Uint\"),\n\t\tin:   [2]uint64{0, math.MaxUint64},\n\t\twant: `[0,18446744073709551615]`,\n\t}, {\n\t\tname: name(\"Arrays/Float\"),\n\t\tin:   [2]float64{-math.MaxFloat64, +math.MaxFloat64},\n\t\twant: `[-1.7976931348623157e+308,1.7976931348623157e+308]`,\n\t}, {\n\t\tname:    name(\"Arrays/Invalid/Channel\"),\n\t\tin:      new([1]chan string),\n\t\twant:    `[`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: chanStringType},\n\t}, {\n\t\tname:  name(\"Arrays/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    [2]string{\"hello\", \"goodbye\"},\n\t\twant:  `[\"hello\",\"goodbye\"]`,\n\t}, {\n\t\tname: name(\"Pointers/NilL0\"),\n\t\tin:   (*int)(nil),\n\t\twant: `null`,\n\t}, {\n\t\tname: name(\"Pointers/NilL1\"),\n\t\tin:   new(*int),\n\t\twant: `null`,\n\t}, {\n\t\tname: name(\"Pointers/Bool\"),\n\t\tin:   addr(addr(bool(true))),\n\t\twant: `true`,\n\t}, {\n\t\tname: name(\"Pointers/String\"),\n\t\tin:   addr(addr(string(\"string\"))),\n\t\twant: `\"string\"`,\n\t}, {\n\t\tname: name(\"Pointers/Bytes\"),\n\t\tin:   addr(addr([]byte(\"bytes\"))),\n\t\twant: `\"Ynl0ZXM=\"`,\n\t}, {\n\t\tname: name(\"Pointers/Int\"),\n\t\tin:   addr(addr(int(-100))),\n\t\twant: `-100`,\n\t}, {\n\t\tname: name(\"Pointers/Uint\"),\n\t\tin:   addr(addr(uint(100))),\n\t\twant: `100`,\n\t}, {\n\t\tname: name(\"Pointers/Float\"),\n\t\tin:   addr(addr(float64(3.14159))),\n\t\twant: `3.14159`,\n\t}, {\n\t\tname: name(\"Pointers/CyclicPointer\"),\n\t\tin: func() *recursivePointer {\n\t\t\tp := new(recursivePointer)\n\t\t\tp.P = p\n\t\t\treturn p\n\t\t}(),\n\t\twant:    strings.Repeat(`{\"P\":`, startDetectingCyclesAfter) + `{\"P\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: reflect.TypeOf((*recursivePointer)(nil)), Err: errors.New(\"encountered a cycle\")},\n\t}, {\n\t\tname:  name(\"Pointers/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    addr(addr(bool(true))),\n\t\twant:  `true`,\n\t}, {\n\t\tname: name(\"Interfaces/Nil/Empty\"),\n\t\tin:   [1]any{nil},\n\t\twant: `[null]`,\n\t}, {\n\t\tname: name(\"Interfaces/Nil/NonEmpty\"),\n\t\tin:   [1]io.Reader{nil},\n\t\twant: `[null]`,\n\t}, {\n\t\tname:  name(\"Interfaces/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    [1]io.Reader{nil},\n\t\twant:  `[null]`,\n\t}, {\n\t\tname: name(\"Interfaces/Any\"),\n\t\tin:   struct{ X any }{[]any{nil, false, \"\", 0.0, map[string]any{}, []any{}, [8]byte{}}},\n\t\twant: `{\"X\":[null,false,\"\",0,{},[],\"AAAAAAAAAAA=\"]}`,\n\t}, {\n\t\tname: name(\"Interfaces/Any/Named\"),\n\t\tin:   struct{ X namedAny }{[]namedAny{nil, false, \"\", 0.0, map[string]namedAny{}, []namedAny{}, [8]byte{}}},\n\t\twant: `{\"X\":[null,false,\"\",0,{},[],\"AAAAAAAAAAA=\"]}`,\n\t}, {\n\t\tname:  name(\"Interfaces/Any/Stringified\"),\n\t\tmopts: MarshalOptions{StringifyNumbers: true},\n\t\tin:    struct{ X any }{0.0},\n\t\twant:  `{\"X\":\"0\"}`,\n\t}, {\n\t\tname: name(\"Interfaces/Any/MarshalFunc/Any\"),\n\t\tmopts: MarshalOptions{Marshalers: MarshalFuncV1(func(v any) ([]byte, error) {\n\t\t\treturn []byte(`\"called\"`), nil\n\t\t})},\n\t\tin:   struct{ X any }{[]any{nil, false, \"\", 0.0, map[string]any{}, []any{}}},\n\t\twant: `\"called\"`,\n\t}, {\n\t\tname: name(\"Interfaces/Any/MarshalFunc/Bool\"),\n\t\tmopts: MarshalOptions{Marshalers: MarshalFuncV1(func(v bool) ([]byte, error) {\n\t\t\treturn []byte(`\"called\"`), nil\n\t\t})},\n\t\tin:   struct{ X any }{[]any{nil, false, \"\", 0.0, map[string]any{}, []any{}}},\n\t\twant: `{\"X\":[null,\"called\",\"\",0,{},[]]}`,\n\t}, {\n\t\tname: name(\"Interfaces/Any/MarshalFunc/String\"),\n\t\tmopts: MarshalOptions{Marshalers: MarshalFuncV1(func(v string) ([]byte, error) {\n\t\t\treturn []byte(`\"called\"`), nil\n\t\t})},\n\t\tin:   struct{ X any }{[]any{nil, false, \"\", 0.0, map[string]any{}, []any{}}},\n\t\twant: `{\"X\":[null,false,\"called\",0,{},[]]}`,\n\t}, {\n\t\tname: name(\"Interfaces/Any/MarshalFunc/Float64\"),\n\t\tmopts: MarshalOptions{Marshalers: MarshalFuncV1(func(v float64) ([]byte, error) {\n\t\t\treturn []byte(`\"called\"`), nil\n\t\t})},\n\t\tin:   struct{ X any }{[]any{nil, false, \"\", 0.0, map[string]any{}, []any{}}},\n\t\twant: `{\"X\":[null,false,\"\",\"called\",{},[]]}`,\n\t}, {\n\t\tname: name(\"Interfaces/Any/MarshalFunc/MapStringAny\"),\n\t\tmopts: MarshalOptions{Marshalers: MarshalFuncV1(func(v map[string]any) ([]byte, error) {\n\t\t\treturn []byte(`\"called\"`), nil\n\t\t})},\n\t\tin:   struct{ X any }{[]any{nil, false, \"\", 0.0, map[string]any{}, []any{}}},\n\t\twant: `{\"X\":[null,false,\"\",0,\"called\",[]]}`,\n\t}, {\n\t\tname: name(\"Interfaces/Any/MarshalFunc/SliceAny\"),\n\t\tmopts: MarshalOptions{Marshalers: MarshalFuncV1(func(v []any) ([]byte, error) {\n\t\t\treturn []byte(`\"called\"`), nil\n\t\t})},\n\t\tin:   struct{ X any }{[]any{nil, false, \"\", 0.0, map[string]any{}, []any{}}},\n\t\twant: `{\"X\":\"called\"}`,\n\t}, {\n\t\tname: name(\"Interfaces/Any/MarshalFunc/Bytes\"),\n\t\tmopts: MarshalOptions{Marshalers: MarshalFuncV1(func(v [8]byte) ([]byte, error) {\n\t\t\treturn []byte(`\"called\"`), nil\n\t\t})},\n\t\tin:   struct{ X any }{[8]byte{}},\n\t\twant: `{\"X\":\"called\"}`,\n\t}, {\n\t\tname: name(\"Interfaces/Any/Maps/Empty\"),\n\t\tin:   struct{ X any }{map[string]any{}},\n\t\twant: `{\"X\":{}}`,\n\t}, {\n\t\tname:  name(\"Interfaces/Any/Maps/Empty/Multiline\"),\n\t\teopts: EncodeOptions{multiline: true},\n\t\tin:    struct{ X any }{map[string]any{}},\n\t\twant:  \"{\\n\\\"X\\\": {}\\n}\",\n\t}, {\n\t\tname: name(\"Interfaces/Any/Maps/NonEmpty\"),\n\t\tin:   struct{ X any }{map[string]any{\"fizz\": \"buzz\"}},\n\t\twant: `{\"X\":{\"fizz\":\"buzz\"}}`,\n\t}, {\n\t\tname:  name(\"Interfaces/Any/Maps/Deterministic\"),\n\t\tmopts: MarshalOptions{Deterministic: true},\n\t\tin:    struct{ X any }{map[string]any{\"alpha\": \"\", \"bravo\": \"\"}},\n\t\twant:  `{\"X\":{\"alpha\":\"\",\"bravo\":\"\"}}`,\n\t}, {\n\t\tname:    name(\"Interfaces/Any/Maps/Deterministic+AllowInvalidUTF8+RejectDuplicateNames\"),\n\t\tmopts:   MarshalOptions{Deterministic: true},\n\t\teopts:   EncodeOptions{AllowInvalidUTF8: true, AllowDuplicateNames: false},\n\t\tin:      struct{ X any }{map[string]any{\"\\xff\": \"\", \"\\xfe\": \"\"}},\n\t\twant:    `{\"X\":{\"�\":\"\"`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"�\" in object`},\n\t}, {\n\t\tname:  name(\"Interfaces/Any/Maps/Deterministic+AllowInvalidUTF8+AllowDuplicateNames\"),\n\t\tmopts: MarshalOptions{Deterministic: true},\n\t\teopts: EncodeOptions{AllowInvalidUTF8: true, AllowDuplicateNames: true},\n\t\tin:    struct{ X any }{map[string]any{\"\\xff\": \"alpha\", \"\\xfe\": \"bravo\"}},\n\t\twant:  `{\"X\":{\"�\":\"bravo\",\"�\":\"alpha\"}}`,\n\t}, {\n\t\tname:    name(\"Interfaces/Any/Maps/RejectInvalidUTF8\"),\n\t\tin:      struct{ X any }{map[string]any{\"\\xff\": \"\", \"\\xfe\": \"\"}},\n\t\twant:    `{\"X\":{`,\n\t\twantErr: &SyntacticError{str: \"invalid UTF-8 within string\"},\n\t}, {\n\t\tname:    name(\"Interfaces/Any/Maps/AllowInvalidUTF8+RejectDuplicateNames\"),\n\t\teopts:   EncodeOptions{AllowInvalidUTF8: true},\n\t\tin:      struct{ X any }{map[string]any{\"\\xff\": \"\", \"\\xfe\": \"\"}},\n\t\twant:    `{\"X\":{\"�\":\"\"`,\n\t\twantErr: &SyntacticError{str: `duplicate name \"�\" in object`},\n\t}, {\n\t\tname:  name(\"Interfaces/Any/Maps/AllowInvalidUTF8+AllowDuplicateNames\"),\n\t\teopts: EncodeOptions{AllowInvalidUTF8: true, AllowDuplicateNames: true},\n\t\tin:    struct{ X any }{map[string]any{\"\\xff\": \"\", \"\\xfe\": \"\"}},\n\t\twant:  `{\"X\":{\"�\":\"\",\"�\":\"\"}}`,\n\t}, {\n\t\tname: name(\"Interfaces/Any/Maps/Cyclic\"),\n\t\tin: func() any {\n\t\t\tm := map[string]any{}\n\t\t\tm[\"\"] = m\n\t\t\treturn struct{ X any }{m}\n\t\t}(),\n\t\twant:    `{\"X\"` + strings.Repeat(`:{\"\"`, startDetectingCyclesAfter),\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: mapStringAnyType, Err: errors.New(\"encountered a cycle\")},\n\t}, {\n\t\tname: name(\"Interfaces/Any/Slices/Empty\"),\n\t\tin:   struct{ X any }{[]any{}},\n\t\twant: `{\"X\":[]}`,\n\t}, {\n\t\tname:  name(\"Interfaces/Any/Slices/Empty/Multiline\"),\n\t\teopts: EncodeOptions{multiline: true},\n\t\tin:    struct{ X any }{[]any{}},\n\t\twant:  \"{\\n\\\"X\\\": []\\n}\",\n\t}, {\n\t\tname: name(\"Interfaces/Any/Slices/NonEmpty\"),\n\t\tin:   struct{ X any }{[]any{\"fizz\", \"buzz\"}},\n\t\twant: `{\"X\":[\"fizz\",\"buzz\"]}`,\n\t}, {\n\t\tname: name(\"Interfaces/Any/Slices/Cyclic\"),\n\t\tin: func() any {\n\t\t\ts := make([]any, 1)\n\t\t\ts[0] = s\n\t\t\treturn struct{ X any }{s}\n\t\t}(),\n\t\twant:    `{\"X\":` + strings.Repeat(`[`, startDetectingCyclesAfter),\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: sliceAnyType, Err: errors.New(\"encountered a cycle\")},\n\t}, {\n\t\tname: name(\"Methods/NilPointer\"),\n\t\tin:   struct{ X *allMethods }{X: (*allMethods)(nil)}, // method should not be called\n\t\twant: `{\"X\":null}`,\n\t}, {\n\t\t// NOTE: Fixes https://github.com/dominikh/go-tools/issues/975.\n\t\tname: name(\"Methods/NilInterface\"),\n\t\tin:   struct{ X MarshalerV2 }{X: (*allMethods)(nil)}, // method should not be called\n\t\twant: `{\"X\":null}`,\n\t}, {\n\t\tname: name(\"Methods/AllMethods\"),\n\t\tin:   struct{ X *allMethods }{X: &allMethods{method: \"MarshalNextJSON\", value: []byte(`\"hello\"`)}},\n\t\twant: `{\"X\":\"hello\"}`,\n\t}, {\n\t\tname: name(\"Methods/AllMethodsExceptJSONv2\"),\n\t\tin:   struct{ X *allMethodsExceptJSONv2 }{X: &allMethodsExceptJSONv2{allMethods: allMethods{method: \"MarshalJSON\", value: []byte(`\"hello\"`)}}},\n\t\twant: `{\"X\":\"hello\"}`,\n\t}, {\n\t\tname: name(\"Methods/AllMethodsExceptJSONv1\"),\n\t\tin:   struct{ X *allMethodsExceptJSONv1 }{X: &allMethodsExceptJSONv1{allMethods: allMethods{method: \"MarshalNextJSON\", value: []byte(`\"hello\"`)}}},\n\t\twant: `{\"X\":\"hello\"}`,\n\t}, {\n\t\tname: name(\"Methods/AllMethodsExceptText\"),\n\t\tin:   struct{ X *allMethodsExceptText }{X: &allMethodsExceptText{allMethods: allMethods{method: \"MarshalNextJSON\", value: []byte(`\"hello\"`)}}},\n\t\twant: `{\"X\":\"hello\"}`,\n\t}, {\n\t\tname: name(\"Methods/OnlyMethodJSONv2\"),\n\t\tin:   struct{ X *onlyMethodJSONv2 }{X: &onlyMethodJSONv2{allMethods: allMethods{method: \"MarshalNextJSON\", value: []byte(`\"hello\"`)}}},\n\t\twant: `{\"X\":\"hello\"}`,\n\t}, {\n\t\tname: name(\"Methods/OnlyMethodJSONv1\"),\n\t\tin:   struct{ X *onlyMethodJSONv1 }{X: &onlyMethodJSONv1{allMethods: allMethods{method: \"MarshalJSON\", value: []byte(`\"hello\"`)}}},\n\t\twant: `{\"X\":\"hello\"}`,\n\t}, {\n\t\tname: name(\"Methods/OnlyMethodText\"),\n\t\tin:   struct{ X *onlyMethodText }{X: &onlyMethodText{allMethods: allMethods{method: \"MarshalText\", value: []byte(`hello`)}}},\n\t\twant: `{\"X\":\"hello\"}`,\n\t}, {\n\t\tname: name(\"Methods/IP\"),\n\t\tin:   net.IPv4(192, 168, 0, 100),\n\t\twant: `\"192.168.0.100\"`,\n\t}, {\n\t\t// NOTE: Fixes https://go.dev/issue/46516.\n\t\tname: name(\"Methods/Anonymous\"),\n\t\tin:   struct{ X struct{ allMethods } }{X: struct{ allMethods }{allMethods{method: \"MarshalNextJSON\", value: []byte(`\"hello\"`)}}},\n\t\twant: `{\"X\":\"hello\"}`,\n\t}, {\n\t\t// NOTE: Fixes https://go.dev/issue/22967.\n\t\tname: name(\"Methods/Addressable\"),\n\t\tin: struct {\n\t\t\tV allMethods\n\t\t\tM map[string]allMethods\n\t\t\tI any\n\t\t}{\n\t\t\tV: allMethods{method: \"MarshalNextJSON\", value: []byte(`\"hello\"`)},\n\t\t\tM: map[string]allMethods{\"K\": {method: \"MarshalNextJSON\", value: []byte(`\"hello\"`)}},\n\t\t\tI: allMethods{method: \"MarshalNextJSON\", value: []byte(`\"hello\"`)},\n\t\t},\n\t\twant: `{\"V\":\"hello\",\"M\":{\"K\":\"hello\"},\"I\":\"hello\"}`,\n\t}, {\n\t\t// NOTE: Fixes https://go.dev/issue/29732.\n\t\tname:         name(\"Methods/MapKey/JSONv2\"),\n\t\tin:           map[structMethodJSONv2]string{{\"k1\"}: \"v1\", {\"k2\"}: \"v2\"},\n\t\twant:         `{\"k1\":\"v1\",\"k2\":\"v2\"}`,\n\t\tcanonicalize: true,\n\t}, {\n\t\t// NOTE: Fixes https://go.dev/issue/29732.\n\t\tname:         name(\"Methods/MapKey/JSONv1\"),\n\t\tin:           map[structMethodJSONv1]string{{\"k1\"}: \"v1\", {\"k2\"}: \"v2\"},\n\t\twant:         `{\"k1\":\"v1\",\"k2\":\"v2\"}`,\n\t\tcanonicalize: true,\n\t}, {\n\t\tname:         name(\"Methods/MapKey/Text\"),\n\t\tin:           map[structMethodText]string{{\"k1\"}: \"v1\", {\"k2\"}: \"v2\"},\n\t\twant:         `{\"k1\":\"v1\",\"k2\":\"v2\"}`,\n\t\tcanonicalize: true,\n\t}, {\n\t\tname: name(\"Methods/Invalid/JSONv2/Error\"),\n\t\tin: marshalJSONv2Func(func(MarshalOptions, *Encoder) error {\n\t\t\treturn errors.New(\"some error\")\n\t\t}),\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: marshalJSONv2FuncType, Err: errors.New(\"some error\")},\n\t}, {\n\t\tname: name(\"Methods/Invalid/JSONv2/TooFew\"),\n\t\tin: marshalJSONv2Func(func(MarshalOptions, *Encoder) error {\n\t\t\treturn nil // do nothing\n\t\t}),\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: marshalJSONv2FuncType, Err: errors.New(\"must write exactly one JSON value\")},\n\t}, {\n\t\tname: name(\"Methods/Invalid/JSONv2/TooMany\"),\n\t\tin: marshalJSONv2Func(func(mo MarshalOptions, enc *Encoder) error {\n\t\t\tenc.WriteToken(Null)\n\t\t\tenc.WriteToken(Null)\n\t\t\treturn nil\n\t\t}),\n\t\twant:    `nullnull`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: marshalJSONv2FuncType, Err: errors.New(\"must write exactly one JSON value\")},\n\t}, {\n\t\tname: name(\"Methods/Invalid/JSONv2/SkipFunc\"),\n\t\tin: marshalJSONv2Func(func(mo MarshalOptions, enc *Encoder) error {\n\t\t\treturn SkipFunc\n\t\t}),\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: marshalJSONv2FuncType, Err: errors.New(\"marshal method cannot be skipped\")},\n\t}, {\n\t\tname: name(\"Methods/Invalid/JSONv1/Error\"),\n\t\tin: marshalJSONv1Func(func() ([]byte, error) {\n\t\t\treturn nil, errors.New(\"some error\")\n\t\t}),\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: marshalJSONv1FuncType, Err: errors.New(\"some error\")},\n\t}, {\n\t\tname: name(\"Methods/Invalid/JSONv1/Syntax\"),\n\t\tin: marshalJSONv1Func(func() ([]byte, error) {\n\t\t\treturn []byte(\"invalid\"), nil\n\t\t}),\n\t\twantErr: &SemanticError{action: \"marshal\", JSONKind: 'i', GoType: marshalJSONv1FuncType, Err: newInvalidCharacterError([]byte(\"i\"), \"at start of value\")},\n\t}, {\n\t\tname: name(\"Methods/Invalid/JSONv1/SkipFunc\"),\n\t\tin: marshalJSONv1Func(func() ([]byte, error) {\n\t\t\treturn nil, SkipFunc\n\t\t}),\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: marshalJSONv1FuncType, Err: errors.New(\"marshal method cannot be skipped\")},\n\t}, {\n\t\tname: name(\"Methods/Invalid/Text/Error\"),\n\t\tin: marshalTextFunc(func() ([]byte, error) {\n\t\t\treturn nil, errors.New(\"some error\")\n\t\t}),\n\t\twantErr: &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: marshalTextFuncType, Err: errors.New(\"some error\")},\n\t}, {\n\t\tname: name(\"Methods/Invalid/Text/UTF8\"),\n\t\tin: marshalTextFunc(func() ([]byte, error) {\n\t\t\treturn []byte(\"\\xde\\xad\\xbe\\xef\"), nil\n\t\t}),\n\t\twantErr: &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: marshalTextFuncType, Err: &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t}, {\n\t\tname: name(\"Methods/Invalid/Text/SkipFunc\"),\n\t\tin: marshalTextFunc(func() ([]byte, error) {\n\t\t\treturn nil, SkipFunc\n\t\t}),\n\t\twantErr: &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: marshalTextFuncType, Err: errors.New(\"marshal method cannot be skipped\")},\n\t}, {\n\t\tname: name(\"Methods/Invalid/MapKey/JSONv2/Syntax\"),\n\t\tin: map[any]string{\n\t\t\taddr(marshalJSONv2Func(func(mo MarshalOptions, enc *Encoder) error {\n\t\t\t\treturn enc.WriteToken(Null)\n\t\t\t})): \"invalid\",\n\t\t},\n\t\twant:    `{`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: marshalJSONv2FuncType, Err: errMissingName},\n\t}, {\n\t\tname: name(\"Methods/Invalid/MapKey/JSONv1/Syntax\"),\n\t\tin: map[any]string{\n\t\t\taddr(marshalJSONv1Func(func() ([]byte, error) {\n\t\t\t\treturn []byte(`null`), nil\n\t\t\t})): \"invalid\",\n\t\t},\n\t\twant:    `{`,\n\t\twantErr: &SemanticError{action: \"marshal\", JSONKind: 'n', GoType: marshalJSONv1FuncType, Err: errMissingName},\n\t}, {\n\t\tname: name(\"Functions/Bool/V1\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(bool) ([]byte, error) {\n\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t}),\n\t\t},\n\t\tin:   true,\n\t\twant: `\"called\"`,\n\t}, {\n\t\tname: name(\"Functions/NamedBool/V1/NoMatch\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(namedBool) ([]byte, error) {\n\t\t\t\treturn nil, errors.New(\"must not be called\")\n\t\t\t}),\n\t\t},\n\t\tin:   true,\n\t\twant: `true`,\n\t}, {\n\t\tname: name(\"Functions/NamedBool/V1/Match\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(namedBool) ([]byte, error) {\n\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t}),\n\t\t},\n\t\tin:   namedBool(true),\n\t\twant: `\"called\"`,\n\t}, {\n\t\tname: name(\"Functions/PointerBool/V1/Match\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(v *bool) ([]byte, error) {\n\t\t\t\t_ = *v // must be a non-nil pointer\n\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t}),\n\t\t},\n\t\tin:   true,\n\t\twant: `\"called\"`,\n\t}, {\n\t\tname: name(\"Functions/Bool/V2\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v bool) error {\n\t\t\t\treturn enc.WriteToken(String(\"called\"))\n\t\t\t}),\n\t\t},\n\t\tin:   true,\n\t\twant: `\"called\"`,\n\t}, {\n\t\tname: name(\"Functions/NamedBool/V2/NoMatch\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v namedBool) error {\n\t\t\t\treturn errors.New(\"must not be called\")\n\t\t\t}),\n\t\t},\n\t\tin:   true,\n\t\twant: `true`,\n\t}, {\n\t\tname: name(\"Functions/NamedBool/V2/Match\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v namedBool) error {\n\t\t\t\treturn enc.WriteToken(String(\"called\"))\n\t\t\t}),\n\t\t},\n\t\tin:   namedBool(true),\n\t\twant: `\"called\"`,\n\t}, {\n\t\tname: name(\"Functions/PointerBool/V2/Match\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *bool) error {\n\t\t\t\t_ = *v // must be a non-nil pointer\n\t\t\t\treturn enc.WriteToken(String(\"called\"))\n\t\t\t}),\n\t\t},\n\t\tin:   true,\n\t\twant: `\"called\"`,\n\t}, {\n\t\tname: name(\"Functions/Bool/Empty1/NoMatch\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: new(Marshalers),\n\t\t},\n\t\tin:   true,\n\t\twant: `true`,\n\t}, {\n\t\tname: name(\"Functions/Bool/Empty2/NoMatch\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: NewMarshalers(),\n\t\t},\n\t\tin:   true,\n\t\twant: `true`,\n\t}, {\n\t\tname: name(\"Functions/Bool/V1/DirectError\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(bool) ([]byte, error) {\n\t\t\t\treturn nil, errors.New(\"some error\")\n\t\t\t}),\n\t\t},\n\t\tin:      true,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: boolType, Err: errors.New(\"some error\")},\n\t}, {\n\t\tname: name(\"Functions/Bool/V1/SkipError\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(bool) ([]byte, error) {\n\t\t\t\treturn nil, SkipFunc\n\t\t\t}),\n\t\t},\n\t\tin:      true,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: boolType, Err: errors.New(\"marshal function of type func(T) ([]byte, error) cannot be skipped\")},\n\t}, {\n\t\tname: name(\"Functions/Bool/V1/InvalidValue\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(bool) ([]byte, error) {\n\t\t\t\treturn []byte(\"invalid\"), nil\n\t\t\t}),\n\t\t},\n\t\tin:      true,\n\t\twantErr: &SemanticError{action: \"marshal\", JSONKind: 'i', GoType: boolType, Err: &SyntacticError{str: \"invalid character 'i' at start of value\"}},\n\t}, {\n\t\tname: name(\"Functions/Bool/V2/DirectError\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v bool) error {\n\t\t\t\treturn errors.New(\"some error\")\n\t\t\t}),\n\t\t},\n\t\tin:      true,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: boolType, Err: errors.New(\"some error\")},\n\t}, {\n\t\tname: name(\"Functions/Bool/V2/TooFew\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v bool) error {\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tin:      true,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: boolType, Err: errors.New(\"must write exactly one JSON value\")},\n\t}, {\n\t\tname: name(\"Functions/Bool/V2/TooMany\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v bool) error {\n\t\t\t\tenc.WriteValue([]byte(`\"hello\"`))\n\t\t\t\tenc.WriteValue([]byte(`\"world\"`))\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tin:      true,\n\t\twant:    `\"hello\"\"world\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: boolType, Err: errors.New(\"must write exactly one JSON value\")},\n\t}, {\n\t\tname: name(\"Functions/Bool/V2/Skipped\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v bool) error {\n\t\t\t\treturn SkipFunc\n\t\t\t}),\n\t\t},\n\t\tin:   true,\n\t\twant: `true`,\n\t}, {\n\t\tname: name(\"Functions/Bool/V2/ProcessBeforeSkip\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v bool) error {\n\t\t\t\tenc.WriteValue([]byte(`\"hello\"`))\n\t\t\t\treturn SkipFunc\n\t\t\t}),\n\t\t},\n\t\tin:      true,\n\t\twant:    `\"hello\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: boolType, Err: errors.New(\"must not write any JSON tokens when skipping\")},\n\t}, {\n\t\tname: name(\"Functions/Bool/V2/WrappedSkipError\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v bool) error {\n\t\t\t\treturn fmt.Errorf(\"wrap: %w\", SkipFunc)\n\t\t\t}),\n\t\t},\n\t\tin:      true,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: boolType, Err: fmt.Errorf(\"wrap: %w\", SkipFunc)},\n\t}, {\n\t\tname: name(\"Functions/Map/Key/NoCaseString/V1\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(v nocaseString) ([]byte, error) {\n\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t}),\n\t\t},\n\t\tin:   map[nocaseString]string{\"hello\": \"world\"},\n\t\twant: `{\"called\":\"world\"}`,\n\t}, {\n\t\tname: name(\"Functions/Map/Key/PointerNoCaseString/V1\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(v *nocaseString) ([]byte, error) {\n\t\t\t\t_ = *v // must be a non-nil pointer\n\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t}),\n\t\t},\n\t\tin:   map[nocaseString]string{\"hello\": \"world\"},\n\t\twant: `{\"called\":\"world\"}`,\n\t}, {\n\t\tname: name(\"Functions/Map/Key/TextMarshaler/V1\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(v encoding.TextMarshaler) ([]byte, error) {\n\t\t\t\t_ = *v.(*nocaseString) // must be a non-nil *nocaseString\n\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t}),\n\t\t},\n\t\tin:   map[nocaseString]string{\"hello\": \"world\"},\n\t\twant: `{\"called\":\"world\"}`,\n\t}, {\n\t\tname: name(\"Functions/Map/Key/NoCaseString/V1/InvalidValue\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(v nocaseString) ([]byte, error) {\n\t\t\t\treturn []byte(`null`), nil\n\t\t\t}),\n\t\t},\n\t\tin:      map[nocaseString]string{\"hello\": \"world\"},\n\t\twant:    `{`,\n\t\twantErr: &SemanticError{action: \"marshal\", JSONKind: 'n', GoType: nocaseStringType, Err: errMissingName},\n\t}, {\n\t\tname: name(\"Functions/Map/Key/NoCaseString/V2/InvalidKind\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(v nocaseString) ([]byte, error) {\n\t\t\t\treturn []byte(`null`), nil\n\t\t\t}),\n\t\t},\n\t\tin:      map[nocaseString]string{\"hello\": \"world\"},\n\t\twant:    `{`,\n\t\twantErr: &SemanticError{action: \"marshal\", JSONKind: 'n', GoType: nocaseStringType, Err: errMissingName},\n\t}, {\n\t\tname: name(\"Functions/Map/Key/String/V1/DuplicateName\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(v string) ([]byte, error) {\n\t\t\t\treturn []byte(`\"name\"`), nil\n\t\t\t}),\n\t\t},\n\t\tin:      map[string]string{\"name1\": \"value\", \"name2\": \"value\"},\n\t\twant:    `{\"name\":\"name\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: stringType, Err: &SyntacticError{str: `duplicate name \"name\" in object`}},\n\t}, {\n\t\tname: name(\"Functions/Map/Key/NoCaseString/V2\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v nocaseString) error {\n\t\t\t\treturn enc.WriteValue([]byte(`\"called\"`))\n\t\t\t}),\n\t\t},\n\t\tin:   map[nocaseString]string{\"hello\": \"world\"},\n\t\twant: `{\"called\":\"world\"}`,\n\t}, {\n\t\tname: name(\"Functions/Map/Key/PointerNoCaseString/V2\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *nocaseString) error {\n\t\t\t\t_ = *v // must be a non-nil pointer\n\t\t\t\treturn enc.WriteValue([]byte(`\"called\"`))\n\t\t\t}),\n\t\t},\n\t\tin:   map[nocaseString]string{\"hello\": \"world\"},\n\t\twant: `{\"called\":\"world\"}`,\n\t}, {\n\t\tname: name(\"Functions/Map/Key/TextMarshaler/V2\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v encoding.TextMarshaler) error {\n\t\t\t\t_ = *v.(*nocaseString) // must be a non-nil *nocaseString\n\t\t\t\treturn enc.WriteValue([]byte(`\"called\"`))\n\t\t\t}),\n\t\t},\n\t\tin:   map[nocaseString]string{\"hello\": \"world\"},\n\t\twant: `{\"called\":\"world\"}`,\n\t}, {\n\t\tname: name(\"Functions/Map/Key/NoCaseString/V2/InvalidToken\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v nocaseString) error {\n\t\t\t\treturn enc.WriteToken(Null)\n\t\t\t}),\n\t\t},\n\t\tin:      map[nocaseString]string{\"hello\": \"world\"},\n\t\twant:    `{`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: nocaseStringType, Err: errMissingName},\n\t}, {\n\t\tname: name(\"Functions/Map/Key/NoCaseString/V2/InvalidValue\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v nocaseString) error {\n\t\t\t\treturn enc.WriteValue([]byte(`null`))\n\t\t\t}),\n\t\t},\n\t\tin:      map[nocaseString]string{\"hello\": \"world\"},\n\t\twant:    `{`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: nocaseStringType, Err: errMissingName},\n\t}, {\n\t\tname: name(\"Functions/Map/Value/NoCaseString/V1\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(v nocaseString) ([]byte, error) {\n\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t}),\n\t\t},\n\t\tin:   map[string]nocaseString{\"hello\": \"world\"},\n\t\twant: `{\"hello\":\"called\"}`,\n\t}, {\n\t\tname: name(\"Functions/Map/Value/PointerNoCaseString/V1\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(v *nocaseString) ([]byte, error) {\n\t\t\t\t_ = *v // must be a non-nil pointer\n\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t}),\n\t\t},\n\t\tin:   map[string]nocaseString{\"hello\": \"world\"},\n\t\twant: `{\"hello\":\"called\"}`,\n\t}, {\n\t\tname: name(\"Functions/Map/Value/TextMarshaler/V1\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(v encoding.TextMarshaler) ([]byte, error) {\n\t\t\t\t_ = *v.(*nocaseString) // must be a non-nil *nocaseString\n\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t}),\n\t\t},\n\t\tin:   map[string]nocaseString{\"hello\": \"world\"},\n\t\twant: `{\"hello\":\"called\"}`,\n\t}, {\n\t\tname: name(\"Functions/Map/Value/NoCaseString/V2\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v nocaseString) error {\n\t\t\t\treturn enc.WriteValue([]byte(`\"called\"`))\n\t\t\t}),\n\t\t},\n\t\tin:   map[string]nocaseString{\"hello\": \"world\"},\n\t\twant: `{\"hello\":\"called\"}`,\n\t}, {\n\t\tname: name(\"Functions/Map/Value/PointerNoCaseString/V2\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *nocaseString) error {\n\t\t\t\t_ = *v // must be a non-nil pointer\n\t\t\t\treturn enc.WriteValue([]byte(`\"called\"`))\n\t\t\t}),\n\t\t},\n\t\tin:   map[string]nocaseString{\"hello\": \"world\"},\n\t\twant: `{\"hello\":\"called\"}`,\n\t}, {\n\t\tname: name(\"Functions/Map/Value/TextMarshaler/V2\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v encoding.TextMarshaler) error {\n\t\t\t\t_ = *v.(*nocaseString) // must be a non-nil *nocaseString\n\t\t\t\treturn enc.WriteValue([]byte(`\"called\"`))\n\t\t\t}),\n\t\t},\n\t\tin:   map[string]nocaseString{\"hello\": \"world\"},\n\t\twant: `{\"hello\":\"called\"}`,\n\t}, {\n\t\tname: name(\"Funtions/Struct/Fields\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: NewMarshalers(\n\t\t\t\tMarshalFuncV1(func(v bool) ([]byte, error) {\n\t\t\t\t\treturn []byte(`\"called1\"`), nil\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV1(func(v *string) ([]byte, error) {\n\t\t\t\t\treturn []byte(`\"called2\"`), nil\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v []byte) error {\n\t\t\t\t\treturn enc.WriteValue([]byte(`\"called3\"`))\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *int64) error {\n\t\t\t\t\treturn enc.WriteValue([]byte(`\"called4\"`))\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tin:   structScalars{},\n\t\twant: `{\"Bool\":\"called1\",\"String\":\"called2\",\"Bytes\":\"called3\",\"Int\":\"called4\",\"Uint\":0,\"Float\":0}`,\n\t}, {\n\t\tname: name(\"Functions/Struct/OmitEmpty\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: NewMarshalers(\n\t\t\t\tMarshalFuncV1(func(v bool) ([]byte, error) {\n\t\t\t\t\treturn []byte(`null`), nil\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV1(func(v string) ([]byte, error) {\n\t\t\t\t\treturn []byte(`\"called1\"`), nil\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV1(func(v *stringMarshalNonEmpty) ([]byte, error) {\n\t\t\t\t\treturn []byte(`\"\"`), nil\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v bytesMarshalNonEmpty) error {\n\t\t\t\t\treturn enc.WriteValue([]byte(`{}`))\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *float64) error {\n\t\t\t\t\treturn enc.WriteValue([]byte(`[]`))\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV1(func(v mapMarshalNonEmpty) ([]byte, error) {\n\t\t\t\t\treturn []byte(`\"called2\"`), nil\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV1(func(v []string) ([]byte, error) {\n\t\t\t\t\treturn []byte(`\"called3\"`), nil\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *sliceMarshalNonEmpty) error {\n\t\t\t\t\treturn enc.WriteValue([]byte(`\"called4\"`))\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tin:   structOmitEmptyAll{},\n\t\twant: `{\"String\":\"called1\",\"MapNonEmpty\":\"called2\",\"Slice\":\"called3\",\"SliceNonEmpty\":\"called4\"}`,\n\t}, {\n\t\tname: name(\"Functions/Struct/OmitZero\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: NewMarshalers(\n\t\t\t\tMarshalFuncV1(func(v bool) ([]byte, error) {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV1(func(v *string) ([]byte, error) {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v []byte) error {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *int64) error {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tin:   structOmitZeroAll{},\n\t\twant: `{}`,\n\t}, {\n\t\tname: name(\"Functions/Struct/Inlined\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: NewMarshalers(\n\t\t\t\tMarshalFuncV1(func(v structInlinedL1) ([]byte, error) {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *StructEmbed2) error {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tin:   structInlined{},\n\t\twant: `{\"D\":\"\"}`,\n\t}, {\n\t\tname: name(\"Functions/Slice/Elem\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV1(func(v bool) ([]byte, error) {\n\t\t\t\treturn []byte(`\"` + strconv.FormatBool(v) + `\"`), nil\n\t\t\t}),\n\t\t},\n\t\tin:   []bool{true, false},\n\t\twant: `[\"true\",\"false\"]`,\n\t}, {\n\t\tname: name(\"Functions/Array/Elem\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *bool) error {\n\t\t\t\treturn enc.WriteValue([]byte(`\"` + strconv.FormatBool(*v) + `\"`))\n\t\t\t}),\n\t\t},\n\t\tin:   [2]bool{true, false},\n\t\twant: `[\"true\",\"false\"]`,\n\t}, {\n\t\tname: name(\"Functions/Pointer/Nil\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *bool) error {\n\t\t\t\tpanic(\"should not be called\")\n\t\t\t}),\n\t\t},\n\t\tin:   struct{ X *bool }{nil},\n\t\twant: `{\"X\":null}`,\n\t}, {\n\t\tname: name(\"Functions/Pointer/NonNil\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *bool) error {\n\t\t\t\treturn enc.WriteValue([]byte(`\"called\"`))\n\t\t\t}),\n\t\t},\n\t\tin:   struct{ X *bool }{addr(false)},\n\t\twant: `{\"X\":\"called\"}`,\n\t}, {\n\t\tname: name(\"Functions/Interface/Nil\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v fmt.Stringer) error {\n\t\t\t\tpanic(\"should not be called\")\n\t\t\t}),\n\t\t},\n\t\tin:   struct{ X fmt.Stringer }{nil},\n\t\twant: `{\"X\":null}`,\n\t}, {\n\t\tname: name(\"Functions/Interface/NonNil/MatchInterface\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v fmt.Stringer) error {\n\t\t\t\treturn enc.WriteValue([]byte(`\"called\"`))\n\t\t\t}),\n\t\t},\n\t\tin:   struct{ X fmt.Stringer }{valueStringer{}},\n\t\twant: `{\"X\":\"called\"}`,\n\t}, {\n\t\tname: name(\"Functions/Interface/NonNil/MatchConcrete\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v valueStringer) error {\n\t\t\t\treturn enc.WriteValue([]byte(`\"called\"`))\n\t\t\t}),\n\t\t},\n\t\tin:   struct{ X fmt.Stringer }{valueStringer{}},\n\t\twant: `{\"X\":\"called\"}`,\n\t}, {\n\t\tname: name(\"Functions/Interface/NonNil/MatchPointer\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *valueStringer) error {\n\t\t\t\treturn enc.WriteValue([]byte(`\"called\"`))\n\t\t\t}),\n\t\t},\n\t\tin:   struct{ X fmt.Stringer }{valueStringer{}},\n\t\twant: `{\"X\":\"called\"}`,\n\t}, {\n\t\tname: name(\"Functions/Interface/Any\"),\n\t\tin: []any{\n\t\t\tnil,                           // nil\n\t\t\tvalueStringer{},               // T\n\t\t\t(*valueStringer)(nil),         // *T\n\t\t\taddr(valueStringer{}),         // *T\n\t\t\t(**valueStringer)(nil),        // **T\n\t\t\taddr((*valueStringer)(nil)),   // **T\n\t\t\taddr(addr(valueStringer{})),   // **T\n\t\t\tpointerStringer{},             // T\n\t\t\t(*pointerStringer)(nil),       // *T\n\t\t\taddr(pointerStringer{}),       // *T\n\t\t\t(**pointerStringer)(nil),      // **T\n\t\t\taddr((*pointerStringer)(nil)), // **T\n\t\t\taddr(addr(pointerStringer{})), // **T\n\t\t\t\"LAST\",\n\t\t},\n\t\twant: `[null,{},null,{},null,null,{},{},null,{},null,null,{},\"LAST\"]`,\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: func() *Marshalers {\n\t\t\t\ttype P [2]int\n\t\t\t\ttype PV struct {\n\t\t\t\t\tP P\n\t\t\t\t\tV any\n\t\t\t\t}\n\n\t\t\t\tvar lastChecks []func() error\n\t\t\t\tcheckLast := func() error {\n\t\t\t\t\tfor _, fn := range lastChecks {\n\t\t\t\t\t\tif err := fn(); err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn SkipFunc\n\t\t\t\t}\n\t\t\t\tmakeValueChecker := func(name string, want []PV) func(e *Encoder, v any) error {\n\t\t\t\t\tcheckNext := func(e *Encoder, v any) error {\n\t\t\t\t\t\tp := P{len(e.tokens.stack), e.tokens.last.length()}\n\t\t\t\t\t\trv := reflect.ValueOf(v)\n\t\t\t\t\t\tpv := PV{p, v}\n\t\t\t\t\t\tswitch {\n\t\t\t\t\t\tcase len(want) == 0:\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s: %v: got more values than expected\", name, p)\n\t\t\t\t\t\tcase !rv.IsValid() || rv.Kind() != reflect.Pointer || rv.IsNil():\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s: %v: got %#v, want non-nil pointer type\", name, p, v)\n\t\t\t\t\t\tcase !reflect.DeepEqual(pv, want[0]):\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s:\\n\\tgot  %#v\\n\\twant %#v\", name, pv, want[0])\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\twant = want[1:]\n\t\t\t\t\t\t\treturn SkipFunc\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlastChecks = append(lastChecks, func() error {\n\t\t\t\t\t\tif len(want) > 0 {\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s: did not get enough values, want %d more\", name, len(want))\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t})\n\t\t\t\t\treturn checkNext\n\t\t\t\t}\n\t\t\t\tmakePositionChecker := func(name string, want []P) func(e *Encoder, v any) error {\n\t\t\t\t\tcheckNext := func(e *Encoder, v any) error {\n\t\t\t\t\t\tp := P{len(e.tokens.stack), e.tokens.last.length()}\n\t\t\t\t\t\tswitch {\n\t\t\t\t\t\tcase len(want) == 0:\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s: %v: got more values than wanted\", name, p)\n\t\t\t\t\t\tcase p != want[0]:\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s: got %v, want %v\", name, p, want[0])\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\twant = want[1:]\n\t\t\t\t\t\t\treturn SkipFunc\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlastChecks = append(lastChecks, func() error {\n\t\t\t\t\t\tif len(want) > 0 {\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s: did not get enough values, want %d more\", name, len(want))\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t})\n\t\t\t\t\treturn checkNext\n\t\t\t\t}\n\n\t\t\t\twantAny := []PV{\n\t\t\t\t\t{P{0, 0}, addr([]any{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t\tvalueStringer{},\n\t\t\t\t\t\t(*valueStringer)(nil),\n\t\t\t\t\t\taddr(valueStringer{}),\n\t\t\t\t\t\t(**valueStringer)(nil),\n\t\t\t\t\t\taddr((*valueStringer)(nil)),\n\t\t\t\t\t\taddr(addr(valueStringer{})),\n\t\t\t\t\t\tpointerStringer{},\n\t\t\t\t\t\t(*pointerStringer)(nil),\n\t\t\t\t\t\taddr(pointerStringer{}),\n\t\t\t\t\t\t(**pointerStringer)(nil),\n\t\t\t\t\t\taddr((*pointerStringer)(nil)),\n\t\t\t\t\t\taddr(addr(pointerStringer{})),\n\t\t\t\t\t\t\"LAST\",\n\t\t\t\t\t})},\n\t\t\t\t\t{P{1, 0}, addr(any(nil))},\n\t\t\t\t\t{P{1, 1}, addr(any(valueStringer{}))},\n\t\t\t\t\t{P{1, 1}, addr(valueStringer{})},\n\t\t\t\t\t{P{1, 2}, addr(any((*valueStringer)(nil)))},\n\t\t\t\t\t{P{1, 2}, addr((*valueStringer)(nil))},\n\t\t\t\t\t{P{1, 3}, addr(any(addr(valueStringer{})))},\n\t\t\t\t\t{P{1, 3}, addr(addr(valueStringer{}))},\n\t\t\t\t\t{P{1, 3}, addr(valueStringer{})},\n\t\t\t\t\t{P{1, 4}, addr(any((**valueStringer)(nil)))},\n\t\t\t\t\t{P{1, 4}, addr((**valueStringer)(nil))},\n\t\t\t\t\t{P{1, 5}, addr(any(addr((*valueStringer)(nil))))},\n\t\t\t\t\t{P{1, 5}, addr(addr((*valueStringer)(nil)))},\n\t\t\t\t\t{P{1, 5}, addr((*valueStringer)(nil))},\n\t\t\t\t\t{P{1, 6}, addr(any(addr(addr(valueStringer{}))))},\n\t\t\t\t\t{P{1, 6}, addr(addr(addr(valueStringer{})))},\n\t\t\t\t\t{P{1, 6}, addr(addr(valueStringer{}))},\n\t\t\t\t\t{P{1, 6}, addr(valueStringer{})},\n\t\t\t\t\t{P{1, 7}, addr(any(pointerStringer{}))},\n\t\t\t\t\t{P{1, 7}, addr(pointerStringer{})},\n\t\t\t\t\t{P{1, 8}, addr(any((*pointerStringer)(nil)))},\n\t\t\t\t\t{P{1, 8}, addr((*pointerStringer)(nil))},\n\t\t\t\t\t{P{1, 9}, addr(any(addr(pointerStringer{})))},\n\t\t\t\t\t{P{1, 9}, addr(addr(pointerStringer{}))},\n\t\t\t\t\t{P{1, 9}, addr(pointerStringer{})},\n\t\t\t\t\t{P{1, 10}, addr(any((**pointerStringer)(nil)))},\n\t\t\t\t\t{P{1, 10}, addr((**pointerStringer)(nil))},\n\t\t\t\t\t{P{1, 11}, addr(any(addr((*pointerStringer)(nil))))},\n\t\t\t\t\t{P{1, 11}, addr(addr((*pointerStringer)(nil)))},\n\t\t\t\t\t{P{1, 11}, addr((*pointerStringer)(nil))},\n\t\t\t\t\t{P{1, 12}, addr(any(addr(addr(pointerStringer{}))))},\n\t\t\t\t\t{P{1, 12}, addr(addr(addr(pointerStringer{})))},\n\t\t\t\t\t{P{1, 12}, addr(addr(pointerStringer{}))},\n\t\t\t\t\t{P{1, 12}, addr(pointerStringer{})},\n\t\t\t\t\t{P{1, 13}, addr(any(\"LAST\"))},\n\t\t\t\t\t{P{1, 13}, addr(\"LAST\")},\n\t\t\t\t}\n\t\t\t\tcheckAny := makeValueChecker(\"any\", wantAny)\n\t\t\t\tanyMarshaler := MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v any) error {\n\t\t\t\t\treturn checkAny(enc, v)\n\t\t\t\t})\n\n\t\t\t\tvar wantPointerAny []PV\n\t\t\t\tfor _, v := range wantAny {\n\t\t\t\t\tif _, ok := v.V.(*any); ok {\n\t\t\t\t\t\twantPointerAny = append(wantPointerAny, v)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcheckPointerAny := makeValueChecker(\"*any\", wantPointerAny)\n\t\t\t\tpointerAnyMarshaler := MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *any) error {\n\t\t\t\t\treturn checkPointerAny(enc, v)\n\t\t\t\t})\n\n\t\t\t\tcheckNamedAny := makeValueChecker(\"namedAny\", wantAny)\n\t\t\t\tnamedAnyMarshaler := MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v namedAny) error {\n\t\t\t\t\treturn checkNamedAny(enc, v)\n\t\t\t\t})\n\n\t\t\t\tcheckPointerNamedAny := makeValueChecker(\"*namedAny\", nil)\n\t\t\t\tpointerNamedAnyMarshaler := MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *namedAny) error {\n\t\t\t\t\treturn checkPointerNamedAny(enc, v)\n\t\t\t\t})\n\n\t\t\t\ttype stringer = fmt.Stringer\n\t\t\t\tvar wantStringer []PV\n\t\t\t\tfor _, v := range wantAny {\n\t\t\t\t\tif _, ok := v.V.(stringer); ok {\n\t\t\t\t\t\twantStringer = append(wantStringer, v)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcheckStringer := makeValueChecker(\"stringer\", wantStringer)\n\t\t\t\tstringerMarshaler := MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v stringer) error {\n\t\t\t\t\treturn checkStringer(enc, v)\n\t\t\t\t})\n\n\t\t\t\tcheckPointerStringer := makeValueChecker(\"*stringer\", nil)\n\t\t\t\tpointerStringerMarshaler := MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *stringer) error {\n\t\t\t\t\treturn checkPointerStringer(enc, v)\n\t\t\t\t})\n\n\t\t\t\twantValueStringer := []P{{1, 1}, {1, 3}, {1, 6}}\n\t\t\t\tcheckValueValueStringer := makePositionChecker(\"valueStringer\", wantValueStringer)\n\t\t\t\tvalueValueStringerMarshaler := MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v valueStringer) error {\n\t\t\t\t\treturn checkValueValueStringer(enc, v)\n\t\t\t\t})\n\n\t\t\t\tcheckPointerValueStringer := makePositionChecker(\"*valueStringer\", wantValueStringer)\n\t\t\t\tpointerValueStringerMarshaler := MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *valueStringer) error {\n\t\t\t\t\treturn checkPointerValueStringer(enc, v)\n\t\t\t\t})\n\n\t\t\t\twantPointerStringer := []P{{1, 7}, {1, 9}, {1, 12}}\n\t\t\t\tcheckValuePointerStringer := makePositionChecker(\"pointerStringer\", wantPointerStringer)\n\t\t\t\tvaluePointerStringerMarshaler := MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v pointerStringer) error {\n\t\t\t\t\treturn checkValuePointerStringer(enc, v)\n\t\t\t\t})\n\n\t\t\t\tcheckPointerPointerStringer := makePositionChecker(\"*pointerStringer\", wantPointerStringer)\n\t\t\t\tpointerPointerStringerMarshaler := MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v *pointerStringer) error {\n\t\t\t\t\treturn checkPointerPointerStringer(enc, v)\n\t\t\t\t})\n\n\t\t\t\tlastMarshaler := MarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v string) error {\n\t\t\t\t\treturn checkLast()\n\t\t\t\t})\n\n\t\t\t\treturn NewMarshalers(\n\t\t\t\t\tanyMarshaler,\n\t\t\t\t\tpointerAnyMarshaler,\n\t\t\t\t\tnamedAnyMarshaler,\n\t\t\t\t\tpointerNamedAnyMarshaler, // never called\n\t\t\t\t\tstringerMarshaler,\n\t\t\t\t\tpointerStringerMarshaler, // never called\n\t\t\t\t\tvalueValueStringerMarshaler,\n\t\t\t\t\tpointerValueStringerMarshaler,\n\t\t\t\t\tvaluePointerStringerMarshaler,\n\t\t\t\t\tpointerPointerStringerMarshaler,\n\t\t\t\t\tlastMarshaler,\n\t\t\t\t)\n\t\t\t}(),\n\t\t},\n\t}, {\n\t\tname: name(\"Functions/Precedence/V1First\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: NewMarshalers(\n\t\t\t\tMarshalFuncV1(func(bool) ([]byte, error) {\n\t\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v bool) error {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tin:   true,\n\t\twant: `\"called\"`,\n\t}, {\n\t\tname: name(\"Functions/Precedence/V2First\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: NewMarshalers(\n\t\t\t\tMarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v bool) error {\n\t\t\t\t\treturn enc.WriteToken(String(\"called\"))\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV1(func(bool) ([]byte, error) {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tin:   true,\n\t\twant: `\"called\"`,\n\t}, {\n\t\tname: name(\"Functions/Precedence/V2Skipped\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: NewMarshalers(\n\t\t\t\tMarshalFuncV2(func(mo MarshalOptions, enc *Encoder, v bool) error {\n\t\t\t\t\treturn SkipFunc\n\t\t\t\t}),\n\t\t\t\tMarshalFuncV1(func(bool) ([]byte, error) {\n\t\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tin:   true,\n\t\twant: `\"called\"`,\n\t}, {\n\t\tname: name(\"Functions/Precedence/NestedFirst\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: NewMarshalers(\n\t\t\t\tNewMarshalers(\n\t\t\t\t\tMarshalFuncV1(func(bool) ([]byte, error) {\n\t\t\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t\tMarshalFuncV1(func(bool) ([]byte, error) {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tin:   true,\n\t\twant: `\"called\"`,\n\t}, {\n\t\tname: name(\"Functions/Precedence/NestedLast\"),\n\t\tmopts: MarshalOptions{\n\t\t\tMarshalers: NewMarshalers(\n\t\t\t\tMarshalFuncV1(func(bool) ([]byte, error) {\n\t\t\t\t\treturn []byte(`\"called\"`), nil\n\t\t\t\t}),\n\t\t\t\tNewMarshalers(\n\t\t\t\t\tMarshalFuncV1(func(bool) ([]byte, error) {\n\t\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t),\n\t\t},\n\t\tin:   true,\n\t\twant: `\"called\"`,\n\t}, {\n\t\tname: name(\"Duration/Zero\"),\n\t\tin: struct {\n\t\t\tD1 time.Duration\n\t\t\tD2 time.Duration `json:\",format:nanos\"`\n\t\t}{0, 0},\n\t\twant: `{\"D1\":\"0s\",\"D2\":0}`,\n\t}, {\n\t\tname: name(\"Duration/Positive\"),\n\t\tin: struct {\n\t\t\tD1 time.Duration\n\t\t\tD2 time.Duration `json:\",format:nanos\"`\n\t\t}{\n\t\t\t123456789123456789,\n\t\t\t123456789123456789,\n\t\t},\n\t\twant: `{\"D1\":\"34293h33m9.123456789s\",\"D2\":123456789123456789}`,\n\t}, {\n\t\tname: name(\"Duration/Negative\"),\n\t\tin: struct {\n\t\t\tD1 time.Duration\n\t\t\tD2 time.Duration `json:\",format:nanos\"`\n\t\t}{\n\t\t\t-123456789123456789,\n\t\t\t-123456789123456789,\n\t\t},\n\t\twant: `{\"D1\":\"-34293h33m9.123456789s\",\"D2\":-123456789123456789}`,\n\t}, {\n\t\tname: name(\"Duration/Nanos/String\"),\n\t\tin: struct {\n\t\t\tD1 time.Duration `json:\",string,format:nanos\"`\n\t\t\tD2 time.Duration `json:\",string,format:nanos\"`\n\t\t\tD3 time.Duration `json:\",string,format:nanos\"`\n\t\t}{\n\t\t\tmath.MinInt64,\n\t\t\t0,\n\t\t\tmath.MaxInt64,\n\t\t},\n\t\twant: `{\"D1\":\"-9223372036854775808\",\"D2\":\"0\",\"D3\":\"9223372036854775807\"}`,\n\t}, {\n\t\tname: name(\"Duration/Format/Invalid\"),\n\t\tin: struct {\n\t\t\tD time.Duration `json:\",format:invalid\"`\n\t\t}{},\n\t\twant:    `{\"D\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: timeDurationType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:  name(\"Duration/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    time.Duration(0),\n\t\twant:  `\"0s\"`,\n\t}, {\n\t\tname: name(\"Time/Zero\"),\n\t\tin: struct {\n\t\t\tT1 time.Time\n\t\t\tT2 time.Time `json:\",format:RFC822\"`\n\t\t\tT3 time.Time `json:\",format:'2006-01-02'\"`\n\t\t\tT4 time.Time `json:\",omitzero\"`\n\t\t\tT5 time.Time `json:\",omitempty\"`\n\t\t}{\n\t\t\ttime.Time{},\n\t\t\ttime.Time{},\n\t\t\ttime.Time{},\n\t\t\t// This is zero according to time.Time.IsZero,\n\t\t\t// but non-zero according to reflect.Value.IsZero.\n\t\t\ttime.Date(1, 1, 1, 0, 0, 0, 0, time.FixedZone(\"UTC\", 0)),\n\t\t\ttime.Time{},\n\t\t},\n\t\twant: `{\"T1\":\"0001-01-01T00:00:00Z\",\"T2\":\"01 Jan 01 00:00 UTC\",\"T3\":\"0001-01-01\",\"T5\":\"0001-01-01T00:00:00Z\"}`,\n\t}, {\n\t\tname:  name(\"Time/Format\"),\n\t\teopts: EncodeOptions{Indent: \"\\t\"},\n\t\tin: structTimeFormat{\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t\ttime.Date(1234, 1, 2, 3, 4, 5, 6, time.UTC),\n\t\t},\n\t\twant: `{\n\t\"T1\": \"1234-01-02T03:04:05.000000006Z\",\n\t\"T2\": \"Mon Jan  2 03:04:05 1234\",\n\t\"T3\": \"Mon Jan  2 03:04:05 UTC 1234\",\n\t\"T4\": \"Mon Jan 02 03:04:05 +0000 1234\",\n\t\"T5\": \"02 Jan 34 03:04 UTC\",\n\t\"T6\": \"02 Jan 34 03:04 +0000\",\n\t\"T7\": \"Monday, 02-Jan-34 03:04:05 UTC\",\n\t\"T8\": \"Mon, 02 Jan 1234 03:04:05 UTC\",\n\t\"T9\": \"Mon, 02 Jan 1234 03:04:05 +0000\",\n\t\"T10\": \"1234-01-02T03:04:05Z\",\n\t\"T11\": \"1234-01-02T03:04:05.000000006Z\",\n\t\"T12\": \"3:04AM\",\n\t\"T13\": \"Jan  2 03:04:05\",\n\t\"T14\": \"Jan  2 03:04:05.000\",\n\t\"T15\": \"Jan  2 03:04:05.000000\",\n\t\"T16\": \"Jan  2 03:04:05.000000006\",\n\t\"T17\": \"1234-01-02\",\n\t\"T18\": \"\\\"weird\\\"1234\"\n}`,\n\t}, {\n\t\tname: name(\"Time/Format/Invalid\"),\n\t\tin: struct {\n\t\t\tT time.Time `json:\",format:UndefinedConstant\"`\n\t\t}{},\n\t\twant:    `{\"T\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: timeTimeType, Err: errors.New(`undefined format layout: UndefinedConstant`)},\n\t}, {\n\t\tname: name(\"Time/Format/YearOverflow\"),\n\t\tin: struct {\n\t\t\tT1 time.Time\n\t\t\tT2 time.Time\n\t\t}{\n\t\t\ttime.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Add(-time.Second),\n\t\t\ttime.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC),\n\t\t},\n\t\twant:    `{\"T1\":\"9999-12-31T23:59:59Z\",\"T2\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: timeTimeType, Err: errors.New(`year outside of range [0,9999]`)},\n\t}, {\n\t\tname: name(\"Time/Format/YearUnderflow\"),\n\t\tin: struct {\n\t\t\tT1 time.Time\n\t\t\tT2 time.Time\n\t\t}{\n\t\t\ttime.Date(0, 1, 1, 0, 0, 0, 0, time.UTC),\n\t\t\ttime.Date(0, 1, 1, 0, 0, 0, 0, time.UTC).Add(-time.Second),\n\t\t},\n\t\twant:    `{\"T1\":\"0000-01-01T00:00:00Z\",\"T2\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: timeTimeType, Err: errors.New(`year outside of range [0,9999]`)},\n\t}, {\n\t\tname:    name(\"Time/Format/YearUnderflow\"),\n\t\tin:      struct{ T time.Time }{time.Date(-998, 1, 1, 0, 0, 0, 0, time.UTC).Add(-time.Second)},\n\t\twant:    `{\"T\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: timeTimeType, Err: errors.New(`year outside of range [0,9999]`)},\n\t}, {\n\t\tname: name(\"Time/Format/ZoneExact\"),\n\t\tin:   struct{ T time.Time }{time.Date(2020, 1, 1, 0, 0, 0, 0, time.FixedZone(\"\", 23*60*60+59*60))},\n\t\twant: `{\"T\":\"2020-01-01T00:00:00+23:59\"}`,\n\t}, {\n\t\tname:    name(\"Time/Format/ZoneHourOverflow\"),\n\t\tin:      struct{ T time.Time }{time.Date(2020, 1, 1, 0, 0, 0, 0, time.FixedZone(\"\", 24*60*60))},\n\t\twant:    `{\"T\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: timeTimeType, Err: errors.New(`timezone hour outside of range [0,23]`)},\n\t}, {\n\t\tname:    name(\"Time/Format/ZoneHourOverflow\"),\n\t\tin:      struct{ T time.Time }{time.Date(2020, 1, 1, 0, 0, 0, 0, time.FixedZone(\"\", 123*60*60))},\n\t\twant:    `{\"T\"`,\n\t\twantErr: &SemanticError{action: \"marshal\", GoType: timeTimeType, Err: errors.New(`timezone hour outside of range [0,23]`)},\n\t}, {\n\t\tname:  name(\"Time/IgnoreInvalidFormat\"),\n\t\tmopts: MarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tin:    time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC),\n\t\twant:  `\"2000-01-01T00:00:00Z\"`,\n\t}}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name.name, func(t *testing.T) {\n\t\t\tvar got []byte\n\t\t\tvar gotErr error\n\t\t\tif tt.useWriter {\n\t\t\t\tbb := new(struct{ bytes.Buffer }) // avoid optimizations with bytes.Buffer\n\t\t\t\tgotErr = tt.mopts.MarshalFull(tt.eopts, bb, tt.in)\n\t\t\t\tgot = bb.Bytes()\n\t\t\t} else {\n\t\t\t\tgot, gotErr = tt.mopts.Marshal(tt.eopts, tt.in)\n\t\t\t}\n\t\t\tif tt.canonicalize {\n\t\t\t\t(*RawValue)(&got).Canonicalize()\n\t\t\t}\n\t\t\tif string(got) != tt.want {\n\t\t\t\tt.Errorf(\"%s: Marshal output mismatch:\\ngot  %s\\nwant %s\", tt.name.where, got, tt.want)\n\t\t\t}\n\t\t\tif !reflect.DeepEqual(gotErr, tt.wantErr) {\n\t\t\t\tt.Errorf(\"%s: Marshal error mismatch:\\ngot  %v\\nwant %v\", tt.name.where, gotErr, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshal(t *testing.T) {\n\ttests := []struct {\n\t\tname    testName\n\t\tdopts   DecodeOptions\n\t\tuopts   UnmarshalOptions\n\t\tinBuf   string\n\t\tinVal   any\n\t\twant    any\n\t\twantErr error\n\t}{{\n\t\tname:    name(\"Nil\"),\n\t\tinBuf:   `null`,\n\t\twantErr: &SemanticError{action: \"unmarshal\", Err: errors.New(\"value must be passed as a non-nil pointer reference\")},\n\t}, {\n\t\tname:    name(\"NilPointer\"),\n\t\tinBuf:   `null`,\n\t\tinVal:   (*string)(nil),\n\t\twant:    (*string)(nil),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: stringType, Err: errors.New(\"value must be passed as a non-nil pointer reference\")},\n\t}, {\n\t\tname:    name(\"NonPointer\"),\n\t\tinBuf:   `null`,\n\t\tinVal:   \"unchanged\",\n\t\twant:    \"unchanged\",\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: stringType, Err: errors.New(\"value must be passed as a non-nil pointer reference\")},\n\t}, {\n\t\tname:    name(\"Bools/TrailingJunk\"),\n\t\tinBuf:   `falsetrue`,\n\t\tinVal:   addr(true),\n\t\twant:    addr(false),\n\t\twantErr: newInvalidCharacterError([]byte(\"t\"), \"after top-level value\"),\n\t}, {\n\t\tname:  name(\"Bools/Null\"),\n\t\tinBuf: `null`,\n\t\tinVal: addr(true),\n\t\twant:  addr(false),\n\t}, {\n\t\tname:  name(\"Bools\"),\n\t\tinBuf: `[null,false,true]`,\n\t\tinVal: new([]bool),\n\t\twant:  addr([]bool{false, false, true}),\n\t}, {\n\t\tname:  name(\"Bools/Named\"),\n\t\tinBuf: `[null,false,true]`,\n\t\tinVal: new([]namedBool),\n\t\twant:  addr([]namedBool{false, false, true}),\n\t}, {\n\t\tname:    name(\"Bools/Invalid/StringifiedFalse\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"false\"`,\n\t\tinVal:   addr(true),\n\t\twant:    addr(true),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: boolType},\n\t}, {\n\t\tname:    name(\"Bools/Invalid/StringifiedTrue\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"true\"`,\n\t\tinVal:   addr(true),\n\t\twant:    addr(true),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: boolType},\n\t}, {\n\t\tname:    name(\"Bools/Invalid/Number\"),\n\t\tinBuf:   `0`,\n\t\tinVal:   addr(true),\n\t\twant:    addr(true),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: boolType},\n\t}, {\n\t\tname:    name(\"Bools/Invalid/String\"),\n\t\tinBuf:   `\"\"`,\n\t\tinVal:   addr(true),\n\t\twant:    addr(true),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: boolType},\n\t}, {\n\t\tname:    name(\"Bools/Invalid/Object\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr(true),\n\t\twant:    addr(true),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: boolType},\n\t}, {\n\t\tname:    name(\"Bools/Invalid/Array\"),\n\t\tinBuf:   `[]`,\n\t\tinVal:   addr(true),\n\t\twant:    addr(true),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '[', GoType: boolType},\n\t}, {\n\t\tname:  name(\"Bools/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `false`,\n\t\tinVal: addr(true),\n\t\twant:  addr(false),\n\t}, {\n\t\tname:  name(\"Strings/Null\"),\n\t\tinBuf: `null`,\n\t\tinVal: addr(\"something\"),\n\t\twant:  addr(\"\"),\n\t}, {\n\t\tname:  name(\"Strings\"),\n\t\tinBuf: `[null,\"\",\"hello\",\"世界\"]`,\n\t\tinVal: new([]string),\n\t\twant:  addr([]string{\"\", \"\", \"hello\", \"世界\"}),\n\t}, {\n\t\tname:  name(\"Strings/Escaped\"),\n\t\tinBuf: `[null,\"\",\"\\u0068\\u0065\\u006c\\u006c\\u006f\",\"\\u4e16\\u754c\"]`,\n\t\tinVal: new([]string),\n\t\twant:  addr([]string{\"\", \"\", \"hello\", \"世界\"}),\n\t}, {\n\t\tname:  name(\"Strings/Named\"),\n\t\tinBuf: `[null,\"\",\"hello\",\"世界\"]`,\n\t\tinVal: new([]namedString),\n\t\twant:  addr([]namedString{\"\", \"\", \"hello\", \"世界\"}),\n\t}, {\n\t\tname:    name(\"Strings/Invalid/False\"),\n\t\tinBuf:   `false`,\n\t\tinVal:   addr(\"nochange\"),\n\t\twant:    addr(\"nochange\"),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: 'f', GoType: stringType},\n\t}, {\n\t\tname:    name(\"Strings/Invalid/True\"),\n\t\tinBuf:   `true`,\n\t\tinVal:   addr(\"nochange\"),\n\t\twant:    addr(\"nochange\"),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: 't', GoType: stringType},\n\t}, {\n\t\tname:    name(\"Strings/Invalid/Object\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr(\"nochange\"),\n\t\twant:    addr(\"nochange\"),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: stringType},\n\t}, {\n\t\tname:    name(\"Strings/Invalid/Array\"),\n\t\tinBuf:   `[]`,\n\t\tinVal:   addr(\"nochange\"),\n\t\twant:    addr(\"nochange\"),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '[', GoType: stringType},\n\t}, {\n\t\tname:  name(\"Strings/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `\"hello\"`,\n\t\tinVal: addr(\"goodbye\"),\n\t\twant:  addr(\"hello\"),\n\t}, {\n\t\tname:  name(\"Bytes/Null\"),\n\t\tinBuf: `null`,\n\t\tinVal: addr([]byte(\"something\")),\n\t\twant:  addr([]byte(nil)),\n\t}, {\n\t\tname:  name(\"Bytes\"),\n\t\tinBuf: `[null,\"\",\"AQ==\",\"AQI=\",\"AQID\"]`,\n\t\tinVal: new([][]byte),\n\t\twant:  addr([][]byte{nil, {}, {1}, {1, 2}, {1, 2, 3}}),\n\t}, {\n\t\tname:  name(\"Bytes/Large\"),\n\t\tinBuf: `\"dGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cgYW5kIGF0ZSB0aGUgaG9tZXdvcmsgdGhhdCBJIHNwZW50IHNvIG11Y2ggdGltZSBvbi4=\"`,\n\t\tinVal: new([]byte),\n\t\twant:  addr([]byte(\"the quick brown fox jumped over the lazy dog and ate the homework that I spent so much time on.\")),\n\t}, {\n\t\tname:  name(\"Bytes/Reuse\"),\n\t\tinBuf: `\"AQID\"`,\n\t\tinVal: addr([]byte(\"changed\")),\n\t\twant:  addr([]byte{1, 2, 3}),\n\t}, {\n\t\tname:  name(\"Bytes/Escaped\"),\n\t\tinBuf: `[null,\"\",\"\\u0041\\u0051\\u003d\\u003d\",\"\\u0041\\u0051\\u0049\\u003d\",\"\\u0041\\u0051\\u0049\\u0044\"]`,\n\t\tinVal: new([][]byte),\n\t\twant:  addr([][]byte{nil, {}, {1}, {1, 2}, {1, 2, 3}}),\n\t}, {\n\t\tname:  name(\"Bytes/Named\"),\n\t\tinBuf: `[null,\"\",\"AQ==\",\"AQI=\",\"AQID\"]`,\n\t\tinVal: new([]namedBytes),\n\t\twant:  addr([]namedBytes{nil, {}, {1}, {1, 2}, {1, 2, 3}}),\n\t}, {\n\t\tname:  name(\"Bytes/NotStringified\"),\n\t\tuopts: UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf: `[null,\"\",\"AQ==\",\"AQI=\",\"AQID\"]`,\n\t\tinVal: new([][]byte),\n\t\twant:  addr([][]byte{nil, {}, {1}, {1, 2}, {1, 2, 3}}),\n\t}, {\n\t\t// NOTE: []namedByte is not assignable to []byte,\n\t\t// so the following should be treated as a slice of uints.\n\t\tname:  name(\"Bytes/Invariant\"),\n\t\tinBuf: `[null,[],[1],[1,2],[1,2,3]]`,\n\t\tinVal: new([][]namedByte),\n\t\twant:  addr([][]namedByte{nil, {}, {1}, {1, 2}, {1, 2, 3}}),\n\t}, {\n\t\t// NOTE: This differs in behavior from v1,\n\t\t// but keeps the representation of slices and arrays more consistent.\n\t\tname:  name(\"Bytes/ByteArray\"),\n\t\tinBuf: `\"aGVsbG8=\"`,\n\t\tinVal: new([5]byte),\n\t\twant:  addr([5]byte{'h', 'e', 'l', 'l', 'o'}),\n\t}, {\n\t\tname:  name(\"Bytes/ByteArray0/Valid\"),\n\t\tinBuf: `\"\"`,\n\t\tinVal: new([0]byte),\n\t\twant:  addr([0]byte{}),\n\t}, {\n\t\tname:  name(\"Bytes/ByteArray0/Invalid\"),\n\t\tinBuf: `\"A\"`,\n\t\tinVal: new([0]byte),\n\t\twant:  addr([0]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array0ByteType, Err: func() error {\n\t\t\t_, err := base64.StdEncoding.Decode(make([]byte, 0), []byte(\"A\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:    name(\"Bytes/ByteArray0/Overflow\"),\n\t\tinBuf:   `\"AA==\"`,\n\t\tinVal:   new([0]byte),\n\t\twant:    addr([0]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array0ByteType, Err: errors.New(\"decoded base64 length of 1 mismatches array length of 0\")},\n\t}, {\n\t\tname:  name(\"Bytes/ByteArray1/Valid\"),\n\t\tinBuf: `\"AQ==\"`,\n\t\tinVal: new([1]byte),\n\t\twant:  addr([1]byte{1}),\n\t}, {\n\t\tname:  name(\"Bytes/ByteArray1/Invalid\"),\n\t\tinBuf: `\"$$==\"`,\n\t\tinVal: new([1]byte),\n\t\twant:  addr([1]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array1ByteType, Err: func() error {\n\t\t\t_, err := base64.StdEncoding.Decode(make([]byte, 1), []byte(\"$$==\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:    name(\"Bytes/ByteArray1/Underflow\"),\n\t\tinBuf:   `\"\"`,\n\t\tinVal:   new([1]byte),\n\t\twant:    addr([1]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array1ByteType, Err: errors.New(\"decoded base64 length of 0 mismatches array length of 1\")},\n\t}, {\n\t\tname:    name(\"Bytes/ByteArray1/Overflow\"),\n\t\tinBuf:   `\"AQI=\"`,\n\t\tinVal:   new([1]byte),\n\t\twant:    addr([1]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array1ByteType, Err: errors.New(\"decoded base64 length of 2 mismatches array length of 1\")},\n\t}, {\n\t\tname:  name(\"Bytes/ByteArray2/Valid\"),\n\t\tinBuf: `\"AQI=\"`,\n\t\tinVal: new([2]byte),\n\t\twant:  addr([2]byte{1, 2}),\n\t}, {\n\t\tname:  name(\"Bytes/ByteArray2/Invalid\"),\n\t\tinBuf: `\"$$$=\"`,\n\t\tinVal: new([2]byte),\n\t\twant:  addr([2]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array2ByteType, Err: func() error {\n\t\t\t_, err := base64.StdEncoding.Decode(make([]byte, 2), []byte(\"$$$=\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:    name(\"Bytes/ByteArray2/Underflow\"),\n\t\tinBuf:   `\"AQ==\"`,\n\t\tinVal:   new([2]byte),\n\t\twant:    addr([2]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array2ByteType, Err: errors.New(\"decoded base64 length of 1 mismatches array length of 2\")},\n\t}, {\n\t\tname:    name(\"Bytes/ByteArray2/Overflow\"),\n\t\tinBuf:   `\"AQID\"`,\n\t\tinVal:   new([2]byte),\n\t\twant:    addr([2]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array2ByteType, Err: errors.New(\"decoded base64 length of 3 mismatches array length of 2\")},\n\t}, {\n\t\tname:  name(\"Bytes/ByteArray3/Valid\"),\n\t\tinBuf: `\"AQID\"`,\n\t\tinVal: new([3]byte),\n\t\twant:  addr([3]byte{1, 2, 3}),\n\t}, {\n\t\tname:  name(\"Bytes/ByteArray3/Invalid\"),\n\t\tinBuf: `\"$$$$\"`,\n\t\tinVal: new([3]byte),\n\t\twant:  addr([3]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array3ByteType, Err: func() error {\n\t\t\t_, err := base64.StdEncoding.Decode(make([]byte, 3), []byte(\"$$$$\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:    name(\"Bytes/ByteArray3/Underflow\"),\n\t\tinBuf:   `\"AQI=\"`,\n\t\tinVal:   new([3]byte),\n\t\twant:    addr([3]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array3ByteType, Err: errors.New(\"decoded base64 length of 2 mismatches array length of 3\")},\n\t}, {\n\t\tname:    name(\"Bytes/ByteArray3/Overflow\"),\n\t\tinBuf:   `\"AQIDAQ==\"`,\n\t\tinVal:   new([3]byte),\n\t\twant:    addr([3]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array3ByteType, Err: errors.New(\"decoded base64 length of 4 mismatches array length of 3\")},\n\t}, {\n\t\tname:  name(\"Bytes/ByteArray4/Valid\"),\n\t\tinBuf: `\"AQIDBA==\"`,\n\t\tinVal: new([4]byte),\n\t\twant:  addr([4]byte{1, 2, 3, 4}),\n\t}, {\n\t\tname:  name(\"Bytes/ByteArray4/Invalid\"),\n\t\tinBuf: `\"$$$$$$==\"`,\n\t\tinVal: new([4]byte),\n\t\twant:  addr([4]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array4ByteType, Err: func() error {\n\t\t\t_, err := base64.StdEncoding.Decode(make([]byte, 4), []byte(\"$$$$$$==\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:    name(\"Bytes/ByteArray4/Underflow\"),\n\t\tinBuf:   `\"AQID\"`,\n\t\tinVal:   new([4]byte),\n\t\twant:    addr([4]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array4ByteType, Err: errors.New(\"decoded base64 length of 3 mismatches array length of 4\")},\n\t}, {\n\t\tname:    name(\"Bytes/ByteArray4/Overflow\"),\n\t\tinBuf:   `\"AQIDBAU=\"`,\n\t\tinVal:   new([4]byte),\n\t\twant:    addr([4]byte{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array4ByteType, Err: errors.New(\"decoded base64 length of 5 mismatches array length of 4\")},\n\t}, {\n\t\t// NOTE: []namedByte is not assignable to []byte,\n\t\t// so the following should be treated as a array of uints.\n\t\tname:  name(\"Bytes/NamedByteArray\"),\n\t\tinBuf: `[104,101,108,108,111]`,\n\t\tinVal: new([5]namedByte),\n\t\twant:  addr([5]namedByte{'h', 'e', 'l', 'l', 'o'}),\n\t}, {\n\t\tname:  name(\"Bytes/Valid/Denormalized\"),\n\t\tinBuf: `\"AR==\"`,\n\t\tinVal: new([]byte),\n\t\twant:  addr([]byte{1}),\n\t}, {\n\t\tname:  name(\"Bytes/Invalid/Unpadded1\"),\n\t\tinBuf: `\"AQ=\"`,\n\t\tinVal: addr([]byte(\"nochange\")),\n\t\twant:  addr([]byte(\"nochange\")),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := base64.StdEncoding.Decode(make([]byte, 0), []byte(\"AQ=\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:  name(\"Bytes/Invalid/Unpadded2\"),\n\t\tinBuf: `\"AQ\"`,\n\t\tinVal: addr([]byte(\"nochange\")),\n\t\twant:  addr([]byte(\"nochange\")),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := base64.StdEncoding.Decode(make([]byte, 0), []byte(\"AQ\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:  name(\"Bytes/Invalid/Character\"),\n\t\tinBuf: `\"@@@@\"`,\n\t\tinVal: addr([]byte(\"nochange\")),\n\t\twant:  addr([]byte(\"nochange\")),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := base64.StdEncoding.Decode(make([]byte, 3), []byte(\"@@@@\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:    name(\"Bytes/Invalid/Bool\"),\n\t\tinBuf:   `true`,\n\t\tinVal:   addr([]byte(\"nochange\")),\n\t\twant:    addr([]byte(\"nochange\")),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: 't', GoType: bytesType},\n\t}, {\n\t\tname:    name(\"Bytes/Invalid/Number\"),\n\t\tinBuf:   `0`,\n\t\tinVal:   addr([]byte(\"nochange\")),\n\t\twant:    addr([]byte(\"nochange\")),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: bytesType},\n\t}, {\n\t\tname:    name(\"Bytes/Invalid/Object\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr([]byte(\"nochange\")),\n\t\twant:    addr([]byte(\"nochange\")),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: bytesType},\n\t}, {\n\t\tname:    name(\"Bytes/Invalid/Array\"),\n\t\tinBuf:   `[]`,\n\t\tinVal:   addr([]byte(\"nochange\")),\n\t\twant:    addr([]byte(\"nochange\")),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '[', GoType: bytesType},\n\t}, {\n\t\tname:  name(\"Bytes/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `\"aGVsbG8=\"`,\n\t\tinVal: new([]byte),\n\t\twant:  addr([]byte(\"hello\")),\n\t}, {\n\t\tname:  name(\"Ints/Null\"),\n\t\tinBuf: `null`,\n\t\tinVal: addr(int(1)),\n\t\twant:  addr(int(0)),\n\t}, {\n\t\tname:  name(\"Ints/Int\"),\n\t\tinBuf: `1`,\n\t\tinVal: addr(int(0)),\n\t\twant:  addr(int(1)),\n\t}, {\n\t\tname:    name(\"Ints/Int8/MinOverflow\"),\n\t\tinBuf:   `-129`,\n\t\tinVal:   addr(int8(-1)),\n\t\twant:    addr(int8(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: int8Type, Err: fmt.Errorf(`cannot parse \"-129\" as signed integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:  name(\"Ints/Int8/Min\"),\n\t\tinBuf: `-128`,\n\t\tinVal: addr(int8(0)),\n\t\twant:  addr(int8(-128)),\n\t}, {\n\t\tname:  name(\"Ints/Int8/Max\"),\n\t\tinBuf: `127`,\n\t\tinVal: addr(int8(0)),\n\t\twant:  addr(int8(127)),\n\t}, {\n\t\tname:    name(\"Ints/Int8/MaxOverflow\"),\n\t\tinBuf:   `128`,\n\t\tinVal:   addr(int8(-1)),\n\t\twant:    addr(int8(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: int8Type, Err: fmt.Errorf(`cannot parse \"128\" as signed integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:    name(\"Ints/Int16/MinOverflow\"),\n\t\tinBuf:   `-32769`,\n\t\tinVal:   addr(int16(-1)),\n\t\twant:    addr(int16(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: int16Type, Err: fmt.Errorf(`cannot parse \"-32769\" as signed integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:  name(\"Ints/Int16/Min\"),\n\t\tinBuf: `-32768`,\n\t\tinVal: addr(int16(0)),\n\t\twant:  addr(int16(-32768)),\n\t}, {\n\t\tname:  name(\"Ints/Int16/Max\"),\n\t\tinBuf: `32767`,\n\t\tinVal: addr(int16(0)),\n\t\twant:  addr(int16(32767)),\n\t}, {\n\t\tname:    name(\"Ints/Int16/MaxOverflow\"),\n\t\tinBuf:   `32768`,\n\t\tinVal:   addr(int16(-1)),\n\t\twant:    addr(int16(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: int16Type, Err: fmt.Errorf(`cannot parse \"32768\" as signed integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:    name(\"Ints/Int32/MinOverflow\"),\n\t\tinBuf:   `-2147483649`,\n\t\tinVal:   addr(int32(-1)),\n\t\twant:    addr(int32(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: int32Type, Err: fmt.Errorf(`cannot parse \"-2147483649\" as signed integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:  name(\"Ints/Int32/Min\"),\n\t\tinBuf: `-2147483648`,\n\t\tinVal: addr(int32(0)),\n\t\twant:  addr(int32(-2147483648)),\n\t}, {\n\t\tname:  name(\"Ints/Int32/Max\"),\n\t\tinBuf: `2147483647`,\n\t\tinVal: addr(int32(0)),\n\t\twant:  addr(int32(2147483647)),\n\t}, {\n\t\tname:    name(\"Ints/Int32/MaxOverflow\"),\n\t\tinBuf:   `2147483648`,\n\t\tinVal:   addr(int32(-1)),\n\t\twant:    addr(int32(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: int32Type, Err: fmt.Errorf(`cannot parse \"2147483648\" as signed integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:    name(\"Ints/Int64/MinOverflow\"),\n\t\tinBuf:   `-9223372036854775809`,\n\t\tinVal:   addr(int64(-1)),\n\t\twant:    addr(int64(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: int64Type, Err: fmt.Errorf(`cannot parse \"-9223372036854775809\" as signed integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:  name(\"Ints/Int64/Min\"),\n\t\tinBuf: `-9223372036854775808`,\n\t\tinVal: addr(int64(0)),\n\t\twant:  addr(int64(-9223372036854775808)),\n\t}, {\n\t\tname:  name(\"Ints/Int64/Max\"),\n\t\tinBuf: `9223372036854775807`,\n\t\tinVal: addr(int64(0)),\n\t\twant:  addr(int64(9223372036854775807)),\n\t}, {\n\t\tname:    name(\"Ints/Int64/MaxOverflow\"),\n\t\tinBuf:   `9223372036854775808`,\n\t\tinVal:   addr(int64(-1)),\n\t\twant:    addr(int64(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: int64Type, Err: fmt.Errorf(`cannot parse \"9223372036854775808\" as signed integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:  name(\"Ints/Named\"),\n\t\tinBuf: `-6464`,\n\t\tinVal: addr(namedInt64(0)),\n\t\twant:  addr(namedInt64(-6464)),\n\t}, {\n\t\tname:  name(\"Ints/Stringified\"),\n\t\tuopts: UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf: `\"-6464\"`,\n\t\tinVal: new(int),\n\t\twant:  addr(int(-6464)),\n\t}, {\n\t\tname:  name(\"Ints/Escaped\"),\n\t\tuopts: UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf: `\"\\u002d\\u0036\\u0034\\u0036\\u0034\"`,\n\t\tinVal: new(int),\n\t\twant:  addr(int(-6464)),\n\t}, {\n\t\tname:  name(\"Ints/Valid/NegativeZero\"),\n\t\tinBuf: `-0`,\n\t\tinVal: addr(int(1)),\n\t\twant:  addr(int(0)),\n\t}, {\n\t\tname:    name(\"Ints/Invalid/Fraction\"),\n\t\tinBuf:   `1.0`,\n\t\tinVal:   addr(int(-1)),\n\t\twant:    addr(int(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: intType, Err: fmt.Errorf(`cannot parse \"1.0\" as signed integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Ints/Invalid/Exponent\"),\n\t\tinBuf:   `1e0`,\n\t\tinVal:   addr(int(-1)),\n\t\twant:    addr(int(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: intType, Err: fmt.Errorf(`cannot parse \"1e0\" as signed integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Ints/Invalid/StringifiedFraction\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"1.0\"`,\n\t\tinVal:   addr(int(-1)),\n\t\twant:    addr(int(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: intType, Err: fmt.Errorf(`cannot parse \"1.0\" as signed integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Ints/Invalid/StringifiedExponent\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"1e0\"`,\n\t\tinVal:   addr(int(-1)),\n\t\twant:    addr(int(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: intType, Err: fmt.Errorf(`cannot parse \"1e0\" as signed integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Ints/Invalid/Overflow\"),\n\t\tinBuf:   `100000000000000000000000000000`,\n\t\tinVal:   addr(int(-1)),\n\t\twant:    addr(int(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: intType, Err: fmt.Errorf(`cannot parse \"100000000000000000000000000000\" as signed integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:    name(\"Ints/Invalid/OverflowSyntax\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"100000000000000000000000000000x\"`,\n\t\tinVal:   addr(int(-1)),\n\t\twant:    addr(int(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: intType, Err: fmt.Errorf(`cannot parse \"100000000000000000000000000000x\" as signed integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Ints/Invalid/Whitespace\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"0 \"`,\n\t\tinVal:   addr(int(-1)),\n\t\twant:    addr(int(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: intType, Err: fmt.Errorf(`cannot parse \"0 \" as signed integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Ints/Invalid/Bool\"),\n\t\tinBuf:   `true`,\n\t\tinVal:   addr(int(-1)),\n\t\twant:    addr(int(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: 't', GoType: intType},\n\t}, {\n\t\tname:    name(\"Ints/Invalid/String\"),\n\t\tinBuf:   `\"0\"`,\n\t\tinVal:   addr(int(-1)),\n\t\twant:    addr(int(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: intType},\n\t}, {\n\t\tname:    name(\"Ints/Invalid/Object\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr(int(-1)),\n\t\twant:    addr(int(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: intType},\n\t}, {\n\t\tname:    name(\"Ints/Invalid/Array\"),\n\t\tinBuf:   `[]`,\n\t\tinVal:   addr(int(-1)),\n\t\twant:    addr(int(-1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '[', GoType: intType},\n\t}, {\n\t\tname:  name(\"Ints/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `1`,\n\t\tinVal: addr(int(0)),\n\t\twant:  addr(int(1)),\n\t}, {\n\t\tname:  name(\"Uints/Null\"),\n\t\tinBuf: `null`,\n\t\tinVal: addr(uint(1)),\n\t\twant:  addr(uint(0)),\n\t}, {\n\t\tname:  name(\"Uints/Uint\"),\n\t\tinBuf: `1`,\n\t\tinVal: addr(uint(0)),\n\t\twant:  addr(uint(1)),\n\t}, {\n\t\tname:  name(\"Uints/Uint8/Min\"),\n\t\tinBuf: `0`,\n\t\tinVal: addr(uint8(1)),\n\t\twant:  addr(uint8(0)),\n\t}, {\n\t\tname:  name(\"Uints/Uint8/Max\"),\n\t\tinBuf: `255`,\n\t\tinVal: addr(uint8(0)),\n\t\twant:  addr(uint8(255)),\n\t}, {\n\t\tname:    name(\"Uints/Uint8/MaxOverflow\"),\n\t\tinBuf:   `256`,\n\t\tinVal:   addr(uint8(1)),\n\t\twant:    addr(uint8(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: uint8Type, Err: fmt.Errorf(`cannot parse \"256\" as unsigned integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:  name(\"Uints/Uint16/Min\"),\n\t\tinBuf: `0`,\n\t\tinVal: addr(uint16(1)),\n\t\twant:  addr(uint16(0)),\n\t}, {\n\t\tname:  name(\"Uints/Uint16/Max\"),\n\t\tinBuf: `65535`,\n\t\tinVal: addr(uint16(0)),\n\t\twant:  addr(uint16(65535)),\n\t}, {\n\t\tname:    name(\"Uints/Uint16/MaxOverflow\"),\n\t\tinBuf:   `65536`,\n\t\tinVal:   addr(uint16(1)),\n\t\twant:    addr(uint16(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: uint16Type, Err: fmt.Errorf(`cannot parse \"65536\" as unsigned integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:  name(\"Uints/Uint32/Min\"),\n\t\tinBuf: `0`,\n\t\tinVal: addr(uint32(1)),\n\t\twant:  addr(uint32(0)),\n\t}, {\n\t\tname:  name(\"Uints/Uint32/Max\"),\n\t\tinBuf: `4294967295`,\n\t\tinVal: addr(uint32(0)),\n\t\twant:  addr(uint32(4294967295)),\n\t}, {\n\t\tname:    name(\"Uints/Uint32/MaxOverflow\"),\n\t\tinBuf:   `4294967296`,\n\t\tinVal:   addr(uint32(1)),\n\t\twant:    addr(uint32(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: uint32Type, Err: fmt.Errorf(`cannot parse \"4294967296\" as unsigned integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:  name(\"Uints/Uint64/Min\"),\n\t\tinBuf: `0`,\n\t\tinVal: addr(uint64(1)),\n\t\twant:  addr(uint64(0)),\n\t}, {\n\t\tname:  name(\"Uints/Uint64/Max\"),\n\t\tinBuf: `18446744073709551615`,\n\t\tinVal: addr(uint64(0)),\n\t\twant:  addr(uint64(18446744073709551615)),\n\t}, {\n\t\tname:    name(\"Uints/Uint64/MaxOverflow\"),\n\t\tinBuf:   `18446744073709551616`,\n\t\tinVal:   addr(uint64(1)),\n\t\twant:    addr(uint64(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: uint64Type, Err: fmt.Errorf(`cannot parse \"18446744073709551616\" as unsigned integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:  name(\"Uints/Named\"),\n\t\tinBuf: `6464`,\n\t\tinVal: addr(namedUint64(0)),\n\t\twant:  addr(namedUint64(6464)),\n\t}, {\n\t\tname:  name(\"Uints/Stringified\"),\n\t\tuopts: UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf: `\"6464\"`,\n\t\tinVal: new(uint),\n\t\twant:  addr(uint(6464)),\n\t}, {\n\t\tname:  name(\"Uints/Escaped\"),\n\t\tuopts: UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf: `\"\\u0036\\u0034\\u0036\\u0034\"`,\n\t\tinVal: new(uint),\n\t\twant:  addr(uint(6464)),\n\t}, {\n\t\tname:    name(\"Uints/Invalid/NegativeOne\"),\n\t\tinBuf:   `-1`,\n\t\tinVal:   addr(uint(1)),\n\t\twant:    addr(uint(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: uintType, Err: fmt.Errorf(`cannot parse \"-1\" as unsigned integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Uints/Invalid/NegativeZero\"),\n\t\tinBuf:   `-0`,\n\t\tinVal:   addr(uint(1)),\n\t\twant:    addr(uint(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: uintType, Err: fmt.Errorf(`cannot parse \"-0\" as unsigned integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Uints/Invalid/Fraction\"),\n\t\tinBuf:   `1.0`,\n\t\tinVal:   addr(uint(10)),\n\t\twant:    addr(uint(10)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: uintType, Err: fmt.Errorf(`cannot parse \"1.0\" as unsigned integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Uints/Invalid/Exponent\"),\n\t\tinBuf:   `1e0`,\n\t\tinVal:   addr(uint(10)),\n\t\twant:    addr(uint(10)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: uintType, Err: fmt.Errorf(`cannot parse \"1e0\" as unsigned integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Uints/Invalid/StringifiedFraction\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"1.0\"`,\n\t\tinVal:   addr(uint(10)),\n\t\twant:    addr(uint(10)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: uintType, Err: fmt.Errorf(`cannot parse \"1.0\" as unsigned integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Uints/Invalid/StringifiedExponent\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"1e0\"`,\n\t\tinVal:   addr(uint(10)),\n\t\twant:    addr(uint(10)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: uintType, Err: fmt.Errorf(`cannot parse \"1e0\" as unsigned integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Uints/Invalid/Overflow\"),\n\t\tinBuf:   `100000000000000000000000000000`,\n\t\tinVal:   addr(uint(1)),\n\t\twant:    addr(uint(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: uintType, Err: fmt.Errorf(`cannot parse \"100000000000000000000000000000\" as unsigned integer: %w`, strconv.ErrRange)},\n\t}, {\n\t\tname:    name(\"Uints/Invalid/OverflowSyntax\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"100000000000000000000000000000x\"`,\n\t\tinVal:   addr(uint(1)),\n\t\twant:    addr(uint(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: uintType, Err: fmt.Errorf(`cannot parse \"100000000000000000000000000000x\" as unsigned integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Uints/Invalid/Whitespace\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"0 \"`,\n\t\tinVal:   addr(uint(1)),\n\t\twant:    addr(uint(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: uintType, Err: fmt.Errorf(`cannot parse \"0 \" as unsigned integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Uints/Invalid/Bool\"),\n\t\tinBuf:   `true`,\n\t\tinVal:   addr(uint(1)),\n\t\twant:    addr(uint(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: 't', GoType: uintType},\n\t}, {\n\t\tname:    name(\"Uints/Invalid/String\"),\n\t\tinBuf:   `\"0\"`,\n\t\tinVal:   addr(uint(1)),\n\t\twant:    addr(uint(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: uintType},\n\t}, {\n\t\tname:    name(\"Uints/Invalid/Object\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr(uint(1)),\n\t\twant:    addr(uint(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: uintType},\n\t}, {\n\t\tname:    name(\"Uints/Invalid/Array\"),\n\t\tinBuf:   `[]`,\n\t\tinVal:   addr(uint(1)),\n\t\twant:    addr(uint(1)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '[', GoType: uintType},\n\t}, {\n\t\tname:  name(\"Uints/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `1`,\n\t\tinVal: addr(uint(0)),\n\t\twant:  addr(uint(1)),\n\t}, {\n\t\tname:  name(\"Floats/Null\"),\n\t\tinBuf: `null`,\n\t\tinVal: addr(float64(64.64)),\n\t\twant:  addr(float64(0)),\n\t}, {\n\t\tname:  name(\"Floats/Float32/Pi\"),\n\t\tinBuf: `3.14159265358979323846264338327950288419716939937510582097494459`,\n\t\tinVal: addr(float32(32.32)),\n\t\twant:  addr(float32(math.Pi)),\n\t}, {\n\t\tname:  name(\"Floats/Float32/Underflow\"),\n\t\tinBuf: `-1e1000`,\n\t\tinVal: addr(float32(32.32)),\n\t\twant:  addr(float32(-math.MaxFloat32)),\n\t}, {\n\t\tname:  name(\"Floats/Float32/Overflow\"),\n\t\tinBuf: `-1e1000`,\n\t\tinVal: addr(float32(32.32)),\n\t\twant:  addr(float32(-math.MaxFloat32)),\n\t}, {\n\t\tname:  name(\"Floats/Float64/Pi\"),\n\t\tinBuf: `3.14159265358979323846264338327950288419716939937510582097494459`,\n\t\tinVal: addr(float64(64.64)),\n\t\twant:  addr(float64(math.Pi)),\n\t}, {\n\t\tname:  name(\"Floats/Float64/Underflow\"),\n\t\tinBuf: `-1e1000`,\n\t\tinVal: addr(float64(64.64)),\n\t\twant:  addr(float64(-math.MaxFloat64)),\n\t}, {\n\t\tname:  name(\"Floats/Float64/Overflow\"),\n\t\tinBuf: `-1e1000`,\n\t\tinVal: addr(float64(64.64)),\n\t\twant:  addr(float64(-math.MaxFloat64)),\n\t}, {\n\t\tname:  name(\"Floats/Named\"),\n\t\tinBuf: `64.64`,\n\t\tinVal: addr(namedFloat64(0)),\n\t\twant:  addr(namedFloat64(64.64)),\n\t}, {\n\t\tname:  name(\"Floats/Stringified\"),\n\t\tuopts: UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf: `\"64.64\"`,\n\t\tinVal: new(float64),\n\t\twant:  addr(float64(64.64)),\n\t}, {\n\t\tname:  name(\"Floats/Escaped\"),\n\t\tuopts: UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf: `\"\\u0036\\u0034\\u002e\\u0036\\u0034\"`,\n\t\tinVal: new(float64),\n\t\twant:  addr(float64(64.64)),\n\t}, {\n\t\tname:    name(\"Floats/Invalid/NaN\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"NaN\"`,\n\t\tinVal:   addr(float64(64.64)),\n\t\twant:    addr(float64(64.64)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: float64Type, Err: fmt.Errorf(`cannot parse \"NaN\" as JSON number: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Floats/Invalid/Infinity\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"Infinity\"`,\n\t\tinVal:   addr(float64(64.64)),\n\t\twant:    addr(float64(64.64)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: float64Type, Err: fmt.Errorf(`cannot parse \"Infinity\" as JSON number: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Floats/Invalid/Whitespace\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"1 \"`,\n\t\tinVal:   addr(float64(64.64)),\n\t\twant:    addr(float64(64.64)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: float64Type, Err: fmt.Errorf(`cannot parse \"1 \" as JSON number: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Floats/Invalid/GoSyntax\"),\n\t\tuopts:   UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf:   `\"1p-2\"`,\n\t\tinVal:   addr(float64(64.64)),\n\t\twant:    addr(float64(64.64)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: float64Type, Err: fmt.Errorf(`cannot parse \"1p-2\" as JSON number: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:    name(\"Floats/Invalid/Bool\"),\n\t\tinBuf:   `true`,\n\t\tinVal:   addr(float64(64.64)),\n\t\twant:    addr(float64(64.64)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: 't', GoType: float64Type},\n\t}, {\n\t\tname:    name(\"Floats/Invalid/String\"),\n\t\tinBuf:   `\"0\"`,\n\t\tinVal:   addr(float64(64.64)),\n\t\twant:    addr(float64(64.64)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: float64Type},\n\t}, {\n\t\tname:    name(\"Floats/Invalid/Object\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr(float64(64.64)),\n\t\twant:    addr(float64(64.64)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: float64Type},\n\t}, {\n\t\tname:    name(\"Floats/Invalid/Array\"),\n\t\tinBuf:   `[]`,\n\t\tinVal:   addr(float64(64.64)),\n\t\twant:    addr(float64(64.64)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '[', GoType: float64Type},\n\t}, {\n\t\tname:  name(\"Floats/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `1`,\n\t\tinVal: addr(float64(0)),\n\t\twant:  addr(float64(1)),\n\t}, {\n\t\tname:  name(\"Maps/Null\"),\n\t\tinBuf: `null`,\n\t\tinVal: addr(map[string]string{\"key\": \"value\"}),\n\t\twant:  new(map[string]string),\n\t}, {\n\t\tname:    name(\"Maps/InvalidKey/Bool\"),\n\t\tinBuf:   `{\"true\":\"false\"}`,\n\t\tinVal:   new(map[bool]bool),\n\t\twant:    addr(make(map[bool]bool)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: boolType},\n\t}, {\n\t\tname:    name(\"Maps/InvalidKey/NamedBool\"),\n\t\tinBuf:   `{\"true\":\"false\"}`,\n\t\tinVal:   new(map[namedBool]bool),\n\t\twant:    addr(make(map[namedBool]bool)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: namedBoolType},\n\t}, {\n\t\tname:    name(\"Maps/InvalidKey/Array\"),\n\t\tinBuf:   `{\"key\":\"value\"}`,\n\t\tinVal:   new(map[[1]string]string),\n\t\twant:    addr(make(map[[1]string]string)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array1StringType},\n\t}, {\n\t\tname:    name(\"Maps/InvalidKey/Channel\"),\n\t\tinBuf:   `{\"key\":\"value\"}`,\n\t\tinVal:   new(map[chan string]string),\n\t\twant:    addr(make(map[chan string]string)),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: chanStringType},\n\t}, {\n\t\tname:  name(\"Maps/ValidKey/Int\"),\n\t\tinBuf: `{\"0\":0,\"-1\":1,\"2\":2,\"-3\":3}`,\n\t\tinVal: new(map[int]int),\n\t\twant:  addr(map[int]int{0: 0, -1: 1, 2: 2, -3: 3}),\n\t}, {\n\t\tname:  name(\"Maps/ValidKey/NamedInt\"),\n\t\tinBuf: `{\"0\":0,\"-1\":1,\"2\":2,\"-3\":3}`,\n\t\tinVal: new(map[namedInt64]int),\n\t\twant:  addr(map[namedInt64]int{0: 0, -1: 1, 2: 2, -3: 3}),\n\t}, {\n\t\tname:  name(\"Maps/ValidKey/Uint\"),\n\t\tinBuf: `{\"0\":0,\"1\":1,\"2\":2,\"3\":3}`,\n\t\tinVal: new(map[uint]uint),\n\t\twant:  addr(map[uint]uint{0: 0, 1: 1, 2: 2, 3: 3}),\n\t}, {\n\t\tname:  name(\"Maps/ValidKey/NamedUint\"),\n\t\tinBuf: `{\"0\":0,\"1\":1,\"2\":2,\"3\":3}`,\n\t\tinVal: new(map[namedUint64]uint),\n\t\twant:  addr(map[namedUint64]uint{0: 0, 1: 1, 2: 2, 3: 3}),\n\t}, {\n\t\tname:  name(\"Maps/ValidKey/Float\"),\n\t\tinBuf: `{\"1.234\":1.234,\"12.34\":12.34,\"123.4\":123.4}`,\n\t\tinVal: new(map[float64]float64),\n\t\twant:  addr(map[float64]float64{1.234: 1.234, 12.34: 12.34, 123.4: 123.4}),\n\t}, {\n\t\tname:    name(\"Maps/DuplicateName/Int\"),\n\t\tinBuf:   `{\"0\":1,\"-0\":-1}`,\n\t\tinVal:   new(map[int]int),\n\t\twant:    addr(map[int]int{0: 1}),\n\t\twantErr: (&SyntacticError{str: `duplicate name \"-0\" in object`}).withOffset(int64(len(`{\"0\":1,`))),\n\t}, {\n\t\tname:  name(\"Maps/DuplicateName/Int/AllowDuplicateNames\"),\n\t\tdopts: DecodeOptions{AllowDuplicateNames: true},\n\t\tinBuf: `{\"0\":1,\"-0\":-1}`,\n\t\tinVal: new(map[int]int),\n\t\twant:  addr(map[int]int{0: -1}), // latter takes precedence\n\t}, {\n\t\tname:  name(\"Maps/DuplicateName/Int/OverwriteExisting\"),\n\t\tinBuf: `{\"-0\":-1}`,\n\t\tinVal: addr(map[int]int{0: 1}),\n\t\twant:  addr(map[int]int{0: -1}),\n\t}, {\n\t\tname:    name(\"Maps/DuplicateName/Float\"),\n\t\tinBuf:   `{\"1.0\":\"1.0\",\"1\":\"1\",\"1e0\":\"1e0\"}`,\n\t\tinVal:   new(map[float64]string),\n\t\twant:    addr(map[float64]string{1: \"1.0\"}),\n\t\twantErr: (&SyntacticError{str: `duplicate name \"1\" in object`}).withOffset(int64(len(`{\"1.0\":\"1.0\",`))),\n\t}, {\n\t\tname:  name(\"Maps/DuplicateName/Float/AllowDuplicateNames\"),\n\t\tdopts: DecodeOptions{AllowDuplicateNames: true},\n\t\tinBuf: `{\"1.0\":\"1.0\",\"1\":\"1\",\"1e0\":\"1e0\"}`,\n\t\tinVal: new(map[float64]string),\n\t\twant:  addr(map[float64]string{1: \"1e0\"}), // latter takes precedence\n\t}, {\n\t\tname:  name(\"Maps/DuplicateName/Float/OverwriteExisting\"),\n\t\tinBuf: `{\"1.0\":\"1.0\"}`,\n\t\tinVal: addr(map[float64]string{1: \"1\"}),\n\t\twant:  addr(map[float64]string{1: \"1.0\"}),\n\t}, {\n\t\tname:    name(\"Maps/DuplicateName/NoCaseString\"),\n\t\tinBuf:   `{\"hello\":\"hello\",\"HELLO\":\"HELLO\"}`,\n\t\tinVal:   new(map[nocaseString]string),\n\t\twant:    addr(map[nocaseString]string{\"hello\": \"hello\"}),\n\t\twantErr: (&SyntacticError{str: `duplicate name \"HELLO\" in object`}).withOffset(int64(len(`{\"hello\":\"hello\",`))),\n\t}, {\n\t\tname:  name(\"Maps/DuplicateName/NoCaseString/AllowDuplicateNames\"),\n\t\tdopts: DecodeOptions{AllowDuplicateNames: true},\n\t\tinBuf: `{\"hello\":\"hello\",\"HELLO\":\"HELLO\"}`,\n\t\tinVal: new(map[nocaseString]string),\n\t\twant:  addr(map[nocaseString]string{\"hello\": \"HELLO\"}), // latter takes precedence\n\t}, {\n\t\tname:  name(\"Maps/DuplicateName/NoCaseString/OverwriteExisting\"),\n\t\tdopts: DecodeOptions{AllowDuplicateNames: true},\n\t\tinBuf: `{\"HELLO\":\"HELLO\"}`,\n\t\tinVal: addr(map[nocaseString]string{\"hello\": \"hello\"}),\n\t\twant:  addr(map[nocaseString]string{\"hello\": \"HELLO\"}),\n\t}, {\n\t\tname:  name(\"Maps/ValidKey/Interface\"),\n\t\tinBuf: `{\"false\":\"false\",\"true\":\"true\",\"string\":\"string\",\"0\":\"0\",\"[]\":\"[]\",\"{}\":\"{}\"}`,\n\t\tinVal: new(map[any]string),\n\t\twant: addr(map[any]string{\n\t\t\t\"false\":  \"false\",\n\t\t\t\"true\":   \"true\",\n\t\t\t\"string\": \"string\",\n\t\t\t\"0\":      \"0\",\n\t\t\t\"[]\":     \"[]\",\n\t\t\t\"{}\":     \"{}\",\n\t\t}),\n\t}, {\n\t\tname:  name(\"Maps/InvalidValue/Channel\"),\n\t\tinBuf: `{\"key\":\"value\"}`,\n\t\tinVal: new(map[string]chan string),\n\t\twant: addr(map[string]chan string{\n\t\t\t\"key\": nil,\n\t\t}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: chanStringType},\n\t}, {\n\t\tname:  name(\"Maps/RecursiveMap\"),\n\t\tinBuf: `{\"buzz\":{},\"fizz\":{\"bar\":{},\"foo\":{}}}`,\n\t\tinVal: new(recursiveMap),\n\t\twant: addr(recursiveMap{\n\t\t\t\"fizz\": {\n\t\t\t\t\"foo\": {},\n\t\t\t\t\"bar\": {},\n\t\t\t},\n\t\t\t\"buzz\": {},\n\t\t}),\n\t}, {\n\t\t// NOTE: The semantics differs from v1,\n\t\t// where existing map entries were not merged into.\n\t\t// See https://go.dev/issue/31924.\n\t\tname:  name(\"Maps/Merge\"),\n\t\tdopts: DecodeOptions{AllowDuplicateNames: true},\n\t\tinBuf: `{\"k1\":{\"k2\":\"v2\"},\"k2\":{\"k1\":\"v1\"},\"k2\":{\"k2\":\"v2\"}}`,\n\t\tinVal: addr(map[string]map[string]string{\n\t\t\t\"k1\": {\"k1\": \"v1\"},\n\t\t}),\n\t\twant: addr(map[string]map[string]string{\n\t\t\t\"k1\": {\"k1\": \"v1\", \"k2\": \"v2\"},\n\t\t\t\"k2\": {\"k1\": \"v1\", \"k2\": \"v2\"},\n\t\t}),\n\t}, {\n\t\tname:    name(\"Maps/Invalid/Bool\"),\n\t\tinBuf:   `true`,\n\t\tinVal:   addr(map[string]string{\"key\": \"value\"}),\n\t\twant:    addr(map[string]string{\"key\": \"value\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: 't', GoType: mapStringStringType},\n\t}, {\n\t\tname:    name(\"Maps/Invalid/String\"),\n\t\tinBuf:   `\"\"`,\n\t\tinVal:   addr(map[string]string{\"key\": \"value\"}),\n\t\twant:    addr(map[string]string{\"key\": \"value\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: mapStringStringType},\n\t}, {\n\t\tname:    name(\"Maps/Invalid/Number\"),\n\t\tinBuf:   `0`,\n\t\tinVal:   addr(map[string]string{\"key\": \"value\"}),\n\t\twant:    addr(map[string]string{\"key\": \"value\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: mapStringStringType},\n\t}, {\n\t\tname:    name(\"Maps/Invalid/Array\"),\n\t\tinBuf:   `[]`,\n\t\tinVal:   addr(map[string]string{\"key\": \"value\"}),\n\t\twant:    addr(map[string]string{\"key\": \"value\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '[', GoType: mapStringStringType},\n\t}, {\n\t\tname:  name(\"Maps/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `{\"hello\":\"goodbye\"}`,\n\t\tinVal: addr(map[string]string{}),\n\t\twant:  addr(map[string]string{\"hello\": \"goodbye\"}),\n\t}, {\n\t\tname:  name(\"Structs/Null\"),\n\t\tinBuf: `null`,\n\t\tinVal: addr(structAll{String: \"something\"}),\n\t\twant:  addr(structAll{}),\n\t}, {\n\t\tname:  name(\"Structs/Empty\"),\n\t\tinBuf: `{}`,\n\t\tinVal: addr(structAll{\n\t\t\tString: \"hello\",\n\t\t\tMap:    map[string]string{},\n\t\t\tSlice:  []string{},\n\t\t}),\n\t\twant: addr(structAll{\n\t\t\tString: \"hello\",\n\t\t\tMap:    map[string]string{},\n\t\t\tSlice:  []string{},\n\t\t}),\n\t}, {\n\t\tname: name(\"Structs/Normal\"),\n\t\tinBuf: `{\n\t\"Bool\": true,\n\t\"String\": \"hello\",\n\t\"Bytes\": \"AQID\",\n\t\"Int\": -64,\n\t\"Uint\": 64,\n\t\"Float\": 3.14159,\n\t\"Map\": {\"key\": \"value\"},\n\t\"StructScalars\": {\n\t\t\"Bool\": true,\n\t\t\"String\": \"hello\",\n\t\t\"Bytes\": \"AQID\",\n\t\t\"Int\": -64,\n\t\t\"Uint\": 64,\n\t\t\"Float\": 3.14159\n\t},\n\t\"StructMaps\": {\n\t\t\"MapBool\": {\"\": true},\n\t\t\"MapString\": {\"\": \"hello\"},\n\t\t\"MapBytes\": {\"\": \"AQID\"},\n\t\t\"MapInt\": {\"\": -64},\n\t\t\"MapUint\": {\"\": 64},\n\t\t\"MapFloat\": {\"\": 3.14159}\n\t},\n\t\"StructSlices\": {\n\t\t\"SliceBool\": [true],\n\t\t\"SliceString\": [\"hello\"],\n\t\t\"SliceBytes\": [\"AQID\"],\n\t\t\"SliceInt\": [-64],\n\t\t\"SliceUint\": [64],\n\t\t\"SliceFloat\": [3.14159]\n\t},\n\t\"Slice\": [\"fizz\",\"buzz\"],\n\t\"Array\": [\"goodbye\"],\n\t\"Pointer\": {},\n\t\"Interface\": null\n}`,\n\t\tinVal: new(structAll),\n\t\twant: addr(structAll{\n\t\t\tBool:   true,\n\t\t\tString: \"hello\",\n\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\tInt:    -64,\n\t\t\tUint:   +64,\n\t\t\tFloat:  3.14159,\n\t\t\tMap:    map[string]string{\"key\": \"value\"},\n\t\t\tStructScalars: structScalars{\n\t\t\t\tBool:   true,\n\t\t\t\tString: \"hello\",\n\t\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\t\tInt:    -64,\n\t\t\t\tUint:   +64,\n\t\t\t\tFloat:  3.14159,\n\t\t\t},\n\t\t\tStructMaps: structMaps{\n\t\t\t\tMapBool:   map[string]bool{\"\": true},\n\t\t\t\tMapString: map[string]string{\"\": \"hello\"},\n\t\t\t\tMapBytes:  map[string][]byte{\"\": {1, 2, 3}},\n\t\t\t\tMapInt:    map[string]int64{\"\": -64},\n\t\t\t\tMapUint:   map[string]uint64{\"\": +64},\n\t\t\t\tMapFloat:  map[string]float64{\"\": 3.14159},\n\t\t\t},\n\t\t\tStructSlices: structSlices{\n\t\t\t\tSliceBool:   []bool{true},\n\t\t\t\tSliceString: []string{\"hello\"},\n\t\t\t\tSliceBytes:  [][]byte{{1, 2, 3}},\n\t\t\t\tSliceInt:    []int64{-64},\n\t\t\t\tSliceUint:   []uint64{+64},\n\t\t\t\tSliceFloat:  []float64{3.14159},\n\t\t\t},\n\t\t\tSlice:   []string{\"fizz\", \"buzz\"},\n\t\t\tArray:   [1]string{\"goodbye\"},\n\t\t\tPointer: new(structAll),\n\t\t}),\n\t}, {\n\t\tname: name(\"Structs/Merge\"),\n\t\tinBuf: `{\n\t\"Bool\": false,\n\t\"String\": \"goodbye\",\n\t\"Int\": -64,\n\t\"Float\": 3.14159,\n\t\"Map\": {\"k2\": \"v2\"},\n\t\"StructScalars\": {\n\t\t\"Bool\": true,\n\t\t\"String\": \"hello\",\n\t\t\"Bytes\": \"AQID\",\n\t\t\"Int\": -64\n\t},\n\t\"StructMaps\": {\n\t\t\"MapBool\": {\"\": true},\n\t\t\"MapString\": {\"\": \"hello\"},\n\t\t\"MapBytes\": {\"\": \"AQID\"},\n\t\t\"MapInt\": {\"\": -64},\n\t\t\"MapUint\": {\"\": 64},\n\t\t\"MapFloat\": {\"\": 3.14159}\n\t},\n\t\"StructSlices\": {\n\t\t\"SliceString\": [\"hello\"],\n\t\t\"SliceBytes\": [\"AQID\"],\n\t\t\"SliceInt\": [-64],\n\t\t\"SliceUint\": [64]\n\t},\n\t\"Slice\": [\"fizz\",\"buzz\"],\n\t\"Array\": [\"goodbye\"],\n\t\"Pointer\": {},\n\t\"Interface\": {\"k2\":\"v2\"}\n}`,\n\t\tinVal: addr(structAll{\n\t\t\tBool:   true,\n\t\t\tString: \"hello\",\n\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\tUint:   +64,\n\t\t\tFloat:  math.NaN(),\n\t\t\tMap:    map[string]string{\"k1\": \"v1\"},\n\t\t\tStructScalars: structScalars{\n\t\t\t\tString: \"hello\",\n\t\t\t\tBytes:  make([]byte, 2, 4),\n\t\t\t\tUint:   +64,\n\t\t\t\tFloat:  3.14159,\n\t\t\t},\n\t\t\tStructMaps: structMaps{\n\t\t\t\tMapBool:  map[string]bool{\"\": false},\n\t\t\t\tMapBytes: map[string][]byte{\"\": {}},\n\t\t\t\tMapInt:   map[string]int64{\"\": 123},\n\t\t\t\tMapFloat: map[string]float64{\"\": math.Inf(+1)},\n\t\t\t},\n\t\t\tStructSlices: structSlices{\n\t\t\t\tSliceBool:  []bool{true},\n\t\t\t\tSliceBytes: [][]byte{nil, nil},\n\t\t\t\tSliceInt:   []int64{-123},\n\t\t\t\tSliceUint:  []uint64{+123},\n\t\t\t\tSliceFloat: []float64{3.14159},\n\t\t\t},\n\t\t\tSlice:     []string{\"buzz\", \"fizz\", \"gizz\"},\n\t\t\tArray:     [1]string{\"hello\"},\n\t\t\tPointer:   new(structAll),\n\t\t\tInterface: map[string]string{\"k1\": \"v1\"},\n\t\t}),\n\t\twant: addr(structAll{\n\t\t\tBool:   false,\n\t\t\tString: \"goodbye\",\n\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\tInt:    -64,\n\t\t\tUint:   +64,\n\t\t\tFloat:  3.14159,\n\t\t\tMap:    map[string]string{\"k1\": \"v1\", \"k2\": \"v2\"},\n\t\t\tStructScalars: structScalars{\n\t\t\t\tBool:   true,\n\t\t\t\tString: \"hello\",\n\t\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\t\tInt:    -64,\n\t\t\t\tUint:   +64,\n\t\t\t\tFloat:  3.14159,\n\t\t\t},\n\t\t\tStructMaps: structMaps{\n\t\t\t\tMapBool:   map[string]bool{\"\": true},\n\t\t\t\tMapString: map[string]string{\"\": \"hello\"},\n\t\t\t\tMapBytes:  map[string][]byte{\"\": {1, 2, 3}},\n\t\t\t\tMapInt:    map[string]int64{\"\": -64},\n\t\t\t\tMapUint:   map[string]uint64{\"\": +64},\n\t\t\t\tMapFloat:  map[string]float64{\"\": 3.14159},\n\t\t\t},\n\t\t\tStructSlices: structSlices{\n\t\t\t\tSliceBool:   []bool{true},\n\t\t\t\tSliceString: []string{\"hello\"},\n\t\t\t\tSliceBytes:  [][]byte{{1, 2, 3}},\n\t\t\t\tSliceInt:    []int64{-64},\n\t\t\t\tSliceUint:   []uint64{+64},\n\t\t\t\tSliceFloat:  []float64{3.14159},\n\t\t\t},\n\t\t\tSlice:     []string{\"fizz\", \"buzz\"},\n\t\t\tArray:     [1]string{\"goodbye\"},\n\t\t\tPointer:   new(structAll),\n\t\t\tInterface: map[string]string{\"k1\": \"v1\", \"k2\": \"v2\"},\n\t\t}),\n\t}, {\n\t\tname: name(\"Structs/Stringified/Normal\"),\n\t\tinBuf: `{\n\t\"Bool\": true,\n\t\"String\": \"hello\",\n\t\"Bytes\": \"AQID\",\n\t\"Int\": -64,\n\t\"Uint\": 64,\n\t\"Float\": 3.14159,\n\t\"Map\": {\"key\": \"value\"},\n\t\"StructScalars\": {\n\t\t\"Bool\": true,\n\t\t\"String\": \"hello\",\n\t\t\"Bytes\": \"AQID\",\n\t\t\"Int\": -64,\n\t\t\"Uint\": 64,\n\t\t\"Float\": 3.14159\n\t},\n\t\"StructMaps\": {\n\t\t\"MapBool\": {\"\": true},\n\t\t\"MapString\": {\"\": \"hello\"},\n\t\t\"MapBytes\": {\"\": \"AQID\"},\n\t\t\"MapInt\": {\"\": -64},\n\t\t\"MapUint\": {\"\": 64},\n\t\t\"MapFloat\": {\"\": 3.14159}\n\t},\n\t\"StructSlices\": {\n\t\t\"SliceBool\": [true],\n\t\t\"SliceString\": [\"hello\"],\n\t\t\"SliceBytes\": [\"AQID\"],\n\t\t\"SliceInt\": [-64],\n\t\t\"SliceUint\": [64],\n\t\t\"SliceFloat\": [3.14159]\n\t},\n\t\"Slice\": [\"fizz\",\"buzz\"],\n\t\"Array\": [\"goodbye\"],\n\t\"Pointer\": {},\n\t\"Interface\": null\n}`,\n\t\tinVal: new(structStringifiedAll),\n\t\twant: addr(structStringifiedAll{\n\t\t\tBool:   true,\n\t\t\tString: \"hello\",\n\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\tInt:    -64,     // may be stringified\n\t\t\tUint:   +64,     // may be stringified\n\t\t\tFloat:  3.14159, // may be stringified\n\t\t\tMap:    map[string]string{\"key\": \"value\"},\n\t\t\tStructScalars: structScalars{\n\t\t\t\tBool:   true,\n\t\t\t\tString: \"hello\",\n\t\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\t\tInt:    -64,     // may be stringified\n\t\t\t\tUint:   +64,     // may be stringified\n\t\t\t\tFloat:  3.14159, // may be stringified\n\t\t\t},\n\t\t\tStructMaps: structMaps{\n\t\t\t\tMapBool:   map[string]bool{\"\": true},\n\t\t\t\tMapString: map[string]string{\"\": \"hello\"},\n\t\t\t\tMapBytes:  map[string][]byte{\"\": {1, 2, 3}},\n\t\t\t\tMapInt:    map[string]int64{\"\": -64},       // may be stringified\n\t\t\t\tMapUint:   map[string]uint64{\"\": +64},      // may be stringified\n\t\t\t\tMapFloat:  map[string]float64{\"\": 3.14159}, // may be stringified\n\t\t\t},\n\t\t\tStructSlices: structSlices{\n\t\t\t\tSliceBool:   []bool{true},\n\t\t\t\tSliceString: []string{\"hello\"},\n\t\t\t\tSliceBytes:  [][]byte{{1, 2, 3}},\n\t\t\t\tSliceInt:    []int64{-64},       // may be stringified\n\t\t\t\tSliceUint:   []uint64{+64},      // may be stringified\n\t\t\t\tSliceFloat:  []float64{3.14159}, // may be stringified\n\t\t\t},\n\t\t\tSlice:   []string{\"fizz\", \"buzz\"},\n\t\t\tArray:   [1]string{\"goodbye\"},\n\t\t\tPointer: new(structStringifiedAll), // may be stringified\n\t\t}),\n\t}, {\n\t\tname: name(\"Structs/Stringified/String\"),\n\t\tinBuf: `{\n\t\"Bool\": true,\n\t\"String\": \"hello\",\n\t\"Bytes\": \"AQID\",\n\t\"Int\": \"-64\",\n\t\"Uint\": \"64\",\n\t\"Float\": \"3.14159\",\n\t\"Map\": {\"key\": \"value\"},\n\t\"StructScalars\": {\n\t\t\"Bool\": true,\n\t\t\"String\": \"hello\",\n\t\t\"Bytes\": \"AQID\",\n\t\t\"Int\": \"-64\",\n\t\t\"Uint\": \"64\",\n\t\t\"Float\": \"3.14159\"\n\t},\n\t\"StructMaps\": {\n\t\t\"MapBool\": {\"\": true},\n\t\t\"MapString\": {\"\": \"hello\"},\n\t\t\"MapBytes\": {\"\": \"AQID\"},\n\t\t\"MapInt\": {\"\": \"-64\"},\n\t\t\"MapUint\": {\"\": \"64\"},\n\t\t\"MapFloat\": {\"\": \"3.14159\"}\n\t},\n\t\"StructSlices\": {\n\t\t\"SliceBool\": [true],\n\t\t\"SliceString\": [\"hello\"],\n\t\t\"SliceBytes\": [\"AQID\"],\n\t\t\"SliceInt\": [\"-64\"],\n\t\t\"SliceUint\": [\"64\"],\n\t\t\"SliceFloat\": [\"3.14159\"]\n\t},\n\t\"Slice\": [\"fizz\",\"buzz\"],\n\t\"Array\": [\"goodbye\"],\n\t\"Pointer\": {},\n\t\"Interface\": null\n}`,\n\t\tinVal: new(structStringifiedAll),\n\t\twant: addr(structStringifiedAll{\n\t\t\tBool:   true,\n\t\t\tString: \"hello\",\n\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\tInt:    -64,     // may be stringified\n\t\t\tUint:   +64,     // may be stringified\n\t\t\tFloat:  3.14159, // may be stringified\n\t\t\tMap:    map[string]string{\"key\": \"value\"},\n\t\t\tStructScalars: structScalars{\n\t\t\t\tBool:   true,\n\t\t\t\tString: \"hello\",\n\t\t\t\tBytes:  []byte{1, 2, 3},\n\t\t\t\tInt:    -64,     // may be stringified\n\t\t\t\tUint:   +64,     // may be stringified\n\t\t\t\tFloat:  3.14159, // may be stringified\n\t\t\t},\n\t\t\tStructMaps: structMaps{\n\t\t\t\tMapBool:   map[string]bool{\"\": true},\n\t\t\t\tMapString: map[string]string{\"\": \"hello\"},\n\t\t\t\tMapBytes:  map[string][]byte{\"\": {1, 2, 3}},\n\t\t\t\tMapInt:    map[string]int64{\"\": -64},       // may be stringified\n\t\t\t\tMapUint:   map[string]uint64{\"\": +64},      // may be stringified\n\t\t\t\tMapFloat:  map[string]float64{\"\": 3.14159}, // may be stringified\n\t\t\t},\n\t\t\tStructSlices: structSlices{\n\t\t\t\tSliceBool:   []bool{true},\n\t\t\t\tSliceString: []string{\"hello\"},\n\t\t\t\tSliceBytes:  [][]byte{{1, 2, 3}},\n\t\t\t\tSliceInt:    []int64{-64},       // may be stringified\n\t\t\t\tSliceUint:   []uint64{+64},      // may be stringified\n\t\t\t\tSliceFloat:  []float64{3.14159}, // may be stringified\n\t\t\t},\n\t\t\tSlice:   []string{\"fizz\", \"buzz\"},\n\t\t\tArray:   [1]string{\"goodbye\"},\n\t\t\tPointer: new(structStringifiedAll), // may be stringified\n\t\t}),\n\t}, {\n\t\tname: name(\"Structs/Format/Bytes\"),\n\t\tinBuf: `{\n\t\"Base16\": \"0123456789abcdef\",\n\t\"Base32\": \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",\n\t\"Base32Hex\": \"0123456789ABCDEFGHIJKLMNOPQRSTUV\",\n\t\"Base64\": \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",\n\t\"Base64URL\": \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\",\n\t\"Array\": [1, 2, 3, 4]\n}`,\n\t\tinVal: new(structFormatBytes),\n\t\twant: addr(structFormatBytes{\n\t\t\tBase16:    []byte(\"\\x01\\x23\\x45\\x67\\x89\\xab\\xcd\\xef\"),\n\t\t\tBase32:    []byte(\"\\x00D2\\x14\\xc7BT\\xb65τe:V\\xd7\\xc6u\\xbew\\xdf\"),\n\t\t\tBase32Hex: []byte(\"\\x00D2\\x14\\xc7BT\\xb65τe:V\\xd7\\xc6u\\xbew\\xdf\"),\n\t\t\tBase64:    []byte(\"\\x00\\x10\\x83\\x10Q\\x87 \\x92\\x8b0ӏA\\x14\\x93QU\\x97a\\x96\\x9bqן\\x82\\x18\\xa3\\x92Y\\xa7\\xa2\\x9a\\xab\\xb2ۯ\\xc3\\x1c\\xb3\\xd3]\\xb7㞻\\xf3߿\"),\n\t\t\tBase64URL: []byte(\"\\x00\\x10\\x83\\x10Q\\x87 \\x92\\x8b0ӏA\\x14\\x93QU\\x97a\\x96\\x9bqן\\x82\\x18\\xa3\\x92Y\\xa7\\xa2\\x9a\\xab\\xb2ۯ\\xc3\\x1c\\xb3\\xd3]\\xb7㞻\\xf3߿\"),\n\t\t\tArray:     []byte{1, 2, 3, 4},\n\t\t}),\n\t}, {\n\t\tname: name(\"Structs/Format/Bytes/Array\"),\n\t\tuopts: UnmarshalOptions{Unmarshalers: UnmarshalFuncV1(func(b []byte, v *byte) error {\n\t\t\tif string(b) == \"true\" {\n\t\t\t\t*v = 1\n\t\t\t} else {\n\t\t\t\t*v = 0\n\t\t\t}\n\t\t\treturn nil\n\t\t})},\n\t\tinBuf: `{\"Array\":[false,true,false,true,false,true]}`,\n\t\tinVal: new(struct {\n\t\t\tArray []byte `json:\",format:array\"`\n\t\t}),\n\t\twant: addr(struct {\n\t\t\tArray []byte `json:\",format:array\"`\n\t\t}{\n\t\t\tArray: []byte{0, 1, 0, 1, 0, 1},\n\t\t}),\n\t}, {\n\t\tname:    name(\"Structs/Format/Bytes/Invalid/Base16/WrongKind\"),\n\t\tinBuf:   `{\"Base16\": [1,2,3,4]}`,\n\t\tinVal:   new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '[', GoType: bytesType},\n\t}, {\n\t\tname:  name(\"Structs/Format/Bytes/Invalid/Base16/AllPadding\"),\n\t\tinBuf: `{\"Base16\": \"====\"}`,\n\t\tinVal: new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := hex.Decode(make([]byte, 2), []byte(\"=====\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:  name(\"Structs/Format/Bytes/Invalid/Base16/EvenPadding\"),\n\t\tinBuf: `{\"Base16\": \"0123456789abcdef=\"}`,\n\t\tinVal: new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := hex.Decode(make([]byte, 8), []byte(\"0123456789abcdef=\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:  name(\"Structs/Format/Bytes/Invalid/Base16/OddPadding\"),\n\t\tinBuf: `{\"Base16\": \"0123456789abcdef0=\"}`,\n\t\tinVal: new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := hex.Decode(make([]byte, 9), []byte(\"0123456789abcdef0=\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:  name(\"Structs/Format/Bytes/Invalid/Base16/NonAlphabet/LineFeed\"),\n\t\tinBuf: `{\"Base16\": \"aa\\naa\"}`,\n\t\tinVal: new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := hex.Decode(make([]byte, 9), []byte(\"aa\\naa\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:  name(\"Structs/Format/Bytes/Invalid/Base16/NonAlphabet/CarriageReturn\"),\n\t\tinBuf: `{\"Base16\": \"aa\\raa\"}`,\n\t\tinVal: new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := hex.Decode(make([]byte, 9), []byte(\"aa\\raa\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:  name(\"Structs/Format/Bytes/Invalid/Base16/NonAlphabet/Space\"),\n\t\tinBuf: `{\"Base16\": \"aa aa\"}`,\n\t\tinVal: new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := hex.Decode(make([]byte, 9), []byte(\"aa aa\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname: name(\"Structs/Format/Bytes/Invalid/Base32/Padding\"),\n\t\tinBuf: `[\n\t\t\t{\"Base32\": \"NA======\"},\n\t\t\t{\"Base32\": \"NBSQ====\"},\n\t\t\t{\"Base32\": \"NBSWY===\"},\n\t\t\t{\"Base32\": \"NBSWY3A=\"},\n\t\t\t{\"Base32\": \"NBSWY3DP\"}\n\t\t]`,\n\t\tinVal: new([]structFormatBytes),\n\t\twant: addr([]structFormatBytes{\n\t\t\t{Base32: []byte(\"h\")},\n\t\t\t{Base32: []byte(\"he\")},\n\t\t\t{Base32: []byte(\"hel\")},\n\t\t\t{Base32: []byte(\"hell\")},\n\t\t\t{Base32: []byte(\"hello\")},\n\t\t}),\n\t}, {\n\t\tname: name(\"Structs/Format/Bytes/Invalid/Base32/Invalid/NoPadding\"),\n\t\tinBuf: `[\n\t\t\t\t{\"Base32\": \"NA\"},\n\t\t\t\t{\"Base32\": \"NBSQ\"},\n\t\t\t\t{\"Base32\": \"NBSWY\"},\n\t\t\t\t{\"Base32\": \"NBSWY3A\"},\n\t\t\t\t{\"Base32\": \"NBSWY3DP\"}\n\t\t\t]`,\n\t\tinVal: new([]structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := base32.StdEncoding.Decode(make([]byte, 1), []byte(\"NA\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:  name(\"Structs/Format/Bytes/Invalid/Base32/WrongAlphabet\"),\n\t\tinBuf: `{\"Base32\": \"0123456789ABCDEFGHIJKLMNOPQRSTUV\"}`,\n\t\tinVal: new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := base32.StdEncoding.Decode(make([]byte, 20), []byte(\"0123456789ABCDEFGHIJKLMNOPQRSTUV\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:  name(\"Structs/Format/Bytes/Invalid/Base32Hex/WrongAlphabet\"),\n\t\tinBuf: `{\"Base32Hex\": \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\"}`,\n\t\tinVal: new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := base32.HexEncoding.Decode(make([]byte, 20), []byte(\"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:    name(\"Structs/Format/Bytes/Invalid/Base32/NonAlphabet/LineFeed\"),\n\t\tinBuf:   `{\"Base32\": \"AAAA\\nAAAA\"}`,\n\t\tinVal:   new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: errors.New(\"illegal data at input byte 4\")},\n\t}, {\n\t\tname:    name(\"Structs/Format/Bytes/Invalid/Base32/NonAlphabet/CarriageReturn\"),\n\t\tinBuf:   `{\"Base32\": \"AAAA\\rAAAA\"}`,\n\t\tinVal:   new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: errors.New(\"illegal data at input byte 4\")},\n\t}, {\n\t\tname:    name(\"Structs/Format/Bytes/Invalid/Base32/NonAlphabet/Space\"),\n\t\tinBuf:   `{\"Base32\": \"AAAA AAAA\"}`,\n\t\tinVal:   new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: base32.CorruptInputError(4)},\n\t}, {\n\t\tname:  name(\"Structs/Format/Bytes/Invalid/Base64/WrongAlphabet\"),\n\t\tinBuf: `{\"Base64\": \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\"}`,\n\t\tinVal: new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := base64.StdEncoding.Decode(make([]byte, 48), []byte(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:  name(\"Structs/Format/Bytes/Invalid/Base64URL/WrongAlphabet\"),\n\t\tinBuf: `{\"Base64URL\": \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"}`,\n\t\tinVal: new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: func() error {\n\t\t\t_, err := base64.URLEncoding.Decode(make([]byte, 48), []byte(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"))\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:    name(\"Structs/Format/Bytes/Invalid/Base64/NonAlphabet/LineFeed\"),\n\t\tinBuf:   `{\"Base64\": \"aa=\\n=\"}`,\n\t\tinVal:   new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: errors.New(\"illegal data at input byte 3\")},\n\t}, {\n\t\tname:    name(\"Structs/Format/Bytes/Invalid/Base64/NonAlphabet/CarriageReturn\"),\n\t\tinBuf:   `{\"Base64\": \"aa=\\r=\"}`,\n\t\tinVal:   new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: errors.New(\"illegal data at input byte 3\")},\n\t}, {\n\t\tname:    name(\"Structs/Format/Bytes/Invalid/Base64/NonAlphabet/Space\"),\n\t\tinBuf:   `{\"Base64\": \"aa= =\"}`,\n\t\tinVal:   new(structFormatBytes),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: bytesType, Err: base64.CorruptInputError(2)},\n\t}, {\n\t\tname: name(\"Structs/Format/Floats\"),\n\t\tinBuf: `[\n\t{\"NonFinite\": 3.141592653589793, \"PointerNonFinite\": 3.141592653589793},\n\t{\"NonFinite\": \"-Infinity\", \"PointerNonFinite\": \"-Infinity\"},\n\t{\"NonFinite\": \"Infinity\", \"PointerNonFinite\": \"Infinity\"}\n]`,\n\t\tinVal: new([]structFormatFloats),\n\t\twant: addr([]structFormatFloats{\n\t\t\t{NonFinite: math.Pi, PointerNonFinite: addr(math.Pi)},\n\t\t\t{NonFinite: math.Inf(-1), PointerNonFinite: addr(math.Inf(-1))},\n\t\t\t{NonFinite: math.Inf(+1), PointerNonFinite: addr(math.Inf(+1))},\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/Format/Floats/NaN\"),\n\t\tinBuf: `{\"NonFinite\": \"NaN\"}`,\n\t\tinVal: new(structFormatFloats),\n\t\t// Avoid checking want since reflect.DeepEqual fails for NaNs.\n\t}, {\n\t\tname:    name(\"Structs/Format/Floats/Invalid/NaN\"),\n\t\tinBuf:   `{\"NonFinite\": \"nan\"}`,\n\t\tinVal:   new(structFormatFloats),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: float64Type},\n\t}, {\n\t\tname:    name(\"Structs/Format/Floats/Invalid/PositiveInfinity\"),\n\t\tinBuf:   `{\"NonFinite\": \"+Infinity\"}`,\n\t\tinVal:   new(structFormatFloats),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: float64Type},\n\t}, {\n\t\tname:    name(\"Structs/Format/Floats/Invalid/NegativeInfinitySpace\"),\n\t\tinBuf:   `{\"NonFinite\": \"-Infinity \"}`,\n\t\tinVal:   new(structFormatFloats),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: float64Type},\n\t}, {\n\t\tname: name(\"Structs/Format/Maps\"),\n\t\tinBuf: `[\n\t{\"EmitNull\": null, \"PointerEmitNull\": null},\n\t{\"EmitNull\": {}, \"PointerEmitNull\": {}},\n\t{\"EmitNull\": {\"k\": \"v\"}, \"PointerEmitNull\": {\"k\": \"v\"}}\n]`,\n\t\tinVal: new([]structFormatMaps),\n\t\twant: addr([]structFormatMaps{\n\t\t\t{EmitNull: nil, PointerEmitNull: nil},\n\t\t\t{EmitNull: map[string]string{}, PointerEmitNull: addr(map[string]string{})},\n\t\t\t{EmitNull: map[string]string{\"k\": \"v\"}, PointerEmitNull: addr(map[string]string{\"k\": \"v\"})},\n\t\t}),\n\t}, {\n\t\tname: name(\"Structs/Format/Slices\"),\n\t\tinBuf: `[\n\t{\"EmitNull\": null, \"PointerEmitNull\": null},\n\t{\"EmitNull\": [], \"PointerEmitNull\": []},\n\t{\"EmitNull\": [\"v\"], \"PointerEmitNull\": [\"v\"]}\n]`,\n\t\tinVal: new([]structFormatSlices),\n\t\twant: addr([]structFormatSlices{\n\t\t\t{EmitNull: nil, PointerEmitNull: nil},\n\t\t\t{EmitNull: []string{}, PointerEmitNull: addr([]string{})},\n\t\t\t{EmitNull: []string{\"v\"}, PointerEmitNull: addr([]string{\"v\"})},\n\t\t}),\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Bool\"),\n\t\tinBuf:   `{\"Bool\":true}`,\n\t\tinVal:   new(structFormatInvalid),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: boolType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/String\"),\n\t\tinBuf:   `{\"String\": \"string\"}`,\n\t\tinVal:   new(structFormatInvalid),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: stringType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Bytes\"),\n\t\tinBuf:   `{\"Bytes\": \"bytes\"}`,\n\t\tinVal:   new(structFormatInvalid),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: bytesType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Int\"),\n\t\tinBuf:   `{\"Int\": 1}`,\n\t\tinVal:   new(structFormatInvalid),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: int64Type, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Uint\"),\n\t\tinBuf:   `{\"Uint\": 1}`,\n\t\tinVal:   new(structFormatInvalid),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: uint64Type, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Float\"),\n\t\tinBuf:   `{\"Float\": 1}`,\n\t\tinVal:   new(structFormatInvalid),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: float64Type, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Map\"),\n\t\tinBuf:   `{\"Map\":{}}`,\n\t\tinVal:   new(structFormatInvalid),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: mapStringStringType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Struct\"),\n\t\tinBuf:   `{\"Struct\": {}}`,\n\t\tinVal:   new(structFormatInvalid),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: structAllType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Slice\"),\n\t\tinBuf:   `{\"Slice\": {}}`,\n\t\tinVal:   new(structFormatInvalid),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: sliceStringType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Array\"),\n\t\tinBuf:   `{\"Array\": []}`,\n\t\tinVal:   new(structFormatInvalid),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: array1StringType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:    name(\"Structs/Format/Invalid/Interface\"),\n\t\tinBuf:   `{\"Interface\": \"anything\"}`,\n\t\tinVal:   new(structFormatInvalid),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: anyType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:  name(\"Structs/Inline/Zero\"),\n\t\tinBuf: `{\"D\":\"\"}`,\n\t\tinVal: new(structInlined),\n\t\twant:  new(structInlined),\n\t}, {\n\t\tname:  name(\"Structs/Inline/Alloc\"),\n\t\tinBuf: `{\"E\":\"\",\"F\":\"\",\"G\":\"\",\"A\":\"\",\"B\":\"\",\"D\":\"\"}`,\n\t\tinVal: new(structInlined),\n\t\twant: addr(structInlined{\n\t\t\tX: structInlinedL1{\n\t\t\t\tX:            &structInlinedL2{},\n\t\t\t\tStructEmbed1: StructEmbed1{},\n\t\t\t},\n\t\t\tStructEmbed2: &StructEmbed2{},\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/Inline/NonZero\"),\n\t\tinBuf: `{\"E\":\"E3\",\"F\":\"F3\",\"G\":\"G3\",\"A\":\"A1\",\"B\":\"B1\",\"D\":\"D2\"}`,\n\t\tinVal: new(structInlined),\n\t\twant: addr(structInlined{\n\t\t\tX: structInlinedL1{\n\t\t\t\tX:            &structInlinedL2{A: \"A1\", B: \"B1\" /* C: \"C1\" */},\n\t\t\t\tStructEmbed1: StructEmbed1{ /* C: \"C2\" */ D: \"D2\" /* E: \"E2\" */},\n\t\t\t},\n\t\t\tStructEmbed2: &StructEmbed2{E: \"E3\", F: \"F3\", G: \"G3\"},\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/Inline/Merge\"),\n\t\tinBuf: `{\"E\":\"E3\",\"F\":\"F3\",\"G\":\"G3\",\"A\":\"A1\",\"B\":\"B1\",\"D\":\"D2\"}`,\n\t\tinVal: addr(structInlined{\n\t\t\tX: structInlinedL1{\n\t\t\t\tX:            &structInlinedL2{B: \"##\", C: \"C1\"},\n\t\t\t\tStructEmbed1: StructEmbed1{C: \"C2\", E: \"E2\"},\n\t\t\t},\n\t\t\tStructEmbed2: &StructEmbed2{E: \"##\", G: \"G3\"},\n\t\t}),\n\t\twant: addr(structInlined{\n\t\t\tX: structInlinedL1{\n\t\t\t\tX:            &structInlinedL2{A: \"A1\", B: \"B1\", C: \"C1\"},\n\t\t\t\tStructEmbed1: StructEmbed1{C: \"C2\", D: \"D2\", E: \"E2\"},\n\t\t\t},\n\t\t\tStructEmbed2: &StructEmbed2{E: \"E3\", F: \"F3\", G: \"G3\"},\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/Noop\"),\n\t\tinBuf: `{\"A\":1,\"B\":2}`,\n\t\tinVal: new(structInlineRawValue),\n\t\twant:  addr(structInlineRawValue{A: 1, X: RawValue(nil), B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/MergeN1/Nil\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal: new(structInlineRawValue),\n\t\twant:  addr(structInlineRawValue{A: 1, X: RawValue(`{\"fizz\":\"buzz\"}`), B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/MergeN1/Empty\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal: addr(structInlineRawValue{X: RawValue{}}),\n\t\twant:  addr(structInlineRawValue{A: 1, X: RawValue(`{\"fizz\":\"buzz\"}`), B: 2}),\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/RawValue/MergeN1/Whitespace\"),\n\t\tinBuf:   `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal:   addr(structInlineRawValue{X: RawValue(\"\\n\\r\\t \")}),\n\t\twant:    addr(structInlineRawValue{A: 1, X: RawValue(\"\")}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: rawValueType, Err: errors.New(\"inlined raw value must be a JSON object\")},\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/RawValue/MergeN1/Null\"),\n\t\tinBuf:   `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal:   addr(structInlineRawValue{X: RawValue(\"null\")}),\n\t\twant:    addr(structInlineRawValue{A: 1, X: RawValue(\"null\")}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: rawValueType, Err: errors.New(\"inlined raw value must be a JSON object\")},\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/MergeN1/ObjectN0\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal: addr(structInlineRawValue{X: RawValue(` { } `)}),\n\t\twant:  addr(structInlineRawValue{A: 1, X: RawValue(` {\"fizz\":\"buzz\"}`), B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/MergeN2/ObjectN1\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2,\"foo\": [ 1 , 2 , 3 ]}`,\n\t\tinVal: addr(structInlineRawValue{X: RawValue(` { \"fizz\" : \"buzz\" } `)}),\n\t\twant:  addr(structInlineRawValue{A: 1, X: RawValue(` { \"fizz\" : \"buzz\",\"fizz\":\"buzz\",\"foo\":[ 1 , 2 , 3 ]}`), B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/Merge/ObjectEnd\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal: addr(structInlineRawValue{X: RawValue(` } `)}),\n\t\t// NOTE: This produces invalid output,\n\t\t// but the value being merged into is already invalid.\n\t\twant: addr(structInlineRawValue{A: 1, X: RawValue(`,\"fizz\":\"buzz\"}`), B: 2}),\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/RawValue/MergeInvalidValue\"),\n\t\tinBuf:   `{\"A\":1,\"fizz\":nil,\"B\":2}`,\n\t\tinVal:   new(structInlineRawValue),\n\t\twant:    addr(structInlineRawValue{A: 1, X: RawValue(`{\"fizz\":`)}),\n\t\twantErr: newInvalidCharacterError([]byte(\"i\"), \"within literal null (expecting 'u')\").withOffset(int64(len(`{\"A\":1,\"fizz\":n`))),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/CaseSensitive\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2,\"a\":3}`,\n\t\tinVal: new(structInlineRawValue),\n\t\twant:  addr(structInlineRawValue{A: 1, X: RawValue(`{\"fizz\":\"buzz\",\"a\":3}`), B: 2}),\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/RawValue/RejectDuplicateNames\"),\n\t\tdopts:   DecodeOptions{AllowDuplicateNames: false},\n\t\tinBuf:   `{\"A\":1,\"fizz\":\"buzz\",\"B\":2,\"fizz\":\"buzz\"}`,\n\t\tinVal:   new(structInlineRawValue),\n\t\twant:    addr(structInlineRawValue{A: 1, X: RawValue(`{\"fizz\":\"buzz\"}`), B: 2}),\n\t\twantErr: (&SyntacticError{str: `duplicate name \"fizz\" in object`}).withOffset(int64(len(`{\"A\":1,\"fizz\":\"buzz\",\"B\":2,`))),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/AllowDuplicateNames\"),\n\t\tdopts: DecodeOptions{AllowDuplicateNames: true},\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2,\"fizz\":\"buzz\"}`,\n\t\tinVal: new(structInlineRawValue),\n\t\twant:  addr(structInlineRawValue{A: 1, X: RawValue(`{\"fizz\":\"buzz\",\"fizz\":\"buzz\"}`), B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/Nested/Noop\"),\n\t\tinBuf: `{}`,\n\t\tinVal: new(structInlinePointerInlineRawValue),\n\t\twant:  new(structInlinePointerInlineRawValue),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/Nested/Alloc\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\"}`,\n\t\tinVal: new(structInlinePointerInlineRawValue),\n\t\twant: addr(structInlinePointerInlineRawValue{\n\t\t\tX: &struct {\n\t\t\t\tA int\n\t\t\t\tX RawValue `json:\",inline\"`\n\t\t\t}{A: 1, X: RawValue(`{\"fizz\":\"buzz\"}`)},\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RawValue/Nested/Merge\"),\n\t\tinBuf: `{\"fizz\":\"buzz\"}`,\n\t\tinVal: addr(structInlinePointerInlineRawValue{\n\t\t\tX: &struct {\n\t\t\t\tA int\n\t\t\t\tX RawValue `json:\",inline\"`\n\t\t\t}{A: 1},\n\t\t}),\n\t\twant: addr(structInlinePointerInlineRawValue{\n\t\t\tX: &struct {\n\t\t\t\tA int\n\t\t\t\tX RawValue `json:\",inline\"`\n\t\t\t}{A: 1, X: RawValue(`{\"fizz\":\"buzz\"}`)},\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/PointerRawValue/Noop\"),\n\t\tinBuf: `{\"A\":1,\"B\":2}`,\n\t\tinVal: new(structInlinePointerRawValue),\n\t\twant:  addr(structInlinePointerRawValue{A: 1, X: nil, B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/PointerRawValue/Alloc\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal: new(structInlinePointerRawValue),\n\t\twant:  addr(structInlinePointerRawValue{A: 1, X: addr(RawValue(`{\"fizz\":\"buzz\"}`)), B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/PointerRawValue/Merge\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal: addr(structInlinePointerRawValue{X: addr(RawValue(`{\"fizz\":\"buzz\"}`))}),\n\t\twant:  addr(structInlinePointerRawValue{A: 1, X: addr(RawValue(`{\"fizz\":\"buzz\",\"fizz\":\"buzz\"}`)), B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/PointerRawValue/Nested/Nil\"),\n\t\tinBuf: `{\"fizz\":\"buzz\"}`,\n\t\tinVal: new(structInlineInlinePointerRawValue),\n\t\twant: addr(structInlineInlinePointerRawValue{\n\t\t\tX: struct {\n\t\t\t\tX *RawValue `json:\",inline\"`\n\t\t\t}{X: addr(RawValue(`{\"fizz\":\"buzz\"}`))},\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringAny/Noop\"),\n\t\tinBuf: `{\"A\":1,\"B\":2}`,\n\t\tinVal: new(structInlineMapStringAny),\n\t\twant:  addr(structInlineMapStringAny{A: 1, X: nil, B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringAny/MergeN1/Nil\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal: new(structInlineMapStringAny),\n\t\twant:  addr(structInlineMapStringAny{A: 1, X: jsonObject{\"fizz\": \"buzz\"}, B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringAny/MergeN1/Empty\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal: addr(structInlineMapStringAny{X: jsonObject{}}),\n\t\twant:  addr(structInlineMapStringAny{A: 1, X: jsonObject{\"fizz\": \"buzz\"}, B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringAny/MergeN1/ObjectN1\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":{\"charlie\":\"DELTA\",\"echo\":\"foxtrot\"},\"B\":2}`,\n\t\tinVal: addr(structInlineMapStringAny{X: jsonObject{\"fizz\": jsonObject{\n\t\t\t\"alpha\":   \"bravo\",\n\t\t\t\"charlie\": \"delta\",\n\t\t}}}),\n\t\twant: addr(structInlineMapStringAny{A: 1, X: jsonObject{\"fizz\": jsonObject{\n\t\t\t\"alpha\":   \"bravo\",\n\t\t\t\"charlie\": \"DELTA\",\n\t\t\t\"echo\":    \"foxtrot\",\n\t\t}}, B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringAny/MergeN2/ObjectN1\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2,\"foo\": [ 1 , 2 , 3 ]}`,\n\t\tinVal: addr(structInlineMapStringAny{X: jsonObject{\"fizz\": \"wuzz\"}}),\n\t\twant:  addr(structInlineMapStringAny{A: 1, X: jsonObject{\"fizz\": \"buzz\", \"foo\": jsonArray{1.0, 2.0, 3.0}}, B: 2}),\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/MapStringAny/MergeInvalidValue\"),\n\t\tinBuf:   `{\"A\":1,\"fizz\":nil,\"B\":2}`,\n\t\tinVal:   new(structInlineMapStringAny),\n\t\twant:    addr(structInlineMapStringAny{A: 1, X: jsonObject{\"fizz\": nil}}),\n\t\twantErr: newInvalidCharacterError([]byte(\"i\"), \"within literal null (expecting 'u')\").withOffset(int64(len(`{\"A\":1,\"fizz\":n`))),\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/MapStringAny/MergeInvalidValue/Existing\"),\n\t\tinBuf:   `{\"A\":1,\"fizz\":nil,\"B\":2}`,\n\t\tinVal:   addr(structInlineMapStringAny{A: 1, X: jsonObject{\"fizz\": true}}),\n\t\twant:    addr(structInlineMapStringAny{A: 1, X: jsonObject{\"fizz\": true}}),\n\t\twantErr: newInvalidCharacterError([]byte(\"i\"), \"within literal null (expecting 'u')\").withOffset(int64(len(`{\"A\":1,\"fizz\":n`))),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringAny/CaseSensitive\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2,\"a\":3}`,\n\t\tinVal: new(structInlineMapStringAny),\n\t\twant:  addr(structInlineMapStringAny{A: 1, X: jsonObject{\"fizz\": \"buzz\", \"a\": 3.0}, B: 2}),\n\t}, {\n\t\tname:    name(\"Structs/InlinedFallback/MapStringAny/RejectDuplicateNames\"),\n\t\tdopts:   DecodeOptions{AllowDuplicateNames: false},\n\t\tinBuf:   `{\"A\":1,\"fizz\":\"buzz\",\"B\":2,\"fizz\":\"buzz\"}`,\n\t\tinVal:   new(structInlineMapStringAny),\n\t\twant:    addr(structInlineMapStringAny{A: 1, X: jsonObject{\"fizz\": \"buzz\"}, B: 2}),\n\t\twantErr: (&SyntacticError{str: `duplicate name \"fizz\" in object`}).withOffset(int64(len(`{\"A\":1,\"fizz\":\"buzz\",\"B\":2,`))),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringAny/AllowDuplicateNames\"),\n\t\tdopts: DecodeOptions{AllowDuplicateNames: true},\n\t\tinBuf: `{\"A\":1,\"fizz\":{\"one\":1,\"two\":-2},\"B\":2,\"fizz\":{\"two\":2,\"three\":3}}`,\n\t\tinVal: new(structInlineMapStringAny),\n\t\twant:  addr(structInlineMapStringAny{A: 1, X: jsonObject{\"fizz\": jsonObject{\"one\": 1.0, \"two\": 2.0, \"three\": 3.0}}, B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringAny/Nested/Noop\"),\n\t\tinBuf: `{}`,\n\t\tinVal: new(structInlinePointerInlineMapStringAny),\n\t\twant:  new(structInlinePointerInlineMapStringAny),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringAny/Nested/Alloc\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\"}`,\n\t\tinVal: new(structInlinePointerInlineMapStringAny),\n\t\twant: addr(structInlinePointerInlineMapStringAny{\n\t\t\tX: &struct {\n\t\t\t\tA int\n\t\t\t\tX jsonObject `json:\",inline\"`\n\t\t\t}{A: 1, X: jsonObject{\"fizz\": \"buzz\"}},\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringAny/Nested/Merge\"),\n\t\tinBuf: `{\"fizz\":\"buzz\"}`,\n\t\tinVal: addr(structInlinePointerInlineMapStringAny{\n\t\t\tX: &struct {\n\t\t\t\tA int\n\t\t\t\tX jsonObject `json:\",inline\"`\n\t\t\t}{A: 1},\n\t\t}),\n\t\twant: addr(structInlinePointerInlineMapStringAny{\n\t\t\tX: &struct {\n\t\t\t\tA int\n\t\t\t\tX jsonObject `json:\",inline\"`\n\t\t\t}{A: 1, X: jsonObject{\"fizz\": \"buzz\"}},\n\t\t}),\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/MapStringInt/UnmarshalFuncV1\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func(b []byte, v *any) error {\n\t\t\t\tvar err error\n\t\t\t\t*v, err = strconv.ParseFloat(string(bytes.Trim(b, `\"`)), 64)\n\t\t\t\treturn err\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"D\":\"1.1\",\"E\":\"2.2\",\"F\":\"3.3\"}`,\n\t\tinVal: new(structInlineMapStringAny),\n\t\twant:  addr(structInlineMapStringAny{X: jsonObject{\"D\": 1.1, \"E\": 2.2, \"F\": 3.3}}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/PointerMapStringAny/Noop\"),\n\t\tinBuf: `{\"A\":1,\"B\":2}`,\n\t\tinVal: new(structInlinePointerMapStringAny),\n\t\twant:  addr(structInlinePointerMapStringAny{A: 1, X: nil, B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/PointerMapStringAny/Alloc\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal: new(structInlinePointerMapStringAny),\n\t\twant:  addr(structInlinePointerMapStringAny{A: 1, X: addr(jsonObject{\"fizz\": \"buzz\"}), B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/PointerMapStringAny/Merge\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"wuzz\",\"B\":2}`,\n\t\tinVal: addr(structInlinePointerMapStringAny{X: addr(jsonObject{\"fizz\": \"buzz\"})}),\n\t\twant:  addr(structInlinePointerMapStringAny{A: 1, X: addr(jsonObject{\"fizz\": \"wuzz\"}), B: 2}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/PointerMapStringAny/Nested/Nil\"),\n\t\tinBuf: `{\"fizz\":\"buzz\"}`,\n\t\tinVal: new(structInlineInlinePointerMapStringAny),\n\t\twant: addr(structInlineInlinePointerMapStringAny{\n\t\t\tX: struct {\n\t\t\t\tX *jsonObject `json:\",inline\"`\n\t\t\t}{X: addr(jsonObject{\"fizz\": \"buzz\"})},\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringInt\"),\n\t\tinBuf: `{\"zero\": 0, \"one\": 1, \"two\": 2}`,\n\t\tinVal: new(structInlineMapStringInt),\n\t\twant: addr(structInlineMapStringInt{\n\t\t\tX: map[string]int{\"zero\": 0, \"one\": 1, \"two\": 2},\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringInt/Null\"),\n\t\tinBuf: `{\"zero\": 0, \"one\": null, \"two\": 2}`,\n\t\tinVal: new(structInlineMapStringInt),\n\t\twant: addr(structInlineMapStringInt{\n\t\t\tX: map[string]int{\"zero\": 0, \"one\": 0, \"two\": 2},\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringInt/Invalid\"),\n\t\tinBuf: `{\"zero\": 0, \"one\": {}, \"two\": 2}`,\n\t\tinVal: new(structInlineMapStringInt),\n\t\twant: addr(structInlineMapStringInt{\n\t\t\tX: map[string]int{\"zero\": 0, \"one\": 0},\n\t\t}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: intType},\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/MapStringInt/StringifiedNumbers\"),\n\t\tuopts: UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf: `{\"zero\": 0, \"one\": \"1\", \"two\": 2}`,\n\t\tinVal: new(structInlineMapStringInt),\n\t\twant: addr(structInlineMapStringInt{\n\t\t\tX: map[string]int{\"zero\": 0, \"one\": 1, \"two\": 2},\n\t\t}),\n\t}, {\n\t\tname: name(\"Structs/InlinedFallback/MapStringInt/UnmarshalFuncV1\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func(b []byte, v *int) error {\n\t\t\t\ti, err := strconv.ParseInt(string(bytes.Trim(b, `\"`)), 10, 64)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\t*v = int(i)\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"zero\": \"0\", \"one\": \"1\", \"two\": \"2\"}`,\n\t\tinVal: new(structInlineMapStringInt),\n\t\twant: addr(structInlineMapStringInt{\n\t\t\tX: map[string]int{\"zero\": 0, \"one\": 1, \"two\": 2},\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/InlinedFallback/RejectUnknownMembers\"),\n\t\tuopts: UnmarshalOptions{RejectUnknownMembers: true},\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal: new(structInlineRawValue),\n\t\t// NOTE: DiscardUnknownMembers has no effect since this is \"inline\".\n\t\twant: addr(structInlineRawValue{\n\t\t\tA: 1,\n\t\t\tX: RawValue(`{\"fizz\":\"buzz\"}`),\n\t\t\tB: 2,\n\t\t}),\n\t}, {\n\t\tname:    name(\"Structs/UnknownFallback/RejectUnknownMembers\"),\n\t\tuopts:   UnmarshalOptions{RejectUnknownMembers: true},\n\t\tinBuf:   `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal:   new(structUnknownRawValue),\n\t\twant:    addr(structUnknownRawValue{A: 1}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: structUnknownRawValueType, Err: errors.New(`unknown name \"fizz\"`)},\n\t}, {\n\t\tname:  name(\"Structs/UnknownFallback\"),\n\t\tinBuf: `{\"A\":1,\"fizz\":\"buzz\",\"B\":2}`,\n\t\tinVal: new(structUnknownRawValue),\n\t\twant: addr(structUnknownRawValue{\n\t\t\tA: 1,\n\t\t\tX: RawValue(`{\"fizz\":\"buzz\"}`),\n\t\t\tB: 2,\n\t\t}),\n\t}, {\n\t\tname:  name(\"Structs/UnknownIgnored\"),\n\t\tuopts: UnmarshalOptions{RejectUnknownMembers: false},\n\t\tinBuf: `{\"unknown\":\"fizzbuzz\"}`,\n\t\tinVal: new(structAll),\n\t\twant:  new(structAll),\n\t}, {\n\t\tname:    name(\"Structs/RejectUnknownMembers\"),\n\t\tuopts:   UnmarshalOptions{RejectUnknownMembers: true},\n\t\tinBuf:   `{\"unknown\":\"fizzbuzz\"}`,\n\t\tinVal:   new(structAll),\n\t\twant:    new(structAll),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: structAllType, Err: errors.New(`unknown name \"unknown\"`)},\n\t}, {\n\t\tname:  name(\"Structs/UnexportedIgnored\"),\n\t\tinBuf: `{\"ignored\":\"unused\"}`,\n\t\tinVal: new(structUnexportedIgnored),\n\t\twant:  new(structUnexportedIgnored),\n\t}, {\n\t\tname:  name(\"Structs/IgnoredUnexportedEmbedded\"),\n\t\tinBuf: `{\"namedString\":\"unused\"}`,\n\t\tinVal: new(structIgnoredUnexportedEmbedded),\n\t\twant:  new(structIgnoredUnexportedEmbedded),\n\t}, {\n\t\tname:  name(\"Structs/WeirdNames\"),\n\t\tinBuf: `{\"\":\"empty\",\",\":\"comma\",\"\\\"\":\"quote\"}`,\n\t\tinVal: new(structWeirdNames),\n\t\twant:  addr(structWeirdNames{Empty: \"empty\", Comma: \"comma\", Quote: \"quote\"}),\n\t}, {\n\t\tname:  name(\"Structs/NoCase/Exact\"),\n\t\tinBuf: `{\"AaA\":\"AaA\",\"AAa\":\"AAa\",\"AAA\":\"AAA\"}`,\n\t\tinVal: new(structNoCase),\n\t\twant:  addr(structNoCase{AaA: \"AaA\", AAa: \"AAa\", AAA: \"AAA\"}),\n\t}, {\n\t\tname:  name(\"Structs/NoCase/Merge/AllowDuplicateNames\"),\n\t\tdopts: DecodeOptions{AllowDuplicateNames: true},\n\t\tinBuf: `{\"AaA\":\"AaA\",\"aaa\":\"aaa\",\"aAa\":\"aAa\"}`,\n\t\tinVal: new(structNoCase),\n\t\twant:  addr(structNoCase{AaA: \"aAa\"}),\n\t}, {\n\t\tname:    name(\"Structs/NoCase/Merge/RejectDuplicateNames\"),\n\t\tdopts:   DecodeOptions{AllowDuplicateNames: false},\n\t\tinBuf:   `{\"AaA\":\"AaA\",\"aaa\":\"aaa\"}`,\n\t\tinVal:   new(structNoCase),\n\t\twant:    addr(structNoCase{AaA: \"AaA\"}),\n\t\twantErr: (&SyntacticError{str: `duplicate name \"aaa\" in object`}).withOffset(int64(len(`{\"AaA\":\"AaA\",`))),\n\t}, {\n\t\tname:  name(\"Structs/CaseSensitive\"),\n\t\tinBuf: `{\"BOOL\": true, \"STRING\": \"hello\", \"BYTES\": \"AQID\", \"INT\": -64, \"UINT\": 64, \"FLOAT\": 3.14159}`,\n\t\tinVal: new(structScalars),\n\t\twant:  addr(structScalars{}),\n\t}, {\n\t\tname:  name(\"Structs/DuplicateName/NoCase/ExactDifferent\"),\n\t\tinBuf: `{\"AAA\":\"AAA\",\"AaA\":\"AaA\",\"AAa\":\"AAa\",\"Aaa\":\"Aaa\"}`,\n\t\tinVal: addr(structNoCaseInlineRawValue{}),\n\t\twant:  addr(structNoCaseInlineRawValue{AAA: \"AAA\", AaA: \"AaA\", AAa: \"AAa\", Aaa: \"Aaa\"}),\n\t}, {\n\t\tname:    name(\"Structs/DuplicateName/NoCase/ExactConflict\"),\n\t\tinBuf:   `{\"AAA\":\"AAA\",\"AAA\":\"AAA\"}`,\n\t\tinVal:   addr(structNoCaseInlineRawValue{}),\n\t\twant:    addr(structNoCaseInlineRawValue{AAA: \"AAA\"}),\n\t\twantErr: (&SyntacticError{str: `duplicate name \"AAA\" in object`}).withOffset(int64(len(`{\"AAA\":\"AAA\",`))),\n\t}, {\n\t\tname:  name(\"Structs/DuplicateName/NoCase/OverwriteExact\"),\n\t\tinBuf: `{\"AAA\":\"after\"}`,\n\t\tinVal: addr(structNoCaseInlineRawValue{AAA: \"before\"}),\n\t\twant:  addr(structNoCaseInlineRawValue{AAA: \"after\"}),\n\t}, {\n\t\tname:    name(\"Structs/DuplicateName/NoCase/NoCaseConflict\"),\n\t\tinBuf:   `{\"aaa\":\"aaa\",\"aaA\":\"aaA\"}`,\n\t\tinVal:   addr(structNoCaseInlineRawValue{}),\n\t\twant:    addr(structNoCaseInlineRawValue{AaA: \"aaa\"}),\n\t\twantErr: (&SyntacticError{str: `duplicate name \"aaA\" in object`}).withOffset(int64(len(`{\"aaa\":\"aaa\",`))),\n\t}, {\n\t\tname:    name(\"Structs/DuplicateName/NoCase/OverwriteNoCase\"),\n\t\tinBuf:   `{\"aaa\":\"aaa\",\"aaA\":\"aaA\"}`,\n\t\tinVal:   addr(structNoCaseInlineRawValue{}),\n\t\twant:    addr(structNoCaseInlineRawValue{AaA: \"aaa\"}),\n\t\twantErr: (&SyntacticError{str: `duplicate name \"aaA\" in object`}).withOffset(int64(len(`{\"aaa\":\"aaa\",`))),\n\t}, {\n\t\tname:  name(\"Structs/DuplicateName/Inline/Unknown\"),\n\t\tinBuf: `{\"unknown\":\"\"}`,\n\t\tinVal: addr(structNoCaseInlineRawValue{}),\n\t\twant:  addr(structNoCaseInlineRawValue{X: RawValue(`{\"unknown\":\"\"}`)}),\n\t}, {\n\t\tname:  name(\"Structs/DuplicateName/Inline/UnknownMerge\"),\n\t\tinBuf: `{\"unknown\":\"\"}`,\n\t\tinVal: addr(structNoCaseInlineRawValue{X: RawValue(`{\"unknown\":\"\"}`)}),\n\t\twant:  addr(structNoCaseInlineRawValue{X: RawValue(`{\"unknown\":\"\",\"unknown\":\"\"}`)}),\n\t}, {\n\t\tname:  name(\"Structs/DuplicateName/Inline/NoCaseOkay\"),\n\t\tinBuf: `{\"b\":\"\",\"B\":\"\"}`,\n\t\tinVal: addr(structNoCaseInlineRawValue{}),\n\t\twant:  addr(structNoCaseInlineRawValue{X: RawValue(`{\"b\":\"\",\"B\":\"\"}`)}),\n\t}, {\n\t\tname:    name(\"Structs/DuplicateName/Inline/ExactConflict\"),\n\t\tinBuf:   `{\"b\":\"\",\"b\":\"\"}`,\n\t\tinVal:   addr(structNoCaseInlineRawValue{}),\n\t\twant:    addr(structNoCaseInlineRawValue{X: RawValue(`{\"b\":\"\"}`)}),\n\t\twantErr: (&SyntacticError{str: `duplicate name \"b\" in object`}).withOffset(int64(len(`{\"b\":\"\",`))),\n\t}, {\n\t\tname:    name(\"Structs/Invalid/ErrUnexpectedEOF\"),\n\t\tinBuf:   ``,\n\t\tinVal:   addr(structAll{}),\n\t\twant:    addr(structAll{}),\n\t\twantErr: io.ErrUnexpectedEOF,\n\t}, {\n\t\tname:    name(\"Structs/Invalid/NestedErrUnexpectedEOF\"),\n\t\tinBuf:   `{\"Pointer\":`,\n\t\tinVal:   addr(structAll{}),\n\t\twant:    addr(structAll{Pointer: new(structAll)}),\n\t\twantErr: io.ErrUnexpectedEOF,\n\t}, {\n\t\tname:    name(\"Structs/Invalid/Conflicting\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr(structConflicting{}),\n\t\twant:    addr(structConflicting{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: structConflictingType, Err: errors.New(\"Go struct fields A and B conflict over JSON object name \\\"conflict\\\"\")},\n\t}, {\n\t\tname:    name(\"Structs/Invalid/NoneExported\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr(structNoneExported{}),\n\t\twant:    addr(structNoneExported{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: structNoneExportedType, Err: errors.New(\"Go struct has no exported fields\")},\n\t}, {\n\t\tname:    name(\"Structs/Invalid/MalformedTag\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr(structMalformedTag{}),\n\t\twant:    addr(structMalformedTag{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: structMalformedTagType, Err: errors.New(\"Go struct field Malformed has malformed `json` tag: invalid character '\\\"' at start of option (expecting Unicode letter or single quote)\")},\n\t}, {\n\t\tname:    name(\"Structs/Invalid/UnexportedTag\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr(structUnexportedTag{}),\n\t\twant:    addr(structUnexportedTag{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: structUnexportedTagType, Err: errors.New(\"unexported Go struct field unexported cannot have non-ignored `json:\\\"name\\\"` tag\")},\n\t}, {\n\t\tname:    name(\"Structs/Invalid/UnexportedEmbedded\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr(structUnexportedEmbedded{}),\n\t\twant:    addr(structUnexportedEmbedded{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: structUnexportedEmbeddedType, Err: errors.New(\"embedded Go struct field namedString of an unexported type must be explicitly ignored with a `json:\\\"-\\\"` tag\")},\n\t}, {\n\t\tname: name(\"Structs/Unknown\"),\n\t\tinBuf: `{\n\t\"object0\": {},\n\t\"object1\": {\"key1\": \"value\"},\n\t\"object2\": {\"key1\": \"value\", \"key2\": \"value\"},\n\t\"objects\": {\"\":{\"\":{\"\":{}}}},\n\t\"array0\": [],\n\t\"array1\": [\"value1\"],\n\t\"array2\": [\"value1\", \"value2\"],\n\t\"array\": [[[]]],\n\t\"scalars\": [null, false, true, \"string\", 12.345]\n}`,\n\t\tinVal: addr(struct{}{}),\n\t\twant:  addr(struct{}{}),\n\t}, {\n\t\tname:  name(\"Structs/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `{\"Field\":\"Value\"}`,\n\t\tinVal: addr(struct{ Field string }{}),\n\t\twant:  addr(struct{ Field string }{\"Value\"}),\n\t}, {\n\t\tname:  name(\"Slices/Null\"),\n\t\tinBuf: `null`,\n\t\tinVal: addr([]string{\"something\"}),\n\t\twant:  addr([]string(nil)),\n\t}, {\n\t\tname:  name(\"Slices/Bool\"),\n\t\tinBuf: `[true,false]`,\n\t\tinVal: new([]bool),\n\t\twant:  addr([]bool{true, false}),\n\t}, {\n\t\tname:  name(\"Slices/String\"),\n\t\tinBuf: `[\"hello\",\"goodbye\"]`,\n\t\tinVal: new([]string),\n\t\twant:  addr([]string{\"hello\", \"goodbye\"}),\n\t}, {\n\t\tname:  name(\"Slices/Bytes\"),\n\t\tinBuf: `[\"aGVsbG8=\",\"Z29vZGJ5ZQ==\"]`,\n\t\tinVal: new([][]byte),\n\t\twant:  addr([][]byte{[]byte(\"hello\"), []byte(\"goodbye\")}),\n\t}, {\n\t\tname:  name(\"Slices/Int\"),\n\t\tinBuf: `[-2,-1,0,1,2]`,\n\t\tinVal: new([]int),\n\t\twant:  addr([]int{-2, -1, 0, 1, 2}),\n\t}, {\n\t\tname:  name(\"Slices/Uint\"),\n\t\tinBuf: `[0,1,2,3,4]`,\n\t\tinVal: new([]uint),\n\t\twant:  addr([]uint{0, 1, 2, 3, 4}),\n\t}, {\n\t\tname:  name(\"Slices/Float\"),\n\t\tinBuf: `[3.14159,12.34]`,\n\t\tinVal: new([]float64),\n\t\twant:  addr([]float64{3.14159, 12.34}),\n\t}, {\n\t\t// NOTE: The semantics differs from v1, where the slice length is reset\n\t\t// and new elements are appended to the end.\n\t\t// See https://go.dev/issue/21092.\n\t\tname:  name(\"Slices/Merge\"),\n\t\tinBuf: `[{\"k3\":\"v3\"},{\"k4\":\"v4\"}]`,\n\t\tinVal: addr([]map[string]string{{\"k1\": \"v1\"}, {\"k2\": \"v2\"}}[:1]),\n\t\twant:  addr([]map[string]string{{\"k3\": \"v3\"}, {\"k4\": \"v4\"}}),\n\t}, {\n\t\tname:    name(\"Slices/Invalid/Channel\"),\n\t\tinBuf:   `[\"hello\"]`,\n\t\tinVal:   new([]chan string),\n\t\twant:    addr([]chan string{nil}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: chanStringType},\n\t}, {\n\t\tname:  name(\"Slices/RecursiveSlice\"),\n\t\tinBuf: `[[],[],[[]],[[],[]]]`,\n\t\tinVal: new(recursiveSlice),\n\t\twant: addr(recursiveSlice{\n\t\t\t{},\n\t\t\t{},\n\t\t\t{{}},\n\t\t\t{{}, {}},\n\t\t}),\n\t}, {\n\t\tname:    name(\"Slices/Invalid/Bool\"),\n\t\tinBuf:   `true`,\n\t\tinVal:   addr([]string{\"nochange\"}),\n\t\twant:    addr([]string{\"nochange\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: 't', GoType: sliceStringType},\n\t}, {\n\t\tname:    name(\"Slices/Invalid/String\"),\n\t\tinBuf:   `\"\"`,\n\t\tinVal:   addr([]string{\"nochange\"}),\n\t\twant:    addr([]string{\"nochange\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: sliceStringType},\n\t}, {\n\t\tname:    name(\"Slices/Invalid/Number\"),\n\t\tinBuf:   `0`,\n\t\tinVal:   addr([]string{\"nochange\"}),\n\t\twant:    addr([]string{\"nochange\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: sliceStringType},\n\t}, {\n\t\tname:    name(\"Slices/Invalid/Object\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr([]string{\"nochange\"}),\n\t\twant:    addr([]string{\"nochange\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: sliceStringType},\n\t}, {\n\t\tname:  name(\"Slices/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `[false,true]`,\n\t\tinVal: addr([]bool{true, false}),\n\t\twant:  addr([]bool{false, true}),\n\t}, {\n\t\tname:  name(\"Arrays/Null\"),\n\t\tinBuf: `null`,\n\t\tinVal: addr([1]string{\"something\"}),\n\t\twant:  addr([1]string{}),\n\t}, {\n\t\tname:  name(\"Arrays/Bool\"),\n\t\tinBuf: `[true,false]`,\n\t\tinVal: new([2]bool),\n\t\twant:  addr([2]bool{true, false}),\n\t}, {\n\t\tname:  name(\"Arrays/String\"),\n\t\tinBuf: `[\"hello\",\"goodbye\"]`,\n\t\tinVal: new([2]string),\n\t\twant:  addr([2]string{\"hello\", \"goodbye\"}),\n\t}, {\n\t\tname:  name(\"Arrays/Bytes\"),\n\t\tinBuf: `[\"aGVsbG8=\",\"Z29vZGJ5ZQ==\"]`,\n\t\tinVal: new([2][]byte),\n\t\twant:  addr([2][]byte{[]byte(\"hello\"), []byte(\"goodbye\")}),\n\t}, {\n\t\tname:  name(\"Arrays/Int\"),\n\t\tinBuf: `[-2,-1,0,1,2]`,\n\t\tinVal: new([5]int),\n\t\twant:  addr([5]int{-2, -1, 0, 1, 2}),\n\t}, {\n\t\tname:  name(\"Arrays/Uint\"),\n\t\tinBuf: `[0,1,2,3,4]`,\n\t\tinVal: new([5]uint),\n\t\twant:  addr([5]uint{0, 1, 2, 3, 4}),\n\t}, {\n\t\tname:  name(\"Arrays/Float\"),\n\t\tinBuf: `[3.14159,12.34]`,\n\t\tinVal: new([2]float64),\n\t\twant:  addr([2]float64{3.14159, 12.34}),\n\t}, {\n\t\t// NOTE: The semantics differs from v1, where elements are not merged.\n\t\t// This is to maintain consistent merge semantics with slices.\n\t\tname:  name(\"Arrays/Merge\"),\n\t\tinBuf: `[{\"k3\":\"v3\"},{\"k4\":\"v4\"}]`,\n\t\tinVal: addr([2]map[string]string{{\"k1\": \"v1\"}, {\"k2\": \"v2\"}}),\n\t\twant:  addr([2]map[string]string{{\"k3\": \"v3\"}, {\"k4\": \"v4\"}}),\n\t}, {\n\t\tname:    name(\"Arrays/Invalid/Channel\"),\n\t\tinBuf:   `[\"hello\"]`,\n\t\tinVal:   new([1]chan string),\n\t\twant:    new([1]chan string),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: chanStringType},\n\t}, {\n\t\tname:    name(\"Arrays/Invalid/Underflow\"),\n\t\tinBuf:   `[]`,\n\t\tinVal:   new([1]string),\n\t\twant:    addr([1]string{}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: array1StringType, Err: errors.New(\"too few array elements\")},\n\t}, {\n\t\tname:    name(\"Arrays/Invalid/Overflow\"),\n\t\tinBuf:   `[\"1\",\"2\"]`,\n\t\tinVal:   new([1]string),\n\t\twant:    addr([1]string{\"1\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: array1StringType, Err: errors.New(\"too many array elements\")},\n\t}, {\n\t\tname:    name(\"Arrays/Invalid/Bool\"),\n\t\tinBuf:   `true`,\n\t\tinVal:   addr([1]string{\"nochange\"}),\n\t\twant:    addr([1]string{\"nochange\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: 't', GoType: array1StringType},\n\t}, {\n\t\tname:    name(\"Arrays/Invalid/String\"),\n\t\tinBuf:   `\"\"`,\n\t\tinVal:   addr([1]string{\"nochange\"}),\n\t\twant:    addr([1]string{\"nochange\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: array1StringType},\n\t}, {\n\t\tname:    name(\"Arrays/Invalid/Number\"),\n\t\tinBuf:   `0`,\n\t\tinVal:   addr([1]string{\"nochange\"}),\n\t\twant:    addr([1]string{\"nochange\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: array1StringType},\n\t}, {\n\t\tname:    name(\"Arrays/Invalid/Object\"),\n\t\tinBuf:   `{}`,\n\t\tinVal:   addr([1]string{\"nochange\"}),\n\t\twant:    addr([1]string{\"nochange\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: array1StringType},\n\t}, {\n\t\tname:  name(\"Arrays/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `[false,true]`,\n\t\tinVal: addr([2]bool{true, false}),\n\t\twant:  addr([2]bool{false, true}),\n\t}, {\n\t\tname:  name(\"Pointers/NullL0\"),\n\t\tinBuf: `null`,\n\t\tinVal: new(*string),\n\t\twant:  addr((*string)(nil)),\n\t}, {\n\t\tname:  name(\"Pointers/NullL1\"),\n\t\tinBuf: `null`,\n\t\tinVal: addr(new(*string)),\n\t\twant:  addr((**string)(nil)),\n\t}, {\n\t\tname:  name(\"Pointers/Bool\"),\n\t\tinBuf: `true`,\n\t\tinVal: addr(new(bool)),\n\t\twant:  addr(addr(true)),\n\t}, {\n\t\tname:  name(\"Pointers/String\"),\n\t\tinBuf: `\"hello\"`,\n\t\tinVal: addr(new(string)),\n\t\twant:  addr(addr(\"hello\")),\n\t}, {\n\t\tname:  name(\"Pointers/Bytes\"),\n\t\tinBuf: `\"aGVsbG8=\"`,\n\t\tinVal: addr(new([]byte)),\n\t\twant:  addr(addr([]byte(\"hello\"))),\n\t}, {\n\t\tname:  name(\"Pointers/Int\"),\n\t\tinBuf: `-123`,\n\t\tinVal: addr(new(int)),\n\t\twant:  addr(addr(int(-123))),\n\t}, {\n\t\tname:  name(\"Pointers/Uint\"),\n\t\tinBuf: `123`,\n\t\tinVal: addr(new(int)),\n\t\twant:  addr(addr(int(123))),\n\t}, {\n\t\tname:  name(\"Pointers/Float\"),\n\t\tinBuf: `123.456`,\n\t\tinVal: addr(new(float64)),\n\t\twant:  addr(addr(float64(123.456))),\n\t}, {\n\t\tname:  name(\"Pointers/Allocate\"),\n\t\tinBuf: `\"hello\"`,\n\t\tinVal: addr((*string)(nil)),\n\t\twant:  addr(addr(\"hello\")),\n\t}, {\n\t\tname:  name(\"Points/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `true`,\n\t\tinVal: addr(new(bool)),\n\t\twant:  addr(addr(true)),\n\t}, {\n\t\tname:  name(\"Interfaces/Empty/Null\"),\n\t\tinBuf: `null`,\n\t\tinVal: new(any),\n\t\twant:  new(any),\n\t}, {\n\t\tname:  name(\"Interfaces/NonEmpty/Null\"),\n\t\tinBuf: `null`,\n\t\tinVal: new(io.Reader),\n\t\twant:  new(io.Reader),\n\t}, {\n\t\tname:    name(\"Interfaces/NonEmpty/Invalid\"),\n\t\tinBuf:   `\"hello\"`,\n\t\tinVal:   new(io.Reader),\n\t\twant:    new(io.Reader),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: ioReaderType, Err: errors.New(\"cannot derive concrete type for non-empty interface\")},\n\t}, {\n\t\tname:  name(\"Interfaces/Empty/False\"),\n\t\tinBuf: `false`,\n\t\tinVal: new(any),\n\t\twant: func() any {\n\t\t\tvar vi any = false\n\t\t\treturn &vi\n\t\t}(),\n\t}, {\n\t\tname:  name(\"Interfaces/Empty/True\"),\n\t\tinBuf: `true`,\n\t\tinVal: new(any),\n\t\twant: func() any {\n\t\t\tvar vi any = true\n\t\t\treturn &vi\n\t\t}(),\n\t}, {\n\t\tname:  name(\"Interfaces/Empty/String\"),\n\t\tinBuf: `\"string\"`,\n\t\tinVal: new(any),\n\t\twant: func() any {\n\t\t\tvar vi any = \"string\"\n\t\t\treturn &vi\n\t\t}(),\n\t}, {\n\t\tname:  name(\"Interfaces/Empty/Number\"),\n\t\tinBuf: `3.14159`,\n\t\tinVal: new(any),\n\t\twant: func() any {\n\t\t\tvar vi any = 3.14159\n\t\t\treturn &vi\n\t\t}(),\n\t}, {\n\t\tname:  name(\"Interfaces/Empty/Object\"),\n\t\tinBuf: `{\"k\":\"v\"}`,\n\t\tinVal: new(any),\n\t\twant: func() any {\n\t\t\tvar vi any = map[string]any{\"k\": \"v\"}\n\t\t\treturn &vi\n\t\t}(),\n\t}, {\n\t\tname:  name(\"Interfaces/Empty/Array\"),\n\t\tinBuf: `[\"v\"]`,\n\t\tinVal: new(any),\n\t\twant: func() any {\n\t\t\tvar vi any = []any{\"v\"}\n\t\t\treturn &vi\n\t\t}(),\n\t}, {\n\t\tname:  name(\"Interfaces/NamedAny/String\"),\n\t\tinBuf: `\"string\"`,\n\t\tinVal: new(namedAny),\n\t\twant: func() namedAny {\n\t\t\tvar vi namedAny = \"string\"\n\t\t\treturn &vi\n\t\t}(),\n\t}, {\n\t\tname:    name(\"Interfaces/Invalid\"),\n\t\tinBuf:   `]`,\n\t\tinVal:   new(any),\n\t\twant:    new(any),\n\t\twantErr: newInvalidCharacterError([]byte(\"]\"), \"at start of value\"),\n\t}, {\n\t\t// NOTE: The semantics differs from v1,\n\t\t// where existing map entries were not merged into.\n\t\t// See https://go.dev/issue/26946.\n\t\t// See https://go.dev/issue/33993.\n\t\tname:  name(\"Interfaces/Merge/Map\"),\n\t\tinBuf: `{\"k2\":\"v2\"}`,\n\t\tinVal: func() any {\n\t\t\tvar vi any = map[string]string{\"k1\": \"v1\"}\n\t\t\treturn &vi\n\t\t}(),\n\t\twant: func() any {\n\t\t\tvar vi any = map[string]string{\"k1\": \"v1\", \"k2\": \"v2\"}\n\t\t\treturn &vi\n\t\t}(),\n\t}, {\n\t\tname:  name(\"Interfaces/Merge/Struct\"),\n\t\tinBuf: `{\"Array\":[\"goodbye\"]}`,\n\t\tinVal: func() any {\n\t\t\tvar vi any = structAll{String: \"hello\"}\n\t\t\treturn &vi\n\t\t}(),\n\t\twant: func() any {\n\t\t\tvar vi any = structAll{String: \"hello\", Array: [1]string{\"goodbye\"}}\n\t\t\treturn &vi\n\t\t}(),\n\t}, {\n\t\tname:  name(\"Interfaces/Merge/NamedInt\"),\n\t\tinBuf: `64`,\n\t\tinVal: func() any {\n\t\t\tvar vi any = namedInt64(-64)\n\t\t\treturn &vi\n\t\t}(),\n\t\twant: func() any {\n\t\t\tvar vi any = namedInt64(+64)\n\t\t\treturn &vi\n\t\t}(),\n\t}, {\n\t\tname:  name(\"Interfaces/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `true`,\n\t\tinVal: new(any),\n\t\twant: func() any {\n\t\t\tvar vi any = true\n\t\t\treturn &vi\n\t\t}(),\n\t}, {\n\t\tname:  name(\"Interfaces/Any\"),\n\t\tinBuf: `{\"X\":[null,false,true,\"\",0,{},[]]}`,\n\t\tinVal: new(struct{ X any }),\n\t\twant:  addr(struct{ X any }{[]any{nil, false, true, \"\", 0.0, map[string]any{}, []any{}}}),\n\t}, {\n\t\tname:  name(\"Interfaces/Any/Named\"),\n\t\tinBuf: `{\"X\":[null,false,true,\"\",0,{},[]]}`,\n\t\tinVal: new(struct{ X namedAny }),\n\t\twant:  addr(struct{ X namedAny }{[]any{nil, false, true, \"\", 0.0, map[string]any{}, []any{}}}),\n\t}, {\n\t\tname:  name(\"Interfaces/Any/Stringified\"),\n\t\tuopts: UnmarshalOptions{StringifyNumbers: true},\n\t\tinBuf: `{\"X\":\"0\"}`,\n\t\tinVal: new(struct{ X any }),\n\t\twant:  addr(struct{ X any }{\"0\"}),\n\t}, {\n\t\tname: name(\"Interfaces/Any/UnmarshalFunc/Any\"),\n\t\tuopts: UnmarshalOptions{Unmarshalers: UnmarshalFuncV1(func(b []byte, v *any) error {\n\t\t\t*v = \"called\"\n\t\t\treturn nil\n\t\t})},\n\t\tinBuf: `{\"X\":[null,false,true,\"\",0,{},[]]}`,\n\t\tinVal: new(struct{ X any }),\n\t\twant:  addr(struct{ X any }{\"called\"}),\n\t}, {\n\t\tname: name(\"Interfaces/Any/UnmarshalFunc/Bool\"),\n\t\tuopts: UnmarshalOptions{Unmarshalers: UnmarshalFuncV1(func(b []byte, v *bool) error {\n\t\t\t*v = string(b) != \"true\"\n\t\t\treturn nil\n\t\t})},\n\t\tinBuf: `{\"X\":[null,false,true,\"\",0,{},[]]}`,\n\t\tinVal: new(struct{ X any }),\n\t\twant:  addr(struct{ X any }{[]any{nil, true, false, \"\", 0.0, map[string]any{}, []any{}}}),\n\t}, {\n\t\tname: name(\"Interfaces/Any/UnmarshalFunc/String\"),\n\t\tuopts: UnmarshalOptions{Unmarshalers: UnmarshalFuncV1(func(b []byte, v *string) error {\n\t\t\t*v = \"called\"\n\t\t\treturn nil\n\t\t})},\n\t\tinBuf: `{\"X\":[null,false,true,\"\",0,{},[]]}`,\n\t\tinVal: new(struct{ X any }),\n\t\twant:  addr(struct{ X any }{[]any{nil, false, true, \"called\", 0.0, map[string]any{}, []any{}}}),\n\t}, {\n\t\tname: name(\"Interfaces/Any/UnmarshalFunc/Float64\"),\n\t\tuopts: UnmarshalOptions{Unmarshalers: UnmarshalFuncV1(func(b []byte, v *float64) error {\n\t\t\t*v = 3.14159\n\t\t\treturn nil\n\t\t})},\n\t\tinBuf: `{\"X\":[null,false,true,\"\",0,{},[]]}`,\n\t\tinVal: new(struct{ X any }),\n\t\twant:  addr(struct{ X any }{[]any{nil, false, true, \"\", 3.14159, map[string]any{}, []any{}}}),\n\t}, {\n\t\tname: name(\"Interfaces/Any/UnmarshalFunc/MapStringAny\"),\n\t\tuopts: UnmarshalOptions{Unmarshalers: UnmarshalFuncV1(func(b []byte, v *map[string]any) error {\n\t\t\t*v = map[string]any{\"called\": nil}\n\t\t\treturn nil\n\t\t})},\n\t\tinBuf: `{\"X\":[null,false,true,\"\",0,{},[]]}`,\n\t\tinVal: new(struct{ X any }),\n\t\twant:  addr(struct{ X any }{[]any{nil, false, true, \"\", 0.0, map[string]any{\"called\": nil}, []any{}}}),\n\t}, {\n\t\tname: name(\"Interfaces/Any/UnmarshalFunc/SliceAny\"),\n\t\tuopts: UnmarshalOptions{Unmarshalers: UnmarshalFuncV1(func(b []byte, v *[]any) error {\n\t\t\t*v = []any{\"called\"}\n\t\t\treturn nil\n\t\t})},\n\t\tinBuf: `{\"X\":[null,false,true,\"\",0,{},[]]}`,\n\t\tinVal: new(struct{ X any }),\n\t\twant:  addr(struct{ X any }{[]any{\"called\"}}),\n\t}, {\n\t\tname:  name(\"Interfaces/Any/Maps/NonEmpty\"),\n\t\tinBuf: `{\"X\":{\"fizz\":\"buzz\"}}`,\n\t\tinVal: new(struct{ X any }),\n\t\twant:  addr(struct{ X any }{map[string]any{\"fizz\": \"buzz\"}}),\n\t}, {\n\t\tname:    name(\"Interfaces/Any/Maps/RejectDuplicateNames\"),\n\t\tinBuf:   `{\"X\":{\"fizz\":\"buzz\",\"fizz\":true}}`,\n\t\tinVal:   new(struct{ X any }),\n\t\twant:    addr(struct{ X any }{map[string]any{\"fizz\": \"buzz\"}}),\n\t\twantErr: (&SyntacticError{str: `duplicate name \"fizz\" in object`}).withOffset(int64(len(`{\"X\":{\"fizz\":\"buzz\",`))),\n\t}, {\n\t\tname:    name(\"Interfaces/Any/Maps/AllowDuplicateNames\"),\n\t\tdopts:   DecodeOptions{AllowDuplicateNames: true},\n\t\tinBuf:   `{\"X\":{\"fizz\":\"buzz\",\"fizz\":true}}`,\n\t\tinVal:   new(struct{ X any }),\n\t\twant:    addr(struct{ X any }{map[string]any{\"fizz\": \"buzz\"}}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: 't', GoType: stringType},\n\t}, {\n\t\tname:  name(\"Interfaces/Any/Slices/NonEmpty\"),\n\t\tinBuf: `{\"X\":[\"fizz\",\"buzz\"]}`,\n\t\tinVal: new(struct{ X any }),\n\t\twant:  addr(struct{ X any }{[]any{\"fizz\", \"buzz\"}}),\n\t}, {\n\t\tname:  name(\"Methods/NilPointer/Null\"),\n\t\tinBuf: `{\"X\":null}`,\n\t\tinVal: addr(struct{ X *allMethods }{X: (*allMethods)(nil)}),\n\t\twant:  addr(struct{ X *allMethods }{X: (*allMethods)(nil)}), // method should not be called\n\t}, {\n\t\tname:  name(\"Methods/NilPointer/Value\"),\n\t\tinBuf: `{\"X\":\"value\"}`,\n\t\tinVal: addr(struct{ X *allMethods }{X: (*allMethods)(nil)}),\n\t\twant:  addr(struct{ X *allMethods }{X: &allMethods{method: \"UnmarshalNextJSON\", value: []byte(`\"value\"`)}}),\n\t}, {\n\t\tname:  name(\"Methods/NilInterface/Null\"),\n\t\tinBuf: `{\"X\":null}`,\n\t\tinVal: addr(struct{ X MarshalerV2 }{X: (*allMethods)(nil)}),\n\t\twant:  addr(struct{ X MarshalerV2 }{X: nil}), // interface value itself is nil'd out\n\t}, {\n\t\tname:  name(\"Methods/NilInterface/Value\"),\n\t\tinBuf: `{\"X\":\"value\"}`,\n\t\tinVal: addr(struct{ X MarshalerV2 }{X: (*allMethods)(nil)}),\n\t\twant:  addr(struct{ X MarshalerV2 }{X: &allMethods{method: \"UnmarshalNextJSON\", value: []byte(`\"value\"`)}}),\n\t}, {\n\t\tname:  name(\"Methods/AllMethods\"),\n\t\tinBuf: `{\"X\":\"hello\"}`,\n\t\tinVal: new(struct{ X *allMethods }),\n\t\twant:  addr(struct{ X *allMethods }{X: &allMethods{method: \"UnmarshalNextJSON\", value: []byte(`\"hello\"`)}}),\n\t}, {\n\t\tname:  name(\"Methods/AllMethodsExceptJSONv2\"),\n\t\tinBuf: `{\"X\":\"hello\"}`,\n\t\tinVal: new(struct{ X *allMethodsExceptJSONv2 }),\n\t\twant:  addr(struct{ X *allMethodsExceptJSONv2 }{X: &allMethodsExceptJSONv2{allMethods: allMethods{method: \"UnmarshalJSON\", value: []byte(`\"hello\"`)}}}),\n\t}, {\n\t\tname:  name(\"Methods/AllMethodsExceptJSONv1\"),\n\t\tinBuf: `{\"X\":\"hello\"}`,\n\t\tinVal: new(struct{ X *allMethodsExceptJSONv1 }),\n\t\twant:  addr(struct{ X *allMethodsExceptJSONv1 }{X: &allMethodsExceptJSONv1{allMethods: allMethods{method: \"UnmarshalNextJSON\", value: []byte(`\"hello\"`)}}}),\n\t}, {\n\t\tname:  name(\"Methods/AllMethodsExceptText\"),\n\t\tinBuf: `{\"X\":\"hello\"}`,\n\t\tinVal: new(struct{ X *allMethodsExceptText }),\n\t\twant:  addr(struct{ X *allMethodsExceptText }{X: &allMethodsExceptText{allMethods: allMethods{method: \"UnmarshalNextJSON\", value: []byte(`\"hello\"`)}}}),\n\t}, {\n\t\tname:  name(\"Methods/OnlyMethodJSONv2\"),\n\t\tinBuf: `{\"X\":\"hello\"}`,\n\t\tinVal: new(struct{ X *onlyMethodJSONv2 }),\n\t\twant:  addr(struct{ X *onlyMethodJSONv2 }{X: &onlyMethodJSONv2{allMethods: allMethods{method: \"UnmarshalNextJSON\", value: []byte(`\"hello\"`)}}}),\n\t}, {\n\t\tname:  name(\"Methods/OnlyMethodJSONv1\"),\n\t\tinBuf: `{\"X\":\"hello\"}`,\n\t\tinVal: new(struct{ X *onlyMethodJSONv1 }),\n\t\twant:  addr(struct{ X *onlyMethodJSONv1 }{X: &onlyMethodJSONv1{allMethods: allMethods{method: \"UnmarshalJSON\", value: []byte(`\"hello\"`)}}}),\n\t}, {\n\t\tname:  name(\"Methods/OnlyMethodText\"),\n\t\tinBuf: `{\"X\":\"hello\"}`,\n\t\tinVal: new(struct{ X *onlyMethodText }),\n\t\twant:  addr(struct{ X *onlyMethodText }{X: &onlyMethodText{allMethods: allMethods{method: \"UnmarshalText\", value: []byte(`hello`)}}}),\n\t}, {\n\t\tname:  name(\"Methods/IP\"),\n\t\tinBuf: `\"192.168.0.100\"`,\n\t\tinVal: new(net.IP),\n\t\twant:  addr(net.IPv4(192, 168, 0, 100)),\n\t}, {\n\t\t// NOTE: Fixes https://go.dev/issue/46516.\n\t\tname:  name(\"Methods/Anonymous\"),\n\t\tinBuf: `{\"X\":\"hello\"}`,\n\t\tinVal: new(struct{ X struct{ allMethods } }),\n\t\twant:  addr(struct{ X struct{ allMethods } }{X: struct{ allMethods }{allMethods{method: \"UnmarshalNextJSON\", value: []byte(`\"hello\"`)}}}),\n\t}, {\n\t\t// NOTE: Fixes https://go.dev/issue/22967.\n\t\tname:  name(\"Methods/Addressable\"),\n\t\tinBuf: `{\"V\":\"hello\",\"M\":{\"K\":\"hello\"},\"I\":\"hello\"}`,\n\t\tinVal: addr(struct {\n\t\t\tV allMethods\n\t\t\tM map[string]allMethods\n\t\t\tI any\n\t\t}{\n\t\t\tI: allMethods{}, // need to initialize with concrete value\n\t\t}),\n\t\twant: addr(struct {\n\t\t\tV allMethods\n\t\t\tM map[string]allMethods\n\t\t\tI any\n\t\t}{\n\t\t\tV: allMethods{method: \"UnmarshalNextJSON\", value: []byte(`\"hello\"`)},\n\t\t\tM: map[string]allMethods{\"K\": {method: \"UnmarshalNextJSON\", value: []byte(`\"hello\"`)}},\n\t\t\tI: allMethods{method: \"UnmarshalNextJSON\", value: []byte(`\"hello\"`)},\n\t\t}),\n\t}, {\n\t\t// NOTE: Fixes https://go.dev/issue/29732.\n\t\tname:  name(\"Methods/MapKey/JSONv2\"),\n\t\tinBuf: `{\"k1\":\"v1b\",\"k2\":\"v2\"}`,\n\t\tinVal: addr(map[structMethodJSONv2]string{{\"k1\"}: \"v1a\", {\"k3\"}: \"v3\"}),\n\t\twant:  addr(map[structMethodJSONv2]string{{\"k1\"}: \"v1b\", {\"k2\"}: \"v2\", {\"k3\"}: \"v3\"}),\n\t}, {\n\t\t// NOTE: Fixes https://go.dev/issue/29732.\n\t\tname:  name(\"Methods/MapKey/JSONv1\"),\n\t\tinBuf: `{\"k1\":\"v1b\",\"k2\":\"v2\"}`,\n\t\tinVal: addr(map[structMethodJSONv1]string{{\"k1\"}: \"v1a\", {\"k3\"}: \"v3\"}),\n\t\twant:  addr(map[structMethodJSONv1]string{{\"k1\"}: \"v1b\", {\"k2\"}: \"v2\", {\"k3\"}: \"v3\"}),\n\t}, {\n\t\tname:  name(\"Methods/MapKey/Text\"),\n\t\tinBuf: `{\"k1\":\"v1b\",\"k2\":\"v2\"}`,\n\t\tinVal: addr(map[structMethodText]string{{\"k1\"}: \"v1a\", {\"k3\"}: \"v3\"}),\n\t\twant:  addr(map[structMethodText]string{{\"k1\"}: \"v1b\", {\"k2\"}: \"v2\", {\"k3\"}: \"v3\"}),\n\t}, {\n\t\tname:  name(\"Methods/Invalid/JSONv2/Error\"),\n\t\tinBuf: `{}`,\n\t\tinVal: addr(unmarshalJSONv2Func(func(UnmarshalOptions, *Decoder) error {\n\t\t\treturn errors.New(\"some error\")\n\t\t})),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: unmarshalJSONv2FuncType, Err: errors.New(\"some error\")},\n\t}, {\n\t\tname: name(\"Methods/Invalid/JSONv2/TooFew\"),\n\t\tinVal: addr(unmarshalJSONv2Func(func(UnmarshalOptions, *Decoder) error {\n\t\t\treturn nil // do nothing\n\t\t})),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: unmarshalJSONv2FuncType, Err: errors.New(\"must read exactly one JSON value\")},\n\t}, {\n\t\tname:  name(\"Methods/Invalid/JSONv2/TooMany\"),\n\t\tinBuf: `{}{}`,\n\t\tinVal: addr(unmarshalJSONv2Func(func(uo UnmarshalOptions, dec *Decoder) error {\n\t\t\tdec.ReadValue()\n\t\t\tdec.ReadValue()\n\t\t\treturn nil\n\t\t})),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: unmarshalJSONv2FuncType, Err: errors.New(\"must read exactly one JSON value\")},\n\t}, {\n\t\tname:  name(\"Methods/Invalid/JSONv2/SkipFunc\"),\n\t\tinBuf: `{}`,\n\t\tinVal: addr(unmarshalJSONv2Func(func(UnmarshalOptions, *Decoder) error {\n\t\t\treturn SkipFunc\n\t\t})),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: unmarshalJSONv2FuncType, Err: errors.New(\"unmarshal method cannot be skipped\")},\n\t}, {\n\t\tname:  name(\"Methods/Invalid/JSONv1/Error\"),\n\t\tinBuf: `{}`,\n\t\tinVal: addr(unmarshalJSONv1Func(func([]byte) error {\n\t\t\treturn errors.New(\"some error\")\n\t\t})),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: unmarshalJSONv1FuncType, Err: errors.New(\"some error\")},\n\t}, {\n\t\tname:  name(\"Methods/Invalid/JSONv1/SkipFunc\"),\n\t\tinBuf: `{}`,\n\t\tinVal: addr(unmarshalJSONv1Func(func([]byte) error {\n\t\t\treturn SkipFunc\n\t\t})),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: unmarshalJSONv1FuncType, Err: errors.New(\"unmarshal method cannot be skipped\")},\n\t}, {\n\t\tname:  name(\"Methods/Invalid/Text/Error\"),\n\t\tinBuf: `\"value\"`,\n\t\tinVal: addr(unmarshalTextFunc(func([]byte) error {\n\t\t\treturn errors.New(\"some error\")\n\t\t})),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: unmarshalTextFuncType, Err: errors.New(\"some error\")},\n\t}, {\n\t\tname:  name(\"Methods/Invalid/Text/Syntax\"),\n\t\tinBuf: `{}`,\n\t\tinVal: addr(unmarshalTextFunc(func([]byte) error {\n\t\t\tpanic(\"should not be called\")\n\t\t})),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: unmarshalTextFuncType, Err: errors.New(\"JSON value must be string type\")},\n\t}, {\n\t\tname:  name(\"Methods/Invalid/Text/SkipFunc\"),\n\t\tinBuf: `\"value\"`,\n\t\tinVal: addr(unmarshalTextFunc(func([]byte) error {\n\t\t\treturn SkipFunc\n\t\t})),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: unmarshalTextFuncType, Err: errors.New(\"unmarshal method cannot be skipped\")},\n\t}, {\n\t\tname: name(\"Functions/String/V1\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func(b []byte, v *string) error {\n\t\t\t\tif string(b) != `\"\"` {\n\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"\"`)\n\t\t\t\t}\n\t\t\t\t*v = \"called\"\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `\"\"`,\n\t\tinVal: addr(\"\"),\n\t\twant:  addr(\"called\"),\n\t}, {\n\t\tname: name(\"Functions/NamedString/V1/NoMatch\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func(b []byte, v *namedString) error {\n\t\t\t\tpanic(\"should not be called\")\n\t\t\t}),\n\t\t},\n\t\tinBuf: `\"\"`,\n\t\tinVal: addr(\"\"),\n\t\twant:  addr(\"\"),\n\t}, {\n\t\tname: name(\"Functions/NamedString/V1/Match\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func(b []byte, v *namedString) error {\n\t\t\t\tif string(b) != `\"\"` {\n\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"\"`)\n\t\t\t\t}\n\t\t\t\t*v = \"called\"\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `\"\"`,\n\t\tinVal: addr(namedString(\"\")),\n\t\twant:  addr(namedString(\"called\")),\n\t}, {\n\t\tname: name(\"Functions/String/V2\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\tswitch b, err := dec.ReadValue(); {\n\t\t\t\tcase err != nil:\n\t\t\t\t\treturn err\n\t\t\t\tcase string(b) != `\"\"`:\n\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"\"`)\n\t\t\t\t}\n\t\t\t\t*v = \"called\"\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `\"\"`,\n\t\tinVal: addr(\"\"),\n\t\twant:  addr(\"called\"),\n\t}, {\n\t\tname: name(\"Functions/NamedString/V2/NoMatch\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *namedString) error {\n\t\t\t\tpanic(\"should not be called\")\n\t\t\t}),\n\t\t},\n\t\tinBuf: `\"\"`,\n\t\tinVal: addr(\"\"),\n\t\twant:  addr(\"\"),\n\t}, {\n\t\tname: name(\"Functions/NamedString/V2/Match\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *namedString) error {\n\t\t\t\tswitch t, err := dec.ReadToken(); {\n\t\t\t\tcase err != nil:\n\t\t\t\t\treturn err\n\t\t\t\tcase t.String() != ``:\n\t\t\t\t\treturn fmt.Errorf(\"got %q, want %q\", t, ``)\n\t\t\t\t}\n\t\t\t\t*v = \"called\"\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `\"\"`,\n\t\tinVal: addr(namedString(\"\")),\n\t\twant:  addr(namedString(\"called\")),\n\t}, {\n\t\tname: name(\"Functions/String/Empty1/NoMatch\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: new(Unmarshalers),\n\t\t},\n\t\tinBuf: `\"\"`,\n\t\tinVal: addr(\"\"),\n\t\twant:  addr(\"\"),\n\t}, {\n\t\tname: name(\"Functions/String/Empty2/NoMatch\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: NewUnmarshalers(),\n\t\t},\n\t\tinBuf: `\"\"`,\n\t\tinVal: addr(\"\"),\n\t\twant:  addr(\"\"),\n\t}, {\n\t\tname: name(\"Functions/String/V1/DirectError\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func([]byte, *string) error {\n\t\t\t\treturn errors.New(\"some error\")\n\t\t\t}),\n\t\t},\n\t\tinBuf:   `\"\"`,\n\t\tinVal:   addr(\"\"),\n\t\twant:    addr(\"\"),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: reflect.PointerTo(stringType), Err: errors.New(\"some error\")},\n\t}, {\n\t\tname: name(\"Functions/String/V1/SkipError\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func([]byte, *string) error {\n\t\t\t\treturn SkipFunc\n\t\t\t}),\n\t\t},\n\t\tinBuf:   `\"\"`,\n\t\tinVal:   addr(\"\"),\n\t\twant:    addr(\"\"),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: reflect.PointerTo(stringType), Err: errors.New(\"unmarshal function of type func([]byte, T) error cannot be skipped\")},\n\t}, {\n\t\tname: name(\"Functions/String/V2/DirectError\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\treturn errors.New(\"some error\")\n\t\t\t}),\n\t\t},\n\t\tinBuf:   `\"\"`,\n\t\tinVal:   addr(\"\"),\n\t\twant:    addr(\"\"),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: reflect.PointerTo(stringType), Err: errors.New(\"some error\")},\n\t}, {\n\t\tname: name(\"Functions/String/V2/TooFew\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf:   `\"\"`,\n\t\tinVal:   addr(\"\"),\n\t\twant:    addr(\"\"),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: reflect.PointerTo(stringType), Err: errors.New(\"must read exactly one JSON value\")},\n\t}, {\n\t\tname: name(\"Functions/String/V2/TooMany\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\tif _, err := dec.ReadValue(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif _, err := dec.ReadValue(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf:   `[\"\",\"\"]`,\n\t\tinVal:   addr([]string{}),\n\t\twant:    addr([]string{\"\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: reflect.PointerTo(stringType), Err: errors.New(\"must read exactly one JSON value\")},\n\t}, {\n\t\tname: name(\"Functions/String/V2/Skipped\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\treturn SkipFunc\n\t\t\t}),\n\t\t},\n\t\tinBuf: `\"\"`,\n\t\tinVal: addr(\"\"),\n\t\twant:  addr(\"\"),\n\t}, {\n\t\tname: name(\"Functions/String/V2/ProcessBeforeSkip\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\tif _, err := dec.ReadValue(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\treturn SkipFunc\n\t\t\t}),\n\t\t},\n\t\tinBuf:   `\"\"`,\n\t\tinVal:   addr(\"\"),\n\t\twant:    addr(\"\"),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: reflect.PointerTo(stringType), Err: errors.New(\"must not read any JSON tokens when skipping\")},\n\t}, {\n\t\tname: name(\"Functions/String/V2/WrappedSkipError\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\treturn fmt.Errorf(\"wrap: %w\", SkipFunc)\n\t\t\t}),\n\t\t},\n\t\tinBuf:   `\"\"`,\n\t\tinVal:   addr(\"\"),\n\t\twant:    addr(\"\"),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: reflect.PointerTo(stringType), Err: fmt.Errorf(\"wrap: %w\", SkipFunc)},\n\t}, {\n\t\tname: name(\"Functions/Map/Key/NoCaseString/V1\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func(b []byte, v *nocaseString) error {\n\t\t\t\tif string(b) != `\"hello\"` {\n\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"hello\"`)\n\t\t\t\t}\n\t\t\t\t*v = \"called\"\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"hello\":\"world\"}`,\n\t\tinVal: addr(map[nocaseString]string{}),\n\t\twant:  addr(map[nocaseString]string{\"called\": \"world\"}),\n\t}, {\n\t\tname: name(\"Functions/Map/Key/TextMarshaler/V1\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func(b []byte, v encoding.TextMarshaler) error {\n\t\t\t\tif string(b) != `\"hello\"` {\n\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"hello\"`)\n\t\t\t\t}\n\t\t\t\t*v.(*nocaseString) = \"called\"\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"hello\":\"world\"}`,\n\t\tinVal: addr(map[nocaseString]string{}),\n\t\twant:  addr(map[nocaseString]string{\"called\": \"world\"}),\n\t}, {\n\t\tname: name(\"Functions/Map/Key/NoCaseString/V2\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *nocaseString) error {\n\t\t\t\tswitch t, err := dec.ReadToken(); {\n\t\t\t\tcase err != nil:\n\t\t\t\t\treturn err\n\t\t\t\tcase t.String() != \"hello\":\n\t\t\t\t\treturn fmt.Errorf(\"got %q, want %q\", t, \"hello\")\n\t\t\t\t}\n\t\t\t\t*v = \"called\"\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"hello\":\"world\"}`,\n\t\tinVal: addr(map[nocaseString]string{}),\n\t\twant:  addr(map[nocaseString]string{\"called\": \"world\"}),\n\t}, {\n\t\tname: name(\"Functions/Map/Key/TextMarshaler/V2\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v encoding.TextMarshaler) error {\n\t\t\t\tswitch b, err := dec.ReadValue(); {\n\t\t\t\tcase err != nil:\n\t\t\t\t\treturn err\n\t\t\t\tcase string(b) != `\"hello\"`:\n\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"hello\"`)\n\t\t\t\t}\n\t\t\t\t*v.(*nocaseString) = \"called\"\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"hello\":\"world\"}`,\n\t\tinVal: addr(map[nocaseString]string{}),\n\t\twant:  addr(map[nocaseString]string{\"called\": \"world\"}),\n\t}, {\n\t\tname: name(\"Functions/Map/Key/String/V1/DuplicateName\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\tif _, err := dec.ReadValue(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\t*v = fmt.Sprintf(\"%d-%d\", len(dec.tokens.stack), dec.tokens.last.length())\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf:   `{\"name\":\"value\",\"name\":\"value\"}`,\n\t\tinVal:   addr(map[string]string{}),\n\t\twant:    addr(map[string]string{\"1-1\": \"1-2\"}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: reflect.PointerTo(stringType), Err: (&SyntacticError{str: `duplicate name \"name\" in object`}).withOffset(int64(len(`{\"name\":\"value\",`)))},\n\t}, {\n\t\tname: name(\"Functions/Map/Value/NoCaseString/V1\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func(b []byte, v *nocaseString) error {\n\t\t\t\tif string(b) != `\"world\"` {\n\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"world\"`)\n\t\t\t\t}\n\t\t\t\t*v = \"called\"\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"hello\":\"world\"}`,\n\t\tinVal: addr(map[string]nocaseString{}),\n\t\twant:  addr(map[string]nocaseString{\"hello\": \"called\"}),\n\t}, {\n\t\tname: name(\"Functions/Map/Value/TextMarshaler/V1\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func(b []byte, v encoding.TextMarshaler) error {\n\t\t\t\tif string(b) != `\"world\"` {\n\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"world\"`)\n\t\t\t\t}\n\t\t\t\t*v.(*nocaseString) = \"called\"\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"hello\":\"world\"}`,\n\t\tinVal: addr(map[string]nocaseString{}),\n\t\twant:  addr(map[string]nocaseString{\"hello\": \"called\"}),\n\t}, {\n\t\tname: name(\"Functions/Map/Value/NoCaseString/V2\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *nocaseString) error {\n\t\t\t\tswitch t, err := dec.ReadToken(); {\n\t\t\t\tcase err != nil:\n\t\t\t\t\treturn err\n\t\t\t\tcase t.String() != \"world\":\n\t\t\t\t\treturn fmt.Errorf(\"got %q, want %q\", t, \"world\")\n\t\t\t\t}\n\t\t\t\t*v = \"called\"\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"hello\":\"world\"}`,\n\t\tinVal: addr(map[string]nocaseString{}),\n\t\twant:  addr(map[string]nocaseString{\"hello\": \"called\"}),\n\t}, {\n\t\tname: name(\"Functions/Map/Value/TextMarshaler/V2\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v encoding.TextMarshaler) error {\n\t\t\t\tswitch b, err := dec.ReadValue(); {\n\t\t\t\tcase err != nil:\n\t\t\t\t\treturn err\n\t\t\t\tcase string(b) != `\"world\"`:\n\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"world\"`)\n\t\t\t\t}\n\t\t\t\t*v.(*nocaseString) = \"called\"\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"hello\":\"world\"}`,\n\t\tinVal: addr(map[string]nocaseString{}),\n\t\twant:  addr(map[string]nocaseString{\"hello\": \"called\"}),\n\t}, {\n\t\tname: name(\"Funtions/Struct/Fields\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: NewUnmarshalers(\n\t\t\t\tUnmarshalFuncV1(func(b []byte, v *bool) error {\n\t\t\t\t\tif string(b) != `\"called1\"` {\n\t\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"called1\"`)\n\t\t\t\t\t}\n\t\t\t\t\t*v = true\n\t\t\t\t\treturn nil\n\t\t\t\t}),\n\t\t\t\tUnmarshalFuncV1(func(b []byte, v *string) error {\n\t\t\t\t\tif string(b) != `\"called2\"` {\n\t\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"called2\"`)\n\t\t\t\t\t}\n\t\t\t\t\t*v = \"called2\"\n\t\t\t\t\treturn nil\n\t\t\t\t}),\n\t\t\t\tUnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *[]byte) error {\n\t\t\t\t\tswitch t, err := dec.ReadToken(); {\n\t\t\t\t\tcase err != nil:\n\t\t\t\t\t\treturn err\n\t\t\t\t\tcase t.String() != \"called3\":\n\t\t\t\t\t\treturn fmt.Errorf(\"got %q, want %q\", t, \"called3\")\n\t\t\t\t\t}\n\t\t\t\t\t*v = []byte(\"called3\")\n\t\t\t\t\treturn nil\n\t\t\t\t}),\n\t\t\t\tUnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *int64) error {\n\t\t\t\t\tswitch b, err := dec.ReadValue(); {\n\t\t\t\t\tcase err != nil:\n\t\t\t\t\t\treturn err\n\t\t\t\t\tcase string(b) != `\"called4\"`:\n\t\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"called4\"`)\n\t\t\t\t\t}\n\t\t\t\t\t*v = 123\n\t\t\t\t\treturn nil\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tinBuf: `{\"Bool\":\"called1\",\"String\":\"called2\",\"Bytes\":\"called3\",\"Int\":\"called4\",\"Uint\":456,\"Float\":789}`,\n\t\tinVal: addr(structScalars{}),\n\t\twant:  addr(structScalars{Bool: true, String: \"called2\", Bytes: []byte(\"called3\"), Int: 123, Uint: 456, Float: 789}),\n\t}, {\n\t\tname: name(\"Functions/Struct/Inlined\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: NewUnmarshalers(\n\t\t\t\tUnmarshalFuncV1(func([]byte, *structInlinedL1) error {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t\tUnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *StructEmbed2) error {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tinBuf: `{\"E\":\"E3\",\"F\":\"F3\",\"G\":\"G3\",\"A\":\"A1\",\"B\":\"B1\",\"D\":\"D2\"}`,\n\t\tinVal: new(structInlined),\n\t\twant: addr(structInlined{\n\t\t\tX: structInlinedL1{\n\t\t\t\tX:            &structInlinedL2{A: \"A1\", B: \"B1\" /* C: \"C1\" */},\n\t\t\t\tStructEmbed1: StructEmbed1{ /* C: \"C2\" */ D: \"D2\" /* E: \"E2\" */},\n\t\t\t},\n\t\t\tStructEmbed2: &StructEmbed2{E: \"E3\", F: \"F3\", G: \"G3\"},\n\t\t}),\n\t}, {\n\t\tname: name(\"Functions/Slice/Elem\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func(b []byte, v *string) error {\n\t\t\t\t*v = strings.Trim(strings.ToUpper(string(b)), `\"`)\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `[\"hello\",\"World\"]`,\n\t\tinVal: addr([]string{}),\n\t\twant:  addr([]string{\"HELLO\", \"WORLD\"}),\n\t}, {\n\t\tname: name(\"Functions/Array/Elem\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV1(func(b []byte, v *string) error {\n\t\t\t\t*v = strings.Trim(strings.ToUpper(string(b)), `\"`)\n\t\t\t\treturn nil\n\t\t\t}),\n\t\t},\n\t\tinBuf: `[\"hello\",\"World\"]`,\n\t\tinVal: addr([2]string{}),\n\t\twant:  addr([2]string{\"HELLO\", \"WORLD\"}),\n\t}, {\n\t\tname: name(\"Functions/Pointer/Nil\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\tt, err := dec.ReadToken()\n\t\t\t\t*v = strings.ToUpper(t.String())\n\t\t\t\treturn err\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"X\":\"hello\"}`,\n\t\tinVal: addr(struct{ X *string }{nil}),\n\t\twant:  addr(struct{ X *string }{addr(\"HELLO\")}),\n\t}, {\n\t\tname: name(\"Functions/Pointer/NonNil\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\tt, err := dec.ReadToken()\n\t\t\t\t*v = strings.ToUpper(t.String())\n\t\t\t\treturn err\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"X\":\"hello\"}`,\n\t\tinVal: addr(struct{ X *string }{addr(\"\")}),\n\t\twant:  addr(struct{ X *string }{addr(\"HELLO\")}),\n\t}, {\n\t\tname: name(\"Functions/Interface/Nil\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v fmt.Stringer) error {\n\t\t\t\tpanic(\"should not be called\")\n\t\t\t}),\n\t\t},\n\t\tinBuf:   `{\"X\":\"hello\"}`,\n\t\tinVal:   addr(struct{ X fmt.Stringer }{nil}),\n\t\twant:    addr(struct{ X fmt.Stringer }{nil}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: fmtStringerType, Err: errors.New(\"cannot derive concrete type for non-empty interface\")},\n\t}, {\n\t\tname: name(\"Functions/Interface/NetIP\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *fmt.Stringer) error {\n\t\t\t\t*v = net.IP{}\n\t\t\t\treturn SkipFunc\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"X\":\"1.1.1.1\"}`,\n\t\tinVal: addr(struct{ X fmt.Stringer }{nil}),\n\t\twant:  addr(struct{ X fmt.Stringer }{net.IPv4(1, 1, 1, 1)}),\n\t}, {\n\t\tname: name(\"Functions/Interface/NewPointerNetIP\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *fmt.Stringer) error {\n\t\t\t\t*v = new(net.IP)\n\t\t\t\treturn SkipFunc\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"X\":\"1.1.1.1\"}`,\n\t\tinVal: addr(struct{ X fmt.Stringer }{nil}),\n\t\twant:  addr(struct{ X fmt.Stringer }{addr(net.IPv4(1, 1, 1, 1))}),\n\t}, {\n\t\tname: name(\"Functions/Interface/NilPointerNetIP\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *fmt.Stringer) error {\n\t\t\t\t*v = (*net.IP)(nil)\n\t\t\t\treturn SkipFunc\n\t\t\t}),\n\t\t},\n\t\tinBuf: `{\"X\":\"1.1.1.1\"}`,\n\t\tinVal: addr(struct{ X fmt.Stringer }{nil}),\n\t\twant:  addr(struct{ X fmt.Stringer }{addr(net.IPv4(1, 1, 1, 1))}),\n\t}, {\n\t\tname: name(\"Functions/Interface/NilPointerNetIP/Override\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: NewUnmarshalers(\n\t\t\t\tUnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *fmt.Stringer) error {\n\t\t\t\t\t*v = (*net.IP)(nil)\n\t\t\t\t\treturn SkipFunc\n\t\t\t\t}),\n\t\t\t\tUnmarshalFuncV1(func(b []byte, v *net.IP) error {\n\t\t\t\t\tb = bytes.ReplaceAll(b, []byte(`1`), []byte(`8`))\n\t\t\t\t\treturn v.UnmarshalText(bytes.Trim(b, `\"`))\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tinBuf: `{\"X\":\"1.1.1.1\"}`,\n\t\tinVal: addr(struct{ X fmt.Stringer }{nil}),\n\t\twant:  addr(struct{ X fmt.Stringer }{addr(net.IPv4(8, 8, 8, 8))}),\n\t}, {\n\t\tname:  name(\"Functions/Interface/Any\"),\n\t\tinBuf: `[null,{},{},{},{},{},{},{},{},{},{},{},{},\"LAST\"]`,\n\t\tinVal: addr([...]any{\n\t\t\tnil,                           // nil\n\t\t\tvalueStringer{},               // T\n\t\t\t(*valueStringer)(nil),         // *T\n\t\t\taddr(valueStringer{}),         // *T\n\t\t\t(**valueStringer)(nil),        // **T\n\t\t\taddr((*valueStringer)(nil)),   // **T\n\t\t\taddr(addr(valueStringer{})),   // **T\n\t\t\tpointerStringer{},             // T\n\t\t\t(*pointerStringer)(nil),       // *T\n\t\t\taddr(pointerStringer{}),       // *T\n\t\t\t(**pointerStringer)(nil),      // **T\n\t\t\taddr((*pointerStringer)(nil)), // **T\n\t\t\taddr(addr(pointerStringer{})), // **T\n\t\t\t\"LAST\",\n\t\t}),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: func() *Unmarshalers {\n\t\t\t\ttype P [2]int\n\t\t\t\ttype PV struct {\n\t\t\t\t\tP P\n\t\t\t\t\tV any\n\t\t\t\t}\n\n\t\t\t\tvar lastChecks []func() error\n\t\t\t\tcheckLast := func() error {\n\t\t\t\t\tfor _, fn := range lastChecks {\n\t\t\t\t\t\tif err := fn(); err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn SkipFunc\n\t\t\t\t}\n\t\t\t\tmakeValueChecker := func(name string, want []PV) func(d *Decoder, v any) error {\n\t\t\t\t\tcheckNext := func(d *Decoder, v any) error {\n\t\t\t\t\t\tp := P{len(d.tokens.stack), d.tokens.last.length()}\n\t\t\t\t\t\trv := reflect.ValueOf(v)\n\t\t\t\t\t\tpv := PV{p, v}\n\t\t\t\t\t\tswitch {\n\t\t\t\t\t\tcase len(want) == 0:\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s: %v: got more values than expected\", name, p)\n\t\t\t\t\t\tcase !rv.IsValid() || rv.Kind() != reflect.Pointer || rv.IsNil():\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s: %v: got %#v, want non-nil pointer type\", name, p, v)\n\t\t\t\t\t\tcase !reflect.DeepEqual(pv, want[0]):\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s:\\n\\tgot  %#v\\n\\twant %#v\", name, pv, want[0])\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\twant = want[1:]\n\t\t\t\t\t\t\treturn SkipFunc\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlastChecks = append(lastChecks, func() error {\n\t\t\t\t\t\tif len(want) > 0 {\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s: did not get enough values, want %d more\", name, len(want))\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t})\n\t\t\t\t\treturn checkNext\n\t\t\t\t}\n\t\t\t\tmakePositionChecker := func(name string, want []P) func(d *Decoder, v any) error {\n\t\t\t\t\tcheckNext := func(d *Decoder, v any) error {\n\t\t\t\t\t\tp := P{len(d.tokens.stack), d.tokens.last.length()}\n\t\t\t\t\t\tswitch {\n\t\t\t\t\t\tcase len(want) == 0:\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s: %v: got more values than wanted\", name, p)\n\t\t\t\t\t\tcase p != want[0]:\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s: got %v, want %v\", name, p, want[0])\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\twant = want[1:]\n\t\t\t\t\t\t\treturn SkipFunc\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlastChecks = append(lastChecks, func() error {\n\t\t\t\t\t\tif len(want) > 0 {\n\t\t\t\t\t\t\treturn fmt.Errorf(\"%s: did not get enough values, want %d more\", name, len(want))\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t})\n\t\t\t\t\treturn checkNext\n\t\t\t\t}\n\n\t\t\t\t// In contrast to marshal, unmarshal automatically allocates for\n\t\t\t\t// nil pointers, which causes unmarshal to visit more values.\n\t\t\t\twantAny := []PV{\n\t\t\t\t\t{P{1, 0}, addr(any(nil))},\n\t\t\t\t\t{P{1, 1}, addr(any(valueStringer{}))},\n\t\t\t\t\t{P{1, 1}, addr(valueStringer{})},\n\t\t\t\t\t{P{1, 2}, addr(any((*valueStringer)(nil)))},\n\t\t\t\t\t{P{1, 2}, addr((*valueStringer)(nil))},\n\t\t\t\t\t{P{1, 2}, addr(valueStringer{})},\n\t\t\t\t\t{P{1, 3}, addr(any(addr(valueStringer{})))},\n\t\t\t\t\t{P{1, 3}, addr(addr(valueStringer{}))},\n\t\t\t\t\t{P{1, 3}, addr(valueStringer{})},\n\t\t\t\t\t{P{1, 4}, addr(any((**valueStringer)(nil)))},\n\t\t\t\t\t{P{1, 4}, addr((**valueStringer)(nil))},\n\t\t\t\t\t{P{1, 4}, addr((*valueStringer)(nil))},\n\t\t\t\t\t{P{1, 4}, addr(valueStringer{})},\n\t\t\t\t\t{P{1, 5}, addr(any(addr((*valueStringer)(nil))))},\n\t\t\t\t\t{P{1, 5}, addr(addr((*valueStringer)(nil)))},\n\t\t\t\t\t{P{1, 5}, addr((*valueStringer)(nil))},\n\t\t\t\t\t{P{1, 5}, addr(valueStringer{})},\n\t\t\t\t\t{P{1, 6}, addr(any(addr(addr(valueStringer{}))))},\n\t\t\t\t\t{P{1, 6}, addr(addr(addr(valueStringer{})))},\n\t\t\t\t\t{P{1, 6}, addr(addr(valueStringer{}))},\n\t\t\t\t\t{P{1, 6}, addr(valueStringer{})},\n\t\t\t\t\t{P{1, 7}, addr(any(pointerStringer{}))},\n\t\t\t\t\t{P{1, 7}, addr(pointerStringer{})},\n\t\t\t\t\t{P{1, 8}, addr(any((*pointerStringer)(nil)))},\n\t\t\t\t\t{P{1, 8}, addr((*pointerStringer)(nil))},\n\t\t\t\t\t{P{1, 8}, addr(pointerStringer{})},\n\t\t\t\t\t{P{1, 9}, addr(any(addr(pointerStringer{})))},\n\t\t\t\t\t{P{1, 9}, addr(addr(pointerStringer{}))},\n\t\t\t\t\t{P{1, 9}, addr(pointerStringer{})},\n\t\t\t\t\t{P{1, 10}, addr(any((**pointerStringer)(nil)))},\n\t\t\t\t\t{P{1, 10}, addr((**pointerStringer)(nil))},\n\t\t\t\t\t{P{1, 10}, addr((*pointerStringer)(nil))},\n\t\t\t\t\t{P{1, 10}, addr(pointerStringer{})},\n\t\t\t\t\t{P{1, 11}, addr(any(addr((*pointerStringer)(nil))))},\n\t\t\t\t\t{P{1, 11}, addr(addr((*pointerStringer)(nil)))},\n\t\t\t\t\t{P{1, 11}, addr((*pointerStringer)(nil))},\n\t\t\t\t\t{P{1, 11}, addr(pointerStringer{})},\n\t\t\t\t\t{P{1, 12}, addr(any(addr(addr(pointerStringer{}))))},\n\t\t\t\t\t{P{1, 12}, addr(addr(addr(pointerStringer{})))},\n\t\t\t\t\t{P{1, 12}, addr(addr(pointerStringer{}))},\n\t\t\t\t\t{P{1, 12}, addr(pointerStringer{})},\n\t\t\t\t\t{P{1, 13}, addr(any(\"LAST\"))},\n\t\t\t\t\t{P{1, 13}, addr(\"LAST\")},\n\t\t\t\t}\n\t\t\t\tcheckAny := makeValueChecker(\"any\", wantAny)\n\t\t\t\tanyUnmarshaler := UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v any) error {\n\t\t\t\t\treturn checkAny(dec, v)\n\t\t\t\t})\n\n\t\t\t\tvar wantPointerAny []PV\n\t\t\t\tfor _, v := range wantAny {\n\t\t\t\t\tif _, ok := v.V.(*any); ok {\n\t\t\t\t\t\twantPointerAny = append(wantPointerAny, v)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcheckPointerAny := makeValueChecker(\"*any\", wantPointerAny)\n\t\t\t\tpointerAnyUnmarshaler := UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *any) error {\n\t\t\t\t\treturn checkPointerAny(dec, v)\n\t\t\t\t})\n\n\t\t\t\tcheckNamedAny := makeValueChecker(\"namedAny\", wantAny)\n\t\t\t\tnamedAnyUnmarshaler := UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v namedAny) error {\n\t\t\t\t\treturn checkNamedAny(dec, v)\n\t\t\t\t})\n\n\t\t\t\tcheckPointerNamedAny := makeValueChecker(\"*namedAny\", nil)\n\t\t\t\tpointerNamedAnyUnmarshaler := UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *namedAny) error {\n\t\t\t\t\treturn checkPointerNamedAny(dec, v)\n\t\t\t\t})\n\n\t\t\t\ttype stringer = fmt.Stringer\n\t\t\t\tvar wantStringer []PV\n\t\t\t\tfor _, v := range wantAny {\n\t\t\t\t\tif _, ok := v.V.(stringer); ok {\n\t\t\t\t\t\twantStringer = append(wantStringer, v)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcheckStringer := makeValueChecker(\"stringer\", wantStringer)\n\t\t\t\tstringerUnmarshaler := UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v stringer) error {\n\t\t\t\t\treturn checkStringer(dec, v)\n\t\t\t\t})\n\n\t\t\t\tcheckPointerStringer := makeValueChecker(\"*stringer\", nil)\n\t\t\t\tpointerStringerUnmarshaler := UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *stringer) error {\n\t\t\t\t\treturn checkPointerStringer(dec, v)\n\t\t\t\t})\n\n\t\t\t\twantValueStringer := []P{{1, 1}, {1, 2}, {1, 3}, {1, 4}, {1, 5}, {1, 6}}\n\t\t\t\tcheckPointerValueStringer := makePositionChecker(\"*valueStringer\", wantValueStringer)\n\t\t\t\tpointerValueStringerUnmarshaler := UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *valueStringer) error {\n\t\t\t\t\treturn checkPointerValueStringer(dec, v)\n\t\t\t\t})\n\n\t\t\t\twantPointerStringer := []P{{1, 7}, {1, 8}, {1, 9}, {1, 10}, {1, 11}, {1, 12}}\n\t\t\t\tcheckPointerPointerStringer := makePositionChecker(\"*pointerStringer\", wantPointerStringer)\n\t\t\t\tpointerPointerStringerUnmarshaler := UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *pointerStringer) error {\n\t\t\t\t\treturn checkPointerPointerStringer(dec, v)\n\t\t\t\t})\n\n\t\t\t\tlastUnmarshaler := UnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\t\treturn checkLast()\n\t\t\t\t})\n\n\t\t\t\treturn NewUnmarshalers(\n\t\t\t\t\t// This is just like unmarshaling into a Go array,\n\t\t\t\t\t// but avoids zeroing the element before calling unmarshal.\n\t\t\t\t\tUnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *[14]any) error {\n\t\t\t\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor i := 0; i < len(*v); i++ {\n\t\t\t\t\t\t\tif err := uo.UnmarshalNext(dec, &(*v)[i]); err != nil {\n\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}),\n\n\t\t\t\t\tanyUnmarshaler,\n\t\t\t\t\tpointerAnyUnmarshaler,\n\t\t\t\t\tnamedAnyUnmarshaler,\n\t\t\t\t\tpointerNamedAnyUnmarshaler, // never called\n\t\t\t\t\tstringerUnmarshaler,\n\t\t\t\t\tpointerStringerUnmarshaler, // never called\n\t\t\t\t\tpointerValueStringerUnmarshaler,\n\t\t\t\t\tpointerPointerStringerUnmarshaler,\n\t\t\t\t\tlastUnmarshaler,\n\t\t\t\t)\n\t\t\t}(),\n\t\t},\n\t}, {\n\t\tname: name(\"Functions/Precedence/V1First\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: NewUnmarshalers(\n\t\t\t\tUnmarshalFuncV1(func(b []byte, v *string) error {\n\t\t\t\t\tif string(b) != `\"called\"` {\n\t\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"called\"`)\n\t\t\t\t\t}\n\t\t\t\t\t*v = \"called\"\n\t\t\t\t\treturn nil\n\t\t\t\t}),\n\t\t\t\tUnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tinBuf: `\"called\"`,\n\t\tinVal: addr(\"\"),\n\t\twant:  addr(\"called\"),\n\t}, {\n\t\tname: name(\"Functions/Precedence/V2First\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: NewUnmarshalers(\n\t\t\t\tUnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\t\tswitch t, err := dec.ReadToken(); {\n\t\t\t\t\tcase err != nil:\n\t\t\t\t\t\treturn err\n\t\t\t\t\tcase t.String() != \"called\":\n\t\t\t\t\t\treturn fmt.Errorf(\"got %q, want %q\", t, \"called\")\n\t\t\t\t\t}\n\t\t\t\t\t*v = \"called\"\n\t\t\t\t\treturn nil\n\t\t\t\t}),\n\t\t\t\tUnmarshalFuncV1(func([]byte, *string) error {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tinBuf: `\"called\"`,\n\t\tinVal: addr(\"\"),\n\t\twant:  addr(\"called\"),\n\t}, {\n\t\tname: name(\"Functions/Precedence/V2Skipped\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: NewUnmarshalers(\n\t\t\t\tUnmarshalFuncV2(func(uo UnmarshalOptions, dec *Decoder, v *string) error {\n\t\t\t\t\treturn SkipFunc\n\t\t\t\t}),\n\t\t\t\tUnmarshalFuncV1(func(b []byte, v *string) error {\n\t\t\t\t\tif string(b) != `\"called\"` {\n\t\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"called\"`)\n\t\t\t\t\t}\n\t\t\t\t\t*v = \"called\"\n\t\t\t\t\treturn nil\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tinBuf: `\"called\"`,\n\t\tinVal: addr(\"\"),\n\t\twant:  addr(\"called\"),\n\t}, {\n\t\tname: name(\"Functions/Precedence/NestedFirst\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: NewUnmarshalers(\n\t\t\t\tNewUnmarshalers(\n\t\t\t\t\tUnmarshalFuncV1(func(b []byte, v *string) error {\n\t\t\t\t\t\tif string(b) != `\"called\"` {\n\t\t\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"called\"`)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t*v = \"called\"\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t\tUnmarshalFuncV1(func([]byte, *string) error {\n\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t}),\n\t\t\t),\n\t\t},\n\t\tinBuf: `\"called\"`,\n\t\tinVal: addr(\"\"),\n\t\twant:  addr(\"called\"),\n\t}, {\n\t\tname: name(\"Functions/Precedence/NestedLast\"),\n\t\tuopts: UnmarshalOptions{\n\t\t\tUnmarshalers: NewUnmarshalers(\n\t\t\t\tUnmarshalFuncV1(func(b []byte, v *string) error {\n\t\t\t\t\tif string(b) != `\"called\"` {\n\t\t\t\t\t\treturn fmt.Errorf(\"got %s, want %s\", b, `\"called\"`)\n\t\t\t\t\t}\n\t\t\t\t\t*v = \"called\"\n\t\t\t\t\treturn nil\n\t\t\t\t}),\n\t\t\t\tNewUnmarshalers(\n\t\t\t\t\tUnmarshalFuncV1(func([]byte, *string) error {\n\t\t\t\t\t\tpanic(\"should not be called\")\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t),\n\t\t},\n\t\tinBuf: `\"called\"`,\n\t\tinVal: addr(\"\"),\n\t\twant:  addr(\"called\"),\n\t}, {\n\t\tname:  name(\"Duration/Null\"),\n\t\tinBuf: `{\"D1\":null,\"D2\":null}`,\n\t\tinVal: addr(struct {\n\t\t\tD1 time.Duration\n\t\t\tD2 time.Duration `json:\",format:nanos\"`\n\t\t}{1, 1}),\n\t\twant: addr(struct {\n\t\t\tD1 time.Duration\n\t\t\tD2 time.Duration `json:\",format:nanos\"`\n\t\t}{0, 0}),\n\t}, {\n\t\tname:  name(\"Duration/Zero\"),\n\t\tinBuf: `{\"D1\":\"0s\",\"D2\":0}`,\n\t\tinVal: addr(struct {\n\t\t\tD1 time.Duration\n\t\t\tD2 time.Duration `json:\",format:nanos\"`\n\t\t}{1, 1}),\n\t\twant: addr(struct {\n\t\t\tD1 time.Duration\n\t\t\tD2 time.Duration `json:\",format:nanos\"`\n\t\t}{0, 0}),\n\t}, {\n\t\tname:  name(\"Duration/Positive\"),\n\t\tinBuf: `{\"D1\":\"34293h33m9.123456789s\",\"D2\":123456789123456789}`,\n\t\tinVal: new(struct {\n\t\t\tD1 time.Duration\n\t\t\tD2 time.Duration `json:\",format:nanos\"`\n\t\t}),\n\t\twant: addr(struct {\n\t\t\tD1 time.Duration\n\t\t\tD2 time.Duration `json:\",format:nanos\"`\n\t\t}{\n\t\t\t123456789123456789,\n\t\t\t123456789123456789,\n\t\t}),\n\t}, {\n\t\tname:  name(\"Duration/Negative\"),\n\t\tinBuf: `{\"D1\":\"-34293h33m9.123456789s\",\"D2\":-123456789123456789}`,\n\t\tinVal: new(struct {\n\t\t\tD1 time.Duration\n\t\t\tD2 time.Duration `json:\",format:nanos\"`\n\t\t}),\n\t\twant: addr(struct {\n\t\t\tD1 time.Duration\n\t\t\tD2 time.Duration `json:\",format:nanos\"`\n\t\t}{\n\t\t\t-123456789123456789,\n\t\t\t-123456789123456789,\n\t\t}),\n\t}, {\n\t\tname:  name(\"Duration/Nanos/String\"),\n\t\tinBuf: `{\"D\":\"12345\"}`,\n\t\tinVal: addr(struct {\n\t\t\tD time.Duration `json:\",string,format:nanos\"`\n\t\t}{1}),\n\t\twant: addr(struct {\n\t\t\tD time.Duration `json:\",string,format:nanos\"`\n\t\t}{12345}),\n\t}, {\n\t\tname:  name(\"Duration/Nanos/String/Invalid\"),\n\t\tinBuf: `{\"D\":\"+12345\"}`,\n\t\tinVal: addr(struct {\n\t\t\tD time.Duration `json:\",string,format:nanos\"`\n\t\t}{1}),\n\t\twant: addr(struct {\n\t\t\tD time.Duration `json:\",string,format:nanos\"`\n\t\t}{1}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: timeDurationType, Err: fmt.Errorf(`cannot parse \"+12345\" as signed integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:  name(\"Duration/Nanos/Mismatch\"),\n\t\tinBuf: `{\"D\":\"34293h33m9.123456789s\"}`,\n\t\tinVal: addr(struct {\n\t\t\tD time.Duration `json:\",format:nanos\"`\n\t\t}{1}),\n\t\twant: addr(struct {\n\t\t\tD time.Duration `json:\",format:nanos\"`\n\t\t}{1}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: timeDurationType},\n\t}, {\n\t\tname:  name(\"Duration/Nanos/Invalid\"),\n\t\tinBuf: `{\"D\":1.324}`,\n\t\tinVal: addr(struct {\n\t\t\tD time.Duration `json:\",format:nanos\"`\n\t\t}{1}),\n\t\twant: addr(struct {\n\t\t\tD time.Duration `json:\",format:nanos\"`\n\t\t}{1}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: timeDurationType, Err: fmt.Errorf(`cannot parse \"1.324\" as signed integer: %w`, strconv.ErrSyntax)},\n\t}, {\n\t\tname:  name(\"Duration/String/Mismatch\"),\n\t\tinBuf: `{\"D\":-123456789123456789}`,\n\t\tinVal: addr(struct {\n\t\t\tD time.Duration\n\t\t}{1}),\n\t\twant: addr(struct {\n\t\t\tD time.Duration\n\t\t}{1}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: timeDurationType},\n\t}, {\n\t\tname:  name(\"Duration/String/Invalid\"),\n\t\tinBuf: `{\"D\":\"5minkutes\"}`,\n\t\tinVal: addr(struct {\n\t\t\tD time.Duration\n\t\t}{1}),\n\t\twant: addr(struct {\n\t\t\tD time.Duration\n\t\t}{1}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: timeDurationType, Err: func() error {\n\t\t\t_, err := time.ParseDuration(\"5minkutes\")\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:  name(\"Duration/Syntax/Invalid\"),\n\t\tinBuf: `{\"D\":x}`,\n\t\tinVal: addr(struct {\n\t\t\tD time.Duration\n\t\t}{1}),\n\t\twant: addr(struct {\n\t\t\tD time.Duration\n\t\t}{1}),\n\t\twantErr: newInvalidCharacterError([]byte(\"x\"), \"at start of value\").withOffset(int64(len(`{\"D\":`))),\n\t}, {\n\t\tname:  name(\"Duration/Format/Invalid\"),\n\t\tinBuf: `{\"D\":\"0s\"}`,\n\t\tinVal: addr(struct {\n\t\t\tD time.Duration `json:\",format:invalid\"`\n\t\t}{1}),\n\t\twant: addr(struct {\n\t\t\tD time.Duration `json:\",format:invalid\"`\n\t\t}{1}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: timeDurationType, Err: errors.New(`invalid format flag: \"invalid\"`)},\n\t}, {\n\t\tname:  name(\"Duration/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `\"1s\"`,\n\t\tinVal: addr(time.Duration(0)),\n\t\twant:  addr(time.Second),\n\t}, {\n\t\tname:  name(\"Time/Zero\"),\n\t\tinBuf: `{\"T1\":\"0001-01-01T00:00:00Z\",\"T2\":\"01 Jan 01 00:00 UTC\",\"T3\":\"0001-01-01\",\"T4\":\"0001-01-01T00:00:00Z\",\"T5\":\"0001-01-01T00:00:00Z\"}`,\n\t\tinVal: new(struct {\n\t\t\tT1 time.Time\n\t\t\tT2 time.Time `json:\",format:RFC822\"`\n\t\t\tT3 time.Time `json:\",format:'2006-01-02'\"`\n\t\t\tT4 time.Time `json:\",omitzero\"`\n\t\t\tT5 time.Time `json:\",omitempty\"`\n\t\t}),\n\t\twant: addr(struct {\n\t\t\tT1 time.Time\n\t\t\tT2 time.Time `json:\",format:RFC822\"`\n\t\t\tT3 time.Time `json:\",format:'2006-01-02'\"`\n\t\t\tT4 time.Time `json:\",omitzero\"`\n\t\t\tT5 time.Time `json:\",omitempty\"`\n\t\t}{\n\t\t\tmustParseTime(time.RFC3339Nano, \"0001-01-01T00:00:00Z\"),\n\t\t\tmustParseTime(time.RFC822, \"01 Jan 01 00:00 UTC\"),\n\t\t\tmustParseTime(\"2006-01-02\", \"0001-01-01\"),\n\t\t\tmustParseTime(time.RFC3339Nano, \"0001-01-01T00:00:00Z\"),\n\t\t\tmustParseTime(time.RFC3339Nano, \"0001-01-01T00:00:00Z\"),\n\t\t}),\n\t}, {\n\t\tname: name(\"Time/Format\"),\n\t\tinBuf: `{\n\t\t\t\"T1\": \"1234-01-02T03:04:05.000000006Z\",\n\t\t\t\"T2\": \"Mon Jan  2 03:04:05 1234\",\n\t\t\t\"T3\": \"Mon Jan  2 03:04:05 UTC 1234\",\n\t\t\t\"T4\": \"Mon Jan 02 03:04:05 +0000 1234\",\n\t\t\t\"T5\": \"02 Jan 34 03:04 UTC\",\n\t\t\t\"T6\": \"02 Jan 34 03:04 +0000\",\n\t\t\t\"T7\": \"Monday, 02-Jan-34 03:04:05 UTC\",\n\t\t\t\"T8\": \"Mon, 02 Jan 1234 03:04:05 UTC\",\n\t\t\t\"T9\": \"Mon, 02 Jan 1234 03:04:05 +0000\",\n\t\t\t\"T10\": \"1234-01-02T03:04:05Z\",\n\t\t\t\"T11\": \"1234-01-02T03:04:05.000000006Z\",\n\t\t\t\"T12\": \"3:04AM\",\n\t\t\t\"T13\": \"Jan  2 03:04:05\",\n\t\t\t\"T14\": \"Jan  2 03:04:05.000\",\n\t\t\t\"T15\": \"Jan  2 03:04:05.000000\",\n\t\t\t\"T16\": \"Jan  2 03:04:05.000000006\",\n\t\t\t\"T17\": \"1234-01-02\",\n\t\t\t\"T18\": \"\\\"weird\\\"1234\"\n\t\t}`,\n\t\tinVal: new(structTimeFormat),\n\t\twant: addr(structTimeFormat{\n\t\t\tmustParseTime(time.RFC3339Nano, \"1234-01-02T03:04:05.000000006Z\"),\n\t\t\tmustParseTime(time.ANSIC, \"Mon Jan  2 03:04:05 1234\"),\n\t\t\tmustParseTime(time.UnixDate, \"Mon Jan  2 03:04:05 UTC 1234\"),\n\t\t\tmustParseTime(time.RubyDate, \"Mon Jan 02 03:04:05 +0000 1234\"),\n\t\t\tmustParseTime(time.RFC822, \"02 Jan 34 03:04 UTC\"),\n\t\t\tmustParseTime(time.RFC822Z, \"02 Jan 34 03:04 +0000\"),\n\t\t\tmustParseTime(time.RFC850, \"Monday, 02-Jan-34 03:04:05 UTC\"),\n\t\t\tmustParseTime(time.RFC1123, \"Mon, 02 Jan 1234 03:04:05 UTC\"),\n\t\t\tmustParseTime(time.RFC1123Z, \"Mon, 02 Jan 1234 03:04:05 +0000\"),\n\t\t\tmustParseTime(time.RFC3339, \"1234-01-02T03:04:05Z\"),\n\t\t\tmustParseTime(time.RFC3339Nano, \"1234-01-02T03:04:05.000000006Z\"),\n\t\t\tmustParseTime(time.Kitchen, \"3:04AM\"),\n\t\t\tmustParseTime(time.Stamp, \"Jan  2 03:04:05\"),\n\t\t\tmustParseTime(time.StampMilli, \"Jan  2 03:04:05.000\"),\n\t\t\tmustParseTime(time.StampMicro, \"Jan  2 03:04:05.000000\"),\n\t\t\tmustParseTime(time.StampNano, \"Jan  2 03:04:05.000000006\"),\n\t\t\tmustParseTime(\"2006-01-02\", \"1234-01-02\"),\n\t\t\tmustParseTime(`\\\"weird\\\"2006`, `\\\"weird\\\"1234`),\n\t\t}),\n\t}, {\n\t\tname:  name(\"Time/Format/Null\"),\n\t\tinBuf: `{\"T1\": null,\"T2\": null,\"T3\": null,\"T4\": null,\"T5\": null,\"T6\": null,\"T7\": null,\"T8\": null,\"T9\": null,\"T10\": null,\"T11\": null,\"T12\": null,\"T13\": null,\"T14\": null,\"T15\": null,\"T16\": null,\"T17\": null,\"T18\": null}`,\n\t\tinVal: addr(structTimeFormat{\n\t\t\tmustParseTime(time.RFC3339Nano, \"1234-01-02T03:04:05.000000006Z\"),\n\t\t\tmustParseTime(time.ANSIC, \"Mon Jan  2 03:04:05 1234\"),\n\t\t\tmustParseTime(time.UnixDate, \"Mon Jan  2 03:04:05 UTC 1234\"),\n\t\t\tmustParseTime(time.RubyDate, \"Mon Jan 02 03:04:05 +0000 1234\"),\n\t\t\tmustParseTime(time.RFC822, \"02 Jan 34 03:04 UTC\"),\n\t\t\tmustParseTime(time.RFC822Z, \"02 Jan 34 03:04 +0000\"),\n\t\t\tmustParseTime(time.RFC850, \"Monday, 02-Jan-34 03:04:05 UTC\"),\n\t\t\tmustParseTime(time.RFC1123, \"Mon, 02 Jan 1234 03:04:05 UTC\"),\n\t\t\tmustParseTime(time.RFC1123Z, \"Mon, 02 Jan 1234 03:04:05 +0000\"),\n\t\t\tmustParseTime(time.RFC3339, \"1234-01-02T03:04:05Z\"),\n\t\t\tmustParseTime(time.RFC3339Nano, \"1234-01-02T03:04:05.000000006Z\"),\n\t\t\tmustParseTime(time.Kitchen, \"3:04AM\"),\n\t\t\tmustParseTime(time.Stamp, \"Jan  2 03:04:05\"),\n\t\t\tmustParseTime(time.StampMilli, \"Jan  2 03:04:05.000\"),\n\t\t\tmustParseTime(time.StampMicro, \"Jan  2 03:04:05.000000\"),\n\t\t\tmustParseTime(time.StampNano, \"Jan  2 03:04:05.000000006\"),\n\t\t\tmustParseTime(\"2006-01-02\", \"1234-01-02\"),\n\t\t\tmustParseTime(`\\\"weird\\\"2006`, `\\\"weird\\\"1234`),\n\t\t}),\n\t\twant: new(structTimeFormat),\n\t}, {\n\t\tname:  name(\"Time/RFC3339/Mismatch\"),\n\t\tinBuf: `{\"T\":1234}`,\n\t\tinVal: new(struct {\n\t\t\tT time.Time\n\t\t}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: timeTimeType},\n\t}, {\n\t\tname:  name(\"Time/RFC3339/ParseError\"),\n\t\tinBuf: `{\"T\":\"2021-09-29T12:44:52\"}`,\n\t\tinVal: new(struct {\n\t\t\tT time.Time\n\t\t}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: timeTimeType, Err: func() error {\n\t\t\t_, err := time.Parse(time.RFC3339, \"2021-09-29T12:44:52\")\n\t\t\treturn err\n\t\t}()},\n\t}, {\n\t\tname:  name(\"Time/Format/Invalid\"),\n\t\tinBuf: `{\"T\":\"\"}`,\n\t\tinVal: new(struct {\n\t\t\tT time.Time `json:\",format:UndefinedConstant\"`\n\t\t}),\n\t\twantErr: &SemanticError{action: \"unmarshal\", GoType: timeTimeType, Err: errors.New(`undefined format layout: UndefinedConstant`)},\n\t}, {\n\t\tname:    name(\"Time/Format/SingleDigitHour\"),\n\t\tinBuf:   `{\"T\":\"2000-01-01T1:12:34Z\"}`,\n\t\tinVal:   new(struct{ T time.Time }),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: timeTimeType, Err: &time.ParseError{time.RFC3339, \"2000-01-01T1:12:34Z\", \"15\", \"1\", \"\"}},\n\t}, {\n\t\tname:    name(\"Time/Format/SubsecondComma\"),\n\t\tinBuf:   `{\"T\":\"2000-01-01T00:00:00,000Z\"}`,\n\t\tinVal:   new(struct{ T time.Time }),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: timeTimeType, Err: &time.ParseError{time.RFC3339, \"2000-01-01T00:00:00,000Z\", \".\", \",\", \"\"}},\n\t}, {\n\t\tname:    name(\"Time/Format/TimezoneHourOverflow\"),\n\t\tinBuf:   `{\"T\":\"2000-01-01T00:00:00+24:00\"}`,\n\t\tinVal:   new(struct{ T time.Time }),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: timeTimeType, Err: &time.ParseError{time.RFC3339, \"2000-01-01T00:00:00+24:00\", \"Z07:00\", \"+24:00\", \": timezone hour out of range\"}},\n\t}, {\n\t\tname:    name(\"Time/Format/TimezoneMinuteOverflow\"),\n\t\tinBuf:   `{\"T\":\"2000-01-01T00:00:00+00:60\"}`,\n\t\tinVal:   new(struct{ T time.Time }),\n\t\twantErr: &SemanticError{action: \"unmarshal\", JSONKind: '\"', GoType: timeTimeType, Err: &time.ParseError{time.RFC3339, \"2000-01-01T00:00:00+00:60\", \"Z07:00\", \"+00:60\", \": timezone minute out of range\"}},\n\t}, {\n\t\tname:  name(\"Time/Syntax/Invalid\"),\n\t\tinBuf: `{\"T\":x}`,\n\t\tinVal: new(struct {\n\t\t\tT time.Time\n\t\t}),\n\t\twantErr: newInvalidCharacterError([]byte(\"x\"), \"at start of value\").withOffset(int64(len(`{\"D\":`))),\n\t}, {\n\t\tname:  name(\"Time/IgnoreInvalidFormat\"),\n\t\tuopts: UnmarshalOptions{formatDepth: 1000, format: \"invalid\"},\n\t\tinBuf: `\"2000-01-01T00:00:00Z\"`,\n\t\tinVal: addr(time.Time{}),\n\t\twant:  addr(time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)),\n\t}}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name.name, func(t *testing.T) {\n\t\t\tgot := tt.inVal\n\t\t\tgotErr := tt.uopts.Unmarshal(tt.dopts, []byte(tt.inBuf), got)\n\t\t\tif !reflect.DeepEqual(got, tt.want) && tt.want != nil {\n\t\t\t\tt.Errorf(\"%s: Unmarshal output mismatch:\\ngot  %v\\nwant %v\", tt.name.where, got, tt.want)\n\t\t\t}\n\t\t\tif !reflect.DeepEqual(gotErr, tt.wantErr) {\n\t\t\t\tt.Errorf(\"%s: Unmarshal error mismatch:\\ngot  %v\\nwant %v\", tt.name.where, gotErr, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestMarshalInvalidNamespace(t *testing.T) {\n\ttests := []struct {\n\t\tname testName\n\t\tval  any\n\t}{\n\t\t{name(\"Map\"), map[string]string{\"X\": \"\\xde\\xad\\xbe\\xef\"}},\n\t\t{name(\"Struct\"), struct{ X string }{\"\\xde\\xad\\xbe\\xef\"}},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name.name, func(t *testing.T) {\n\t\t\tenc := NewEncoder(new(bytes.Buffer))\n\t\t\tif err := (MarshalOptions{}).MarshalNext(enc, tt.val); err == nil {\n\t\t\t\tt.Fatalf(\"%s: MarshalNext error is nil, want non-nil\", tt.name.where)\n\t\t\t}\n\t\t\tfor _, tok := range []Token{Null, String(\"\"), Int(0), ObjectStart, ObjectEnd, ArrayStart, ArrayEnd} {\n\t\t\t\tif err := enc.WriteToken(tok); err == nil {\n\t\t\t\t\tt.Fatalf(\"%s: WriteToken error is nil, want non-nil\", tt.name.where)\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor _, val := range []string{`null`, `\"\"`, `0`, `{}`, `[]`} {\n\t\t\t\tif err := enc.WriteValue([]byte(val)); err == nil {\n\t\t\t\t\tt.Fatalf(\"%s: WriteToken error is nil, want non-nil\", tt.name.where)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshalInvalidNamespace(t *testing.T) {\n\ttests := []struct {\n\t\tname testName\n\t\tval  any\n\t}{\n\t\t{name(\"Map\"), addr(map[string]int{})},\n\t\t{name(\"Struct\"), addr(struct{ X int }{})},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name.name, func(t *testing.T) {\n\t\t\tdec := NewDecoder(strings.NewReader(`{\"X\":\"\"}`))\n\t\t\tif err := (UnmarshalOptions{}).UnmarshalNext(dec, tt.val); err == nil {\n\t\t\t\tt.Fatalf(\"%s: UnmarshalNext error is nil, want non-nil\", tt.name.where)\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err == nil {\n\t\t\t\tt.Fatalf(\"%s: ReadToken error is nil, want non-nil\", tt.name.where)\n\t\t\t}\n\t\t\tif _, err := dec.ReadValue(); err == nil {\n\t\t\t\tt.Fatalf(\"%s: ReadValue error is nil, want non-nil\", tt.name.where)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshalReuse(t *testing.T) {\n\tt.Run(\"Bytes\", func(t *testing.T) {\n\t\tin := make([]byte, 3)\n\t\twant := &in[0]\n\t\tif err := Unmarshal([]byte(`\"AQID\"`), &in); err != nil {\n\t\t\tt.Fatalf(\"Unmarshal error: %v\", err)\n\t\t}\n\t\tgot := &in[0]\n\t\tif got != want {\n\t\t\tt.Errorf(\"input buffer was not reused\")\n\t\t}\n\t})\n\tt.Run(\"Slices\", func(t *testing.T) {\n\t\tin := make([]int, 3)\n\t\twant := &in[0]\n\t\tif err := Unmarshal([]byte(`[0,1,2]`), &in); err != nil {\n\t\t\tt.Fatalf(\"Unmarshal error: %v\", err)\n\t\t}\n\t\tgot := &in[0]\n\t\tif got != want {\n\t\t\tt.Errorf(\"input slice was not reused\")\n\t\t}\n\t})\n\tt.Run(\"Maps\", func(t *testing.T) {\n\t\tin := make(map[string]string)\n\t\twant := reflect.ValueOf(in).Pointer()\n\t\tif err := Unmarshal([]byte(`{\"key\":\"value\"}`), &in); err != nil {\n\t\t\tt.Fatalf(\"Unmarshal error: %v\", err)\n\t\t}\n\t\tgot := reflect.ValueOf(in).Pointer()\n\t\tif got != want {\n\t\t\tt.Errorf(\"input map was not reused\")\n\t\t}\n\t})\n\tt.Run(\"Pointers\", func(t *testing.T) {\n\t\tin := addr(addr(addr(\"hello\")))\n\t\twant := **in\n\t\tif err := Unmarshal([]byte(`\"goodbye\"`), &in); err != nil {\n\t\t\tt.Fatalf(\"Unmarshal error: %v\", err)\n\t\t}\n\t\tgot := **in\n\t\tif got != want {\n\t\t\tt.Errorf(\"input pointer was not reused\")\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/arshal_time.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"time\"\n)\n\nvar (\n\ttimeDurationType = reflect.TypeOf((*time.Duration)(nil)).Elem()\n\ttimeTimeType     = reflect.TypeOf((*time.Time)(nil)).Elem()\n)\n\nfunc makeTimeArshaler(fncs *arshaler, t reflect.Type) *arshaler {\n\t// Ideally, time types would implement MarshalerV2 and UnmarshalerV2,\n\t// but that would incur a dependency on package json from package time.\n\t// Given how widely used time is, it is more acceptable that we incur a\n\t// dependency on time from json.\n\t//\n\t// Injecting the arshaling functionality like this will not be identical\n\t// to actually declaring methods on the time types since embedding of the\n\t// time types will not be able to forward this functionality.\n\tswitch t {\n\tcase timeDurationType:\n\t\tfncs.nonDefault = true\n\t\tmarshalNanos := fncs.marshal\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\t\tif mo.format == \"nanos\" {\n\t\t\t\t\tmo.format = \"\"\n\t\t\t\t\treturn marshalNanos(mo, enc, va)\n\t\t\t\t} else {\n\t\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttd := va.Interface().(time.Duration)\n\t\t\tb := enc.UnusedBuffer()\n\t\t\tb = append(b, '\"')\n\t\t\tb = append(b, td.String()...) // never contains special characters\n\t\t\tb = append(b, '\"')\n\t\t\treturn enc.WriteValue(b)\n\t\t}\n\t\tunmarshalNanos := fncs.unmarshal\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\t// TODO: Should there be a flag that specifies that we can unmarshal\n\t\t\t// from either form since there would be no ambiguity?\n\t\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\t\tif uo.format == \"nanos\" {\n\t\t\t\t\tuo.format = \"\"\n\t\t\t\t\treturn unmarshalNanos(uo, dec, va)\n\t\t\t\t} else {\n\t\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar flags valueFlags\n\t\t\ttd := va.Addr().Interface().(*time.Duration)\n\t\t\tval, err := dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tswitch k := val.Kind(); k {\n\t\t\tcase 'n':\n\t\t\t\t*td = time.Duration(0)\n\t\t\t\treturn nil\n\t\t\tcase '\"':\n\t\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\t\ttd2, err := time.ParseDuration(string(val))\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\t*td = td2\n\t\t\t\treturn nil\n\t\t\tdefault:\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t\t\t}\n\t\t}\n\tcase timeTimeType:\n\t\tfncs.nonDefault = true\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tformat := time.RFC3339Nano\n\t\t\tisRFC3339 := true\n\t\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\t\tvar err error\n\t\t\t\tformat, isRFC3339, err = checkTimeFormat(mo.format)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttt := va.Interface().(time.Time)\n\t\t\tb := enc.UnusedBuffer()\n\t\t\tb = append(b, '\"')\n\t\t\tb = tt.AppendFormat(b, format)\n\t\t\tb = append(b, '\"')\n\t\t\tif isRFC3339 {\n\t\t\t\t// Not all Go timestamps can be represented as valid RFC 3339.\n\t\t\t\t// Explicitly check for these edge cases.\n\t\t\t\t// See https://go.dev/issue/4556 and https://go.dev/issue/54580.\n\t\t\t\tvar err error\n\t\t\t\tswitch b := b[len(`\"`) : len(b)-len(`\"`)]; {\n\t\t\t\tcase b[len(\"9999\")] != '-': // year must be exactly 4 digits wide\n\t\t\t\t\terr = errors.New(\"year outside of range [0,9999]\")\n\t\t\t\tcase b[len(b)-1] != 'Z':\n\t\t\t\t\tc := b[len(b)-len(\"Z07:00\")]\n\t\t\t\t\tif ('0' <= c && c <= '9') || parseDec2(b[len(b)-len(\"07:00\"):]) >= 24 {\n\t\t\t\t\t\terr = errors.New(\"timezone hour outside of range [0,23]\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\treturn enc.WriteValue(b) // RFC 3339 never needs JSON escaping\n\t\t\t}\n\t\t\t// The format may contain special characters that need escaping.\n\t\t\t// Verify that the result is a valid JSON string (common case),\n\t\t\t// otherwise escape the string correctly (slower case).\n\t\t\tif consumeSimpleString(b) != len(b) {\n\t\t\t\tb, _ = appendString(nil, string(b[len(`\"`):len(b)-len(`\"`)]), true, nil)\n\t\t\t}\n\t\t\treturn enc.WriteValue(b)\n\t\t}\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tformat := time.RFC3339\n\t\t\tisRFC3339 := true\n\t\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\t\tvar err error\n\t\t\t\tformat, isRFC3339, err = checkTimeFormat(uo.format)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar flags valueFlags\n\t\t\ttt := va.Addr().Interface().(*time.Time)\n\t\t\tval, err := dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tk := val.Kind()\n\t\t\tswitch k {\n\t\t\tcase 'n':\n\t\t\t\t*tt = time.Time{}\n\t\t\t\treturn nil\n\t\t\tcase '\"':\n\t\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\t\ttt2, err := time.Parse(format, string(val))\n\t\t\t\tif isRFC3339 && err == nil {\n\t\t\t\t\t// TODO(https://go.dev/issue/54580): RFC 3339 specifies\n\t\t\t\t\t// the exact grammar of a valid timestamp. However,\n\t\t\t\t\t// the parsing functionality in \"time\" is too loose and\n\t\t\t\t\t// incorrectly accepts invalid timestamps as valid.\n\t\t\t\t\t// Remove these manual checks when \"time\" checks it for us.\n\t\t\t\t\tnewParseError := func(layout, value, layoutElem, valueElem, message string) error {\n\t\t\t\t\t\treturn &time.ParseError{Layout: layout, Value: value, LayoutElem: layoutElem, ValueElem: valueElem, Message: message}\n\t\t\t\t\t}\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase val[len(\"2006-01-02T\")+1] == ':': // hour must be two digits\n\t\t\t\t\t\terr = newParseError(format, string(val), \"15\", string(val[len(\"2006-01-02T\"):][:1]), \"\")\n\t\t\t\t\tcase val[len(\"2006-01-02T15:04:05\")] == ',': // sub-second separator must be a period\n\t\t\t\t\t\terr = newParseError(format, string(val), \".\", \",\", \"\")\n\t\t\t\t\tcase val[len(val)-1] != 'Z':\n\t\t\t\t\t\tswitch {\n\t\t\t\t\t\tcase parseDec2(val[len(val)-len(\"07:00\"):]) >= 24: // timezone hour must be in range\n\t\t\t\t\t\t\terr = newParseError(format, string(val), \"Z07:00\", string(val[len(val)-len(\"Z07:00\"):]), \": timezone hour out of range\")\n\t\t\t\t\t\tcase parseDec2(val[len(val)-len(\"00\"):]) >= 60: // timezone minute must be in range\n\t\t\t\t\t\t\terr = newParseError(format, string(val), \"Z07:00\", string(val[len(val)-len(\"Z07:00\"):]), \": timezone minute out of range\")\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\t*tt = tt2\n\t\t\t\treturn nil\n\t\t\tdefault:\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t\t\t}\n\t\t}\n\t}\n\treturn fncs\n}\n\nfunc checkTimeFormat(format string) (string, bool, error) {\n\t// We assume that an exported constant in the time package will\n\t// always start with an uppercase ASCII letter.\n\tif len(format) > 0 && 'A' <= format[0] && format[0] <= 'Z' {\n\t\tswitch format {\n\t\tcase \"ANSIC\":\n\t\t\treturn time.ANSIC, false, nil\n\t\tcase \"UnixDate\":\n\t\t\treturn time.UnixDate, false, nil\n\t\tcase \"RubyDate\":\n\t\t\treturn time.RubyDate, false, nil\n\t\tcase \"RFC822\":\n\t\t\treturn time.RFC822, false, nil\n\t\tcase \"RFC822Z\":\n\t\t\treturn time.RFC822Z, false, nil\n\t\tcase \"RFC850\":\n\t\t\treturn time.RFC850, false, nil\n\t\tcase \"RFC1123\":\n\t\t\treturn time.RFC1123, false, nil\n\t\tcase \"RFC1123Z\":\n\t\t\treturn time.RFC1123Z, false, nil\n\t\tcase \"RFC3339\":\n\t\t\treturn time.RFC3339, true, nil\n\t\tcase \"RFC3339Nano\":\n\t\t\treturn time.RFC3339Nano, true, nil\n\t\tcase \"Kitchen\":\n\t\t\treturn time.Kitchen, false, nil\n\t\tcase \"Stamp\":\n\t\t\treturn time.Stamp, false, nil\n\t\tcase \"StampMilli\":\n\t\t\treturn time.StampMilli, false, nil\n\t\tcase \"StampMicro\":\n\t\t\treturn time.StampMicro, false, nil\n\t\tcase \"StampNano\":\n\t\t\treturn time.StampNano, false, nil\n\t\tdefault:\n\t\t\t// Reject any format that is an exported Go identifier in case\n\t\t\t// new format constants are added to the time package.\n\t\t\tif strings.TrimFunc(format, isLetterOrDigit) == \"\" {\n\t\t\t\treturn \"\", false, fmt.Errorf(\"undefined format layout: %v\", format)\n\t\t\t}\n\t\t}\n\t}\n\treturn format, false, nil\n}\n\n// parseDec2 parses b as an unsigned, base-10, 2-digit number.\n// It panics if len(b) < 2. The result is undefined if digits are not base-10.\nfunc parseDec2(b []byte) byte {\n\treturn 10*(b[0]-'0') + (b[1] - '0')\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/bench_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path\"\n\t\"reflect\"\n\t\"strings\"\n\t\"testing\"\n\t\"testing/iotest\"\n\n\tjsonv1 \"encoding/json\"\n)\n\nvar benchV1 = os.Getenv(\"BENCHMARK_V1\") != \"\"\n\n// bytesBuffer is identical to bytes.Buffer,\n// but a different type to avoid any optimizations for bytes.Buffer.\ntype bytesBuffer struct{ *bytes.Buffer }\n\nvar arshalTestdata = []struct {\n\tname   string\n\traw    []byte\n\tval    any\n\tnew    func() any\n\tskipV1 bool\n}{{\n\tname: \"Bool\",\n\traw:  []byte(\"true\"),\n\tval:  addr(true),\n\tnew:  func() any { return new(bool) },\n}, {\n\tname: \"String\",\n\traw:  []byte(`\"hello, world!\"`),\n\tval:  addr(\"hello, world!\"),\n\tnew:  func() any { return new(string) },\n}, {\n\tname: \"Int\",\n\traw:  []byte(\"-1234\"),\n\tval:  addr(int64(-1234)),\n\tnew:  func() any { return new(int64) },\n}, {\n\tname: \"Uint\",\n\traw:  []byte(\"1234\"),\n\tval:  addr(uint64(1234)),\n\tnew:  func() any { return new(uint64) },\n}, {\n\tname: \"Float\",\n\traw:  []byte(\"12.34\"),\n\tval:  addr(float64(12.34)),\n\tnew:  func() any { return new(float64) },\n}, {\n\tname: \"Map/ManyEmpty\",\n\traw:  []byte(`[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]`),\n\tval: addr(func() (out []map[string]string) {\n\t\tfor i := 0; i < 100; i++ {\n\t\t\tout = append(out, map[string]string{})\n\t\t}\n\t\treturn out\n\t}()),\n\tnew: func() any { return new([]map[string]string) },\n}, {\n\tname: \"Map/OneLarge\",\n\traw:  []byte(`{\"A\":\"A\",\"B\":\"B\",\"C\":\"C\",\"D\":\"D\",\"E\":\"E\",\"F\":\"F\",\"G\":\"G\",\"H\":\"H\",\"I\":\"I\",\"J\":\"J\",\"K\":\"K\",\"L\":\"L\",\"M\":\"M\",\"N\":\"N\",\"O\":\"O\",\"P\":\"P\",\"Q\":\"Q\",\"R\":\"R\",\"S\":\"S\",\"T\":\"T\",\"U\":\"U\",\"V\":\"V\",\"W\":\"W\",\"X\":\"X\",\"Y\":\"Y\",\"Z\":\"Z\"}`),\n\tval:  addr(map[string]string{\"A\": \"A\", \"B\": \"B\", \"C\": \"C\", \"D\": \"D\", \"E\": \"E\", \"F\": \"F\", \"G\": \"G\", \"H\": \"H\", \"I\": \"I\", \"J\": \"J\", \"K\": \"K\", \"L\": \"L\", \"M\": \"M\", \"N\": \"N\", \"O\": \"O\", \"P\": \"P\", \"Q\": \"Q\", \"R\": \"R\", \"S\": \"S\", \"T\": \"T\", \"U\": \"U\", \"V\": \"V\", \"W\": \"W\", \"X\": \"X\", \"Y\": \"Y\", \"Z\": \"Z\"}),\n\tnew:  func() any { return new(map[string]string) },\n}, {\n\tname: \"Map/ManySmall\",\n\traw:  []byte(`{\"A\":{\"K\":\"V\"},\"B\":{\"K\":\"V\"},\"C\":{\"K\":\"V\"},\"D\":{\"K\":\"V\"},\"E\":{\"K\":\"V\"},\"F\":{\"K\":\"V\"},\"G\":{\"K\":\"V\"},\"H\":{\"K\":\"V\"},\"I\":{\"K\":\"V\"},\"J\":{\"K\":\"V\"},\"K\":{\"K\":\"V\"},\"L\":{\"K\":\"V\"},\"M\":{\"K\":\"V\"},\"N\":{\"K\":\"V\"},\"O\":{\"K\":\"V\"},\"P\":{\"K\":\"V\"},\"Q\":{\"K\":\"V\"},\"R\":{\"K\":\"V\"},\"S\":{\"K\":\"V\"},\"T\":{\"K\":\"V\"},\"U\":{\"K\":\"V\"},\"V\":{\"K\":\"V\"},\"W\":{\"K\":\"V\"},\"X\":{\"K\":\"V\"},\"Y\":{\"K\":\"V\"},\"Z\":{\"K\":\"V\"}}`),\n\tval:  addr(map[string]map[string]string{\"A\": {\"K\": \"V\"}, \"B\": {\"K\": \"V\"}, \"C\": {\"K\": \"V\"}, \"D\": {\"K\": \"V\"}, \"E\": {\"K\": \"V\"}, \"F\": {\"K\": \"V\"}, \"G\": {\"K\": \"V\"}, \"H\": {\"K\": \"V\"}, \"I\": {\"K\": \"V\"}, \"J\": {\"K\": \"V\"}, \"K\": {\"K\": \"V\"}, \"L\": {\"K\": \"V\"}, \"M\": {\"K\": \"V\"}, \"N\": {\"K\": \"V\"}, \"O\": {\"K\": \"V\"}, \"P\": {\"K\": \"V\"}, \"Q\": {\"K\": \"V\"}, \"R\": {\"K\": \"V\"}, \"S\": {\"K\": \"V\"}, \"T\": {\"K\": \"V\"}, \"U\": {\"K\": \"V\"}, \"V\": {\"K\": \"V\"}, \"W\": {\"K\": \"V\"}, \"X\": {\"K\": \"V\"}, \"Y\": {\"K\": \"V\"}, \"Z\": {\"K\": \"V\"}}),\n\tnew:  func() any { return new(map[string]map[string]string) },\n}, {\n\tname: \"Struct/ManyEmpty\",\n\traw:  []byte(`[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]`),\n\tval:  addr(make([]struct{}, 100)),\n\tnew: func() any {\n\t\treturn new([]struct{})\n\t},\n}, {\n\tname: \"Struct/OneLarge\",\n\traw:  []byte(`{\"A\":\"A\",\"B\":\"B\",\"C\":\"C\",\"D\":\"D\",\"E\":\"E\",\"F\":\"F\",\"G\":\"G\",\"H\":\"H\",\"I\":\"I\",\"J\":\"J\",\"K\":\"K\",\"L\":\"L\",\"M\":\"M\",\"N\":\"N\",\"O\":\"O\",\"P\":\"P\",\"Q\":\"Q\",\"R\":\"R\",\"S\":\"S\",\"T\":\"T\",\"U\":\"U\",\"V\":\"V\",\"W\":\"W\",\"X\":\"X\",\"Y\":\"Y\",\"Z\":\"Z\"}`),\n\tval:  addr(struct{ A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z string }{\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"}),\n\tnew: func() any {\n\t\treturn new(struct{ A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z string })\n\t},\n}, {\n\tname: \"Struct/ManySmall\",\n\traw:  []byte(`{\"A\":{\"K\":\"V\"},\"B\":{\"K\":\"V\"},\"C\":{\"K\":\"V\"},\"D\":{\"K\":\"V\"},\"E\":{\"K\":\"V\"},\"F\":{\"K\":\"V\"},\"G\":{\"K\":\"V\"},\"H\":{\"K\":\"V\"},\"I\":{\"K\":\"V\"},\"J\":{\"K\":\"V\"},\"K\":{\"K\":\"V\"},\"L\":{\"K\":\"V\"},\"M\":{\"K\":\"V\"},\"N\":{\"K\":\"V\"},\"O\":{\"K\":\"V\"},\"P\":{\"K\":\"V\"},\"Q\":{\"K\":\"V\"},\"R\":{\"K\":\"V\"},\"S\":{\"K\":\"V\"},\"T\":{\"K\":\"V\"},\"U\":{\"K\":\"V\"},\"V\":{\"K\":\"V\"},\"W\":{\"K\":\"V\"},\"X\":{\"K\":\"V\"},\"Y\":{\"K\":\"V\"},\"Z\":{\"K\":\"V\"}}`),\n\tval: func() any {\n\t\tV := struct{ K string }{\"V\"}\n\t\treturn addr(struct{ A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z struct{ K string } }{\n\t\t\tV, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V, V,\n\t\t})\n\t}(),\n\tnew: func() any {\n\t\treturn new(struct{ A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z struct{ K string } })\n\t},\n}, {\n\tname: \"Slice/ManyEmpty\",\n\traw:  []byte(`[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]`),\n\tval: addr(func() (out [][]string) {\n\t\tfor i := 0; i < 100; i++ {\n\t\t\tout = append(out, []string{})\n\t\t}\n\t\treturn out\n\t}()),\n\tnew: func() any { return new([][]string) },\n}, {\n\tname: \"Slice/OneLarge\",\n\traw:  []byte(`[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\"]`),\n\tval:  addr([]string{\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"}),\n\tnew:  func() any { return new([]string) },\n}, {\n\tname: \"Slice/ManySmall\",\n\traw:  []byte(`[[\"A\"],[\"B\"],[\"C\"],[\"D\"],[\"E\"],[\"F\"],[\"G\"],[\"H\"],[\"I\"],[\"J\"],[\"K\"],[\"L\"],[\"M\"],[\"N\"],[\"O\"],[\"P\"],[\"Q\"],[\"R\"],[\"S\"],[\"T\"],[\"U\"],[\"V\"],[\"W\"],[\"X\"],[\"Y\"],[\"Z\"]]`),\n\tval:  addr([][]string{{\"A\"}, {\"B\"}, {\"C\"}, {\"D\"}, {\"E\"}, {\"F\"}, {\"G\"}, {\"H\"}, {\"I\"}, {\"J\"}, {\"K\"}, {\"L\"}, {\"M\"}, {\"N\"}, {\"O\"}, {\"P\"}, {\"Q\"}, {\"R\"}, {\"S\"}, {\"T\"}, {\"U\"}, {\"V\"}, {\"W\"}, {\"X\"}, {\"Y\"}, {\"Z\"}}),\n\tnew:  func() any { return new([][]string) },\n}, {\n\tname: \"Array/OneLarge\",\n\traw:  []byte(`[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\"]`),\n\tval:  addr([26]string{\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"}),\n\tnew:  func() any { return new([26]string) },\n}, {\n\tname: \"Array/ManySmall\",\n\traw:  []byte(`[[\"A\"],[\"B\"],[\"C\"],[\"D\"],[\"E\"],[\"F\"],[\"G\"],[\"H\"],[\"I\"],[\"J\"],[\"K\"],[\"L\"],[\"M\"],[\"N\"],[\"O\"],[\"P\"],[\"Q\"],[\"R\"],[\"S\"],[\"T\"],[\"U\"],[\"V\"],[\"W\"],[\"X\"],[\"Y\"],[\"Z\"]]`),\n\tval:  addr([26][1]string{{\"A\"}, {\"B\"}, {\"C\"}, {\"D\"}, {\"E\"}, {\"F\"}, {\"G\"}, {\"H\"}, {\"I\"}, {\"J\"}, {\"K\"}, {\"L\"}, {\"M\"}, {\"N\"}, {\"O\"}, {\"P\"}, {\"Q\"}, {\"R\"}, {\"S\"}, {\"T\"}, {\"U\"}, {\"V\"}, {\"W\"}, {\"X\"}, {\"Y\"}, {\"Z\"}}),\n\tnew:  func() any { return new([26][1]string) },\n}, {\n\tname: \"Bytes/Slice\",\n\traw:  []byte(`\"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\"`),\n\tval:  addr([]byte{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55}),\n\tnew:  func() any { return new([]byte) },\n}, {\n\tname:   \"Bytes/Array\",\n\traw:    []byte(`\"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\"`),\n\tval:    addr([32]byte{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55}),\n\tnew:    func() any { return new([32]byte) },\n\tskipV1: true,\n}, {\n\tname: \"Pointer\",\n\traw:  []byte(\"true\"),\n\tval:  addr(addr(addr(addr(addr(addr(addr(addr(addr(addr(addr(true))))))))))),\n\tnew:  func() any { return new(**********bool) },\n}, {\n\tname: \"TextArshal\",\n\traw:  []byte(`\"method\"`),\n\tval:  new(textArshaler),\n\tnew:  func() any { return new(textArshaler) },\n}, {\n\tname: \"JSONArshalV1\",\n\traw:  []byte(`\"method\"`),\n\tval:  new(jsonArshalerV1),\n\tnew:  func() any { return new(jsonArshalerV1) },\n}, {\n\tname:   \"JSONArshalV2\",\n\traw:    []byte(`\"method\"`),\n\tval:    new(jsonArshalerV2),\n\tnew:    func() any { return new(jsonArshalerV2) },\n\tskipV1: true,\n}}\n\ntype textArshaler struct{}\n\nfunc (*textArshaler) MarshalText() ([]byte, error) {\n\treturn []byte(\"method\"), nil\n}\nfunc (*textArshaler) UnmarshalText(b []byte) error {\n\tif string(b) != \"method\" {\n\t\treturn fmt.Errorf(\"UnmarshalText: got %q, want %q\", b, \"method\")\n\t}\n\treturn nil\n}\n\ntype jsonArshalerV1 struct{}\n\nfunc (*jsonArshalerV1) MarshalJSON() ([]byte, error) {\n\treturn []byte(`\"method\"`), nil\n}\nfunc (*jsonArshalerV1) UnmarshalJSON(b []byte) error {\n\tif string(b) != `\"method\"` {\n\t\treturn fmt.Errorf(\"UnmarshalJSON: got %q, want %q\", b, `\"method\"`)\n\t}\n\treturn nil\n}\n\ntype jsonArshalerV2 struct{}\n\nfunc (*jsonArshalerV2) MarshalNextJSON(opts MarshalOptions, enc *Encoder) error {\n\treturn enc.WriteToken(String(\"method\"))\n}\nfunc (*jsonArshalerV2) UnmarshalNextJSON(opts UnmarshalOptions, dec *Decoder) error {\n\tb, err := dec.ReadValue()\n\tif string(b) != `\"method\"` {\n\t\treturn fmt.Errorf(\"UnmarshalNextJSON: got %q, want %q\", b, `\"method\"`)\n\t}\n\treturn err\n}\n\nfunc TestBenchmarkUnmarshal(t *testing.T) { runUnmarshal(t) }\nfunc BenchmarkUnmarshal(b *testing.B)     { runUnmarshal(b) }\n\nfunc runUnmarshal(tb testing.TB) {\n\tfor _, tt := range arshalTestdata {\n\t\t// Setup the unmarshal operation.\n\t\tvar val any\n\t\trun := func(tb testing.TB) {\n\t\t\tval = tt.new()\n\t\t\tif err := Unmarshal(tt.raw, val); err != nil {\n\t\t\t\ttb.Fatalf(\"Unmarshal error: %v\", err)\n\t\t\t}\n\t\t}\n\t\tif benchV1 {\n\t\t\trun = func(tb testing.TB) {\n\t\t\t\tif tt.skipV1 {\n\t\t\t\t\ttb.Skip(\"not supported in v1\")\n\t\t\t\t}\n\t\t\t\tval = tt.new()\n\t\t\t\tif err := jsonv1.Unmarshal(tt.raw, val); err != nil {\n\t\t\t\t\ttb.Fatalf(\"Unmarshal error: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Verify the results.\n\t\tif _, ok := tb.(*testing.T); ok {\n\t\t\trun0 := run\n\t\t\trun = func(tb testing.TB) {\n\t\t\t\trun0(tb)\n\t\t\t\tif !reflect.DeepEqual(val, tt.val) {\n\t\t\t\t\ttb.Fatalf(\"Unmarshal output mismatch:\\ngot  %v\\nwant %v\", val, tt.val)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\trunTestOrBench(tb, tt.name, int64(len(tt.raw)), run)\n\t}\n}\n\nfunc TestBenchmarkMarshal(t *testing.T) { runMarshal(t) }\nfunc BenchmarkMarshal(b *testing.B)     { runMarshal(b) }\n\nfunc runMarshal(tb testing.TB) {\n\tfor _, tt := range arshalTestdata {\n\t\t// Setup the marshal operation.\n\t\tvar raw []byte\n\t\trun := func(tb testing.TB) {\n\t\t\tvar err error\n\t\t\traw, err = Marshal(tt.val)\n\t\t\tif err != nil {\n\t\t\t\ttb.Fatalf(\"Marshal error: %v\", err)\n\t\t\t}\n\t\t}\n\t\tif benchV1 {\n\t\t\trun = func(tb testing.TB) {\n\t\t\t\tif tt.skipV1 {\n\t\t\t\t\ttb.Skip(\"not supported in v1\")\n\t\t\t\t}\n\t\t\t\tvar err error\n\t\t\t\traw, err = jsonv1.Marshal(tt.val)\n\t\t\t\tif err != nil {\n\t\t\t\t\ttb.Fatalf(\"Marshal error: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Verify the results.\n\t\tif _, ok := tb.(*testing.T); ok {\n\t\t\trun0 := run\n\t\t\trun = func(tb testing.TB) {\n\t\t\t\trun0(tb)\n\t\t\t\tif !bytes.Equal(raw, tt.raw) {\n\t\t\t\t\t// Map marshaling in v2 is non-deterministic.\n\t\t\t\t\tbyteHistogram := func(b []byte) (h [256]int) {\n\t\t\t\t\t\tfor _, c := range b {\n\t\t\t\t\t\t\th[c]++\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn h\n\t\t\t\t\t}\n\t\t\t\t\tif !(strings.HasPrefix(tt.name, \"Map/\") && byteHistogram(raw) == byteHistogram(tt.raw)) {\n\t\t\t\t\t\ttb.Fatalf(\"Marshal output mismatch:\\ngot  %s\\nwant %s\", raw, tt.raw)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\trunTestOrBench(tb, tt.name, int64(len(tt.raw)), run)\n\t}\n}\n\nfunc TestBenchmarkTestdata(t *testing.T) { runAllTestdata(t) }\nfunc BenchmarkTestdata(b *testing.B)     { runAllTestdata(b) }\n\nfunc runAllTestdata(tb testing.TB) {\n\tfor _, td := range jsonTestdata() {\n\t\tfor _, arshalName := range []string{\"Marshal\", \"Unmarshal\"} {\n\t\t\tfor _, typeName := range []string{\"Concrete\", \"Interface\"} {\n\t\t\t\tnewValue := func() any { return new(any) }\n\t\t\t\tif typeName == \"Concrete\" {\n\t\t\t\t\tif td.new == nil {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tnewValue = td.new\n\t\t\t\t}\n\t\t\t\tvalue := mustUnmarshalValue(tb, td.data, newValue)\n\t\t\t\tname := path.Join(td.name, arshalName, typeName)\n\t\t\t\trunTestOrBench(tb, name, int64(len(td.data)), func(tb testing.TB) {\n\t\t\t\t\trunArshal(tb, arshalName, newValue, td.data, value)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\ttokens := mustDecodeTokens(tb, td.data)\n\t\tbuffer := make([]byte, 0, 2*len(td.data))\n\t\tfor _, codeName := range []string{\"Encode\", \"Decode\"} {\n\t\t\tfor _, typeName := range []string{\"Token\", \"Value\"} {\n\t\t\t\tfor _, modeName := range []string{\"Streaming\", \"Buffered\"} {\n\t\t\t\t\tname := path.Join(td.name, codeName, typeName, modeName)\n\t\t\t\t\trunTestOrBench(tb, name, int64(len(td.data)), func(tb testing.TB) {\n\t\t\t\t\t\trunCode(tb, codeName, typeName, modeName, buffer, td.data, tokens)\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc mustUnmarshalValue(t testing.TB, data []byte, newValue func() any) (value any) {\n\tvalue = newValue()\n\tif err := Unmarshal(data, value); err != nil {\n\t\tt.Fatalf(\"Unmarshal error: %v\", err)\n\t}\n\treturn value\n}\n\nfunc runArshal(t testing.TB, arshalName string, newValue func() any, data []byte, value any) {\n\tif benchV1 {\n\t\tswitch arshalName {\n\t\tcase \"Marshal\":\n\t\t\tif _, err := jsonv1.Marshal(value); err != nil {\n\t\t\t\tt.Fatalf(\"Marshal error: %v\", err)\n\t\t\t}\n\t\tcase \"Unmarshal\":\n\t\t\tif err := jsonv1.Unmarshal(data, newValue()); err != nil {\n\t\t\t\tt.Fatalf(\"Unmarshal error: %v\", err)\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tswitch arshalName {\n\tcase \"Marshal\":\n\t\tif _, err := Marshal(value); err != nil {\n\t\t\tt.Fatalf(\"Marshal error: %v\", err)\n\t\t}\n\tcase \"Unmarshal\":\n\t\tif err := Unmarshal(data, newValue()); err != nil {\n\t\t\tt.Fatalf(\"Unmarshal error: %v\", err)\n\t\t}\n\t}\n}\n\nfunc mustDecodeTokens(t testing.TB, data []byte) []Token {\n\tvar tokens []Token\n\tdec := NewDecoder(bytes.NewReader(data))\n\tfor {\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tt.Fatalf(\"Decoder.ReadToken error: %v\", err)\n\t\t}\n\n\t\t// Prefer exact representation for JSON strings and numbers\n\t\t// since this more closely matches common use cases.\n\t\tswitch tok.Kind() {\n\t\tcase '\"':\n\t\t\ttokens = append(tokens, String(tok.String()))\n\t\tcase '0':\n\t\t\ttokens = append(tokens, Float(tok.Float()))\n\t\tdefault:\n\t\t\ttokens = append(tokens, tok.Clone())\n\t\t}\n\t}\n\treturn tokens\n}\n\nfunc runCode(t testing.TB, codeName, typeName, modeName string, buffer, data []byte, tokens []Token) {\n\tswitch codeName {\n\tcase \"Encode\":\n\t\trunEncode(t, typeName, modeName, buffer, data, tokens)\n\tcase \"Decode\":\n\t\trunDecode(t, typeName, modeName, buffer, data, tokens)\n\t}\n}\n\nfunc runEncode(t testing.TB, typeName, modeName string, buffer, data []byte, tokens []Token) {\n\tif benchV1 {\n\t\tif modeName == \"Buffered\" {\n\t\t\tt.Skip(\"no support for direct buffered input in v1\")\n\t\t}\n\t\tenc := jsonv1.NewEncoder(bytes.NewBuffer(buffer[:0]))\n\t\tswitch typeName {\n\t\tcase \"Token\":\n\t\t\tt.Skip(\"no support for encoding tokens in v1; see https://go.dev/issue/40127\")\n\t\tcase \"Value\":\n\t\t\tval := jsonv1.RawMessage(data)\n\t\t\tif err := enc.Encode(val); err != nil {\n\t\t\t\tt.Fatalf(\"Decoder.Encode error: %v\", err)\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tvar enc *Encoder\n\tswitch modeName {\n\tcase \"Streaming\":\n\t\tenc = NewEncoder(bytesBuffer{bytes.NewBuffer(buffer[:0])})\n\tcase \"Buffered\":\n\t\tenc = NewEncoder(bytes.NewBuffer(buffer[:0]))\n\t}\n\tswitch typeName {\n\tcase \"Token\":\n\t\tfor _, tok := range tokens {\n\t\t\tif err := enc.WriteToken(tok); err != nil {\n\t\t\t\tt.Fatalf(\"Encoder.WriteToken error: %v\", err)\n\t\t\t}\n\t\t}\n\tcase \"Value\":\n\t\tif err := enc.WriteValue(data); err != nil {\n\t\t\tt.Fatalf(\"Encoder.WriteValue error: %v\", err)\n\t\t}\n\t}\n}\n\nfunc runDecode(t testing.TB, typeName, modeName string, buffer, data []byte, tokens []Token) {\n\tif benchV1 {\n\t\tif modeName == \"Buffered\" {\n\t\t\tt.Skip(\"no support for direct buffered output in v1\")\n\t\t}\n\t\tdec := jsonv1.NewDecoder(bytes.NewReader(data))\n\t\tswitch typeName {\n\t\tcase \"Token\":\n\t\t\tfor {\n\t\t\t\tif _, err := dec.Token(); err != nil {\n\t\t\t\t\tif err == io.EOF {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tt.Fatalf(\"Decoder.Token error: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"Value\":\n\t\t\tvar val jsonv1.RawMessage\n\t\t\tif err := dec.Decode(&val); err != nil {\n\t\t\t\tt.Fatalf(\"Decoder.Decode error: %v\", err)\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tvar dec *Decoder\n\tswitch modeName {\n\tcase \"Streaming\":\n\t\tdec = NewDecoder(bytesBuffer{bytes.NewBuffer(data)})\n\tcase \"Buffered\":\n\t\tdec = NewDecoder(bytes.NewBuffer(data))\n\t}\n\tswitch typeName {\n\tcase \"Token\":\n\t\tfor {\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tt.Fatalf(\"Decoder.ReadToken error: %v\", err)\n\t\t\t}\n\t\t}\n\tcase \"Value\":\n\t\tif _, err := dec.ReadValue(); err != nil {\n\t\t\tt.Fatalf(\"Decoder.ReadValue error: %v\", err)\n\t\t}\n\t}\n}\n\nvar ws = strings.Repeat(\" \", 4<<10)\nvar slowStreamingDecodeTestdata = []struct {\n\tname string\n\tdata []byte\n}{\n\t{\"LargeString\", []byte(`\"` + strings.Repeat(\" \", 4<<10) + `\"`)},\n\t{\"LargeNumber\", []byte(\"0.\" + strings.Repeat(\"0\", 4<<10))},\n\t{\"LargeWhitespace/Null\", []byte(ws + \"null\" + ws)},\n\t{\"LargeWhitespace/Object\", []byte(ws + \"{\" + ws + `\"name1\"` + ws + \":\" + ws + `\"value\"` + ws + \",\" + ws + `\"name2\"` + ws + \":\" + ws + `\"value\"` + ws + \"}\" + ws)},\n\t{\"LargeWhitespace/Array\", []byte(ws + \"[\" + ws + `\"value\"` + ws + \",\" + ws + `\"value\"` + ws + \"]\" + ws)},\n}\n\nfunc TestBenchmarkSlowStreamingDecode(t *testing.T) { runAllSlowStreamingDecode(t) }\nfunc BenchmarkSlowStreamingDecode(b *testing.B)     { runAllSlowStreamingDecode(b) }\n\nfunc runAllSlowStreamingDecode(tb testing.TB) {\n\tfor _, td := range slowStreamingDecodeTestdata {\n\t\tfor _, typeName := range []string{\"Token\", \"Value\"} {\n\t\t\tname := path.Join(td.name, typeName)\n\t\t\trunTestOrBench(tb, name, int64(len(td.data)), func(tb testing.TB) {\n\t\t\t\trunSlowStreamingDecode(tb, typeName, td.data)\n\t\t\t})\n\t\t}\n\t}\n}\n\n// runSlowStreamingDecode tests a streaming Decoder operating on\n// a slow io.Reader that only returns 1 byte at a time,\n// which tends to exercise pathological behavior.\nfunc runSlowStreamingDecode(t testing.TB, typeName string, data []byte) {\n\tif benchV1 {\n\t\tdec := jsonv1.NewDecoder(iotest.OneByteReader(bytes.NewReader(data)))\n\t\tswitch typeName {\n\t\tcase \"Token\":\n\t\t\tfor dec.More() {\n\t\t\t\tif _, err := dec.Token(); err != nil {\n\t\t\t\t\tt.Fatalf(\"Decoder.Token error: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"Value\":\n\t\t\tvar val jsonv1.RawMessage\n\t\t\tif err := dec.Decode(&val); err != nil {\n\t\t\t\tt.Fatalf(\"Decoder.Decode error: %v\", err)\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tdec := NewDecoder(iotest.OneByteReader(bytes.NewReader(data)))\n\tswitch typeName {\n\tcase \"Token\":\n\t\tfor dec.PeekKind() > 0 {\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\tt.Fatalf(\"Decoder.ReadToken error: %v\", err)\n\t\t\t}\n\t\t}\n\tcase \"Value\":\n\t\tif _, err := dec.ReadValue(); err != nil {\n\t\t\tt.Fatalf(\"Decoder.ReadValue error: %v\", err)\n\t\t}\n\t}\n}\n\nfunc TestBenchmarkRawValue(t *testing.T) { runRawValue(t) }\nfunc BenchmarkRawValue(b *testing.B)     { runRawValue(b) }\n\nfunc runRawValue(tb testing.TB) {\n\tif testing.Short() {\n\t\ttb.Skip() // CitmCatalog is not loaded in short mode\n\t}\n\tvar data []byte\n\tfor _, ts := range jsonTestdata() {\n\t\tif ts.name == \"CitmCatalog\" {\n\t\t\tdata = ts.data\n\t\t}\n\t}\n\n\trunTestOrBench(tb, \"IsValid\", int64(len(data)), func(tb testing.TB) {\n\t\tRawValue(data).IsValid()\n\t})\n\n\tmethods := []struct {\n\t\tname   string\n\t\tformat func(*RawValue) error\n\t}{\n\t\t{\"Compact\", (*RawValue).Compact},\n\t\t{\"Indent\", func(v *RawValue) error { return v.Indent(\"\\t\", \"    \") }},\n\t\t{\"Canonicalize\", (*RawValue).Canonicalize},\n\t}\n\n\tvar v RawValue\n\tfor _, method := range methods {\n\t\trunTestOrBench(tb, method.name, int64(len(data)), func(tb testing.TB) {\n\t\t\tv = append(v[:0], data...) // reset with original input\n\t\t\tif err := method.format(&v); err != nil {\n\t\t\t\ttb.Errorf(\"RawValue.%v error: %v\", method.name, err)\n\t\t\t}\n\t\t})\n\t\tv = append(v[:0], data...)\n\t\tmethod.format(&v)\n\t\trunTestOrBench(tb, method.name+\"/Noop\", int64(len(data)), func(tb testing.TB) {\n\t\t\tif err := method.format(&v); err != nil {\n\t\t\t\ttb.Errorf(\"RawValue.%v error: %v\", method.name, err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc runTestOrBench(tb testing.TB, name string, numBytes int64, run func(tb testing.TB)) {\n\tswitch tb := tb.(type) {\n\tcase *testing.T:\n\t\ttb.Run(name, func(t *testing.T) {\n\t\t\trun(t)\n\t\t})\n\tcase *testing.B:\n\t\ttb.Run(name, func(b *testing.B) {\n\t\t\tb.ResetTimer()\n\t\t\tb.ReportAllocs()\n\t\t\tb.SetBytes(numBytes)\n\t\t\tfor i := 0; i < b.N; i++ {\n\t\t\t\trun(b)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/coder_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"math\"\n\t\"math/rand\"\n\t\"path\"\n\t\"strings\"\n\t\"testing\"\n)\n\nvar (\n\tzeroToken Token\n\tzeroValue RawValue\n)\n\n// tokOrVal is either a Token or a RawValue.\ntype tokOrVal interface{ Kind() Kind }\n\ntype coderTestdataEntry struct {\n\tname             testName\n\tin               string\n\toutCompacted     string\n\toutEscaped       string // outCompacted if empty; escapes all runes in a string\n\toutIndented      string // outCompacted if empty; uses \"  \" for indent prefix and \"\\t\" for indent\n\toutCanonicalized string // outCompacted if empty\n\ttokens           []Token\n\tpointers         []string\n}\n\nvar coderTestdata = []coderTestdataEntry{{\n\tname:         name(\"Null\"),\n\tin:           ` null `,\n\toutCompacted: `null`,\n\ttokens:       []Token{Null},\n\tpointers:     []string{\"\"},\n}, {\n\tname:         name(\"False\"),\n\tin:           ` false `,\n\toutCompacted: `false`,\n\ttokens:       []Token{False},\n}, {\n\tname:         name(\"True\"),\n\tin:           ` true `,\n\toutCompacted: `true`,\n\ttokens:       []Token{True},\n}, {\n\tname:         name(\"EmptyString\"),\n\tin:           ` \"\" `,\n\toutCompacted: `\"\"`,\n\ttokens:       []Token{String(\"\")},\n}, {\n\tname:         name(\"SimpleString\"),\n\tin:           ` \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\" `,\n\toutCompacted: `\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"`,\n\toutEscaped:   `\"\\u0061\\u0062\\u0063\\u0064\\u0065\\u0066\\u0067\\u0068\\u0069\\u006a\\u006b\\u006c\\u006d\\u006e\\u006f\\u0070\\u0071\\u0072\\u0073\\u0074\\u0075\\u0076\\u0077\\u0078\\u0079\\u007a\\u0041\\u0042\\u0043\\u0044\\u0045\\u0046\\u0047\\u0048\\u0049\\u004a\\u004b\\u004c\\u004d\\u004e\\u004f\\u0050\\u0051\\u0052\\u0053\\u0054\\u0055\\u0056\\u0057\\u0058\\u0059\\u005a\"`,\n\ttokens:       []Token{String(\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\")},\n}, {\n\tname:             name(\"ComplicatedString\"),\n\tin:               \" \\\"Hello, 世界 🌟★☆✩🌠 \" + \"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\U0001f602\" + ` \\ud800\\udead \\\"\\\\\\/\\b\\f\\n\\r\\t \\u0022\\u005c\\u002f\\u0008\\u000c\\u000a\\u000d\\u0009\" `,\n\toutCompacted:     \"\\\"Hello, 世界 🌟★☆✩🌠 \" + \"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\U0001f602\" + \" 𐊭 \\\\\\\"\\\\\\\\/\\\\b\\\\f\\\\n\\\\r\\\\t \\\\\\\"\\\\\\\\/\\\\b\\\\f\\\\n\\\\r\\\\t\\\"\",\n\toutEscaped:       `\"\\u0048\\u0065\\u006c\\u006c\\u006f\\u002c\\u0020\\u4e16\\u754c\\u0020\\ud83c\\udf1f\\u2605\\u2606\\u2729\\ud83c\\udf20\\u0020\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\ud83d\\ude02\\u0020\\ud800\\udead\\u0020\\u0022\\u005c\\u002f\\u0008\\u000c\\u000a\\u000d\\u0009\\u0020\\u0022\\u005c\\u002f\\u0008\\u000c\\u000a\\u000d\\u0009\"`,\n\toutCanonicalized: `\"Hello, 世界 🌟★☆✩🌠 ö€힙דּ�😂 𐊭 \\\"\\\\/\\b\\f\\n\\r\\t \\\"\\\\/\\b\\f\\n\\r\\t\"`,\n\ttokens:           []Token{rawToken(\"\\\"Hello, 世界 🌟★☆✩🌠 \" + \"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\U0001f602\" + \" 𐊭 \\\\\\\"\\\\\\\\/\\\\b\\\\f\\\\n\\\\r\\\\t \\\\\\\"\\\\\\\\/\\\\b\\\\f\\\\n\\\\r\\\\t\\\"\")},\n}, {\n\tname:         name(\"ZeroNumber\"),\n\tin:           ` 0 `,\n\toutCompacted: `0`,\n\ttokens:       []Token{Uint(0)},\n}, {\n\tname:         name(\"SimpleNumber\"),\n\tin:           ` 123456789 `,\n\toutCompacted: `123456789`,\n\ttokens:       []Token{Uint(123456789)},\n}, {\n\tname:         name(\"NegativeNumber\"),\n\tin:           ` -123456789 `,\n\toutCompacted: `-123456789`,\n\ttokens:       []Token{Int(-123456789)},\n}, {\n\tname:         name(\"FractionalNumber\"),\n\tin:           \" 0.123456789 \",\n\toutCompacted: `0.123456789`,\n\ttokens:       []Token{Float(0.123456789)},\n}, {\n\tname:             name(\"ExponentNumber\"),\n\tin:               \" 0e12456789 \",\n\toutCompacted:     `0e12456789`,\n\toutCanonicalized: `0`,\n\ttokens:           []Token{rawToken(`0e12456789`)},\n}, {\n\tname:             name(\"ExponentNumberP\"),\n\tin:               \" 0e+12456789 \",\n\toutCompacted:     `0e+12456789`,\n\toutCanonicalized: `0`,\n\ttokens:           []Token{rawToken(`0e+12456789`)},\n}, {\n\tname:             name(\"ExponentNumberN\"),\n\tin:               \" 0e-12456789 \",\n\toutCompacted:     `0e-12456789`,\n\toutCanonicalized: `0`,\n\ttokens:           []Token{rawToken(`0e-12456789`)},\n}, {\n\tname:             name(\"ComplicatedNumber\"),\n\tin:               ` -123456789.987654321E+0123456789 `,\n\toutCompacted:     `-123456789.987654321E+0123456789`,\n\toutCanonicalized: `-1.7976931348623157e+308`,\n\ttokens:           []Token{rawToken(`-123456789.987654321E+0123456789`)},\n}, {\n\tname: name(\"Numbers\"),\n\tin: ` [\n\t\t0, -0, 0.0, -0.0, 1.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001, 1e1000,\n\t\t-5e-324, 1e+100, 1.7976931348623157e+308,\n\t\t9007199254740990, 9007199254740991, 9007199254740992, 9007199254740993, 9007199254740994,\n\t\t-9223372036854775808, 9223372036854775807, 0, 18446744073709551615\n\t] `,\n\toutCompacted: \"[0,-0,0.0,-0.0,1.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,1e1000,-5e-324,1e+100,1.7976931348623157e+308,9007199254740990,9007199254740991,9007199254740992,9007199254740993,9007199254740994,-9223372036854775808,9223372036854775807,0,18446744073709551615]\",\n\toutIndented: `[\n\t    0,\n\t    -0,\n\t    0.0,\n\t    -0.0,\n\t    1.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,\n\t    1e1000,\n\t    -5e-324,\n\t    1e+100,\n\t    1.7976931348623157e+308,\n\t    9007199254740990,\n\t    9007199254740991,\n\t    9007199254740992,\n\t    9007199254740993,\n\t    9007199254740994,\n\t    -9223372036854775808,\n\t    9223372036854775807,\n\t    0,\n\t    18446744073709551615\n\t]`,\n\toutCanonicalized: `[0,0,0,0,1,1.7976931348623157e+308,-5e-324,1e+100,1.7976931348623157e+308,9007199254740990,9007199254740991,9007199254740992,9007199254740992,9007199254740994,-9223372036854776000,9223372036854776000,0,18446744073709552000]`,\n\ttokens: []Token{\n\t\tArrayStart,\n\t\tFloat(0), Float(math.Copysign(0, -1)), rawToken(`0.0`), rawToken(`-0.0`), rawToken(`1.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001`), rawToken(`1e1000`),\n\t\tFloat(-5e-324), Float(1e100), Float(1.7976931348623157e+308),\n\t\tFloat(9007199254740990), Float(9007199254740991), Float(9007199254740992), rawToken(`9007199254740993`), rawToken(`9007199254740994`),\n\t\tInt(minInt64), Int(maxInt64), Uint(minUint64), Uint(maxUint64),\n\t\tArrayEnd,\n\t},\n\tpointers: []string{\n\t\t\"\", \"/0\", \"/1\", \"/2\", \"/3\", \"/4\", \"/5\", \"/6\", \"/7\", \"/8\", \"/9\", \"/10\", \"/11\", \"/12\", \"/13\", \"/14\", \"/15\", \"/16\", \"/17\", \"\",\n\t},\n}, {\n\tname:         name(\"ObjectN0\"),\n\tin:           ` { } `,\n\toutCompacted: `{}`,\n\ttokens:       []Token{ObjectStart, ObjectEnd},\n\tpointers:     []string{\"\", \"\"},\n}, {\n\tname:         name(\"ObjectN1\"),\n\tin:           ` { \"0\" : 0 } `,\n\toutCompacted: `{\"0\":0}`,\n\toutEscaped:   `{\"\\u0030\":0}`,\n\toutIndented: `{\n\t    \"0\": 0\n\t}`,\n\ttokens:   []Token{ObjectStart, String(\"0\"), Uint(0), ObjectEnd},\n\tpointers: []string{\"\", \"/0\", \"/0\", \"\"},\n}, {\n\tname:         name(\"ObjectN2\"),\n\tin:           ` { \"0\" : 0 , \"1\" : 1 } `,\n\toutCompacted: `{\"0\":0,\"1\":1}`,\n\toutEscaped:   `{\"\\u0030\":0,\"\\u0031\":1}`,\n\toutIndented: `{\n\t    \"0\": 0,\n\t    \"1\": 1\n\t}`,\n\ttokens:   []Token{ObjectStart, String(\"0\"), Uint(0), String(\"1\"), Uint(1), ObjectEnd},\n\tpointers: []string{\"\", \"/0\", \"/0\", \"/1\", \"/1\", \"\"},\n}, {\n\tname:         name(\"ObjectNested\"),\n\tin:           ` { \"0\" : { \"1\" : { \"2\" : { \"3\" : { \"4\" : {  } } } } } } `,\n\toutCompacted: `{\"0\":{\"1\":{\"2\":{\"3\":{\"4\":{}}}}}}`,\n\toutEscaped:   `{\"\\u0030\":{\"\\u0031\":{\"\\u0032\":{\"\\u0033\":{\"\\u0034\":{}}}}}}`,\n\toutIndented: `{\n\t    \"0\": {\n\t        \"1\": {\n\t            \"2\": {\n\t                \"3\": {\n\t                    \"4\": {}\n\t                }\n\t            }\n\t        }\n\t    }\n\t}`,\n\ttokens: []Token{ObjectStart, String(\"0\"), ObjectStart, String(\"1\"), ObjectStart, String(\"2\"), ObjectStart, String(\"3\"), ObjectStart, String(\"4\"), ObjectStart, ObjectEnd, ObjectEnd, ObjectEnd, ObjectEnd, ObjectEnd, ObjectEnd},\n\tpointers: []string{\n\t\t\"\",\n\t\t\"/0\", \"/0\",\n\t\t\"/0/1\", \"/0/1\",\n\t\t\"/0/1/2\", \"/0/1/2\",\n\t\t\"/0/1/2/3\", \"/0/1/2/3\",\n\t\t\"/0/1/2/3/4\", \"/0/1/2/3/4\",\n\t\t\"/0/1/2/3/4\",\n\t\t\"/0/1/2/3\",\n\t\t\"/0/1/2\",\n\t\t\"/0/1\",\n\t\t\"/0\",\n\t\t\"\",\n\t},\n}, {\n\tname: name(\"ObjectSuperNested\"),\n\tin: `{\"\": {\n\t\t\"44444\": {\n\t\t\t\"6666666\":  \"ccccccc\",\n\t\t\t\"77777777\": \"bb\",\n\t\t\t\"555555\":   \"aaaa\"\n\t\t},\n\t\t\"0\": {\n\t\t\t\"3333\": \"bbb\",\n\t\t\t\"11\":   \"\",\n\t\t\t\"222\":  \"aaaaa\"\n\t\t}\n\t}}`,\n\toutCompacted: `{\"\":{\"44444\":{\"6666666\":\"ccccccc\",\"77777777\":\"bb\",\"555555\":\"aaaa\"},\"0\":{\"3333\":\"bbb\",\"11\":\"\",\"222\":\"aaaaa\"}}}`,\n\toutEscaped:   `{\"\":{\"\\u0034\\u0034\\u0034\\u0034\\u0034\":{\"\\u0036\\u0036\\u0036\\u0036\\u0036\\u0036\\u0036\":\"\\u0063\\u0063\\u0063\\u0063\\u0063\\u0063\\u0063\",\"\\u0037\\u0037\\u0037\\u0037\\u0037\\u0037\\u0037\\u0037\":\"\\u0062\\u0062\",\"\\u0035\\u0035\\u0035\\u0035\\u0035\\u0035\":\"\\u0061\\u0061\\u0061\\u0061\"},\"\\u0030\":{\"\\u0033\\u0033\\u0033\\u0033\":\"\\u0062\\u0062\\u0062\",\"\\u0031\\u0031\":\"\",\"\\u0032\\u0032\\u0032\":\"\\u0061\\u0061\\u0061\\u0061\\u0061\"}}}`,\n\toutIndented: `{\n\t    \"\": {\n\t        \"44444\": {\n\t            \"6666666\": \"ccccccc\",\n\t            \"77777777\": \"bb\",\n\t            \"555555\": \"aaaa\"\n\t        },\n\t        \"0\": {\n\t            \"3333\": \"bbb\",\n\t            \"11\": \"\",\n\t            \"222\": \"aaaaa\"\n\t        }\n\t    }\n\t}`,\n\toutCanonicalized: `{\"\":{\"0\":{\"11\":\"\",\"222\":\"aaaaa\",\"3333\":\"bbb\"},\"44444\":{\"555555\":\"aaaa\",\"6666666\":\"ccccccc\",\"77777777\":\"bb\"}}}`,\n\ttokens: []Token{\n\t\tObjectStart,\n\t\tString(\"\"),\n\t\tObjectStart,\n\t\tString(\"44444\"),\n\t\tObjectStart,\n\t\tString(\"6666666\"), String(\"ccccccc\"),\n\t\tString(\"77777777\"), String(\"bb\"),\n\t\tString(\"555555\"), String(\"aaaa\"),\n\t\tObjectEnd,\n\t\tString(\"0\"),\n\t\tObjectStart,\n\t\tString(\"3333\"), String(\"bbb\"),\n\t\tString(\"11\"), String(\"\"),\n\t\tString(\"222\"), String(\"aaaaa\"),\n\t\tObjectEnd,\n\t\tObjectEnd,\n\t\tObjectEnd,\n\t},\n\tpointers: []string{\n\t\t\"\",\n\t\t\"/\", \"/\",\n\t\t\"//44444\", \"//44444\",\n\t\t\"//44444/6666666\", \"//44444/6666666\",\n\t\t\"//44444/77777777\", \"//44444/77777777\",\n\t\t\"//44444/555555\", \"//44444/555555\",\n\t\t\"//44444\",\n\t\t\"//0\", \"//0\",\n\t\t\"//0/3333\", \"//0/3333\",\n\t\t\"//0/11\", \"//0/11\",\n\t\t\"//0/222\", \"//0/222\",\n\t\t\"//0\",\n\t\t\"/\",\n\t\t\"\",\n\t},\n}, {\n\tname:         name(\"ArrayN0\"),\n\tin:           ` [ ] `,\n\toutCompacted: `[]`,\n\ttokens:       []Token{ArrayStart, ArrayEnd},\n\tpointers:     []string{\"\", \"\"},\n}, {\n\tname:         name(\"ArrayN1\"),\n\tin:           ` [ 0 ] `,\n\toutCompacted: `[0]`,\n\toutIndented: `[\n\t    0\n\t]`,\n\ttokens:   []Token{ArrayStart, Uint(0), ArrayEnd},\n\tpointers: []string{\"\", \"/0\", \"\"},\n}, {\n\tname:         name(\"ArrayN2\"),\n\tin:           ` [ 0 , 1 ] `,\n\toutCompacted: `[0,1]`,\n\toutIndented: `[\n\t    0,\n\t    1\n\t]`,\n\ttokens: []Token{ArrayStart, Uint(0), Uint(1), ArrayEnd},\n}, {\n\tname:         name(\"ArrayNested\"),\n\tin:           ` [ [ [ [ [ ] ] ] ] ] `,\n\toutCompacted: `[[[[[]]]]]`,\n\toutIndented: `[\n\t    [\n\t        [\n\t            [\n\t                []\n\t            ]\n\t        ]\n\t    ]\n\t]`,\n\ttokens: []Token{ArrayStart, ArrayStart, ArrayStart, ArrayStart, ArrayStart, ArrayEnd, ArrayEnd, ArrayEnd, ArrayEnd, ArrayEnd},\n\tpointers: []string{\n\t\t\"\",\n\t\t\"/0\",\n\t\t\"/0/0\",\n\t\t\"/0/0/0\",\n\t\t\"/0/0/0/0\",\n\t\t\"/0/0/0/0\",\n\t\t\"/0/0/0\",\n\t\t\"/0/0\",\n\t\t\"/0\",\n\t\t\"\",\n\t},\n}, {\n\tname: name(\"Everything\"),\n\tin: ` {\n\t\t\"literals\" : [ null , false , true ],\n\t\t\"string\" : \"Hello, 世界\" ,\n\t\t\"number\" : 3.14159 ,\n\t\t\"arrayN0\" : [ ] ,\n\t\t\"arrayN1\" : [ 0 ] ,\n\t\t\"arrayN2\" : [ 0 , 1 ] ,\n\t\t\"objectN0\" : { } ,\n\t\t\"objectN1\" : { \"0\" : 0 } ,\n\t\t\"objectN2\" : { \"0\" : 0 , \"1\" : 1 }\n\t} `,\n\toutCompacted: `{\"literals\":[null,false,true],\"string\":\"Hello, 世界\",\"number\":3.14159,\"arrayN0\":[],\"arrayN1\":[0],\"arrayN2\":[0,1],\"objectN0\":{},\"objectN1\":{\"0\":0},\"objectN2\":{\"0\":0,\"1\":1}}`,\n\toutEscaped:   `{\"\\u006c\\u0069\\u0074\\u0065\\u0072\\u0061\\u006c\\u0073\":[null,false,true],\"\\u0073\\u0074\\u0072\\u0069\\u006e\\u0067\":\"\\u0048\\u0065\\u006c\\u006c\\u006f\\u002c\\u0020\\u4e16\\u754c\",\"\\u006e\\u0075\\u006d\\u0062\\u0065\\u0072\":3.14159,\"\\u0061\\u0072\\u0072\\u0061\\u0079\\u004e\\u0030\":[],\"\\u0061\\u0072\\u0072\\u0061\\u0079\\u004e\\u0031\":[0],\"\\u0061\\u0072\\u0072\\u0061\\u0079\\u004e\\u0032\":[0,1],\"\\u006f\\u0062\\u006a\\u0065\\u0063\\u0074\\u004e\\u0030\":{},\"\\u006f\\u0062\\u006a\\u0065\\u0063\\u0074\\u004e\\u0031\":{\"\\u0030\":0},\"\\u006f\\u0062\\u006a\\u0065\\u0063\\u0074\\u004e\\u0032\":{\"\\u0030\":0,\"\\u0031\":1}}`,\n\toutIndented: `{\n\t    \"literals\": [\n\t        null,\n\t        false,\n\t        true\n\t    ],\n\t    \"string\": \"Hello, 世界\",\n\t    \"number\": 3.14159,\n\t    \"arrayN0\": [],\n\t    \"arrayN1\": [\n\t        0\n\t    ],\n\t    \"arrayN2\": [\n\t        0,\n\t        1\n\t    ],\n\t    \"objectN0\": {},\n\t    \"objectN1\": {\n\t        \"0\": 0\n\t    },\n\t    \"objectN2\": {\n\t        \"0\": 0,\n\t        \"1\": 1\n\t    }\n\t}`,\n\toutCanonicalized: `{\"arrayN0\":[],\"arrayN1\":[0],\"arrayN2\":[0,1],\"literals\":[null,false,true],\"number\":3.14159,\"objectN0\":{},\"objectN1\":{\"0\":0},\"objectN2\":{\"0\":0,\"1\":1},\"string\":\"Hello, 世界\"}`,\n\ttokens: []Token{\n\t\tObjectStart,\n\t\tString(\"literals\"), ArrayStart, Null, False, True, ArrayEnd,\n\t\tString(\"string\"), String(\"Hello, 世界\"),\n\t\tString(\"number\"), Float(3.14159),\n\t\tString(\"arrayN0\"), ArrayStart, ArrayEnd,\n\t\tString(\"arrayN1\"), ArrayStart, Uint(0), ArrayEnd,\n\t\tString(\"arrayN2\"), ArrayStart, Uint(0), Uint(1), ArrayEnd,\n\t\tString(\"objectN0\"), ObjectStart, ObjectEnd,\n\t\tString(\"objectN1\"), ObjectStart, String(\"0\"), Uint(0), ObjectEnd,\n\t\tString(\"objectN2\"), ObjectStart, String(\"0\"), Uint(0), String(\"1\"), Uint(1), ObjectEnd,\n\t\tObjectEnd,\n\t},\n\tpointers: []string{\n\t\t\"\",\n\t\t\"/literals\", \"/literals\",\n\t\t\"/literals/0\",\n\t\t\"/literals/1\",\n\t\t\"/literals/2\",\n\t\t\"/literals\",\n\t\t\"/string\", \"/string\",\n\t\t\"/number\", \"/number\",\n\t\t\"/arrayN0\", \"/arrayN0\", \"/arrayN0\",\n\t\t\"/arrayN1\", \"/arrayN1\",\n\t\t\"/arrayN1/0\",\n\t\t\"/arrayN1\",\n\t\t\"/arrayN2\", \"/arrayN2\",\n\t\t\"/arrayN2/0\",\n\t\t\"/arrayN2/1\",\n\t\t\"/arrayN2\",\n\t\t\"/objectN0\", \"/objectN0\", \"/objectN0\",\n\t\t\"/objectN1\", \"/objectN1\",\n\t\t\"/objectN1/0\", \"/objectN1/0\",\n\t\t\"/objectN1\",\n\t\t\"/objectN2\", \"/objectN2\",\n\t\t\"/objectN2/0\", \"/objectN2/0\",\n\t\t\"/objectN2/1\", \"/objectN2/1\",\n\t\t\"/objectN2\",\n\t\t\"\",\n\t},\n}}\n\n// TestCoderInterleaved tests that we can interleave calls that operate on\n// tokens and raw values. The only error condition is trying to operate on a\n// raw value when the next token is an end of object or array.\nfunc TestCoderInterleaved(t *testing.T) {\n\tfor _, td := range coderTestdata {\n\t\t// In TokenFirst and ValueFirst, alternate between tokens and values.\n\t\t// In TokenDelims, only use tokens for object and array delimiters.\n\t\tfor _, modeName := range []string{\"TokenFirst\", \"ValueFirst\", \"TokenDelims\"} {\n\t\t\tt.Run(path.Join(td.name.name, modeName), func(t *testing.T) {\n\t\t\t\ttestCoderInterleaved(t, td.name.where, modeName, td)\n\t\t\t})\n\t\t}\n\t}\n}\nfunc testCoderInterleaved(t *testing.T, where pc, modeName string, td coderTestdataEntry) {\n\tsrc := strings.NewReader(td.in)\n\tdst := new(bytes.Buffer)\n\tdec := NewDecoder(src)\n\tenc := NewEncoder(dst)\n\ttickTock := modeName == \"TokenFirst\"\n\tfor {\n\t\tif modeName == \"TokenDelims\" {\n\t\t\tswitch dec.PeekKind() {\n\t\t\tcase '{', '}', '[', ']':\n\t\t\t\ttickTock = true // as token\n\t\t\tdefault:\n\t\t\t\ttickTock = false // as value\n\t\t\t}\n\t\t}\n\t\tif tickTock {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tt.Fatalf(\"%s: Decoder.ReadToken error: %v\", where, err)\n\t\t\t}\n\t\t\tif err := enc.WriteToken(tok); err != nil {\n\t\t\t\tt.Fatalf(\"%s: Encoder.WriteToken error: %v\", where, err)\n\t\t\t}\n\t\t} else {\n\t\t\tval, err := dec.ReadValue()\n\t\t\tif err != nil {\n\t\t\t\t// It is a syntactic error to call ReadValue\n\t\t\t\t// at the end of an object or array.\n\t\t\t\t// Retry as a ReadToken call.\n\t\t\t\texpectError := dec.PeekKind() == '}' || dec.PeekKind() == ']'\n\t\t\t\tif expectError {\n\t\t\t\t\tif !errors.As(err, new(*SyntacticError)) {\n\t\t\t\t\t\tt.Fatalf(\"%s: Decoder.ReadToken error is %T, want %T\", where, err, new(SyntacticError))\n\t\t\t\t\t}\n\t\t\t\t\ttickTock = !tickTock\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tt.Fatalf(\"%s: Decoder.ReadValue error: %v\", where, err)\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\tt.Fatalf(\"%s: Encoder.WriteValue error: %v\", where, err)\n\t\t\t}\n\t\t}\n\t\ttickTock = !tickTock\n\t}\n\n\tgot := dst.String()\n\twant := td.outCompacted + \"\\n\"\n\tif got != want {\n\t\tt.Fatalf(\"%s: output mismatch:\\ngot  %q\\nwant %q\", where, got, want)\n\t}\n}\n\nfunc TestCoderStackPointer(t *testing.T) {\n\ttests := []struct {\n\t\ttoken                        Token\n\t\twantWithRejectDuplicateNames string\n\t\twantWithAllowDuplicateNames  string\n\t}{\n\t\t{Null, \"\", \"\"},\n\n\t\t{ArrayStart, \"\", \"\"},\n\t\t{ArrayEnd, \"\", \"\"},\n\n\t\t{ArrayStart, \"\", \"\"},\n\t\t{Bool(true), \"/0\", \"/0\"},\n\t\t{ArrayEnd, \"\", \"\"},\n\n\t\t{ArrayStart, \"\", \"\"},\n\t\t{String(\"hello\"), \"/0\", \"/0\"},\n\t\t{String(\"goodbye\"), \"/1\", \"/1\"},\n\t\t{ArrayEnd, \"\", \"\"},\n\n\t\t{ObjectStart, \"\", \"\"},\n\t\t{ObjectEnd, \"\", \"\"},\n\n\t\t{ObjectStart, \"\", \"\"},\n\t\t{String(\"hello\"), \"/hello\", \"/0\"},\n\t\t{String(\"goodbye\"), \"/hello\", \"/0\"},\n\t\t{ObjectEnd, \"\", \"\"},\n\n\t\t{ObjectStart, \"\", \"\"},\n\t\t{String(\"\"), \"/\", \"/0\"},\n\t\t{Null, \"/\", \"/0\"},\n\t\t{String(\"0\"), \"/0\", \"/1\"},\n\t\t{Null, \"/0\", \"/1\"},\n\t\t{String(\"~\"), \"/~0\", \"/2\"},\n\t\t{Null, \"/~0\", \"/2\"},\n\t\t{String(\"/\"), \"/~1\", \"/3\"},\n\t\t{Null, \"/~1\", \"/3\"},\n\t\t{String(\"a//b~/c/~d~~e\"), \"/a~1~1b~0~1c~1~0d~0~0e\", \"/4\"},\n\t\t{Null, \"/a~1~1b~0~1c~1~0d~0~0e\", \"/4\"},\n\t\t{String(\" \\r\\n\\t\"), \"/ \\r\\n\\t\", \"/5\"},\n\t\t{Null, \"/ \\r\\n\\t\", \"/5\"},\n\t\t{ObjectEnd, \"\", \"\"},\n\n\t\t{ArrayStart, \"\", \"\"},\n\t\t{ObjectStart, \"/0\", \"/0\"},\n\t\t{String(\"\"), \"/0/\", \"/0/0\"},\n\t\t{ArrayStart, \"/0/\", \"/0/0\"},\n\t\t{ObjectStart, \"/0//0\", \"/0/0/0\"},\n\t\t{String(\"#\"), \"/0//0/#\", \"/0/0/0/0\"},\n\t\t{Null, \"/0//0/#\", \"/0/0/0/0\"},\n\t\t{ObjectEnd, \"/0//0\", \"/0/0/0\"},\n\t\t{ArrayEnd, \"/0/\", \"/0/0\"},\n\t\t{ObjectEnd, \"/0\", \"/0\"},\n\t\t{ArrayEnd, \"\", \"\"},\n\t}\n\n\tfor _, allowDupes := range []bool{false, true} {\n\t\tvar name string\n\t\tvar want func(i int) string\n\t\tswitch allowDupes {\n\t\tcase false:\n\t\t\tname = \"RejectDuplicateNames\"\n\t\t\twant = func(i int) string { return tests[i].wantWithRejectDuplicateNames }\n\t\tcase true:\n\t\t\tname = \"AllowDuplicateNames\"\n\t\t\twant = func(i int) string { return tests[i].wantWithAllowDuplicateNames }\n\t\t}\n\n\t\tt.Run(name, func(t *testing.T) {\n\t\t\tbb := new(bytes.Buffer)\n\n\t\t\tenc := EncodeOptions{AllowDuplicateNames: allowDupes}.NewEncoder(bb)\n\t\t\tfor i, tt := range tests {\n\t\t\t\tif err := enc.WriteToken(tt.token); err != nil {\n\t\t\t\t\tt.Fatalf(\"%d: Encoder.WriteToken error: %v\", i, err)\n\t\t\t\t}\n\t\t\t\tif got := enc.StackPointer(); got != want(i) {\n\t\t\t\t\tt.Fatalf(\"%d: Encoder.StackPointer = %v, want %v\", i, got, want(i))\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdec := DecodeOptions{AllowDuplicateNames: allowDupes}.NewDecoder(bb)\n\t\t\tfor i := range tests {\n\t\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\t\tt.Fatalf(\"%d: Decoder.ReadToken error: %v\", i, err)\n\t\t\t\t}\n\t\t\t\tif got := dec.StackPointer(); got != want(i) {\n\t\t\t\t\tt.Fatalf(\"%d: Decoder.StackPointer = %v, want %v\", i, got, want(i))\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestCoderBufferGrowth(t *testing.T) {\n\t// The growth rate of the internal buffer should be exponential,\n\t// but should not grow unbounded.\n\tcheckGrowth := func(ns []int) {\n\t\tt.Helper()\n\t\tvar sumBytes, sumRates, numGrows float64\n\t\tprev := ns[0]\n\t\tfor i := 1; i < len(ns)-1; i++ {\n\t\t\tn := ns[i]\n\t\t\tif n != prev {\n\t\t\t\tsumRates += float64(n) / float64(prev)\n\t\t\t\tnumGrows++\n\t\t\t\tprev = n\n\t\t\t}\n\t\t\tif n > 1<<20 {\n\t\t\t\tt.Fatalf(\"single Read/Write too large: %d\", n)\n\t\t\t}\n\t\t\tsumBytes += float64(n)\n\t\t}\n\t\tif mean := sumBytes / float64(len(ns)); mean < 1<<10 {\n\t\t\tt.Fatalf(\"average Read/Write too small: %0.1f\", mean)\n\t\t}\n\t\tswitch mean := sumRates / numGrows; {\n\t\tcase mean < 1.25:\n\t\t\tt.Fatalf(\"average growth rate too slow: %0.3f\", mean)\n\t\tcase mean > 2.00:\n\t\t\tt.Fatalf(\"average growth rate too fast: %0.3f\", mean)\n\t\t}\n\t}\n\n\tbb := &bytesBuffer{new(bytes.Buffer)}\n\n\tvar writeSizes []int\n\tif err := MarshalFull(WriterFunc(func(b []byte) (int, error) {\n\t\tn, err := bb.Write(b)\n\t\twriteSizes = append(writeSizes, n)\n\t\treturn n, err\n\t}), make([]struct{}, 1e6)); err != nil {\n\t\tt.Fatalf(\"MarshalFull error: %v\", err)\n\t}\n\tcheckGrowth(writeSizes)\n\n\tvar readSizes []int\n\tif err := UnmarshalFull(ReaderFunc(func(b []byte) (int, error) {\n\t\tn, err := bb.Read(b)\n\t\treadSizes = append(readSizes, n)\n\t\treturn n, err\n\t}), new([]struct{})); err != nil {\n\t\tt.Fatalf(\"UnmarshalFull error: %v\", err)\n\t}\n\tcheckGrowth(readSizes)\n}\n\ntype ReaderFunc func([]byte) (int, error)\n\nfunc (f ReaderFunc) Read(b []byte) (int, error) { return f(b) }\n\ntype WriterFunc func([]byte) (int, error)\n\nfunc (f WriterFunc) Write(b []byte) (int, error) { return f(b) }\n\n// FaultyBuffer implements io.Reader and io.Writer.\n// It may process fewer bytes than the provided buffer\n// and may randomly return an error.\ntype FaultyBuffer struct {\n\tB []byte\n\n\t// MaxBytes is the maximum number of bytes read/written.\n\t// A random number of bytes within [0, MaxBytes] are processed.\n\t// A non-positive value is treated as infinity.\n\tMaxBytes int\n\n\t// MayError specifies whether to randomly provide this error.\n\t// Even if an error is returned, no bytes are dropped.\n\tMayError error\n\n\t// Rand to use for pseudo-random behavior.\n\t// If nil, it will be initialized with rand.NewSource(0).\n\tRand rand.Source\n}\n\nfunc (p *FaultyBuffer) Read(b []byte) (int, error) {\n\tb = b[:copy(b[:p.mayTruncate(len(b))], p.B)]\n\tp.B = p.B[len(b):]\n\tif len(p.B) == 0 && (len(b) == 0 || p.randN(2) == 0) {\n\t\treturn len(b), io.EOF\n\t}\n\treturn len(b), p.mayError()\n}\n\nfunc (p *FaultyBuffer) Write(b []byte) (int, error) {\n\tb2 := b[:p.mayTruncate(len(b))]\n\tp.B = append(p.B, b2...)\n\tif len(b2) < len(b) {\n\t\treturn len(b2), io.ErrShortWrite\n\t}\n\treturn len(b2), p.mayError()\n}\n\n// mayTruncate may return a value between [0, n].\nfunc (p *FaultyBuffer) mayTruncate(n int) int {\n\tif p.MaxBytes > 0 {\n\t\tif n > p.MaxBytes {\n\t\t\tn = p.MaxBytes\n\t\t}\n\t\treturn p.randN(n + 1)\n\t}\n\treturn n\n}\n\n// mayError may return a non-nil error.\nfunc (p *FaultyBuffer) mayError() error {\n\tif p.MayError != nil && p.randN(2) == 0 {\n\t\treturn p.MayError\n\t}\n\treturn nil\n}\n\nfunc (p *FaultyBuffer) randN(n int) int {\n\tif p.Rand == nil {\n\t\tp.Rand = rand.NewSource(0)\n\t}\n\treturn int(p.Rand.Int63() % int64(n))\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/decode.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"math\"\n\t\"strconv\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n// NOTE: The logic for decoding is complicated by the fact that reading from\n// an io.Reader into a temporary buffer means that the buffer may contain a\n// truncated portion of some valid input, requiring the need to fetch more data.\n//\n// This file is structured in the following way:\n//\n//   - consumeXXX functions parse an exact JSON token from a []byte.\n//     If the buffer appears truncated, then it returns io.ErrUnexpectedEOF.\n//     The consumeSimpleXXX functions are so named because they only handle\n//     a subset of the grammar for the JSON token being parsed.\n//     They do not handle the full grammar to keep these functions inlineable.\n//\n//   - Decoder.consumeXXX methods parse the next JSON token from Decoder.buf,\n//     automatically fetching more input if necessary. These methods take\n//     a position relative to the start of Decoder.buf as an argument and\n//     return the end of the consumed JSON token as a position,\n//     also relative to the start of Decoder.buf.\n//\n//   - In the event of an I/O errors or state machine violations,\n//     the implementation avoids mutating the state of Decoder\n//     (aside from the book-keeping needed to implement Decoder.fetch).\n//     For this reason, only Decoder.ReadToken and Decoder.ReadValue are\n//     responsible for updated Decoder.prevStart and Decoder.prevEnd.\n//\n//   - For performance, much of the implementation uses the pattern of calling\n//     the inlineable consumeXXX functions first, and if more work is necessary,\n//     then it calls the slower Decoder.consumeXXX methods.\n//     TODO: Revisit this pattern if the Go compiler provides finer control\n//     over exactly which calls are inlined or not.\n\n// DecodeOptions configures how JSON decoding operates.\n// The zero value is equivalent to the default settings,\n// which is compliant with both RFC 7493 and RFC 8259.\ntype DecodeOptions struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// AllowDuplicateNames specifies that JSON objects may contain\n\t// duplicate member names. Disabling the duplicate name check may provide\n\t// computational and performance benefits, but breaks compliance with\n\t// RFC 7493, section 2.3. The input will still be compliant with RFC 8259,\n\t// which leaves the handling of duplicate names as unspecified behavior.\n\tAllowDuplicateNames bool\n\n\t// AllowInvalidUTF8 specifies that JSON strings may contain invalid UTF-8,\n\t// which will be mangled as the Unicode replacement character, U+FFFD.\n\t// This causes the decoder to break compliance with\n\t// RFC 7493, section 2.1, and RFC 8259, section 8.1.\n\tAllowInvalidUTF8 bool\n}\n\n// Decoder is a streaming decoder for raw JSON tokens and values.\n// It is used to read a stream of top-level JSON values,\n// each separated by optional whitespace characters.\n//\n// ReadToken and ReadValue calls may be interleaved.\n// For example, the following JSON value:\n//\n//\t{\"name\":\"value\",\"array\":[null,false,true,3.14159],\"object\":{\"k\":\"v\"}}\n//\n// can be parsed with the following calls (ignoring errors for brevity):\n//\n//\td.ReadToken() // {\n//\td.ReadToken() // \"name\"\n//\td.ReadToken() // \"value\"\n//\td.ReadValue() // \"array\"\n//\td.ReadToken() // [\n//\td.ReadToken() // null\n//\td.ReadToken() // false\n//\td.ReadValue() // true\n//\td.ReadToken() // 3.14159\n//\td.ReadToken() // ]\n//\td.ReadValue() // \"object\"\n//\td.ReadValue() // {\"k\":\"v\"}\n//\td.ReadToken() // }\n//\n// The above is one of many possible sequence of calls and\n// may not represent the most sensible method to call for any given token/value.\n// For example, it is probably more common to call ReadToken to obtain a\n// string token for object names.\ntype Decoder struct {\n\tstate\n\tdecodeBuffer\n\toptions DecodeOptions\n\n\tstringCache *stringCache // only used when unmarshaling\n}\n\n// decodeBuffer is a buffer split into 4 segments:\n//\n//   - buf[0:prevEnd]         // already read portion of the buffer\n//   - buf[prevStart:prevEnd] // previously read value\n//   - buf[prevEnd:len(buf)]  // unread portion of the buffer\n//   - buf[len(buf):cap(buf)] // unused portion of the buffer\n//\n// Invariants:\n//\n//\t0 ≤ prevStart ≤ prevEnd ≤ len(buf) ≤ cap(buf)\ntype decodeBuffer struct {\n\tpeekPos int   // non-zero if valid offset into buf for start of next token\n\tpeekErr error // implies peekPos is -1\n\n\tbuf       []byte // may alias rd if it is a bytes.Buffer\n\tprevStart int\n\tprevEnd   int\n\n\t// baseOffset is added to prevStart and prevEnd to obtain\n\t// the absolute offset relative to the start of io.Reader stream.\n\tbaseOffset int64\n\n\trd io.Reader\n}\n\n// NewDecoder constructs a new streaming decoder reading from r.\n//\n// If r is a bytes.Buffer, then the decoder parses directly from the buffer\n// without first copying the contents to an intermediate buffer.\n// Additional writes to the buffer must not occur while the decoder is in use.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn DecodeOptions{}.NewDecoder(r)\n}\n\n// NewDecoder constructs a new streaming decoder reading from r\n// configured with the provided options.\nfunc (o DecodeOptions) NewDecoder(r io.Reader) *Decoder {\n\td := new(Decoder)\n\to.ResetDecoder(d, r)\n\treturn d\n}\n\n// ResetDecoder resets a decoder such that it is reading afresh from r and\n// configured with the provided options.\nfunc (o DecodeOptions) ResetDecoder(d *Decoder, r io.Reader) {\n\tif d == nil {\n\t\tpanic(\"json: invalid nil Decoder\")\n\t}\n\tif r == nil {\n\t\tpanic(\"json: invalid nil io.Reader\")\n\t}\n\td.reset(nil, r, o)\n}\n\nfunc (d *Decoder) reset(b []byte, r io.Reader, o DecodeOptions) {\n\td.state.reset()\n\td.decodeBuffer = decodeBuffer{buf: b, rd: r}\n\td.options = o\n}\n\n// Reset resets a decoder such that it is reading afresh from r but\n// keep any pre-existing decoder options.\nfunc (d *Decoder) Reset(r io.Reader) {\n\td.options.ResetDecoder(d, r)\n}\n\nvar errBufferWriteAfterNext = errors.New(\"invalid bytes.Buffer.Write call after calling bytes.Buffer.Next\")\n\n// fetch reads at least 1 byte from the underlying io.Reader.\n// It returns io.ErrUnexpectedEOF if zero bytes were read and io.EOF was seen.\nfunc (d *Decoder) fetch() error {\n\tif d.rd == nil {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\n\t// Inform objectNameStack that we are about to fetch new buffer content.\n\td.names.copyQuotedBuffer(d.buf)\n\n\t// Specialize bytes.Buffer for better performance.\n\tif bb, ok := d.rd.(*bytes.Buffer); ok {\n\t\tswitch {\n\t\tcase bb.Len() == 0:\n\t\t\treturn io.ErrUnexpectedEOF\n\t\tcase len(d.buf) == 0:\n\t\t\td.buf = bb.Next(bb.Len()) // \"read\" all data in the buffer\n\t\t\treturn nil\n\t\tdefault:\n\t\t\t// This only occurs if a partially filled bytes.Buffer was provided\n\t\t\t// and more data is written to it while Decoder is reading from it.\n\t\t\t// This practice will lead to data corruption since future writes\n\t\t\t// may overwrite the contents of the current buffer.\n\t\t\t//\n\t\t\t// The user is trying to use a bytes.Buffer as a pipe,\n\t\t\t// but a bytes.Buffer is poor implementation of a pipe,\n\t\t\t// the purpose-built io.Pipe should be used instead.\n\t\t\treturn &ioError{action: \"read\", err: errBufferWriteAfterNext}\n\t\t}\n\t}\n\n\t// Allocate initial buffer if empty.\n\tif cap(d.buf) == 0 {\n\t\td.buf = make([]byte, 0, 64)\n\t}\n\n\t// Check whether to grow the buffer.\n\tconst maxBufferSize = 4 << 10\n\tconst growthSizeFactor = 2 // higher value is faster\n\tconst growthRateFactor = 2 // higher value is slower\n\t// By default, grow if below the maximum buffer size.\n\tgrow := cap(d.buf) <= maxBufferSize/growthSizeFactor\n\t// Growing can be expensive, so only grow\n\t// if a sufficient number of bytes have been processed.\n\tgrow = grow && int64(cap(d.buf)) < d.previousOffsetEnd()/growthRateFactor\n\t// If prevStart==0, then fetch was called in order to fetch more data\n\t// to finish consuming a large JSON value contiguously.\n\t// Grow if less than 25% of the remaining capacity is available.\n\t// Note that this may cause the input buffer to exceed maxBufferSize.\n\tgrow = grow || (d.prevStart == 0 && len(d.buf) >= 3*cap(d.buf)/4)\n\n\tif grow {\n\t\t// Allocate a new buffer and copy the contents of the old buffer over.\n\t\t// TODO: Provide a hard limit on the maximum internal buffer size?\n\t\tbuf := make([]byte, 0, cap(d.buf)*growthSizeFactor)\n\t\td.buf = append(buf, d.buf[d.prevStart:]...)\n\t} else {\n\t\t// Move unread portion of the data to the front.\n\t\tn := copy(d.buf[:cap(d.buf)], d.buf[d.prevStart:])\n\t\td.buf = d.buf[:n]\n\t}\n\td.baseOffset += int64(d.prevStart)\n\td.prevEnd -= d.prevStart\n\td.prevStart = 0\n\n\t// Read more data into the internal buffer.\n\tfor {\n\t\tn, err := d.rd.Read(d.buf[len(d.buf):cap(d.buf)])\n\t\tswitch {\n\t\tcase n > 0:\n\t\t\td.buf = d.buf[:len(d.buf)+n]\n\t\t\treturn nil // ignore errors if any bytes are read\n\t\tcase err == io.EOF:\n\t\t\treturn io.ErrUnexpectedEOF\n\t\tcase err != nil:\n\t\t\treturn &ioError{action: \"read\", err: err}\n\t\tdefault:\n\t\t\tcontinue // Read returned (0, nil)\n\t\t}\n\t}\n}\n\nconst invalidateBufferByte = '#' // invalid starting character for JSON grammar\n\n// invalidatePreviousRead invalidates buffers returned by Peek and Read calls\n// so that the first byte is an invalid character.\n// This Hyrum-proofs the API against faulty application code that assumes\n// values returned by ReadValue remain valid past subsequent Read calls.\nfunc (d *decodeBuffer) invalidatePreviousRead() {\n\t// Avoid mutating the buffer if d.rd is nil which implies that d.buf\n\t// is provided by the user code and may not expect mutations.\n\tisBytesBuffer := func(r io.Reader) bool {\n\t\t_, ok := r.(*bytes.Buffer)\n\t\treturn ok\n\t}\n\tif d.rd != nil && !isBytesBuffer(d.rd) && d.prevStart < d.prevEnd && uint(d.prevStart) < uint(len(d.buf)) {\n\t\td.buf[d.prevStart] = invalidateBufferByte\n\t\td.prevStart = d.prevEnd\n\t}\n}\n\n// needMore reports whether there are no more unread bytes.\nfunc (d *decodeBuffer) needMore(pos int) bool {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\treturn pos == len(d.buf)\n}\n\n// injectSyntacticErrorWithPosition wraps a SyntacticError with the position,\n// otherwise it returns the error as is.\n// It takes a position relative to the start of the start of d.buf.\nfunc (d *decodeBuffer) injectSyntacticErrorWithPosition(err error, pos int) error {\n\tif serr, ok := err.(*SyntacticError); ok {\n\t\treturn serr.withOffset(d.baseOffset + int64(pos))\n\t}\n\treturn err\n}\n\nfunc (d *decodeBuffer) previousOffsetStart() int64 { return d.baseOffset + int64(d.prevStart) }\nfunc (d *decodeBuffer) previousOffsetEnd() int64   { return d.baseOffset + int64(d.prevEnd) }\nfunc (d *decodeBuffer) previousBuffer() []byte     { return d.buf[d.prevStart:d.prevEnd] }\nfunc (d *decodeBuffer) unreadBuffer() []byte       { return d.buf[d.prevEnd:len(d.buf)] }\n\n// PeekKind retrieves the next token kind, but does not advance the read offset.\n// It returns 0 if there are no more tokens.\nfunc (d *Decoder) PeekKind() Kind {\n\t// Check whether we have a cached peek result.\n\tif d.peekPos > 0 {\n\t\treturn Kind(d.buf[d.peekPos]).normalize()\n\t}\n\n\tvar err error\n\td.invalidatePreviousRead()\n\tpos := d.prevEnd\n\n\t// Consume leading whitespace.\n\tpos += consumeWhitespace(d.buf[pos:])\n\tif d.needMore(pos) {\n\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\tif err == io.ErrUnexpectedEOF && d.tokens.depth() == 1 {\n\t\t\t\terr = io.EOF // EOF possibly if no Tokens present after top-level value\n\t\t\t}\n\t\t\td.peekPos, d.peekErr = -1, err\n\t\t\treturn invalidKind\n\t\t}\n\t}\n\n\t// Consume colon or comma.\n\tvar delim byte\n\tif c := d.buf[pos]; c == ':' || c == ',' {\n\t\tdelim = c\n\t\tpos += 1\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\td.peekPos, d.peekErr = -1, err\n\t\t\t\treturn invalidKind\n\t\t\t}\n\t\t}\n\t}\n\tnext := Kind(d.buf[pos]).normalize()\n\tif d.tokens.needDelim(next) != delim {\n\t\tpos = d.prevEnd // restore position to right after leading whitespace\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\terr = d.tokens.checkDelim(delim, next)\n\t\terr = d.injectSyntacticErrorWithPosition(err, pos)\n\t\td.peekPos, d.peekErr = -1, err\n\t\treturn invalidKind\n\t}\n\n\t// This may set peekPos to zero, which is indistinguishable from\n\t// the uninitialized state. While a small hit to performance, it is correct\n\t// since ReadValue and ReadToken will disregard the cached result and\n\t// recompute the next kind.\n\td.peekPos, d.peekErr = pos, nil\n\treturn next\n}\n\n// SkipValue is semantically equivalent to calling ReadValue and discarding\n// the result except that memory is not wasted trying to hold the entire result.\nfunc (d *Decoder) SkipValue() error {\n\tswitch d.PeekKind() {\n\tcase '{', '[':\n\t\t// For JSON objects and arrays, keep skipping all tokens\n\t\t// until the depth matches the starting depth.\n\t\tdepth := d.tokens.depth()\n\t\tfor {\n\t\t\tif _, err := d.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif depth >= d.tokens.depth() {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\tdefault:\n\t\t// Trying to skip a value when the next token is a '}' or ']'\n\t\t// will result in an error being returned here.\n\t\tif _, err := d.ReadValue(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// ReadToken reads the next Token, advancing the read offset.\n// The returned token is only valid until the next Peek, Read, or Skip call.\n// It returns io.EOF if there are no more tokens.\nfunc (d *Decoder) ReadToken() (Token, error) {\n\t// Determine the next kind.\n\tvar err error\n\tvar next Kind\n\tpos := d.peekPos\n\tif pos != 0 {\n\t\t// Use cached peek result.\n\t\tif d.peekErr != nil {\n\t\t\terr := d.peekErr\n\t\t\td.peekPos, d.peekErr = 0, nil // possibly a transient I/O error\n\t\t\treturn Token{}, err\n\t\t}\n\t\tnext = Kind(d.buf[pos]).normalize()\n\t\td.peekPos = 0 // reset cache\n\t} else {\n\t\td.invalidatePreviousRead()\n\t\tpos = d.prevEnd\n\n\t\t// Consume leading whitespace.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\tif err == io.ErrUnexpectedEOF && d.tokens.depth() == 1 {\n\t\t\t\t\terr = io.EOF // EOF possibly if no Tokens present after top-level value\n\t\t\t\t}\n\t\t\t\treturn Token{}, err\n\t\t\t}\n\t\t}\n\n\t\t// Consume colon or comma.\n\t\tvar delim byte\n\t\tif c := d.buf[pos]; c == ':' || c == ',' {\n\t\t\tdelim = c\n\t\t\tpos += 1\n\t\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\t\tif d.needMore(pos) {\n\t\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\t\treturn Token{}, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tnext = Kind(d.buf[pos]).normalize()\n\t\tif d.tokens.needDelim(next) != delim {\n\t\t\tpos = d.prevEnd // restore position to right after leading whitespace\n\t\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\t\terr = d.tokens.checkDelim(delim, next)\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t}\n\n\t// Handle the next token.\n\tvar n int\n\tswitch next {\n\tcase 'n':\n\t\tif consumeNull(d.buf[pos:]) == 0 {\n\t\t\tpos, err = d.consumeLiteral(pos, \"null\")\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += len(\"null\")\n\t\t}\n\t\tif err = d.tokens.appendLiteral(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-len(\"null\")) // report position at start of literal\n\t\t}\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn Null, nil\n\n\tcase 'f':\n\t\tif consumeFalse(d.buf[pos:]) == 0 {\n\t\t\tpos, err = d.consumeLiteral(pos, \"false\")\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += len(\"false\")\n\t\t}\n\t\tif err = d.tokens.appendLiteral(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-len(\"false\")) // report position at start of literal\n\t\t}\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn False, nil\n\n\tcase 't':\n\t\tif consumeTrue(d.buf[pos:]) == 0 {\n\t\t\tpos, err = d.consumeLiteral(pos, \"true\")\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += len(\"true\")\n\t\t}\n\t\tif err = d.tokens.appendLiteral(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-len(\"true\")) // report position at start of literal\n\t\t}\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn True, nil\n\n\tcase '\"':\n\t\tvar flags valueFlags // TODO: Preserve this in Token?\n\t\tif n = consumeSimpleString(d.buf[pos:]); n == 0 {\n\t\t\toldAbsPos := d.baseOffset + int64(pos)\n\t\t\tpos, err = d.consumeString(&flags, pos)\n\t\t\tnewAbsPos := d.baseOffset + int64(pos)\n\t\t\tn = int(newAbsPos - oldAbsPos)\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += n\n\t\t}\n\t\tif !d.options.AllowDuplicateNames && d.tokens.last.needObjectName() {\n\t\t\tif !d.tokens.last.isValidNamespace() {\n\t\t\t\treturn Token{}, errInvalidNamespace\n\t\t\t}\n\t\t\tif d.tokens.last.isActiveNamespace() && !d.namespaces.last().insertQuoted(d.buf[pos-n:pos], flags.isVerbatim()) {\n\t\t\t\terr = &SyntacticError{str: \"duplicate name \" + string(d.buf[pos-n:pos]) + \" in object\"}\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-n) // report position at start of string\n\t\t\t}\n\t\t\td.names.replaceLastQuotedOffset(pos - n) // only replace if insertQuoted succeeds\n\t\t}\n\t\tif err = d.tokens.appendString(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-n) // report position at start of string\n\t\t}\n\t\td.prevStart, d.prevEnd = pos-n, pos\n\t\treturn Token{raw: &d.decodeBuffer, num: uint64(d.previousOffsetStart())}, nil\n\n\tcase '0':\n\t\t// NOTE: Since JSON numbers are not self-terminating,\n\t\t// we need to make sure that the next byte is not part of a number.\n\t\tif n = consumeSimpleNumber(d.buf[pos:]); n == 0 || d.needMore(pos+n) {\n\t\t\toldAbsPos := d.baseOffset + int64(pos)\n\t\t\tpos, err = d.consumeNumber(pos)\n\t\t\tnewAbsPos := d.baseOffset + int64(pos)\n\t\t\tn = int(newAbsPos - oldAbsPos)\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += n\n\t\t}\n\t\tif err = d.tokens.appendNumber(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-n) // report position at start of number\n\t\t}\n\t\td.prevStart, d.prevEnd = pos-n, pos\n\t\treturn Token{raw: &d.decodeBuffer, num: uint64(d.previousOffsetStart())}, nil\n\n\tcase '{':\n\t\tif err = d.tokens.pushObject(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t\tif !d.options.AllowDuplicateNames {\n\t\t\td.names.push()\n\t\t\td.namespaces.push()\n\t\t}\n\t\tpos += 1\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn ObjectStart, nil\n\n\tcase '}':\n\t\tif err = d.tokens.popObject(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t\tif !d.options.AllowDuplicateNames {\n\t\t\td.names.pop()\n\t\t\td.namespaces.pop()\n\t\t}\n\t\tpos += 1\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn ObjectEnd, nil\n\n\tcase '[':\n\t\tif err = d.tokens.pushArray(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t\tpos += 1\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn ArrayStart, nil\n\n\tcase ']':\n\t\tif err = d.tokens.popArray(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t\tpos += 1\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn ArrayEnd, nil\n\n\tdefault:\n\t\terr = newInvalidCharacterError(d.buf[pos:], \"at start of token\")\n\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t}\n}\n\ntype valueFlags uint\n\nconst (\n\t_ valueFlags = (1 << iota) / 2 // powers of two starting with zero\n\n\tstringNonVerbatim  // string cannot be naively treated as valid UTF-8\n\tstringNonCanonical // string not formatted according to RFC 8785, section 3.2.2.2.\n\t// TODO: Track whether a number is a non-integer?\n)\n\nfunc (f *valueFlags) set(f2 valueFlags) { *f |= f2 }\nfunc (f valueFlags) isVerbatim() bool   { return f&stringNonVerbatim == 0 }\nfunc (f valueFlags) isCanonical() bool  { return f&stringNonCanonical == 0 }\n\n// ReadValue returns the next raw JSON value, advancing the read offset.\n// The value is stripped of any leading or trailing whitespace.\n// The returned value is only valid until the next Peek, Read, or Skip call and\n// may not be mutated while the Decoder remains in use.\n// If the decoder is currently at the end token for an object or array,\n// then it reports a SyntacticError and the internal state remains unchanged.\n// It returns io.EOF if there are no more values.\nfunc (d *Decoder) ReadValue() (RawValue, error) {\n\tvar flags valueFlags\n\treturn d.readValue(&flags)\n}\nfunc (d *Decoder) readValue(flags *valueFlags) (RawValue, error) {\n\t// Determine the next kind.\n\tvar err error\n\tvar next Kind\n\tpos := d.peekPos\n\tif pos != 0 {\n\t\t// Use cached peek result.\n\t\tif d.peekErr != nil {\n\t\t\terr := d.peekErr\n\t\t\td.peekPos, d.peekErr = 0, nil // possibly a transient I/O error\n\t\t\treturn nil, err\n\t\t}\n\t\tnext = Kind(d.buf[pos]).normalize()\n\t\td.peekPos = 0 // reset cache\n\t} else {\n\t\td.invalidatePreviousRead()\n\t\tpos = d.prevEnd\n\n\t\t// Consume leading whitespace.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\tif err == io.ErrUnexpectedEOF && d.tokens.depth() == 1 {\n\t\t\t\t\terr = io.EOF // EOF possibly if no Tokens present after top-level value\n\t\t\t\t}\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\t// Consume colon or comma.\n\t\tvar delim byte\n\t\tif c := d.buf[pos]; c == ':' || c == ',' {\n\t\t\tdelim = c\n\t\t\tpos += 1\n\t\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\t\tif d.needMore(pos) {\n\t\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tnext = Kind(d.buf[pos]).normalize()\n\t\tif d.tokens.needDelim(next) != delim {\n\t\t\tpos = d.prevEnd // restore position to right after leading whitespace\n\t\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\t\terr = d.tokens.checkDelim(delim, next)\n\t\t\treturn nil, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t}\n\n\t// Handle the next value.\n\toldAbsPos := d.baseOffset + int64(pos)\n\tpos, err = d.consumeValue(flags, pos)\n\tnewAbsPos := d.baseOffset + int64(pos)\n\tn := int(newAbsPos - oldAbsPos)\n\tif err != nil {\n\t\treturn nil, d.injectSyntacticErrorWithPosition(err, pos)\n\t}\n\tswitch next {\n\tcase 'n', 't', 'f':\n\t\terr = d.tokens.appendLiteral()\n\tcase '\"':\n\t\tif !d.options.AllowDuplicateNames && d.tokens.last.needObjectName() {\n\t\t\tif !d.tokens.last.isValidNamespace() {\n\t\t\t\terr = errInvalidNamespace\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif d.tokens.last.isActiveNamespace() && !d.namespaces.last().insertQuoted(d.buf[pos-n:pos], flags.isVerbatim()) {\n\t\t\t\terr = &SyntacticError{str: \"duplicate name \" + string(d.buf[pos-n:pos]) + \" in object\"}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\td.names.replaceLastQuotedOffset(pos - n) // only replace if insertQuoted succeeds\n\t\t}\n\t\terr = d.tokens.appendString()\n\tcase '0':\n\t\terr = d.tokens.appendNumber()\n\tcase '{':\n\t\tif err = d.tokens.pushObject(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif err = d.tokens.popObject(); err != nil {\n\t\t\tpanic(\"BUG: popObject should never fail immediately after pushObject: \" + err.Error())\n\t\t}\n\tcase '[':\n\t\tif err = d.tokens.pushArray(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif err = d.tokens.popArray(); err != nil {\n\t\t\tpanic(\"BUG: popArray should never fail immediately after pushArray: \" + err.Error())\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn nil, d.injectSyntacticErrorWithPosition(err, pos-n) // report position at start of value\n\t}\n\td.prevEnd = pos\n\td.prevStart = pos - n\n\treturn d.buf[pos-n : pos : pos], nil\n}\n\n// checkEOF verifies that the input has no more data.\nfunc (d *Decoder) checkEOF() error {\n\tswitch pos, err := d.consumeWhitespace(d.prevEnd); err {\n\tcase nil:\n\t\treturn newInvalidCharacterError(d.buf[pos:], \"after top-level value\")\n\tcase io.ErrUnexpectedEOF:\n\t\treturn nil\n\tdefault:\n\t\treturn err\n\t}\n}\n\n// consumeWhitespace consumes all whitespace starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the last whitespace.\n// If it returns nil, there is guaranteed to at least be one unread byte.\n//\n// The following pattern is common in this implementation:\n//\n//\tpos += consumeWhitespace(d.buf[pos:])\n//\tif d.needMore(pos) {\n//\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n//\t\t\treturn ...\n//\t\t}\n//\t}\n//\n// It is difficult to simplify this without sacrificing performance since\n// consumeWhitespace must be inlined. The body of the if statement is\n// executed only in rare situations where we need to fetch more data.\n// Since fetching may return an error, we also need to check the error.\nfunc (d *Decoder) consumeWhitespace(pos int) (newPos int, err error) {\n\tfor {\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos, nil\n\t}\n}\n\n// consumeValue consumes a single JSON value starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the value.\nfunc (d *Decoder) consumeValue(flags *valueFlags, pos int) (newPos int, err error) {\n\tfor {\n\t\tvar n int\n\t\tvar err error\n\t\tswitch next := Kind(d.buf[pos]).normalize(); next {\n\t\tcase 'n':\n\t\t\tif n = consumeNull(d.buf[pos:]); n == 0 {\n\t\t\t\tn, err = consumeLiteral(d.buf[pos:], \"null\")\n\t\t\t}\n\t\tcase 'f':\n\t\t\tif n = consumeFalse(d.buf[pos:]); n == 0 {\n\t\t\t\tn, err = consumeLiteral(d.buf[pos:], \"false\")\n\t\t\t}\n\t\tcase 't':\n\t\t\tif n = consumeTrue(d.buf[pos:]); n == 0 {\n\t\t\t\tn, err = consumeLiteral(d.buf[pos:], \"true\")\n\t\t\t}\n\t\tcase '\"':\n\t\t\tif n = consumeSimpleString(d.buf[pos:]); n == 0 {\n\t\t\t\treturn d.consumeString(flags, pos)\n\t\t\t}\n\t\tcase '0':\n\t\t\t// NOTE: Since JSON numbers are not self-terminating,\n\t\t\t// we need to make sure that the next byte is not part of a number.\n\t\t\tif n = consumeSimpleNumber(d.buf[pos:]); n == 0 || d.needMore(pos+n) {\n\t\t\t\treturn d.consumeNumber(pos)\n\t\t\t}\n\t\tcase '{':\n\t\t\treturn d.consumeObject(flags, pos)\n\t\tcase '[':\n\t\t\treturn d.consumeArray(flags, pos)\n\t\tdefault:\n\t\t\treturn pos, newInvalidCharacterError(d.buf[pos:], \"at start of value\")\n\t\t}\n\t\tif err == io.ErrUnexpectedEOF {\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos + n, err\n\t}\n}\n\n// consumeLiteral consumes a single JSON literal starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the literal.\nfunc (d *Decoder) consumeLiteral(pos int, lit string) (newPos int, err error) {\n\tfor {\n\t\tn, err := consumeLiteral(d.buf[pos:], lit)\n\t\tif err == io.ErrUnexpectedEOF {\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos + n, err\n\t}\n}\n\n// consumeString consumes a single JSON string starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the string.\nfunc (d *Decoder) consumeString(flags *valueFlags, pos int) (newPos int, err error) {\n\tvar n int\n\tfor {\n\t\tn, err = consumeStringResumable(flags, d.buf[pos:], n, !d.options.AllowInvalidUTF8)\n\t\tif err == io.ErrUnexpectedEOF {\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos + n, err\n\t}\n}\n\n// consumeNumber consumes a single JSON number starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the number.\nfunc (d *Decoder) consumeNumber(pos int) (newPos int, err error) {\n\tvar n int\n\tvar state consumeNumberState\n\tfor {\n\t\tn, state, err = consumeNumberResumable(d.buf[pos:], n, state)\n\t\t// NOTE: Since JSON numbers are not self-terminating,\n\t\t// we need to make sure that the next byte is not part of a number.\n\t\tif err == io.ErrUnexpectedEOF || d.needMore(pos+n) {\n\t\t\tmayTerminate := err == nil\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\tif mayTerminate && err == io.ErrUnexpectedEOF {\n\t\t\t\t\treturn pos + n, nil\n\t\t\t\t}\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos + n, err\n\t}\n}\n\n// consumeObject consumes a single JSON object starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the object.\nfunc (d *Decoder) consumeObject(flags *valueFlags, pos int) (newPos int, err error) {\n\tvar n int\n\tvar names *objectNamespace\n\tif !d.options.AllowDuplicateNames {\n\t\td.namespaces.push()\n\t\tdefer d.namespaces.pop()\n\t\tnames = d.namespaces.last()\n\t}\n\n\t// Handle before start.\n\tif d.buf[pos] != '{' {\n\t\tpanic(\"BUG: consumeObject must be called with a buffer that starts with '{'\")\n\t}\n\tpos++\n\n\t// Handle after start.\n\tpos += consumeWhitespace(d.buf[pos:])\n\tif d.needMore(pos) {\n\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\treturn pos, err\n\t\t}\n\t}\n\tif d.buf[pos] == '}' {\n\t\tpos++\n\t\treturn pos, nil\n\t}\n\n\tfor {\n\t\t// Handle before name.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tvar flags2 valueFlags\n\t\tif n = consumeSimpleString(d.buf[pos:]); n == 0 {\n\t\t\toldAbsPos := d.baseOffset + int64(pos)\n\t\t\tpos, err = d.consumeString(&flags2, pos)\n\t\t\tnewAbsPos := d.baseOffset + int64(pos)\n\t\t\tn = int(newAbsPos - oldAbsPos)\n\t\t\tflags.set(flags2)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t} else {\n\t\t\tpos += n\n\t\t}\n\t\tif !d.options.AllowDuplicateNames && !names.insertQuoted(d.buf[pos-n:pos], flags2.isVerbatim()) {\n\t\t\treturn pos - n, &SyntacticError{str: \"duplicate name \" + string(d.buf[pos-n:pos]) + \" in object\"}\n\t\t}\n\n\t\t// Handle after name.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tif d.buf[pos] != ':' {\n\t\t\treturn pos, newInvalidCharacterError(d.buf[pos:], \"after object name (expecting ':')\")\n\t\t}\n\t\tpos++\n\n\t\t// Handle before value.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tpos, err = d.consumeValue(flags, pos)\n\t\tif err != nil {\n\t\t\treturn pos, err\n\t\t}\n\n\t\t// Handle after value.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tswitch d.buf[pos] {\n\t\tcase ',':\n\t\t\tpos++\n\t\t\tcontinue\n\t\tcase '}':\n\t\t\tpos++\n\t\t\treturn pos, nil\n\t\tdefault:\n\t\t\treturn pos, newInvalidCharacterError(d.buf[pos:], \"after object value (expecting ',' or '}')\")\n\t\t}\n\t}\n}\n\n// consumeArray consumes a single JSON array starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the array.\nfunc (d *Decoder) consumeArray(flags *valueFlags, pos int) (newPos int, err error) {\n\t// Handle before start.\n\tif d.buf[pos] != '[' {\n\t\tpanic(\"BUG: consumeArray must be called with a buffer that starts with '['\")\n\t}\n\tpos++\n\n\t// Handle after start.\n\tpos += consumeWhitespace(d.buf[pos:])\n\tif d.needMore(pos) {\n\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\treturn pos, err\n\t\t}\n\t}\n\tif d.buf[pos] == ']' {\n\t\tpos++\n\t\treturn pos, nil\n\t}\n\n\tfor {\n\t\t// Handle before value.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tpos, err = d.consumeValue(flags, pos)\n\t\tif err != nil {\n\t\t\treturn pos, err\n\t\t}\n\n\t\t// Handle after value.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tswitch d.buf[pos] {\n\t\tcase ',':\n\t\t\tpos++\n\t\t\tcontinue\n\t\tcase ']':\n\t\t\tpos++\n\t\t\treturn pos, nil\n\t\tdefault:\n\t\t\treturn pos, newInvalidCharacterError(d.buf[pos:], \"after array value (expecting ',' or ']')\")\n\t\t}\n\t}\n}\n\n// InputOffset returns the current input byte offset. It gives the location\n// of the next byte immediately after the most recently returned token or value.\n// The number of bytes actually read from the underlying io.Reader may be more\n// than this offset due to internal buffering effects.\nfunc (d *Decoder) InputOffset() int64 {\n\treturn d.previousOffsetEnd()\n}\n\n// UnreadBuffer returns the data remaining in the unread buffer,\n// which may contain zero or more bytes.\n// The returned buffer must not be mutated while Decoder continues to be used.\n// The buffer contents are valid until the next Peek, Read, or Skip call.\nfunc (d *Decoder) UnreadBuffer() []byte {\n\treturn d.unreadBuffer()\n}\n\n// StackDepth returns the depth of the state machine for read JSON data.\n// Each level on the stack represents a nested JSON object or array.\n// It is incremented whenever an ObjectStart or ArrayStart token is encountered\n// and decremented whenever an ObjectEnd or ArrayEnd token is encountered.\n// The depth is zero-indexed, where zero represents the top-level JSON value.\nfunc (d *Decoder) StackDepth() int {\n\t// NOTE: Keep in sync with Encoder.StackDepth.\n\treturn d.tokens.depth() - 1\n}\n\n// StackIndex returns information about the specified stack level.\n// It must be a number between 0 and StackDepth, inclusive.\n// For each level, it reports the kind:\n//\n//   - 0 for a level of zero,\n//   - '{' for a level representing a JSON object, and\n//   - '[' for a level representing a JSON array.\n//\n// It also reports the length of that JSON object or array.\n// Each name and value in a JSON object is counted separately,\n// so the effective number of members would be half the length.\n// A complete JSON object must have an even length.\nfunc (d *Decoder) StackIndex(i int) (Kind, int) {\n\t// NOTE: Keep in sync with Encoder.StackIndex.\n\tswitch s := d.tokens.index(i); {\n\tcase i > 0 && s.isObject():\n\t\treturn '{', s.length()\n\tcase i > 0 && s.isArray():\n\t\treturn '[', s.length()\n\tdefault:\n\t\treturn 0, s.length()\n\t}\n}\n\n// StackPointer returns a JSON Pointer (RFC 6901) to the most recently read value.\n// Object names are only present if AllowDuplicateNames is false, otherwise\n// object members are represented using their index within the object.\nfunc (d *Decoder) StackPointer() string {\n\td.names.copyQuotedBuffer(d.buf)\n\treturn string(d.appendStackPointer(nil))\n}\n\n// consumeWhitespace consumes leading JSON whitespace per RFC 7159, section 2.\nfunc consumeWhitespace(b []byte) (n int) {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tfor len(b) > n && (b[n] == ' ' || b[n] == '\\t' || b[n] == '\\r' || b[n] == '\\n') {\n\t\tn++\n\t}\n\treturn n\n}\n\n// consumeNull consumes the next JSON null literal per RFC 7159, section 3.\n// It returns 0 if it is invalid, in which case consumeLiteral should be used.\nfunc consumeNull(b []byte) int {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tconst literal = \"null\"\n\tif len(b) >= len(literal) && string(b[:len(literal)]) == literal {\n\t\treturn len(literal)\n\t}\n\treturn 0\n}\n\n// consumeFalse consumes the next JSON false literal per RFC 7159, section 3.\n// It returns 0 if it is invalid, in which case consumeLiteral should be used.\nfunc consumeFalse(b []byte) int {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tconst literal = \"false\"\n\tif len(b) >= len(literal) && string(b[:len(literal)]) == literal {\n\t\treturn len(literal)\n\t}\n\treturn 0\n}\n\n// consumeTrue consumes the next JSON true literal per RFC 7159, section 3.\n// It returns 0 if it is invalid, in which case consumeLiteral should be used.\nfunc consumeTrue(b []byte) int {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tconst literal = \"true\"\n\tif len(b) >= len(literal) && string(b[:len(literal)]) == literal {\n\t\treturn len(literal)\n\t}\n\treturn 0\n}\n\n// consumeLiteral consumes the next JSON literal per RFC 7159, section 3.\n// If the input appears truncated, it returns io.ErrUnexpectedEOF.\nfunc consumeLiteral(b []byte, lit string) (n int, err error) {\n\tfor i := 0; i < len(b) && i < len(lit); i++ {\n\t\tif b[i] != lit[i] {\n\t\t\treturn i, newInvalidCharacterError(b[i:], \"within literal \"+lit+\" (expecting \"+strconv.QuoteRune(rune(lit[i]))+\")\")\n\t\t}\n\t}\n\tif len(b) < len(lit) {\n\t\treturn len(b), io.ErrUnexpectedEOF\n\t}\n\treturn len(lit), nil\n}\n\n// consumeSimpleString consumes the next JSON string per RFC 7159, section 7\n// but is limited to the grammar for an ASCII string without escape sequences.\n// It returns 0 if it is invalid or more complicated than a simple string,\n// in which case consumeString should be called.\nfunc consumeSimpleString(b []byte) (n int) {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif len(b) > 0 && b[0] == '\"' {\n\t\tn++\n\t\tfor len(b) > n && (' ' <= b[n] && b[n] != '\\\\' && b[n] != '\"' && b[n] < utf8.RuneSelf) {\n\t\t\tn++\n\t\t}\n\t\tif len(b) > n && b[n] == '\"' {\n\t\t\tn++\n\t\t\treturn n\n\t\t}\n\t}\n\treturn 0\n}\n\n// consumeString consumes the next JSON string per RFC 7159, section 7.\n// If validateUTF8 is false, then this allows the presence of invalid UTF-8\n// characters within the string itself.\n// It reports the number of bytes consumed and whether an error was encountered.\n// If the input appears truncated, it returns io.ErrUnexpectedEOF.\nfunc consumeString(flags *valueFlags, b []byte, validateUTF8 bool) (n int, err error) {\n\treturn consumeStringResumable(flags, b, 0, validateUTF8)\n}\n\n// consumeStringResumable is identical to consumeString but supports resuming\n// from a previous call that returned io.ErrUnexpectedEOF.\nfunc consumeStringResumable(flags *valueFlags, b []byte, resumeOffset int, validateUTF8 bool) (n int, err error) {\n\t// Consume the leading double quote.\n\tswitch {\n\tcase resumeOffset > 0:\n\t\tn = resumeOffset // already handled the leading quote\n\tcase uint(len(b)) == 0:\n\t\treturn n, io.ErrUnexpectedEOF\n\tcase b[0] == '\"':\n\t\tn++\n\tdefault:\n\t\treturn n, newInvalidCharacterError(b[n:], `at start of string (expecting '\"')`)\n\t}\n\n\t// Consume every character in the string.\n\tfor uint(len(b)) > uint(n) {\n\t\t// Optimize for long sequences of unescaped characters.\n\t\tnoEscape := func(c byte) bool {\n\t\t\treturn c < utf8.RuneSelf && ' ' <= c && c != '\\\\' && c != '\"'\n\t\t}\n\t\tfor uint(len(b)) > uint(n) && noEscape(b[n]) {\n\t\t\tn++\n\t\t}\n\t\tif uint(len(b)) <= uint(n) {\n\t\t\treturn n, io.ErrUnexpectedEOF\n\t\t}\n\n\t\t// Check for terminating double quote.\n\t\tif b[n] == '\"' {\n\t\t\tn++\n\t\t\treturn n, nil\n\t\t}\n\n\t\tswitch r, rn := utf8.DecodeRune(b[n:]); {\n\t\t// Handle UTF-8 encoded byte sequence.\n\t\t// Due to specialized handling of ASCII above, we know that\n\t\t// all normal sequences at this point must be 2 bytes or larger.\n\t\tcase rn > 1:\n\t\t\tn += rn\n\t\t// Handle escape sequence.\n\t\tcase r == '\\\\':\n\t\t\tflags.set(stringNonVerbatim)\n\t\t\tresumeOffset = n\n\t\t\tif uint(len(b)) < uint(n+2) {\n\t\t\t\treturn resumeOffset, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch r := b[n+1]; r {\n\t\t\tcase '/':\n\t\t\t\t// Forward slash is the only character with 3 representations.\n\t\t\t\t// Per RFC 8785, section 3.2.2.2., this must not be escaped.\n\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\tn += 2\n\t\t\tcase '\"', '\\\\', 'b', 'f', 'n', 'r', 't':\n\t\t\t\tn += 2\n\t\t\tcase 'u':\n\t\t\t\tif uint(len(b)) < uint(n+6) {\n\t\t\t\t\tif !hasEscapeSequencePrefix(b[n:]) {\n\t\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:])) + \" within string\"}\n\t\t\t\t\t}\n\t\t\t\t\treturn resumeOffset, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tv1, ok := parseHexUint16(b[n+2 : n+6])\n\t\t\t\tif !ok {\n\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:n+6])) + \" within string\"}\n\t\t\t\t}\n\t\t\t\t// Only certain control characters can use the \\uFFFF notation\n\t\t\t\t// for canonical formatting (per RFC 8785, section 3.2.2.2.).\n\t\t\t\tswitch v1 {\n\t\t\t\t// \\uFFFF notation not permitted for these characters.\n\t\t\t\tcase '\\b', '\\f', '\\n', '\\r', '\\t':\n\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\tdefault:\n\t\t\t\t\t// \\uFFFF notation only permitted for control characters.\n\t\t\t\t\tif v1 >= ' ' {\n\t\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// \\uFFFF notation must be lower case.\n\t\t\t\t\t\tfor _, c := range b[n+2 : n+6] {\n\t\t\t\t\t\t\tif 'A' <= c && c <= 'F' {\n\t\t\t\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tn += 6\n\n\t\t\t\tif validateUTF8 && utf16.IsSurrogate(rune(v1)) {\n\t\t\t\t\tif uint(len(b)) >= uint(n+2) && (b[n] != '\\\\' || b[n+1] != 'u') {\n\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid unpaired surrogate half within string\"}\n\t\t\t\t\t}\n\t\t\t\t\tif uint(len(b)) < uint(n+6) {\n\t\t\t\t\t\tif !hasEscapeSequencePrefix(b[n:]) {\n\t\t\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:])) + \" within string\"}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn resumeOffset, io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tv2, ok := parseHexUint16(b[n+2 : n+6])\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:n+6])) + \" within string\"}\n\t\t\t\t\t}\n\t\t\t\t\tif utf16.DecodeRune(rune(v1), rune(v2)) == utf8.RuneError {\n\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid surrogate pair in string\"}\n\t\t\t\t\t}\n\t\t\t\t\tn += 6\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:n+2])) + \" within string\"}\n\t\t\t}\n\t\t// Handle invalid UTF-8.\n\t\tcase r == utf8.RuneError:\n\t\t\tif !utf8.FullRune(b[n:]) {\n\t\t\t\treturn n, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tflags.set(stringNonVerbatim | stringNonCanonical)\n\t\t\tif validateUTF8 {\n\t\t\t\treturn n, &SyntacticError{str: \"invalid UTF-8 within string\"}\n\t\t\t}\n\t\t\tn++\n\t\t// Handle invalid control characters.\n\t\tcase r < ' ':\n\t\t\tflags.set(stringNonVerbatim | stringNonCanonical)\n\t\t\treturn n, newInvalidCharacterError(b[n:], \"within string (expecting non-control character)\")\n\t\tdefault:\n\t\t\tpanic(\"BUG: unhandled character \" + quoteRune(b[n:]))\n\t\t}\n\t}\n\treturn n, io.ErrUnexpectedEOF\n}\n\n// hasEscapeSequencePrefix reports whether b is possibly\n// the truncated prefix of a \\uFFFF escape sequence.\nfunc hasEscapeSequencePrefix(b []byte) bool {\n\tfor i, c := range b {\n\t\tswitch {\n\t\tcase i == 0 && c != '\\\\':\n\t\t\treturn false\n\t\tcase i == 1 && c != 'u':\n\t\t\treturn false\n\t\tcase i >= 2 && i < 6 && !('0' <= c && c <= '9') && !('a' <= c && c <= 'f') && !('A' <= c && c <= 'F'):\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// unescapeString appends the unescaped form of a JSON string in src to dst.\n// Any invalid UTF-8 within the string will be replaced with utf8.RuneError.\n// The input must be an entire JSON string with no surrounding whitespace.\nfunc unescapeString(dst, src []byte) (v []byte, ok bool) {\n\t// Consume leading double quote.\n\tif uint(len(src)) == 0 || src[0] != '\"' {\n\t\treturn dst, false\n\t}\n\ti, n := 1, 1\n\n\t// Consume every character until completion.\n\tfor uint(len(src)) > uint(n) {\n\t\t// Optimize for long sequences of unescaped characters.\n\t\tnoEscape := func(c byte) bool {\n\t\t\treturn c < utf8.RuneSelf && ' ' <= c && c != '\\\\' && c != '\"'\n\t\t}\n\t\tfor uint(len(src)) > uint(n) && noEscape(src[n]) {\n\t\t\tn++\n\t\t}\n\t\tif uint(len(src)) <= uint(n) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Check for terminating double quote.\n\t\tif src[n] == '\"' {\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tn++\n\t\t\treturn dst, len(src) == n\n\t\t}\n\n\t\tswitch r, rn := utf8.DecodeRune(src[n:]); {\n\t\t// Handle UTF-8 encoded byte sequence.\n\t\t// Due to specialized handling of ASCII above, we know that\n\t\t// all normal sequences at this point must be 2 bytes or larger.\n\t\tcase rn > 1:\n\t\t\tn += rn\n\t\t// Handle escape sequence.\n\t\tcase r == '\\\\':\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tif r < ' ' {\n\t\t\t\treturn dst, false // invalid control character or unescaped quote\n\t\t\t}\n\n\t\t\t// Handle escape sequence.\n\t\t\tif uint(len(src)) < uint(n+2) {\n\t\t\t\treturn dst, false // truncated escape sequence\n\t\t\t}\n\t\t\tswitch r := src[n+1]; r {\n\t\t\tcase '\"', '\\\\', '/':\n\t\t\t\tdst = append(dst, r)\n\t\t\t\tn += 2\n\t\t\tcase 'b':\n\t\t\t\tdst = append(dst, '\\b')\n\t\t\t\tn += 2\n\t\t\tcase 'f':\n\t\t\t\tdst = append(dst, '\\f')\n\t\t\t\tn += 2\n\t\t\tcase 'n':\n\t\t\t\tdst = append(dst, '\\n')\n\t\t\t\tn += 2\n\t\t\tcase 'r':\n\t\t\t\tdst = append(dst, '\\r')\n\t\t\t\tn += 2\n\t\t\tcase 't':\n\t\t\t\tdst = append(dst, '\\t')\n\t\t\t\tn += 2\n\t\t\tcase 'u':\n\t\t\t\tif uint(len(src)) < uint(n+6) {\n\t\t\t\t\treturn dst, false // truncated escape sequence\n\t\t\t\t}\n\t\t\t\tv1, ok := parseHexUint16(src[n+2 : n+6])\n\t\t\t\tif !ok {\n\t\t\t\t\treturn dst, false // invalid escape sequence\n\t\t\t\t}\n\t\t\t\tn += 6\n\n\t\t\t\t// Check whether this is a surrogate half.\n\t\t\t\tr := rune(v1)\n\t\t\t\tif utf16.IsSurrogate(r) {\n\t\t\t\t\tr = utf8.RuneError // assume failure unless the following succeeds\n\t\t\t\t\tif uint(len(src)) >= uint(n+6) && src[n+0] == '\\\\' && src[n+1] == 'u' {\n\t\t\t\t\t\tif v2, ok := parseHexUint16(src[n+2 : n+6]); ok {\n\t\t\t\t\t\t\tif r = utf16.DecodeRune(rune(v1), rune(v2)); r != utf8.RuneError {\n\t\t\t\t\t\t\t\tn += 6\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdst = utf8.AppendRune(dst, r)\n\t\t\tdefault:\n\t\t\t\treturn dst, false // invalid escape sequence\n\t\t\t}\n\t\t\ti = n\n\t\t// Handle invalid UTF-8.\n\t\tcase r == utf8.RuneError:\n\t\t\t// NOTE: An unescaped string may be longer than the escaped string\n\t\t\t// because invalid UTF-8 bytes are being replaced.\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tdst = append(dst, \"\\uFFFD\"...)\n\t\t\tn += rn\n\t\t\ti = n\n\t\t// Handle invalid control characters.\n\t\tcase r < ' ':\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\treturn dst, false // invalid control character or unescaped quote\n\t\tdefault:\n\t\t\tpanic(\"BUG: unhandled character \" + quoteRune(src[n:]))\n\t\t}\n\t}\n\tdst = append(dst, src[i:n]...)\n\treturn dst, false // truncated input\n}\n\n// unescapeStringMayCopy returns the unescaped form of b.\n// If there are no escaped characters, the output is simply a subslice of\n// the input with the surrounding quotes removed.\n// Otherwise, a new buffer is allocated for the output.\nfunc unescapeStringMayCopy(b []byte, isVerbatim bool) []byte {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif isVerbatim {\n\t\treturn b[len(`\"`) : len(b)-len(`\"`)]\n\t}\n\tb, _ = unescapeString(make([]byte, 0, len(b)), b)\n\treturn b\n}\n\n// consumeSimpleNumber consumes the next JSON number per RFC 7159, section 6\n// but is limited to the grammar for a positive integer.\n// It returns 0 if it is invalid or more complicated than a simple integer,\n// in which case consumeNumber should be called.\nfunc consumeSimpleNumber(b []byte) (n int) {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif len(b) > 0 {\n\t\tif b[0] == '0' {\n\t\t\tn++\n\t\t} else if '1' <= b[0] && b[0] <= '9' {\n\t\t\tn++\n\t\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\t\tn++\n\t\t\t}\n\t\t} else {\n\t\t\treturn 0\n\t\t}\n\t\tif len(b) == n || !(b[n] == '.' || b[n] == 'e' || b[n] == 'E') {\n\t\t\treturn n\n\t\t}\n\t}\n\treturn 0\n}\n\ntype consumeNumberState uint\n\nconst (\n\tconsumeNumberInit consumeNumberState = iota\n\tbeforeIntegerDigits\n\twithinIntegerDigits\n\tbeforeFractionalDigits\n\twithinFractionalDigits\n\tbeforeExponentDigits\n\twithinExponentDigits\n)\n\n// consumeNumber consumes the next JSON number per RFC 7159, section 6.\n// It reports the number of bytes consumed and whether an error was encountered.\n// If the input appears truncated, it returns io.ErrUnexpectedEOF.\n//\n// Note that JSON numbers are not self-terminating.\n// If the entire input is consumed, then the caller needs to consider whether\n// there may be subsequent unread data that may still be part of this number.\nfunc consumeNumber(b []byte) (n int, err error) {\n\tn, _, err = consumeNumberResumable(b, 0, consumeNumberInit)\n\treturn n, err\n}\n\n// consumeNumberResumable is identical to consumeNumber but supports resuming\n// from a previous call that returned io.ErrUnexpectedEOF.\nfunc consumeNumberResumable(b []byte, resumeOffset int, state consumeNumberState) (n int, _ consumeNumberState, err error) {\n\t// Jump to the right state when resuming from a partial consumption.\n\tn = resumeOffset\n\tif state > consumeNumberInit {\n\t\tswitch state {\n\t\tcase withinIntegerDigits, withinFractionalDigits, withinExponentDigits:\n\t\t\t// Consume leading digits.\n\t\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\t\tn++\n\t\t\t}\n\t\t\tif len(b) == n {\n\t\t\t\treturn n, state, nil // still within the same state\n\t\t\t}\n\t\t\tstate++ // switches \"withinX\" to \"beforeY\" where Y is the state after X\n\t\t}\n\t\tswitch state {\n\t\tcase beforeIntegerDigits:\n\t\t\tgoto beforeInteger\n\t\tcase beforeFractionalDigits:\n\t\t\tgoto beforeFractional\n\t\tcase beforeExponentDigits:\n\t\t\tgoto beforeExponent\n\t\tdefault:\n\t\t\treturn n, state, nil\n\t\t}\n\t}\n\n\t// Consume required integer component (with optional minus sign).\nbeforeInteger:\n\tresumeOffset = n\n\tif len(b) > 0 && b[0] == '-' {\n\t\tn++\n\t}\n\tswitch {\n\tcase len(b) == n:\n\t\treturn resumeOffset, beforeIntegerDigits, io.ErrUnexpectedEOF\n\tcase b[n] == '0':\n\t\tn++\n\t\tstate = beforeFractionalDigits\n\tcase '1' <= b[n] && b[n] <= '9':\n\t\tn++\n\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\tn++\n\t\t}\n\t\tstate = withinIntegerDigits\n\tdefault:\n\t\treturn n, state, newInvalidCharacterError(b[n:], \"within number (expecting digit)\")\n\t}\n\n\t// Consume optional fractional component.\nbeforeFractional:\n\tif len(b) > n && b[n] == '.' {\n\t\tresumeOffset = n\n\t\tn++\n\t\tswitch {\n\t\tcase len(b) == n:\n\t\t\treturn resumeOffset, beforeFractionalDigits, io.ErrUnexpectedEOF\n\t\tcase '0' <= b[n] && b[n] <= '9':\n\t\t\tn++\n\t\tdefault:\n\t\t\treturn n, state, newInvalidCharacterError(b[n:], \"within number (expecting digit)\")\n\t\t}\n\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\tn++\n\t\t}\n\t\tstate = withinFractionalDigits\n\t}\n\n\t// Consume optional exponent component.\nbeforeExponent:\n\tif len(b) > n && (b[n] == 'e' || b[n] == 'E') {\n\t\tresumeOffset = n\n\t\tn++\n\t\tif len(b) > n && (b[n] == '-' || b[n] == '+') {\n\t\t\tn++\n\t\t}\n\t\tswitch {\n\t\tcase len(b) == n:\n\t\t\treturn resumeOffset, beforeExponentDigits, io.ErrUnexpectedEOF\n\t\tcase '0' <= b[n] && b[n] <= '9':\n\t\t\tn++\n\t\tdefault:\n\t\t\treturn n, state, newInvalidCharacterError(b[n:], \"within number (expecting digit)\")\n\t\t}\n\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\tn++\n\t\t}\n\t\tstate = withinExponentDigits\n\t}\n\n\treturn n, state, nil\n}\n\n// parseHexUint16 is similar to strconv.ParseUint,\n// but operates directly on []byte and is optimized for base-16.\n// See https://go.dev/issue/42429.\nfunc parseHexUint16(b []byte) (v uint16, ok bool) {\n\tif len(b) != 4 {\n\t\treturn 0, false\n\t}\n\tfor _, c := range b[:4] {\n\t\tswitch {\n\t\tcase '0' <= c && c <= '9':\n\t\t\tc = c - '0'\n\t\tcase 'a' <= c && c <= 'f':\n\t\t\tc = 10 + c - 'a'\n\t\tcase 'A' <= c && c <= 'F':\n\t\t\tc = 10 + c - 'A'\n\t\tdefault:\n\t\t\treturn 0, false\n\t\t}\n\t\tv = v*16 + uint16(c)\n\t}\n\treturn v, true\n}\n\n// parseDecUint is similar to strconv.ParseUint,\n// but operates directly on []byte and is optimized for base-10.\n// If the number is syntactically valid but overflows uint64,\n// then it returns (math.MaxUint64, false).\n// See https://go.dev/issue/42429.\nfunc parseDecUint(b []byte) (v uint64, ok bool) {\n\t// Overflow logic is based on strconv/atoi.go:138-149 from Go1.15, where:\n\t//   - cutoff is equal to math.MaxUint64/10+1, and\n\t//   - the n1 > maxVal check is unnecessary\n\t//     since maxVal is equivalent to math.MaxUint64.\n\tvar n int\n\tvar overflow bool\n\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\toverflow = overflow || v >= math.MaxUint64/10+1\n\t\tv *= 10\n\n\t\tv1 := v + uint64(b[n]-'0')\n\t\toverflow = overflow || v1 < v\n\t\tv = v1\n\n\t\tn++\n\t}\n\tif n == 0 || len(b) != n {\n\t\treturn 0, false\n\t}\n\tif overflow {\n\t\treturn math.MaxUint64, false\n\t}\n\treturn v, true\n}\n\n// parseFloat parses a floating point number according to the Go float grammar.\n// Note that the JSON number grammar is a strict subset.\n//\n// If the number overflows the finite representation of a float,\n// then we return MaxFloat since any finite value will always be infinitely\n// more accurate at representing another finite value than an infinite value.\nfunc parseFloat(b []byte, bits int) (v float64, ok bool) {\n\t// Fast path for exact integer numbers which fit in the\n\t// 24-bit or 53-bit significand of a float32 or float64.\n\tvar negLen int // either 0 or 1\n\tif len(b) > 0 && b[0] == '-' {\n\t\tnegLen = 1\n\t}\n\tu, ok := parseDecUint(b[negLen:])\n\tif ok && ((bits == 32 && u <= 1<<24) || (bits == 64 && u <= 1<<53)) {\n\t\treturn math.Copysign(float64(u), float64(-1*negLen)), true\n\t}\n\n\t// Note that the []byte->string conversion unfortunately allocates.\n\t// See https://go.dev/issue/42429 for more information.\n\tfv, err := strconv.ParseFloat(string(b), bits)\n\tif math.IsInf(fv, 0) {\n\t\tswitch {\n\t\tcase bits == 32 && math.IsInf(fv, +1):\n\t\t\treturn +math.MaxFloat32, true\n\t\tcase bits == 64 && math.IsInf(fv, +1):\n\t\t\treturn +math.MaxFloat64, true\n\t\tcase bits == 32 && math.IsInf(fv, -1):\n\t\t\treturn -math.MaxFloat32, true\n\t\tcase bits == 64 && math.IsInf(fv, -1):\n\t\t\treturn -math.MaxFloat64, true\n\t\t}\n\t}\n\treturn fv, err == nil\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/decode_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"net\"\n\t\"path\"\n\t\"reflect\"\n\t\"strings\"\n\t\"testing\"\n\t\"testing/iotest\"\n)\n\n// equalTokens reports whether to sequences of tokens formats the same way.\nfunc equalTokens(xs, ys []Token) bool {\n\tif len(xs) != len(ys) {\n\t\treturn false\n\t}\n\tfor i := range xs {\n\t\tif !(reflect.DeepEqual(xs[i], ys[i]) || xs[i].String() == ys[i].String()) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// TestDecoder tests whether we can parse JSON with either tokens or raw values.\nfunc TestDecoder(t *testing.T) {\n\tfor _, td := range coderTestdata {\n\t\tfor _, typeName := range []string{\"Token\", \"Value\", \"TokenDelims\"} {\n\t\t\tt.Run(path.Join(td.name.name, typeName), func(t *testing.T) {\n\t\t\t\ttestDecoder(t, td.name.where, typeName, td)\n\t\t\t})\n\t\t}\n\t}\n}\nfunc testDecoder(t *testing.T, where pc, typeName string, td coderTestdataEntry) {\n\tdec := NewDecoder(bytes.NewBufferString(td.in))\n\tswitch typeName {\n\tcase \"Token\":\n\t\tvar tokens []Token\n\t\tvar pointers []string\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tt.Fatalf(\"%s: Decoder.ReadToken error: %v\", where, err)\n\t\t\t}\n\t\t\ttokens = append(tokens, tok.Clone())\n\t\t\tif td.pointers != nil {\n\t\t\t\tpointers = append(pointers, dec.StackPointer())\n\t\t\t}\n\t\t}\n\t\tif !equalTokens(tokens, td.tokens) {\n\t\t\tt.Fatalf(\"%s: tokens mismatch:\\ngot  %v\\nwant %v\", where, tokens, td.tokens)\n\t\t}\n\t\tif !reflect.DeepEqual(pointers, td.pointers) {\n\t\t\tt.Fatalf(\"%s: pointers mismatch:\\ngot  %q\\nwant %q\", where, pointers, td.pointers)\n\t\t}\n\tcase \"Value\":\n\t\tval, err := dec.ReadValue()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"%s: Decoder.ReadValue error: %v\", where, err)\n\t\t}\n\t\tgot := string(val)\n\t\twant := strings.TrimSpace(td.in)\n\t\tif got != want {\n\t\t\tt.Fatalf(\"%s: Decoder.ReadValue = %s, want %s\", where, got, want)\n\t\t}\n\tcase \"TokenDelims\":\n\t\t// Use ReadToken for object/array delimiters, ReadValue otherwise.\n\t\tvar tokens []Token\n\tloop:\n\t\tfor {\n\t\t\tswitch dec.PeekKind() {\n\t\t\tcase '{', '}', '[', ']':\n\t\t\t\ttok, err := dec.ReadToken()\n\t\t\t\tif err != nil {\n\t\t\t\t\tif err == io.EOF {\n\t\t\t\t\t\tbreak loop\n\t\t\t\t\t}\n\t\t\t\t\tt.Fatalf(\"%s: Decoder.ReadToken error: %v\", where, err)\n\t\t\t\t}\n\t\t\t\ttokens = append(tokens, tok.Clone())\n\t\t\tdefault:\n\t\t\t\tval, err := dec.ReadValue()\n\t\t\t\tif err != nil {\n\t\t\t\t\tif err == io.EOF {\n\t\t\t\t\t\tbreak loop\n\t\t\t\t\t}\n\t\t\t\t\tt.Fatalf(\"%s: Decoder.ReadValue error: %v\", where, err)\n\t\t\t\t}\n\t\t\t\ttokens = append(tokens, rawToken(string(val)))\n\t\t\t}\n\t\t}\n\t\tif !equalTokens(tokens, td.tokens) {\n\t\t\tt.Fatalf(\"%s: tokens mismatch:\\ngot  %v\\nwant %v\", where, tokens, td.tokens)\n\t\t}\n\t}\n}\n\n// TestFaultyDecoder tests that temporary I/O errors are not fatal.\nfunc TestFaultyDecoder(t *testing.T) {\n\tfor _, td := range coderTestdata {\n\t\tfor _, typeName := range []string{\"Token\", \"Value\"} {\n\t\t\tt.Run(path.Join(td.name.name, typeName), func(t *testing.T) {\n\t\t\t\ttestFaultyDecoder(t, td.name.where, typeName, td)\n\t\t\t})\n\t\t}\n\t}\n}\nfunc testFaultyDecoder(t *testing.T, where pc, typeName string, td coderTestdataEntry) {\n\tb := &FaultyBuffer{\n\t\tB:        []byte(td.in),\n\t\tMaxBytes: 1,\n\t\tMayError: io.ErrNoProgress,\n\t}\n\n\t// Read all the tokens.\n\t// If the underlying io.Reader is faulty, then Read may return\n\t// an error without changing the internal state machine.\n\t// In other words, I/O errors occur before syntactic errors.\n\tdec := NewDecoder(b)\n\tswitch typeName {\n\tcase \"Token\":\n\t\tvar tokens []Token\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif !errors.Is(err, io.ErrNoProgress) {\n\t\t\t\t\tt.Fatalf(\"%s: %d: Decoder.ReadToken error: %v\", where, len(tokens), err)\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttokens = append(tokens, tok.Clone())\n\t\t}\n\t\tif !equalTokens(tokens, td.tokens) {\n\t\t\tt.Fatalf(\"%s: tokens mismatch:\\ngot  %s\\nwant %s\", where, tokens, td.tokens)\n\t\t}\n\tcase \"Value\":\n\t\tfor {\n\t\t\tval, err := dec.ReadValue()\n\t\t\tif err != nil {\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif !errors.Is(err, io.ErrNoProgress) {\n\t\t\t\t\tt.Fatalf(\"%s: Decoder.ReadValue error: %v\", where, err)\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tgot := string(val)\n\t\t\twant := strings.TrimSpace(td.in)\n\t\t\tif got != want {\n\t\t\t\tt.Fatalf(\"%s: Decoder.ReadValue = %s, want %s\", where, got, want)\n\t\t\t}\n\t\t}\n\t}\n}\n\ntype decoderMethodCall struct {\n\twantKind    Kind\n\twantOut     tokOrVal\n\twantErr     error\n\twantPointer string\n}\n\nvar decoderErrorTestdata = []struct {\n\tname       testName\n\topts       DecodeOptions\n\tin         string\n\tcalls      []decoderMethodCall\n\twantOffset int\n}{{\n\tname: name(\"InvalidStart\"),\n\tin:   ` #`,\n\tcalls: []decoderMethodCall{\n\t\t{'#', zeroToken, newInvalidCharacterError([]byte(\"#\"), \"at start of token\").withOffset(int64(len(\" \"))), \"\"},\n\t\t{'#', zeroValue, newInvalidCharacterError([]byte(\"#\"), \"at start of value\").withOffset(int64(len(\" \"))), \"\"},\n\t},\n}, {\n\tname: name(\"StreamN0\"),\n\tin:   ` `,\n\tcalls: []decoderMethodCall{\n\t\t{0, zeroToken, io.EOF, \"\"},\n\t\t{0, zeroValue, io.EOF, \"\"},\n\t},\n}, {\n\tname: name(\"StreamN1\"),\n\tin:   ` null `,\n\tcalls: []decoderMethodCall{\n\t\t{'n', Null, nil, \"\"},\n\t\t{0, zeroToken, io.EOF, \"\"},\n\t\t{0, zeroValue, io.EOF, \"\"},\n\t},\n\twantOffset: len(` null`),\n}, {\n\tname: name(\"StreamN2\"),\n\tin:   ` nullnull `,\n\tcalls: []decoderMethodCall{\n\t\t{'n', Null, nil, \"\"},\n\t\t{'n', Null, nil, \"\"},\n\t\t{0, zeroToken, io.EOF, \"\"},\n\t\t{0, zeroValue, io.EOF, \"\"},\n\t},\n\twantOffset: len(` nullnull`),\n}, {\n\tname: name(\"StreamN2/ExtraComma\"), // stream is whitespace delimited, not comma delimited\n\tin:   ` null , null `,\n\tcalls: []decoderMethodCall{\n\t\t{'n', Null, nil, \"\"},\n\t\t{0, zeroToken, newInvalidCharacterError([]byte(\",\"), `before next token`).withOffset(int64(len(` null `))), \"\"},\n\t\t{0, zeroValue, newInvalidCharacterError([]byte(\",\"), `before next token`).withOffset(int64(len(` null `))), \"\"},\n\t},\n\twantOffset: len(` null`),\n}, {\n\tname: name(\"TruncatedNull\"),\n\tin:   `nul`,\n\tcalls: []decoderMethodCall{\n\t\t{'n', zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{'n', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"InvalidNull\"),\n\tin:   `nulL`,\n\tcalls: []decoderMethodCall{\n\t\t{'n', zeroToken, newInvalidCharacterError([]byte(\"L\"), `within literal null (expecting 'l')`).withOffset(int64(len(`nul`))), \"\"},\n\t\t{'n', zeroValue, newInvalidCharacterError([]byte(\"L\"), `within literal null (expecting 'l')`).withOffset(int64(len(`nul`))), \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedFalse\"),\n\tin:   `fals`,\n\tcalls: []decoderMethodCall{\n\t\t{'f', zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{'f', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"InvalidFalse\"),\n\tin:   `falsE`,\n\tcalls: []decoderMethodCall{\n\t\t{'f', zeroToken, newInvalidCharacterError([]byte(\"E\"), `within literal false (expecting 'e')`).withOffset(int64(len(`fals`))), \"\"},\n\t\t{'f', zeroValue, newInvalidCharacterError([]byte(\"E\"), `within literal false (expecting 'e')`).withOffset(int64(len(`fals`))), \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedTrue\"),\n\tin:   `tru`,\n\tcalls: []decoderMethodCall{\n\t\t{'t', zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{'t', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"InvalidTrue\"),\n\tin:   `truE`,\n\tcalls: []decoderMethodCall{\n\t\t{'t', zeroToken, newInvalidCharacterError([]byte(\"E\"), `within literal true (expecting 'e')`).withOffset(int64(len(`tru`))), \"\"},\n\t\t{'t', zeroValue, newInvalidCharacterError([]byte(\"E\"), `within literal true (expecting 'e')`).withOffset(int64(len(`tru`))), \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedString\"),\n\tin:   `\"start`,\n\tcalls: []decoderMethodCall{\n\t\t{'\"', zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{'\"', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"InvalidString\"),\n\tin:   `\"ok` + \"\\x00\",\n\tcalls: []decoderMethodCall{\n\t\t{'\"', zeroToken, newInvalidCharacterError([]byte(\"\\x00\"), `within string (expecting non-control character)`).withOffset(int64(len(`\"ok`))), \"\"},\n\t\t{'\"', zeroValue, newInvalidCharacterError([]byte(\"\\x00\"), `within string (expecting non-control character)`).withOffset(int64(len(`\"ok`))), \"\"},\n\t},\n}, {\n\tname: name(\"ValidString/AllowInvalidUTF8/Token\"),\n\topts: DecodeOptions{AllowInvalidUTF8: true},\n\tin:   \"\\\"living\\xde\\xad\\xbe\\xef\\\"\",\n\tcalls: []decoderMethodCall{\n\t\t{'\"', rawToken(\"\\\"living\\xde\\xad\\xbe\\xef\\\"\"), nil, \"\"},\n\t},\n\twantOffset: len(\"\\\"living\\xde\\xad\\xbe\\xef\\\"\"),\n}, {\n\tname: name(\"ValidString/AllowInvalidUTF8/Value\"),\n\topts: DecodeOptions{AllowInvalidUTF8: true},\n\tin:   \"\\\"living\\xde\\xad\\xbe\\xef\\\"\",\n\tcalls: []decoderMethodCall{\n\t\t{'\"', RawValue(\"\\\"living\\xde\\xad\\xbe\\xef\\\"\"), nil, \"\"},\n\t},\n\twantOffset: len(\"\\\"living\\xde\\xad\\xbe\\xef\\\"\"),\n}, {\n\tname: name(\"InvalidString/RejectInvalidUTF8\"),\n\topts: DecodeOptions{AllowInvalidUTF8: false},\n\tin:   \"\\\"living\\xde\\xad\\xbe\\xef\\\"\",\n\tcalls: []decoderMethodCall{\n\t\t{'\"', zeroToken, (&SyntacticError{str: \"invalid UTF-8 within string\"}).withOffset(int64(len(\"\\\"living\\xde\\xad\"))), \"\"},\n\t\t{'\"', zeroValue, (&SyntacticError{str: \"invalid UTF-8 within string\"}).withOffset(int64(len(\"\\\"living\\xde\\xad\"))), \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedNumber\"),\n\tin:   `0.`,\n\tcalls: []decoderMethodCall{\n\t\t{'0', zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{'0', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"InvalidNumber\"),\n\tin:   `0.e`,\n\tcalls: []decoderMethodCall{\n\t\t{'0', zeroToken, newInvalidCharacterError([]byte(\"e\"), \"within number (expecting digit)\").withOffset(int64(len(`0.`))), \"\"},\n\t\t{'0', zeroValue, newInvalidCharacterError([]byte(\"e\"), \"within number (expecting digit)\").withOffset(int64(len(`0.`))), \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedObject/AfterStart\"),\n\tin:   `{`,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{0, zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{0, zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n\twantOffset: len(`{`),\n}, {\n\tname: name(\"TruncatedObject/AfterName\"),\n\tin:   `{\"0\"`,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"0\"), nil, \"\"},\n\t\t{0, zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{0, zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n\twantOffset: len(`{\"0\"`),\n}, {\n\tname: name(\"TruncatedObject/AfterColon\"),\n\tin:   `{\"0\":`,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"0\"), nil, \"\"},\n\t\t{0, zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{0, zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n\twantOffset: len(`{\"0\"`),\n}, {\n\tname: name(\"TruncatedObject/AfterValue\"),\n\tin:   `{\"0\":0`,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"0\"), nil, \"\"},\n\t\t{'0', Uint(0), nil, \"\"},\n\t\t{0, zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{0, zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n\twantOffset: len(`{\"0\":0`),\n}, {\n\tname: name(\"TruncatedObject/AfterComma\"),\n\tin:   `{\"0\":0,`,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"0\"), nil, \"\"},\n\t\t{'0', Uint(0), nil, \"\"},\n\t\t{0, zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{0, zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n\twantOffset: len(`{\"0\":0`),\n}, {\n\tname: name(\"InvalidObject/MissingColon\"),\n\tin:   ` { \"fizz\" \"buzz\" } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\"\\\"\"), \"after object name (expecting ':')\").withOffset(int64(len(` { \"fizz\" `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"fizz\"), nil, \"\"},\n\t\t{0, zeroToken, errMissingColon.withOffset(int64(len(` { \"fizz\" `))), \"\"},\n\t\t{0, zeroValue, errMissingColon.withOffset(int64(len(` { \"fizz\" `))), \"\"},\n\t},\n\twantOffset: len(` { \"fizz\"`),\n}, {\n\tname: name(\"InvalidObject/MissingColon/GotComma\"),\n\tin:   ` { \"fizz\" , \"buzz\" } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\",\"), \"after object name (expecting ':')\").withOffset(int64(len(` { \"fizz\" `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"fizz\"), nil, \"\"},\n\t\t{0, zeroToken, errMissingColon.withOffset(int64(len(` { \"fizz\" `))), \"\"},\n\t\t{0, zeroValue, errMissingColon.withOffset(int64(len(` { \"fizz\" `))), \"\"},\n\t},\n\twantOffset: len(` { \"fizz\"`),\n}, {\n\tname: name(\"InvalidObject/MissingColon/GotHash\"),\n\tin:   ` { \"fizz\" # \"buzz\" } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\"#\"), \"after object name (expecting ':')\").withOffset(int64(len(` { \"fizz\" `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"fizz\"), nil, \"\"},\n\t\t{0, zeroToken, errMissingColon.withOffset(int64(len(` { \"fizz\" `))), \"\"},\n\t\t{0, zeroValue, errMissingColon.withOffset(int64(len(` { \"fizz\" `))), \"\"},\n\t},\n\twantOffset: len(` { \"fizz\"`),\n}, {\n\tname: name(\"InvalidObject/MissingComma\"),\n\tin:   ` { \"fizz\" : \"buzz\" \"gazz\" } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\"\\\"\"), \"after object value (expecting ',' or '}')\").withOffset(int64(len(` { \"fizz\" : \"buzz\" `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"fizz\"), nil, \"\"},\n\t\t{'\"', String(\"buzz\"), nil, \"\"},\n\t\t{0, zeroToken, errMissingComma.withOffset(int64(len(` { \"fizz\" : \"buzz\" `))), \"\"},\n\t\t{0, zeroValue, errMissingComma.withOffset(int64(len(` { \"fizz\" : \"buzz\" `))), \"\"},\n\t},\n\twantOffset: len(` { \"fizz\" : \"buzz\"`),\n}, {\n\tname: name(\"InvalidObject/MissingComma/GotColon\"),\n\tin:   ` { \"fizz\" : \"buzz\" : \"gazz\" } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\":\"), \"after object value (expecting ',' or '}')\").withOffset(int64(len(` { \"fizz\" : \"buzz\" `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"fizz\"), nil, \"\"},\n\t\t{'\"', String(\"buzz\"), nil, \"\"},\n\t\t{0, zeroToken, errMissingComma.withOffset(int64(len(` { \"fizz\" : \"buzz\" `))), \"\"},\n\t\t{0, zeroValue, errMissingComma.withOffset(int64(len(` { \"fizz\" : \"buzz\" `))), \"\"},\n\t},\n\twantOffset: len(` { \"fizz\" : \"buzz\"`),\n}, {\n\tname: name(\"InvalidObject/MissingComma/GotHash\"),\n\tin:   ` { \"fizz\" : \"buzz\" # \"gazz\" } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\"#\"), \"after object value (expecting ',' or '}')\").withOffset(int64(len(` { \"fizz\" : \"buzz\" `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"fizz\"), nil, \"\"},\n\t\t{'\"', String(\"buzz\"), nil, \"\"},\n\t\t{0, zeroToken, errMissingComma.withOffset(int64(len(` { \"fizz\" : \"buzz\" `))), \"\"},\n\t\t{0, zeroValue, errMissingComma.withOffset(int64(len(` { \"fizz\" : \"buzz\" `))), \"\"},\n\t},\n\twantOffset: len(` { \"fizz\" : \"buzz\"`),\n}, {\n\tname: name(\"InvalidObject/ExtraComma/AfterStart\"),\n\tin:   ` { , } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\",\"), `at start of string (expecting '\"')`).withOffset(int64(len(` { `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{0, zeroToken, newInvalidCharacterError([]byte(\",\"), `before next token`).withOffset(int64(len(` { `))), \"\"},\n\t\t{0, zeroValue, newInvalidCharacterError([]byte(\",\"), `before next token`).withOffset(int64(len(` { `))), \"\"},\n\t},\n\twantOffset: len(` {`),\n}, {\n\tname: name(\"InvalidObject/ExtraComma/AfterValue\"),\n\tin:   ` { \"fizz\" : \"buzz\" , } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\"}\"), `at start of string (expecting '\"')`).withOffset(int64(len(` { \"fizz\" : \"buzz\" , `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"fizz\"), nil, \"\"},\n\t\t{'\"', String(\"buzz\"), nil, \"\"},\n\t\t{0, zeroToken, newInvalidCharacterError([]byte(\",\"), `before next token`).withOffset(int64(len(` { \"fizz\" : \"buzz\" `))), \"\"},\n\t\t{0, zeroValue, newInvalidCharacterError([]byte(\",\"), `before next token`).withOffset(int64(len(` { \"fizz\" : \"buzz\" `))), \"\"},\n\t},\n\twantOffset: len(` { \"fizz\" : \"buzz\"`),\n}, {\n\tname: name(\"InvalidObject/InvalidName/GotNull\"),\n\tin:   ` { null : null } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\"n\"), \"at start of string (expecting '\\\"')\").withOffset(int64(len(` { `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'n', zeroToken, errMissingName.withOffset(int64(len(` { `))), \"\"},\n\t\t{'n', zeroValue, errMissingName.withOffset(int64(len(` { `))), \"\"},\n\t},\n\twantOffset: len(` {`),\n}, {\n\tname: name(\"InvalidObject/InvalidName/GotFalse\"),\n\tin:   ` { false : false } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\"f\"), \"at start of string (expecting '\\\"')\").withOffset(int64(len(` { `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'f', zeroToken, errMissingName.withOffset(int64(len(` { `))), \"\"},\n\t\t{'f', zeroValue, errMissingName.withOffset(int64(len(` { `))), \"\"},\n\t},\n\twantOffset: len(` {`),\n}, {\n\tname: name(\"InvalidObject/InvalidName/GotTrue\"),\n\tin:   ` { true : true } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\"t\"), \"at start of string (expecting '\\\"')\").withOffset(int64(len(` { `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'t', zeroToken, errMissingName.withOffset(int64(len(` { `))), \"\"},\n\t\t{'t', zeroValue, errMissingName.withOffset(int64(len(` { `))), \"\"},\n\t},\n\twantOffset: len(` {`),\n}, {\n\tname: name(\"InvalidObject/InvalidName/GotNumber\"),\n\tin:   ` { 0 : 0 } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\"0\"), \"at start of string (expecting '\\\"')\").withOffset(int64(len(` { `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'0', zeroToken, errMissingName.withOffset(int64(len(` { `))), \"\"},\n\t\t{'0', zeroValue, errMissingName.withOffset(int64(len(` { `))), \"\"},\n\t},\n\twantOffset: len(` {`),\n}, {\n\tname: name(\"InvalidObject/InvalidName/GotObject\"),\n\tin:   ` { {} : {} } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\"{\"), \"at start of string (expecting '\\\"')\").withOffset(int64(len(` { `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'{', zeroToken, errMissingName.withOffset(int64(len(` { `))), \"\"},\n\t\t{'{', zeroValue, errMissingName.withOffset(int64(len(` { `))), \"\"},\n\t},\n\twantOffset: len(` {`),\n}, {\n\tname: name(\"InvalidObject/InvalidName/GotArray\"),\n\tin:   ` { [] : [] } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\"[\"), \"at start of string (expecting '\\\"')\").withOffset(int64(len(` { `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'[', zeroToken, errMissingName.withOffset(int64(len(` { `))), \"\"},\n\t\t{'[', zeroValue, errMissingName.withOffset(int64(len(` { `))), \"\"},\n\t},\n\twantOffset: len(` {`),\n}, {\n\tname: name(\"InvalidObject/MismatchingDelim\"),\n\tin:   ` { ] `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, newInvalidCharacterError([]byte(\"]\"), \"at start of string (expecting '\\\"')\").withOffset(int64(len(` { `))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{']', zeroToken, errMismatchDelim.withOffset(int64(len(` { `))), \"\"},\n\t\t{']', zeroValue, newInvalidCharacterError([]byte(\"]\"), \"at start of value\").withOffset(int64(len(` { `))), \"\"},\n\t},\n\twantOffset: len(` {`),\n}, {\n\tname: name(\"ValidObject/InvalidValue\"),\n\tin:   ` { } `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'}', zeroValue, newInvalidCharacterError([]byte(\"}\"), \"at start of value\").withOffset(int64(len(\" { \"))), \"\"},\n\t},\n\twantOffset: len(` {`),\n}, {\n\tname: name(\"ValidObject/UniqueNames\"),\n\tin:   `{\"0\":0,\"1\":1} `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"0\"), nil, \"\"},\n\t\t{'0', Uint(0), nil, \"\"},\n\t\t{'\"', String(\"1\"), nil, \"\"},\n\t\t{'0', Uint(1), nil, \"\"},\n\t\t{'}', ObjectEnd, nil, \"\"},\n\t},\n\twantOffset: len(`{\"0\":0,\"1\":1}`),\n}, {\n\tname: name(\"ValidObject/DuplicateNames\"),\n\topts: DecodeOptions{AllowDuplicateNames: true},\n\tin:   `{\"0\":0,\"0\":0} `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"0\"), nil, \"\"},\n\t\t{'0', Uint(0), nil, \"\"},\n\t\t{'\"', String(\"0\"), nil, \"\"},\n\t\t{'0', Uint(0), nil, \"\"},\n\t\t{'}', ObjectEnd, nil, \"\"},\n\t},\n\twantOffset: len(`{\"0\":0,\"0\":0}`),\n}, {\n\tname: name(\"InvalidObject/DuplicateNames\"),\n\tin:   `{\"0\":{},\"1\":{},\"0\":{}} `,\n\tcalls: []decoderMethodCall{\n\t\t{'{', zeroValue, (&SyntacticError{str: `duplicate name \"0\" in object`}).withOffset(int64(len(`{\"0\":{},\"1\":{},`))), \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'\"', String(\"0\"), nil, \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'}', ObjectEnd, nil, \"\"},\n\t\t{'\"', String(\"1\"), nil, \"\"},\n\t\t{'{', ObjectStart, nil, \"\"},\n\t\t{'}', ObjectEnd, nil, \"\"},\n\t\t{'\"', zeroToken, (&SyntacticError{str: `duplicate name \"0\" in object`}).withOffset(int64(len(`{\"0\":{},\"1\":{},`))), \"/1\"},\n\t\t{'\"', zeroValue, (&SyntacticError{str: `duplicate name \"0\" in object`}).withOffset(int64(len(`{\"0\":{},\"1\":{},`))), \"/1\"},\n\t},\n\twantOffset: len(`{\"0\":{},\"1\":{}`),\n}, {\n\tname: name(\"TruncatedArray/AfterStart\"),\n\tin:   `[`,\n\tcalls: []decoderMethodCall{\n\t\t{'[', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t\t{'[', ArrayStart, nil, \"\"},\n\t\t{0, zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{0, zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n\twantOffset: len(`[`),\n}, {\n\tname: name(\"TruncatedArray/AfterValue\"),\n\tin:   `[0`,\n\tcalls: []decoderMethodCall{\n\t\t{'[', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t\t{'[', ArrayStart, nil, \"\"},\n\t\t{'0', Uint(0), nil, \"\"},\n\t\t{0, zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{0, zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n\twantOffset: len(`[0`),\n}, {\n\tname: name(\"TruncatedArray/AfterComma\"),\n\tin:   `[0,`,\n\tcalls: []decoderMethodCall{\n\t\t{'[', zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t\t{'[', ArrayStart, nil, \"\"},\n\t\t{'0', Uint(0), nil, \"\"},\n\t\t{0, zeroToken, io.ErrUnexpectedEOF, \"\"},\n\t\t{0, zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n\twantOffset: len(`[0`),\n}, {\n\tname: name(\"InvalidArray/MissingComma\"),\n\tin:   ` [ \"fizz\" \"buzz\" ] `,\n\tcalls: []decoderMethodCall{\n\t\t{'[', zeroValue, newInvalidCharacterError([]byte(\"\\\"\"), \"after array value (expecting ',' or ']')\").withOffset(int64(len(` [ \"fizz\" `))), \"\"},\n\t\t{'[', ArrayStart, nil, \"\"},\n\t\t{'\"', String(\"fizz\"), nil, \"\"},\n\t\t{0, zeroToken, errMissingComma.withOffset(int64(len(` [ \"fizz\" `))), \"\"},\n\t\t{0, zeroValue, errMissingComma.withOffset(int64(len(` [ \"fizz\" `))), \"\"},\n\t},\n\twantOffset: len(` [ \"fizz\"`),\n}, {\n\tname: name(\"InvalidArray/MismatchingDelim\"),\n\tin:   ` [ } `,\n\tcalls: []decoderMethodCall{\n\t\t{'[', zeroValue, newInvalidCharacterError([]byte(\"}\"), \"at start of value\").withOffset(int64(len(` [ `))), \"\"},\n\t\t{'[', ArrayStart, nil, \"\"},\n\t\t{'}', zeroToken, errMismatchDelim.withOffset(int64(len(` { `))), \"\"},\n\t\t{'}', zeroValue, newInvalidCharacterError([]byte(\"}\"), \"at start of value\").withOffset(int64(len(` [ `))), \"\"},\n\t},\n\twantOffset: len(` [`),\n}, {\n\tname: name(\"ValidArray/InvalidValue\"),\n\tin:   ` [ ] `,\n\tcalls: []decoderMethodCall{\n\t\t{'[', ArrayStart, nil, \"\"},\n\t\t{']', zeroValue, newInvalidCharacterError([]byte(\"]\"), \"at start of value\").withOffset(int64(len(\" [ \"))), \"\"},\n\t},\n\twantOffset: len(` [`),\n}}\n\n// TestDecoderErrors test that Decoder errors occur when we expect and\n// leaves the Decoder in a consistent state.\nfunc TestDecoderErrors(t *testing.T) {\n\tfor _, td := range decoderErrorTestdata {\n\t\tt.Run(path.Join(td.name.name), func(t *testing.T) {\n\t\t\ttestDecoderErrors(t, td.name.where, td.opts, td.in, td.calls, td.wantOffset)\n\t\t})\n\t}\n}\nfunc testDecoderErrors(t *testing.T, where pc, opts DecodeOptions, in string, calls []decoderMethodCall, wantOffset int) {\n\tsrc := bytes.NewBufferString(in)\n\tdec := opts.NewDecoder(src)\n\tfor i, call := range calls {\n\t\tgotKind := dec.PeekKind()\n\t\tif gotKind != call.wantKind {\n\t\t\tt.Fatalf(\"%s: %d: Decoder.PeekKind = %v, want %v\", where, i, gotKind, call.wantKind)\n\t\t}\n\n\t\tvar gotErr error\n\t\tswitch wantOut := call.wantOut.(type) {\n\t\tcase Token:\n\t\t\tvar gotOut Token\n\t\t\tgotOut, gotErr = dec.ReadToken()\n\t\t\tif gotOut.String() != wantOut.String() {\n\t\t\t\tt.Fatalf(\"%s: %d: Decoder.ReadToken = %v, want %v\", where, i, gotOut, wantOut)\n\t\t\t}\n\t\tcase RawValue:\n\t\t\tvar gotOut RawValue\n\t\t\tgotOut, gotErr = dec.ReadValue()\n\t\t\tif string(gotOut) != string(wantOut) {\n\t\t\t\tt.Fatalf(\"%s: %d: Decoder.ReadValue = %s, want %s\", where, i, gotOut, wantOut)\n\t\t\t}\n\t\t}\n\t\tif !reflect.DeepEqual(gotErr, call.wantErr) {\n\t\t\tt.Fatalf(\"%s: %d: error mismatch: got %#v, want %#v\", where, i, gotErr, call.wantErr)\n\t\t}\n\t\tif call.wantPointer != \"\" {\n\t\t\tgotPointer := dec.StackPointer()\n\t\t\tif gotPointer != call.wantPointer {\n\t\t\t\tt.Fatalf(\"%s: %d: Decoder.StackPointer = %s, want %s\", where, i, gotPointer, call.wantPointer)\n\t\t\t}\n\t\t}\n\t}\n\tgotOffset := int(dec.InputOffset())\n\tif gotOffset != wantOffset {\n\t\tt.Fatalf(\"%s: Decoder.InputOffset = %v, want %v\", where, gotOffset, wantOffset)\n\t}\n\tgotUnread := string(dec.unreadBuffer()) // should be a prefix of wantUnread\n\twantUnread := in[wantOffset:]\n\tif !strings.HasPrefix(wantUnread, gotUnread) {\n\t\tt.Fatalf(\"%s: Decoder.UnreadBuffer = %v, want %v\", where, gotUnread, wantUnread)\n\t}\n}\n\nvar resumableDecoderTestdata = []string{\n\t`0`,\n\t`123456789`,\n\t`0.0`,\n\t`0.123456789`,\n\t`0e0`,\n\t`0e+0`,\n\t`0e123456789`,\n\t`0e+123456789`,\n\t`123456789.123456789e+123456789`,\n\t`-0`,\n\t`-123456789`,\n\t`-0.0`,\n\t`-0.123456789`,\n\t`-0e0`,\n\t`-0e-0`,\n\t`-0e123456789`,\n\t`-0e-123456789`,\n\t`-123456789.123456789e-123456789`,\n\n\t`\"\"`,\n\t`\"a\"`,\n\t`\"ab\"`,\n\t`\"abc\"`,\n\t`\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\"`,\n\t`\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"`,\n\t`\"\\u0022\\u005c\\u002f\\u0008\\u000c\\u000a\\u000d\\u0009\"`,\n\t`\"\\ud800\\udead\"`,\n\t\"\\\"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\U0001f602\\\"\",\n\t`\"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\ud83d\\ude02\"`,\n}\n\n// TestBufferDecoder tests that we detect misuses of bytes.Buffer with Decoder.\nfunc TestBufferDecoder(t *testing.T) {\n\tbb := bytes.NewBufferString(\"[null, false, true]\")\n\tdec := NewDecoder(bb)\n\tvar err error\n\tfor {\n\t\tif _, err = dec.ReadToken(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tbb.WriteByte(' ') // not allowed to write to the buffer while reading\n\t}\n\twant := &ioError{action: \"read\", err: errBufferWriteAfterNext}\n\tif !reflect.DeepEqual(err, want) {\n\t\tt.Fatalf(\"error mismatch: got %v, want %v\", err, want)\n\t}\n}\n\n// TestResumableDecoder tests that resume logic for parsing a\n// JSON string and number properly works across every possible split point.\nfunc TestResumableDecoder(t *testing.T) {\n\tfor _, want := range resumableDecoderTestdata {\n\t\tt.Run(\"\", func(t *testing.T) {\n\t\t\tdec := NewDecoder(iotest.OneByteReader(strings.NewReader(want)))\n\t\t\tgot, err := dec.ReadValue()\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Decoder.ReadValue error: %v\", err)\n\t\t\t}\n\t\t\tif string(got) != want {\n\t\t\t\tt.Fatalf(\"Decoder.ReadValue = %s, want %s\", got, want)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// TestBlockingDecoder verifies that JSON values except numbers can be\n// synchronously sent and received on a blocking pipe without a deadlock.\n// Numbers are the exception since termination cannot be determined until\n// either the pipe ends or a non-numeric character is encountered.\nfunc TestBlockingDecoder(t *testing.T) {\n\tvalues := []string{\"null\", \"false\", \"true\", `\"\"`, `{}`, `[]`}\n\n\tr, w := net.Pipe()\n\tdefer r.Close()\n\tdefer w.Close()\n\n\tenc := NewEncoder(w)\n\tenc.options.omitTopLevelNewline = true\n\tdec := NewDecoder(r)\n\n\terrCh := make(chan error)\n\n\t// Test synchronous ReadToken calls.\n\tfor _, want := range values {\n\t\tgo func() {\n\t\t\terrCh <- enc.WriteValue(RawValue(want))\n\t\t}()\n\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Decoder.ReadToken error: %v\", err)\n\t\t}\n\t\tgot := tok.String()\n\t\tswitch tok.Kind() {\n\t\tcase '\"':\n\t\t\tgot = `\"` + got + `\"`\n\t\tcase '{', '[':\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Decoder.ReadToken error: %v\", err)\n\t\t\t}\n\t\t\tgot += tok.String()\n\t\t}\n\t\tif got != want {\n\t\t\tt.Fatalf(\"ReadTokens = %s, want %s\", got, want)\n\t\t}\n\n\t\tif err := <-errCh; err != nil {\n\t\t\tt.Fatalf(\"Encoder.WriteValue error: %v\", err)\n\t\t}\n\t}\n\n\t// Test synchronous ReadValue calls.\n\tfor _, want := range values {\n\t\tgo func() {\n\t\t\terrCh <- enc.WriteValue(RawValue(want))\n\t\t}()\n\n\t\tgot, err := dec.ReadValue()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Decoder.ReadValue error: %v\", err)\n\t\t}\n\t\tif string(got) != want {\n\t\t\tt.Fatalf(\"ReadValue = %s, want %s\", got, want)\n\t\t}\n\n\t\tif err := <-errCh; err != nil {\n\t\t\tt.Fatalf(\"Encoder.WriteValue error: %v\", err)\n\t\t}\n\t}\n}\n\nfunc TestPeekableDecoder(t *testing.T) {\n\ttype operation any // PeekKind | ReadToken | ReadValue | BufferWrite\n\ttype PeekKind struct {\n\t\twant Kind\n\t}\n\ttype ReadToken struct {\n\t\twantKind Kind\n\t\twantErr  error\n\t}\n\ttype ReadValue struct {\n\t\twantKind Kind\n\t\twantErr  error\n\t}\n\ttype WriteString struct {\n\t\tin string\n\t}\n\tops := []operation{\n\t\tPeekKind{0},\n\t\tWriteString{\"[ \"},\n\t\tReadToken{0, io.EOF}, // previous error from PeekKind is cached once\n\t\tReadToken{'[', nil},\n\n\t\tPeekKind{0},\n\t\tWriteString{\"] \"},\n\t\tReadValue{0, io.ErrUnexpectedEOF}, // previous error from PeekKind is cached once\n\t\tReadValue{0, newInvalidCharacterError([]byte(\"]\"), \"at start of value\").withOffset(2)},\n\t\tReadToken{']', nil},\n\n\t\tWriteString{\"[ \"},\n\t\tReadToken{'[', nil},\n\n\t\tWriteString{\" null \"},\n\t\tPeekKind{'n'},\n\t\tPeekKind{'n'},\n\t\tReadToken{'n', nil},\n\n\t\tWriteString{\", \"},\n\t\tPeekKind{0},\n\t\tWriteString{\"fal\"},\n\t\tPeekKind{'f'},\n\t\tReadValue{0, io.ErrUnexpectedEOF},\n\t\tWriteString{\"se \"},\n\t\tReadValue{'f', nil},\n\n\t\tPeekKind{0},\n\t\tWriteString{\" , \"},\n\t\tPeekKind{0},\n\t\tWriteString{` \"\" `},\n\t\tReadValue{0, io.ErrUnexpectedEOF}, // previous error from PeekKind is cached once\n\t\tReadValue{'\"', nil},\n\n\t\tWriteString{\" , 0\"},\n\t\tPeekKind{'0'},\n\t\tReadToken{'0', nil},\n\n\t\tWriteString{\" , {} , []\"},\n\t\tPeekKind{'{'},\n\t\tReadValue{'{', nil},\n\t\tReadValue{'[', nil},\n\n\t\tWriteString{\"]\"},\n\t\tReadToken{']', nil},\n\t}\n\n\tbb := struct{ *bytes.Buffer }{new(bytes.Buffer)}\n\td := NewDecoder(bb)\n\tfor i, op := range ops {\n\t\tswitch op := op.(type) {\n\t\tcase PeekKind:\n\t\t\tif got := d.PeekKind(); got != op.want {\n\t\t\t\tt.Fatalf(\"%d: Decoder.PeekKind() = %v, want %v\", i, got, op.want)\n\t\t\t}\n\t\tcase ReadToken:\n\t\t\tgotTok, gotErr := d.ReadToken()\n\t\t\tgotKind := gotTok.Kind()\n\t\t\tif gotKind != op.wantKind || !reflect.DeepEqual(gotErr, op.wantErr) {\n\t\t\t\tt.Fatalf(\"%d: Decoder.ReadToken() = (%v, %v), want (%v, %v)\", i, gotKind, gotErr, op.wantKind, op.wantErr)\n\t\t\t}\n\t\tcase ReadValue:\n\t\t\tgotVal, gotErr := d.ReadValue()\n\t\t\tgotKind := gotVal.Kind()\n\t\t\tif gotKind != op.wantKind || !reflect.DeepEqual(gotErr, op.wantErr) {\n\t\t\t\tt.Fatalf(\"%d: Decoder.ReadValue() = (%v, %v), want (%v, %v)\", i, gotKind, gotErr, op.wantKind, op.wantErr)\n\t\t\t}\n\t\tcase WriteString:\n\t\t\tbb.WriteString(op.in)\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"unknown operation: %T\", op))\n\t\t}\n\t}\n}\n\nfunc TestConsumeWhitespace(t *testing.T) {\n\ttests := []struct {\n\t\tin   string\n\t\twant int\n\t}{\n\t\t{\"\", 0},\n\t\t{\"a\", 0},\n\t\t{\" a\", 1},\n\t\t{\" a \", 1},\n\t\t{\" \\n\\r\\ta\", 4},\n\t\t{\" \\n\\r\\t \\n\\r\\t \\n\\r\\t \\n\\r\\t\", 16},\n\t\t{\"\\u00a0\", 0}, // non-breaking space is not JSON whitespace\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(\"\", func(t *testing.T) {\n\t\t\tif got := consumeWhitespace([]byte(tt.in)); got != tt.want {\n\t\t\t\tt.Errorf(\"consumeWhitespace(%q) = %v, want %v\", tt.in, got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestConsumeLiteral(t *testing.T) {\n\ttests := []struct {\n\t\tliteral string\n\t\tin      string\n\t\twant    int\n\t\twantErr error\n\t}{\n\t\t{\"null\", \"\", 0, io.ErrUnexpectedEOF},\n\t\t{\"null\", \"n\", 1, io.ErrUnexpectedEOF},\n\t\t{\"null\", \"nu\", 2, io.ErrUnexpectedEOF},\n\t\t{\"null\", \"nul\", 3, io.ErrUnexpectedEOF},\n\t\t{\"null\", \"null\", 4, nil},\n\t\t{\"null\", \"nullx\", 4, nil},\n\t\t{\"null\", \"x\", 0, newInvalidCharacterError([]byte(\"x\"), \"within literal null (expecting 'n')\")},\n\t\t{\"null\", \"nuxx\", 2, newInvalidCharacterError([]byte(\"x\"), \"within literal null (expecting 'l')\")},\n\n\t\t{\"false\", \"\", 0, io.ErrUnexpectedEOF},\n\t\t{\"false\", \"f\", 1, io.ErrUnexpectedEOF},\n\t\t{\"false\", \"fa\", 2, io.ErrUnexpectedEOF},\n\t\t{\"false\", \"fal\", 3, io.ErrUnexpectedEOF},\n\t\t{\"false\", \"fals\", 4, io.ErrUnexpectedEOF},\n\t\t{\"false\", \"false\", 5, nil},\n\t\t{\"false\", \"falsex\", 5, nil},\n\t\t{\"false\", \"x\", 0, newInvalidCharacterError([]byte(\"x\"), \"within literal false (expecting 'f')\")},\n\t\t{\"false\", \"falsx\", 4, newInvalidCharacterError([]byte(\"x\"), \"within literal false (expecting 'e')\")},\n\n\t\t{\"true\", \"\", 0, io.ErrUnexpectedEOF},\n\t\t{\"true\", \"t\", 1, io.ErrUnexpectedEOF},\n\t\t{\"true\", \"tr\", 2, io.ErrUnexpectedEOF},\n\t\t{\"true\", \"tru\", 3, io.ErrUnexpectedEOF},\n\t\t{\"true\", \"true\", 4, nil},\n\t\t{\"true\", \"truex\", 4, nil},\n\t\t{\"true\", \"x\", 0, newInvalidCharacterError([]byte(\"x\"), \"within literal true (expecting 't')\")},\n\t\t{\"true\", \"trux\", 3, newInvalidCharacterError([]byte(\"x\"), \"within literal true (expecting 'e')\")},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(\"\", func(t *testing.T) {\n\t\t\tvar got int\n\t\t\tswitch tt.literal {\n\t\t\tcase \"null\":\n\t\t\t\tgot = consumeNull([]byte(tt.in))\n\t\t\tcase \"false\":\n\t\t\t\tgot = consumeFalse([]byte(tt.in))\n\t\t\tcase \"true\":\n\t\t\t\tgot = consumeTrue([]byte(tt.in))\n\t\t\tdefault:\n\t\t\t\tt.Errorf(\"invalid literal: %v\", tt.literal)\n\t\t\t}\n\t\t\tswitch {\n\t\t\tcase tt.wantErr == nil && got != tt.want:\n\t\t\t\tt.Errorf(\"consume%v(%q) = %v, want %v\", strings.Title(tt.literal), tt.in, got, tt.want)\n\t\t\tcase tt.wantErr != nil && got != 0:\n\t\t\t\tt.Errorf(\"consume%v(%q) = %v, want %v\", strings.Title(tt.literal), tt.in, got, 0)\n\t\t\t}\n\n\t\t\tgot, gotErr := consumeLiteral([]byte(tt.in), tt.literal)\n\t\t\tif got != tt.want || !reflect.DeepEqual(gotErr, tt.wantErr) {\n\t\t\t\tt.Errorf(\"consumeLiteral(%q, %q) = (%v, %v), want (%v, %v)\", tt.in, tt.literal, got, gotErr, tt.want, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestConsumeString(t *testing.T) {\n\ttests := []struct {\n\t\tin          string\n\t\tsimple      bool\n\t\twant        int\n\t\twantFlags   valueFlags\n\t\twantStr     string\n\t\twantErr     error\n\t\twantErrUTF8 error // error if validateUTF8 is specified\n\t}{\n\t\t{``, false, 0, 0, \"\", io.ErrUnexpectedEOF, nil},\n\t\t{`\"`, false, 1, 0, \"\", io.ErrUnexpectedEOF, nil},\n\t\t{`\"\"`, true, 2, 0, \"\", nil, nil},\n\t\t{`\"\"x`, true, 2, 0, \"\", nil, nil},\n\t\t{` \"\"x`, false, 0, 0, \"\", newInvalidCharacterError([]byte(\" \"), \"at start of string (expecting '\\\"')\"), nil},\n\t\t{`\"hello`, false, 6, 0, \"hello\", io.ErrUnexpectedEOF, nil},\n\t\t{`\"hello\"`, true, 7, 0, \"hello\", nil, nil},\n\t\t{\"\\\"\\x00\\\"\", false, 1, stringNonVerbatim | stringNonCanonical, \"\", newInvalidCharacterError([]byte(\"\\x00\"), \"within string (expecting non-control character)\"), nil},\n\t\t{`\"\\u0000\"`, false, 8, stringNonVerbatim, \"\\x00\", nil, nil},\n\t\t{\"\\\"\\x1f\\\"\", false, 1, stringNonVerbatim | stringNonCanonical, \"\", newInvalidCharacterError([]byte(\"\\x1f\"), \"within string (expecting non-control character)\"), nil},\n\t\t{`\"\\u001f\"`, false, 8, stringNonVerbatim, \"\\x1f\", nil, nil},\n\t\t{`\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\"`, true, 54, 0, \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\", nil, nil},\n\t\t{\"\\\" !#$%&'()*+,-./0123456789:;<=>?@[]^_`{|}~\\x7f\\\"\", true, 44, 0, \" !#$%&'()*+,-./0123456789:;<=>?@[]^_`{|}~\\x7f\", nil, nil},\n\t\t{\"\\\"x\\x80\\\"\", false, 4, stringNonVerbatim | stringNonCanonical, \"x\\ufffd\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"\\\"x\\xff\\\"\", false, 4, stringNonVerbatim | stringNonCanonical, \"x\\ufffd\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"\\\"x\\xc0\", false, 3, stringNonVerbatim | stringNonCanonical, \"x\\ufffd\", io.ErrUnexpectedEOF, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"\\\"x\\xc0\\x80\\\"\", false, 5, stringNonVerbatim | stringNonCanonical, \"x\\ufffd\\ufffd\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"\\\"x\\xe0\", false, 2, 0, \"x\", io.ErrUnexpectedEOF, io.ErrUnexpectedEOF},\n\t\t{\"\\\"x\\xe0\\x80\", false, 4, stringNonVerbatim | stringNonCanonical, \"x\\ufffd\\ufffd\", io.ErrUnexpectedEOF, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"\\\"x\\xe0\\x80\\x80\\\"\", false, 6, stringNonVerbatim | stringNonCanonical, \"x\\ufffd\\ufffd\\ufffd\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"\\\"x\\xf0\", false, 2, 0, \"x\", io.ErrUnexpectedEOF, io.ErrUnexpectedEOF},\n\t\t{\"\\\"x\\xf0\\x80\", false, 4, stringNonVerbatim | stringNonCanonical, \"x\\ufffd\\ufffd\", io.ErrUnexpectedEOF, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"\\\"x\\xf0\\x80\\x80\", false, 5, stringNonVerbatim | stringNonCanonical, \"x\\ufffd\\ufffd\\ufffd\", io.ErrUnexpectedEOF, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"\\\"x\\xf0\\x80\\x80\\x80\\\"\", false, 7, stringNonVerbatim | stringNonCanonical, \"x\\ufffd\\ufffd\\ufffd\\ufffd\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"\\\"x\\xed\\xba\\xad\\\"\", false, 6, stringNonVerbatim | stringNonCanonical, \"x\\ufffd\\ufffd\\ufffd\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"\\\"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\U0001f602\\\"\", false, 25, 0, \"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\U0001f602\", nil, nil},\n\t\t{`\"¢\"`[:2], false, 1, 0, \"\", io.ErrUnexpectedEOF, io.ErrUnexpectedEOF},\n\t\t{`\"¢\"`[:3], false, 3, 0, \"¢\", io.ErrUnexpectedEOF, io.ErrUnexpectedEOF}, // missing terminating quote\n\t\t{`\"¢\"`[:4], false, 4, 0, \"¢\", nil, nil},\n\t\t{`\"€\"`[:2], false, 1, 0, \"\", io.ErrUnexpectedEOF, io.ErrUnexpectedEOF},\n\t\t{`\"€\"`[:3], false, 1, 0, \"\", io.ErrUnexpectedEOF, io.ErrUnexpectedEOF},\n\t\t{`\"€\"`[:4], false, 4, 0, \"€\", io.ErrUnexpectedEOF, io.ErrUnexpectedEOF}, // missing terminating quote\n\t\t{`\"€\"`[:5], false, 5, 0, \"€\", nil, nil},\n\t\t{`\"𐍈\"`[:2], false, 1, 0, \"\", io.ErrUnexpectedEOF, io.ErrUnexpectedEOF},\n\t\t{`\"𐍈\"`[:3], false, 1, 0, \"\", io.ErrUnexpectedEOF, io.ErrUnexpectedEOF},\n\t\t{`\"𐍈\"`[:4], false, 1, 0, \"\", io.ErrUnexpectedEOF, io.ErrUnexpectedEOF},\n\t\t{`\"𐍈\"`[:5], false, 5, 0, \"𐍈\", io.ErrUnexpectedEOF, io.ErrUnexpectedEOF}, // missing terminating quote\n\t\t{`\"𐍈\"`[:6], false, 6, 0, \"𐍈\", nil, nil},\n\t\t{`\"x\\`, false, 2, stringNonVerbatim, \"x\", io.ErrUnexpectedEOF, nil},\n\t\t{`\"x\\\"`, false, 4, stringNonVerbatim, \"x\\\"\", io.ErrUnexpectedEOF, nil},\n\t\t{`\"x\\x\"`, false, 2, stringNonVerbatim | stringNonCanonical, \"x\", &SyntacticError{str: `invalid escape sequence \"\\\\x\" within string`}, nil},\n\t\t{`\"\\\"\\\\\\b\\f\\n\\r\\t\"`, false, 16, stringNonVerbatim, \"\\\"\\\\\\b\\f\\n\\r\\t\", nil, nil},\n\t\t{`\"/\"`, true, 3, 0, \"/\", nil, nil},\n\t\t{`\"\\/\"`, false, 4, stringNonVerbatim | stringNonCanonical, \"/\", nil, nil},\n\t\t{`\"\\u002f\"`, false, 8, stringNonVerbatim | stringNonCanonical, \"/\", nil, nil},\n\t\t{`\"\\u`, false, 1, stringNonVerbatim, \"\", io.ErrUnexpectedEOF, nil},\n\t\t{`\"\\uf`, false, 1, stringNonVerbatim, \"\", io.ErrUnexpectedEOF, nil},\n\t\t{`\"\\uff`, false, 1, stringNonVerbatim, \"\", io.ErrUnexpectedEOF, nil},\n\t\t{`\"\\ufff`, false, 1, stringNonVerbatim, \"\", io.ErrUnexpectedEOF, nil},\n\t\t{`\"\\ufffd`, false, 7, stringNonVerbatim | stringNonCanonical, \"\\ufffd\", io.ErrUnexpectedEOF, nil},\n\t\t{`\"\\ufffd\"`, false, 8, stringNonVerbatim | stringNonCanonical, \"\\ufffd\", nil, nil},\n\t\t{`\"\\uABCD\"`, false, 8, stringNonVerbatim | stringNonCanonical, \"\\uabcd\", nil, nil},\n\t\t{`\"\\uefX0\"`, false, 1, stringNonVerbatim | stringNonCanonical, \"\", &SyntacticError{str: `invalid escape sequence \"\\\\uefX0\" within string`}, nil},\n\t\t{`\"\\uDEAD`, false, 7, stringNonVerbatim | stringNonCanonical, \"\\ufffd\", io.ErrUnexpectedEOF, io.ErrUnexpectedEOF},\n\t\t{`\"\\uDEAD\"`, false, 8, stringNonVerbatim | stringNonCanonical, \"\\ufffd\", nil, &SyntacticError{str: `invalid escape sequence \"\\\"\" within string`}},\n\t\t{`\"\\uDEAD______\"`, false, 14, stringNonVerbatim | stringNonCanonical, \"\\ufffd______\", nil, &SyntacticError{str: \"invalid unpaired surrogate half within string\"}},\n\t\t{`\"\\uDEAD\\uXXXX\"`, false, 7, stringNonVerbatim | stringNonCanonical, \"\\ufffd\", &SyntacticError{str: `invalid escape sequence \"\\\\uXXXX\" within string`}, nil},\n\t\t{`\"\\uDEAD\\uBEEF\"`, false, 14, stringNonVerbatim | stringNonCanonical, \"\\ufffd\\ubeef\", nil, &SyntacticError{str: `invalid surrogate pair in string`}},\n\t\t{`\"\\uD800\\udead\"`, false, 14, stringNonVerbatim | stringNonCanonical, \"\\U000102ad\", nil, nil},\n\t\t{`\"\\u0022\\u005c\\u002f\\u0008\\u000c\\u000a\\u000d\\u0009\"`, false, 50, stringNonVerbatim | stringNonCanonical, \"\\\"\\\\/\\b\\f\\n\\r\\t\", nil, nil},\n\t\t{`\"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\ud83d\\ude02\"`, false, 56, stringNonVerbatim | stringNonCanonical, \"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\U0001f602\", nil, nil},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(\"\", func(t *testing.T) {\n\t\t\tswitch got := consumeSimpleString([]byte(tt.in)); {\n\t\t\tcase tt.simple && got != tt.want:\n\t\t\t\tt.Errorf(\"consumeSimpleString(%q) = %v, want %v\", tt.in, got, tt.want)\n\t\t\tcase !tt.simple && got != 0:\n\t\t\t\tt.Errorf(\"consumeSimpleString(%q) = %v, want %v\", tt.in, got, 0)\n\t\t\t}\n\n\t\t\tvar gotFlags valueFlags\n\t\t\tgot, gotErr := consumeString(&gotFlags, []byte(tt.in), false)\n\t\t\tif gotFlags != tt.wantFlags {\n\t\t\t\tt.Errorf(\"consumeString(%q, false) flags = %v, want %v\", tt.in, gotFlags, tt.wantFlags)\n\t\t\t}\n\t\t\tif got != tt.want || !reflect.DeepEqual(gotErr, tt.wantErr) {\n\t\t\t\tt.Errorf(\"consumeString(%q, false) = (%v, %v), want (%v, %v)\", tt.in, got, gotErr, tt.want, tt.wantErr)\n\t\t\t}\n\t\t\tswitch got, gotErr := consumeString(&gotFlags, []byte(tt.in), true); {\n\t\t\tcase tt.wantErrUTF8 == nil && (got != tt.want || !reflect.DeepEqual(gotErr, tt.wantErr)):\n\t\t\t\tt.Errorf(\"consumeString(%q, true) = (%v, %v), want (%v, %v)\", tt.in, got, gotErr, tt.want, tt.wantErr)\n\t\t\tcase tt.wantErrUTF8 != nil && (got > tt.want || !reflect.DeepEqual(gotErr, tt.wantErrUTF8)):\n\t\t\t\tt.Errorf(\"consumeString(%q, true) = (%v, %v), want (%v, %v)\", tt.in, got, gotErr, tt.want, tt.wantErrUTF8)\n\t\t\t}\n\n\t\t\tgotStr, gotOk := unescapeString(nil, []byte(tt.in[:got]))\n\t\t\twantOk := tt.wantErr == nil\n\t\t\tif string(gotStr) != tt.wantStr || gotOk != wantOk {\n\t\t\t\tt.Errorf(\"unescapeString(nil, %q) = (%q, %v), want (%q, %v)\", tt.in[:got], gotStr, gotOk, tt.wantStr, wantOk)\n\t\t\t}\n\t\t\tif _, gotOk := unescapeString(nil, []byte(tt.in)); got < len(tt.in) && gotOk {\n\t\t\t\tt.Errorf(\"unescapeString(nil, %q) = (_, true), want (_, false)\", tt.in)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestConsumeNumber(t *testing.T) {\n\ttests := []struct {\n\t\tin      string\n\t\tsimple  bool\n\t\twant    int\n\t\twantErr error\n\t}{\n\t\t{\"\", false, 0, io.ErrUnexpectedEOF},\n\t\t{`\"NaN\"`, false, 0, newInvalidCharacterError([]byte(\"\\\"\"), \"within number (expecting digit)\")},\n\t\t{`\"Infinity\"`, false, 0, newInvalidCharacterError([]byte(\"\\\"\"), \"within number (expecting digit)\")},\n\t\t{`\"-Infinity\"`, false, 0, newInvalidCharacterError([]byte(\"\\\"\"), \"within number (expecting digit)\")},\n\t\t{\".0\", false, 0, newInvalidCharacterError([]byte(\".\"), \"within number (expecting digit)\")},\n\t\t{\"0\", true, 1, nil},\n\t\t{\"-0\", false, 2, nil},\n\t\t{\"+0\", false, 0, newInvalidCharacterError([]byte(\"+\"), \"within number (expecting digit)\")},\n\t\t{\"1\", true, 1, nil},\n\t\t{\"-1\", false, 2, nil},\n\t\t{\"00\", true, 1, nil},\n\t\t{\"-00\", false, 2, nil},\n\t\t{\"01\", true, 1, nil},\n\t\t{\"-01\", false, 2, nil},\n\t\t{\"0i\", true, 1, nil},\n\t\t{\"-0i\", false, 2, nil},\n\t\t{\"0f\", true, 1, nil},\n\t\t{\"-0f\", false, 2, nil},\n\t\t{\"9876543210\", true, 10, nil},\n\t\t{\"-9876543210\", false, 11, nil},\n\t\t{\"9876543210x\", true, 10, nil},\n\t\t{\"-9876543210x\", false, 11, nil},\n\t\t{\" 9876543210\", true, 0, newInvalidCharacterError([]byte(\" \"), \"within number (expecting digit)\")},\n\t\t{\"- 9876543210\", false, 1, newInvalidCharacterError([]byte(\" \"), \"within number (expecting digit)\")},\n\t\t{strings.Repeat(\"9876543210\", 1000), true, 10000, nil},\n\t\t{\"-\" + strings.Repeat(\"9876543210\", 1000), false, 1 + 10000, nil},\n\t\t{\"0.\", false, 1, io.ErrUnexpectedEOF},\n\t\t{\"-0.\", false, 2, io.ErrUnexpectedEOF},\n\t\t{\"0e\", false, 1, io.ErrUnexpectedEOF},\n\t\t{\"-0e\", false, 2, io.ErrUnexpectedEOF},\n\t\t{\"0E\", false, 1, io.ErrUnexpectedEOF},\n\t\t{\"-0E\", false, 2, io.ErrUnexpectedEOF},\n\t\t{\"0.0\", false, 3, nil},\n\t\t{\"-0.0\", false, 4, nil},\n\t\t{\"0e0\", false, 3, nil},\n\t\t{\"-0e0\", false, 4, nil},\n\t\t{\"0E0\", false, 3, nil},\n\t\t{\"-0E0\", false, 4, nil},\n\t\t{\"0.0123456789\", false, 12, nil},\n\t\t{\"-0.0123456789\", false, 13, nil},\n\t\t{\"1.f\", false, 2, newInvalidCharacterError([]byte(\"f\"), \"within number (expecting digit)\")},\n\t\t{\"-1.f\", false, 3, newInvalidCharacterError([]byte(\"f\"), \"within number (expecting digit)\")},\n\t\t{\"1.e\", false, 2, newInvalidCharacterError([]byte(\"e\"), \"within number (expecting digit)\")},\n\t\t{\"-1.e\", false, 3, newInvalidCharacterError([]byte(\"e\"), \"within number (expecting digit)\")},\n\t\t{\"1e0\", false, 3, nil},\n\t\t{\"-1e0\", false, 4, nil},\n\t\t{\"1E0\", false, 3, nil},\n\t\t{\"-1E0\", false, 4, nil},\n\t\t{\"1Ex\", false, 2, newInvalidCharacterError([]byte(\"x\"), \"within number (expecting digit)\")},\n\t\t{\"-1Ex\", false, 3, newInvalidCharacterError([]byte(\"x\"), \"within number (expecting digit)\")},\n\t\t{\"1e-0\", false, 4, nil},\n\t\t{\"-1e-0\", false, 5, nil},\n\t\t{\"1e+0\", false, 4, nil},\n\t\t{\"-1e+0\", false, 5, nil},\n\t\t{\"1E-0\", false, 4, nil},\n\t\t{\"-1E-0\", false, 5, nil},\n\t\t{\"1E+0\", false, 4, nil},\n\t\t{\"-1E+0\", false, 5, nil},\n\t\t{\"1E+00500\", false, 8, nil},\n\t\t{\"-1E+00500\", false, 9, nil},\n\t\t{\"1E+00500x\", false, 8, nil},\n\t\t{\"-1E+00500x\", false, 9, nil},\n\t\t{\"9876543210.0123456789e+01234589x\", false, 31, nil},\n\t\t{\"-9876543210.0123456789e+01234589x\", false, 32, nil},\n\t\t{\"1_000_000\", true, 1, nil},\n\t\t{\"0x12ef\", true, 1, nil},\n\t\t{\"0x1p-2\", true, 1, nil},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(\"\", func(t *testing.T) {\n\t\t\tswitch got := consumeSimpleNumber([]byte(tt.in)); {\n\t\t\tcase tt.simple && got != tt.want:\n\t\t\t\tt.Errorf(\"consumeSimpleNumber(%q) = %v, want %v\", tt.in, got, tt.want)\n\t\t\tcase !tt.simple && got != 0:\n\t\t\t\tt.Errorf(\"consumeSimpleNumber(%q) = %v, want %v\", tt.in, got, 0)\n\t\t\t}\n\n\t\t\tgot, gotErr := consumeNumber([]byte(tt.in))\n\t\t\tif got != tt.want || !reflect.DeepEqual(gotErr, tt.wantErr) {\n\t\t\t\tt.Errorf(\"consumeNumber(%q) = (%v, %v), want (%v, %v)\", tt.in, got, gotErr, tt.want, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestParseHexUint16(t *testing.T) {\n\ttests := []struct {\n\t\tin     string\n\t\twant   uint16\n\t\twantOk bool\n\t}{\n\t\t{\"\", 0, false},\n\t\t{\"a\", 0, false},\n\t\t{\"ab\", 0, false},\n\t\t{\"abc\", 0, false},\n\t\t{\"abcd\", 0xabcd, true},\n\t\t{\"abcde\", 0, false},\n\t\t{\"9eA1\", 0x9ea1, true},\n\t\t{\"gggg\", 0, false},\n\t\t{\"0000\", 0x0000, true},\n\t\t{\"1234\", 0x1234, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(\"\", func(t *testing.T) {\n\t\t\tgot, gotOk := parseHexUint16([]byte(tt.in))\n\t\t\tif got != tt.want || gotOk != tt.wantOk {\n\t\t\t\tt.Errorf(\"parseHexUint16(%q) = (0x%04x, %v), want (0x%04x, %v)\", tt.in, got, gotOk, tt.want, tt.wantOk)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestParseDecUint(t *testing.T) {\n\ttests := []struct {\n\t\tin     string\n\t\twant   uint64\n\t\twantOk bool\n\t}{\n\t\t{\"\", 0, false},\n\t\t{\"0\", 0, true},\n\t\t{\"1\", 1, true},\n\t\t{\"-1\", 0, false},\n\t\t{\"1f\", 0, false},\n\t\t{\"00\", 0, true},\n\t\t{\"01\", 1, true},\n\t\t{\"10\", 10, true},\n\t\t{\"10.9\", 0, false},\n\t\t{\" 10\", 0, false},\n\t\t{\"10 \", 0, false},\n\t\t{\"123456789\", 123456789, true},\n\t\t{\"123456789d\", 0, false},\n\t\t{\"18446744073709551614\", math.MaxUint64 - 1, true},\n\t\t{\"18446744073709551615\", math.MaxUint64, true},\n\t\t{\"99999999999999999999999999999999\", math.MaxUint64, false},\n\t\t{\"99999999999999999999999999999999f\", 0, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(\"\", func(t *testing.T) {\n\t\t\tgot, gotOk := parseDecUint([]byte(tt.in))\n\t\t\tif got != tt.want || gotOk != tt.wantOk {\n\t\t\t\tt.Errorf(\"parseDecUint(%q) = (%v, %v), want (%v, %v)\", tt.in, got, gotOk, tt.want, tt.wantOk)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestParseFloat(t *testing.T) {\n\ttests := []struct {\n\t\tin     string\n\t\twant32 float64\n\t\twant64 float64\n\t\twantOk bool\n\t}{\n\t\t{\"0\", 0, 0, true},\n\t\t{\"-1\", -1, -1, true},\n\t\t{\"1\", 1, 1, true},\n\n\t\t{\"-16777215\", -16777215, -16777215, true}, // -(1<<24 - 1)\n\t\t{\"16777215\", 16777215, 16777215, true},    // +(1<<24 - 1)\n\t\t{\"-16777216\", -16777216, -16777216, true}, // -(1<<24)\n\t\t{\"16777216\", 16777216, 16777216, true},    // +(1<<24)\n\t\t{\"-16777217\", -16777216, -16777217, true}, // -(1<<24 + 1)\n\t\t{\"16777217\", 16777216, 16777217, true},    // +(1<<24 + 1)\n\n\t\t{\"-9007199254740991\", -9007199254740992, -9007199254740991, true}, // -(1<<53 - 1)\n\t\t{\"9007199254740991\", 9007199254740992, 9007199254740991, true},    // +(1<<53 - 1)\n\t\t{\"-9007199254740992\", -9007199254740992, -9007199254740992, true}, // -(1<<53)\n\t\t{\"9007199254740992\", 9007199254740992, 9007199254740992, true},    // +(1<<53)\n\t\t{\"-9007199254740993\", -9007199254740992, -9007199254740992, true}, // -(1<<53 + 1)\n\t\t{\"9007199254740993\", 9007199254740992, 9007199254740992, true},    // +(1<<53 + 1)\n\n\t\t{\"-1e1000\", -math.MaxFloat32, -math.MaxFloat64, true},\n\t\t{\"1e1000\", +math.MaxFloat32, +math.MaxFloat64, true},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(\"\", func(t *testing.T) {\n\t\t\tgot32, gotOk32 := parseFloat([]byte(tt.in), 32)\n\t\t\tif got32 != tt.want32 || gotOk32 != tt.wantOk {\n\t\t\t\tt.Errorf(\"parseFloat(%q, 32) = (%v, %v), want (%v, %v)\", tt.in, got32, gotOk32, tt.want32, tt.wantOk)\n\t\t\t}\n\n\t\t\tgot64, gotOk64 := parseFloat([]byte(tt.in), 64)\n\t\t\tif got64 != tt.want64 || gotOk64 != tt.wantOk {\n\t\t\t\tt.Errorf(\"parseFloat(%q, 64) = (%v, %v), want (%v, %v)\", tt.in, got64, gotOk64, tt.want64, tt.wantOk)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/diff_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json_test\n\nimport (\n\t\"errors\"\n\t\"math\"\n\t\"path\"\n\t\"reflect\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\tjsonv1 \"encoding/json\"\n\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// NOTE: This file serves as a list of semantic differences between v1 and v2.\n// Each test explains how v1 behaves, how v2 behaves, and\n// a rationale for why the behavior was changed.\n\nvar jsonPackages = []struct {\n\tVersion   string\n\tMarshal   func(any) ([]byte, error)\n\tUnmarshal func([]byte, any) error\n}{\n\t{\"v1\", jsonv1.Marshal, jsonv1.Unmarshal},\n\t{\"v2\", jsonv2.Marshal, jsonv2.Unmarshal},\n}\n\n// In v1, unmarshal matches struct fields using a case-insensitive match.\n// In v2, unmarshal matches struct fields using a case-sensitive match.\n//\n// Case-insensitive matching is a surprising default and\n// incurs significant performance cost when unmarshaling unknown fields.\n// In v2, we can opt into v1-like behavior with the `nocase` tag option.\n// The case-insensitive matching performed by v2 is looser than that of v1\n// where it also ignores dashes and underscores.\n// This allows v2 to match fields regardless of whether the name is in\n// snake_case, camelCase, or kebab-case.\n//\n// Related issue:\n//\n//\thttps://go.dev/issue/14750\nfunc TestCaseSensitivity(t *testing.T) {\n\ttype Fields struct {\n\t\tFieldA bool\n\t\tFieldB bool `json:\"fooBar\"`\n\t\tFieldC bool `json:\"fizzBuzz,nocase\"` // `nocase` is used by v2 to explicitly enable case-insensitive matching\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Unmarshal\", json.Version), func(t *testing.T) {\n\t\t\t// This is a mapping from Go field names to JSON member names to\n\t\t\t// whether the JSON member name would match the Go field name.\n\t\t\ttype goName = string\n\t\t\ttype jsonName = string\n\t\t\tonlyV1 := json.Version == \"v1\"\n\t\t\tonlyV2 := json.Version == \"v2\"\n\t\t\tallMatches := map[goName]map[jsonName]bool{\n\t\t\t\t\"FieldA\": {\n\t\t\t\t\t\"FieldA\": true,   // exact match\n\t\t\t\t\t\"fielda\": onlyV1, // v1 is case-insensitive by default\n\t\t\t\t\t\"fieldA\": onlyV1, // v1 is case-insensitive by default\n\t\t\t\t\t\"FIELDA\": onlyV1, // v1 is case-insensitive by default\n\t\t\t\t\t\"FieldB\": false,\n\t\t\t\t\t\"FieldC\": false,\n\t\t\t\t},\n\t\t\t\t\"FieldB\": {\n\t\t\t\t\t\"fooBar\":   true,   // exact match for explicitly specified JSON name\n\t\t\t\t\t\"FooBar\":   onlyV1, // v1 is case-insensitive even if an explicit JSON name is provided\n\t\t\t\t\t\"foobar\":   onlyV1, // v1 is case-insensitive even if an explicit JSON name is provided\n\t\t\t\t\t\"FOOBAR\":   onlyV1, // v1 is case-insensitive even if an explicit JSON name is provided\n\t\t\t\t\t\"fizzBuzz\": false,\n\t\t\t\t\t\"FieldA\":   false,\n\t\t\t\t\t\"FieldB\":   false, // explicit JSON name means that the Go field name is not used for matching\n\t\t\t\t\t\"FieldC\":   false,\n\t\t\t\t},\n\t\t\t\t\"FieldC\": {\n\t\t\t\t\t\"fizzBuzz\":  true,   // exact match for explicitly specified JSON name\n\t\t\t\t\t\"fizzbuzz\":  true,   // v2 is case-insensitive due to `nocase` tag\n\t\t\t\t\t\"FIZZBUZZ\":  true,   // v2 is case-insensitive due to `nocase` tag\n\t\t\t\t\t\"fizz_buzz\": onlyV2, // case-insensitivity in v2 ignores dashes and underscores\n\t\t\t\t\t\"fizz-buzz\": onlyV2, // case-insensitivity in v2 ignores dashes and underscores\n\t\t\t\t\t\"fooBar\":    false,\n\t\t\t\t\t\"FieldA\":    false,\n\t\t\t\t\t\"FieldC\":    false, // explicit JSON name means that the Go field name is not used for matching\n\t\t\t\t\t\"FieldB\":    false,\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tfor goFieldName, matches := range allMatches {\n\t\t\t\tfor jsonMemberName, wantMatch := range matches {\n\t\t\t\t\tin := `{\"` + jsonMemberName + `\":true}`\n\t\t\t\t\tvar s Fields\n\t\t\t\t\tif err := json.Unmarshal([]byte(in), &s); err != nil {\n\t\t\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\t\t\t}\n\t\t\t\t\tgotMatch := reflect.ValueOf(s).FieldByName(goFieldName).Bool()\n\t\t\t\t\tif gotMatch != wantMatch {\n\t\t\t\t\t\tt.Fatalf(\"%T.%s = %v, want %v\", s, goFieldName, gotMatch, wantMatch)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, the \"omitempty\" option specifies that a struct field is omitted\n// when marshaling if it is an empty Go value, which is defined as\n// false, 0, a nil pointer, a nil interface value, and\n// any empty array, slice, map, or string.\n//\n// In v2, the \"omitempty\" option specifies that a struct field is omitted\n// when marshaling if it is an empty JSON value, which is defined as\n// a JSON null or empty JSON string, object, or array.\n//\n// In v2, we also provide the \"omitzero\" option which specifies that a field\n// is omitted if it is the zero Go value or if it implements an \"IsZero() bool\"\n// method that reports true. Together, \"omitzero\" and \"omitempty\" can cover\n// all the prior use cases of the v1 definition of \"omitempty\".\n// Note that \"omitempty\" is defined in terms of the Go type system in v1,\n// but now defined in terms of the JSON type system in v2.\n//\n// Related issues:\n//\n//\thttps://go.dev/issue/11939\n//\thttps://go.dev/issue/22480\n//\thttps://go.dev/issue/29310\n//\thttps://go.dev/issue/32675\n//\thttps://go.dev/issue/45669\n//\thttps://go.dev/issue/45787\n//\thttps://go.dev/issue/50480\n//\thttps://go.dev/issue/52803\nfunc TestOmitEmptyOption(t *testing.T) {\n\ttype Struct struct {\n\t\tFoo string  `json:\",omitempty\"`\n\t\tBar []int   `json:\",omitempty\"`\n\t\tBaz *Struct `json:\",omitempty\"`\n\t}\n\ttype Types struct {\n\t\tBool       bool              `json:\",omitempty\"`\n\t\tStringA    string            `json:\",omitempty\"`\n\t\tStringB    string            `json:\",omitempty\"`\n\t\tBytesA     []byte            `json:\",omitempty\"`\n\t\tBytesB     []byte            `json:\",omitempty\"`\n\t\tBytesC     []byte            `json:\",omitempty\"`\n\t\tInt        int               `json:\",omitempty\"`\n\t\tMapA       map[string]string `json:\",omitempty\"`\n\t\tMapB       map[string]string `json:\",omitempty\"`\n\t\tMapC       map[string]string `json:\",omitempty\"`\n\t\tStructA    Struct            `json:\",omitempty\"`\n\t\tStructB    Struct            `json:\",omitempty\"`\n\t\tStructC    Struct            `json:\",omitempty\"`\n\t\tSliceA     []string          `json:\",omitempty\"`\n\t\tSliceB     []string          `json:\",omitempty\"`\n\t\tSliceC     []string          `json:\",omitempty\"`\n\t\tArray      [1]string         `json:\",omitempty\"`\n\t\tPointerA   *string           `json:\",omitempty\"`\n\t\tPointerB   *string           `json:\",omitempty\"`\n\t\tPointerC   *string           `json:\",omitempty\"`\n\t\tInterfaceA any               `json:\",omitempty\"`\n\t\tInterfaceB any               `json:\",omitempty\"`\n\t\tInterfaceC any               `json:\",omitempty\"`\n\t\tInterfaceD any               `json:\",omitempty\"`\n\t}\n\n\tsomething := \"something\"\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Marshal\", json.Version), func(t *testing.T) {\n\t\t\tin := Types{\n\t\t\t\tBool:       false,\n\t\t\t\tStringA:    \"\",\n\t\t\t\tStringB:    something,\n\t\t\t\tBytesA:     nil,\n\t\t\t\tBytesB:     []byte{},\n\t\t\t\tBytesC:     []byte(something),\n\t\t\t\tInt:        0,\n\t\t\t\tMapA:       nil,\n\t\t\t\tMapB:       map[string]string{},\n\t\t\t\tMapC:       map[string]string{something: something},\n\t\t\t\tStructA:    Struct{},\n\t\t\t\tStructB:    Struct{Bar: []int{}, Baz: new(Struct)},\n\t\t\t\tStructC:    Struct{Foo: something},\n\t\t\t\tSliceA:     nil,\n\t\t\t\tSliceB:     []string{},\n\t\t\t\tSliceC:     []string{something},\n\t\t\t\tArray:      [1]string{something},\n\t\t\t\tPointerA:   nil,\n\t\t\t\tPointerB:   new(string),\n\t\t\t\tPointerC:   &something,\n\t\t\t\tInterfaceA: nil,\n\t\t\t\tInterfaceB: (*string)(nil),\n\t\t\t\tInterfaceC: new(string),\n\t\t\t\tInterfaceD: &something,\n\t\t\t}\n\t\t\tb, err := json.Marshal(in)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"json.Marshal error: %v\", err)\n\t\t\t}\n\t\t\tvar out map[string]any\n\t\t\tif err := json.Unmarshal(b, &out); err != nil {\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\t}\n\n\t\t\tonlyV1 := json.Version == \"v1\"\n\t\t\tonlyV2 := json.Version == \"v2\"\n\t\t\twantPresent := map[string]bool{\n\t\t\t\t\"Bool\":       onlyV2, // false is an empty Go bool, but is NOT an empty JSON value\n\t\t\t\t\"StringA\":    false,\n\t\t\t\t\"StringB\":    true,\n\t\t\t\t\"BytesA\":     false,\n\t\t\t\t\"BytesB\":     false,\n\t\t\t\t\"BytesC\":     true,\n\t\t\t\t\"Int\":        onlyV2, // 0 is an empty Go integer, but NOT an empty JSON value\n\t\t\t\t\"MapA\":       false,\n\t\t\t\t\"MapB\":       false,\n\t\t\t\t\"MapC\":       true,\n\t\t\t\t\"StructA\":    onlyV1, // Struct{} is NOT an empty Go value, but {} is an empty JSON value\n\t\t\t\t\"StructB\":    onlyV1, // Struct{...} is NOT an empty Go value, but {} is an empty JSON value\n\t\t\t\t\"StructC\":    true,\n\t\t\t\t\"SliceA\":     false,\n\t\t\t\t\"SliceB\":     false,\n\t\t\t\t\"SliceC\":     true,\n\t\t\t\t\"Array\":      true,\n\t\t\t\t\"PointerA\":   false,\n\t\t\t\t\"PointerB\":   onlyV1, // new(string) is NOT a nil Go pointer, but \"\" is an empty JSON value\n\t\t\t\t\"PointerC\":   true,\n\t\t\t\t\"InterfaceA\": false,\n\t\t\t\t\"InterfaceB\": onlyV1, // (*string)(nil) is NOT a nil Go interface, but null is an empty JSON value\n\t\t\t\t\"InterfaceC\": onlyV1, // new(string) is NOT a nil Go interface, but \"\" is an empty JSON value\n\t\t\t\t\"InterfaceD\": true,\n\t\t\t}\n\t\t\tfor field, want := range wantPresent {\n\t\t\t\t_, got := out[field]\n\t\t\t\tif got != want {\n\t\t\t\t\tt.Fatalf(\"%T.%s = %v, want %v\", in, field, got, want)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc addr[T any](v T) *T {\n\treturn &v\n}\n\n// In v1, the \"string\" option specifies that Go bools and numeric values are\n// encoded within a JSON string when marshaling and are unmarshaled from\n// either the native JSON representation (i.e., a JSON bool or number) or\n// its native representation escaped within a JSON string.\n// The \"string\" option is not applied recursively, and\n// so does not affect bools and numeric values within a Go slice or map, but\n// does have special handling to affect the underlying value within a pointer.\n// When unmarshaling, the \"string\" option permits decoding from a JSON null\n// escaped within a JSON string in some inconsistent cases.\n//\n// In v2, the \"string\" option specifies that only numeric values are encoded as\n// a JSON number within a JSON string when marshaling and are unmarshaled\n// from either a JSON number or a JSON string containing a JSON number.\n// The \"string\" option is applied recursively to all numeric sub-values,\n// and thus affects numeric values within a Go slice or map.\n// There is no support for escaped JSON nulls within a JSON string.\n//\n// The main utility for stringifying JSON primitives (i.e., bools and numbers)\n// is because JSON parsers often represents numbers as IEEE 754\n// floating-point numbers. This results in a loss of precision when trying to\n// represent 64-bit integer values. Consequently, many JSON-based APIs actually\n// requires that such values be encoded within a JSON string.\n// Given the main utility of stringification is for numeric values,\n// v2 limits the effect of the \"string\" option to just numeric Go types.\n// According to all code known by the Go module proxy,\n// there are close to zero usages of the \"string\" option with a Go bool.\n//\n// Regarding the recursive application of the \"string\" option,\n// there have been a number of issues filed about users being surprised that\n// the \"string\" option does not recursively affect numeric values\n// within a composite type like a Go map, slice, or interface value.\n// In v1, specifying the \"string\" option on composite type has no effect\n// and so this would be a largely backwards compatible change.\n//\n// The ability to decode from a JSON null wrapped within a JSON string\n// is removed in v2 because this behavior was surprising and inconsistent in v1.\n//\n// Related issues:\n//\n//\thttps://go.dev/issue/15624\n//\thttps://go.dev/issue/20651\n//\thttps://go.dev/issue/22177\n//\thttps://go.dev/issue/32055\n//\thttps://go.dev/issue/32117\n//\thttps://go.dev/issue/50997\nfunc TestStringOption(t *testing.T) {\n\ttype Types struct {\n\t\tBool       bool                `json:\",string\"`\n\t\tInt        int                 `json:\",string\"`\n\t\tFloat      float64             `json:\",string\"`\n\t\tMap        map[string]int      `json:\",string\"`\n\t\tStruct     struct{ Field int } `json:\",string\"`\n\t\tSlice      []int               `json:\",string\"`\n\t\tArray      [1]int              `json:\",string\"`\n\t\tPointerA   *int                `json:\",string\"`\n\t\tPointerB   *int                `json:\",string\"`\n\t\tPointerC   **int               `json:\",string\"`\n\t\tInterfaceA any                 `json:\",string\"`\n\t\tInterfaceB any                 `json:\",string\"`\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Marshal\", json.Version), func(t *testing.T) {\n\t\t\tin := Types{\n\t\t\t\tBool:       true,\n\t\t\t\tInt:        1,\n\t\t\t\tFloat:      1,\n\t\t\t\tMap:        map[string]int{\"Name\": 1},\n\t\t\t\tStruct:     struct{ Field int }{1},\n\t\t\t\tSlice:      []int{1},\n\t\t\t\tArray:      [1]int{1},\n\t\t\t\tPointerA:   nil,\n\t\t\t\tPointerB:   addr(1),\n\t\t\t\tPointerC:   addr(addr(1)),\n\t\t\t\tInterfaceA: nil,\n\t\t\t\tInterfaceB: 1,\n\t\t\t}\n\t\t\tquote := func(s string) string { return `\"` + s + `\"` }\n\t\t\tquoteOnlyV1 := func(s string) string {\n\t\t\t\tif json.Version == \"v1\" {\n\t\t\t\t\ts = quote(s)\n\t\t\t\t}\n\t\t\t\treturn s\n\t\t\t}\n\t\t\tquoteOnlyV2 := func(s string) string {\n\t\t\t\tif json.Version == \"v2\" {\n\t\t\t\t\ts = quote(s)\n\t\t\t\t}\n\t\t\t\treturn s\n\t\t\t}\n\t\t\twant := strings.Join([]string{\n\t\t\t\t`{`,\n\t\t\t\t`\"Bool\":` + quoteOnlyV1(\"true\") + `,`, // in v1, Go bool are also stringified\n\t\t\t\t`\"Int\":` + quote(\"1\") + `,`,\n\t\t\t\t`\"Float\":` + quote(\"1\") + `,`,\n\t\t\t\t`\"Map\":{\"Name\":` + quoteOnlyV2(\"1\") + `},`,     // in v2, numbers are recursively stringified\n\t\t\t\t`\"Struct\":{\"Field\":` + quoteOnlyV2(\"1\") + `},`, // in v2, numbers are recursively stringified\n\t\t\t\t`\"Slice\":[` + quoteOnlyV2(\"1\") + `],`,          // in v2, numbers are recursively stringified\n\t\t\t\t`\"Array\":[` + quoteOnlyV2(\"1\") + `],`,          // in v2, numbers are recursively stringified\n\t\t\t\t`\"PointerA\":null,`,\n\t\t\t\t`\"PointerB\":` + quote(\"1\") + `,`,       // in v1, numbers are stringified after a single pointer indirection\n\t\t\t\t`\"PointerC\":` + quoteOnlyV2(\"1\") + `,`, // in v2, numbers are recursively stringified\n\t\t\t\t`\"InterfaceA\":null,`,\n\t\t\t\t`\"InterfaceB\":` + quoteOnlyV2(\"1\") + ``, // in v2, numbers are recursively stringified\n\t\t\t\t`}`}, \"\")\n\t\t\tgot, err := json.Marshal(in)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"json.Marshal error: %v\", err)\n\t\t\t}\n\t\t\tif string(got) != want {\n\t\t\t\tt.Fatalf(\"json.Marshal = %s, want %s\", got, want)\n\t\t\t}\n\t\t})\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Unmarshal/Null\", json.Version), func(t *testing.T) {\n\t\t\tvar got Types\n\t\t\terr := json.Unmarshal([]byte(`{\n\t\t\t\t\"Bool\":     \"null\",\n\t\t\t\t\"Int\":      \"null\",\n\t\t\t\t\"PointerA\": \"null\"\n\t\t\t}`), &got)\n\t\t\tswitch {\n\t\t\tcase !reflect.DeepEqual(got, Types{}):\n\t\t\t\tt.Fatalf(\"json.Unmarshal = %v, want %v\", got, Types{})\n\t\t\tcase json.Version == \"v1\" && err != nil:\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\tcase json.Version == \"v2\" && err == nil:\n\t\t\t\tt.Fatal(\"json.Unmarshal error is nil, want non-nil\")\n\t\t\t}\n\t\t})\n\n\t\tt.Run(path.Join(\"Unmarshal/Bool\", json.Version), func(t *testing.T) {\n\t\t\tvar got Types\n\t\t\twant := map[string]Types{\n\t\t\t\t\"v1\": {Bool: true},\n\t\t\t\t\"v2\": {Bool: false},\n\t\t\t}[json.Version]\n\t\t\terr := json.Unmarshal([]byte(`{\"Bool\": \"true\"}`), &got)\n\t\t\tswitch {\n\t\t\tcase !reflect.DeepEqual(got, want):\n\t\t\t\tt.Fatalf(\"json.Unmarshal = %v, want %v\", got, want)\n\t\t\tcase json.Version == \"v1\" && err != nil:\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\tcase json.Version == \"v2\" && err == nil:\n\t\t\t\tt.Fatal(\"json.Unmarshal error is nil, want non-nil\")\n\t\t\t}\n\t\t})\n\n\t\tt.Run(path.Join(\"Unmarshal/Shallow\", json.Version), func(t *testing.T) {\n\t\t\tvar got Types\n\t\t\twant := Types{Int: 1, PointerB: addr(1)}\n\t\t\terr := json.Unmarshal([]byte(`{\n\t\t\t\t\"Int\":      \"1\",\n\t\t\t\t\"PointerB\": \"1\"\n\t\t\t}`), &got)\n\t\t\tswitch {\n\t\t\tcase !reflect.DeepEqual(got, want):\n\t\t\t\tt.Fatalf(\"json.Unmarshal = %v, want %v\", got, want)\n\t\t\tcase err != nil:\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\t}\n\t\t})\n\n\t\tt.Run(path.Join(\"Unmarshal/Deep\", json.Version), func(t *testing.T) {\n\t\t\tvar got Types\n\t\t\twant := map[string]Types{\n\t\t\t\t\"v1\": {\n\t\t\t\t\tMap:      map[string]int{\"Name\": 0},\n\t\t\t\t\tSlice:    []int{0},\n\t\t\t\t\tPointerC: addr(addr(0)),\n\t\t\t\t},\n\t\t\t\t\"v2\": {\n\t\t\t\t\tMap:      map[string]int{\"Name\": 1},\n\t\t\t\t\tStruct:   struct{ Field int }{1},\n\t\t\t\t\tSlice:    []int{1},\n\t\t\t\t\tArray:    [1]int{1},\n\t\t\t\t\tPointerC: addr(addr(1)),\n\t\t\t\t},\n\t\t\t}[json.Version]\n\t\t\terr := json.Unmarshal([]byte(`{\n\t\t\t\t\"Map\":      {\"Name\":\"1\"},\n\t\t\t\t\"Struct\":   {\"Field\":\"1\"},\n\t\t\t\t\"Slice\":    [\"1\"],\n\t\t\t\t\"Array\":    [\"1\"],\n\t\t\t\t\"PointerC\": \"1\"\n\t\t\t}`), &got)\n\t\t\tswitch {\n\t\t\tcase !reflect.DeepEqual(got, want):\n\t\t\t\tt.Fatalf(\"json.Unmarshal =\\n%v, want\\n%v\", got, want)\n\t\t\tcase json.Version == \"v1\" && err == nil:\n\t\t\t\tt.Fatal(\"json.Unmarshal error is nil, want non-nil\")\n\t\t\tcase json.Version == \"v2\" && err != nil:\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, nil slices and maps are marshaled as a JSON null.\n// In v2, nil slices and maps are marshaled as an empty JSON object or array.\n//\n// Users of v2 can opt into the v1 behavior by setting\n// the \"format:emitnull\" option in the `json` struct field tag:\n//\n//\tstruct {\n//\t\tS []string          `json:\",format:emitnull\"`\n//\t\tM map[string]string `json:\",format:emitnull\"`\n//\t}\n//\n// JSON is a language-agnostic data interchange format.\n// The fact that maps and slices are nil-able in Go is a semantic detail of the\n// Go language. We should avoid leaking such details to the JSON representation.\n// When JSON implementations leak language-specific details,\n// it complicates transition to/from languages with different type systems.\n//\n// Furthermore, consider two related Go types: string and []byte.\n// It's an asymmetric oddity of v1 that zero values of string and []byte marshal\n// as an empty JSON string for the former, while the latter as a JSON null.\n// The non-zero values of those types always marshal as JSON strings.\n//\n// Related issues:\n//\n//\thttps://go.dev/issue/27589\n//\thttps://go.dev/issue/37711\nfunc TestNilSlicesAndMaps(t *testing.T) {\n\ttype Composites struct {\n\t\tB []byte            // always encoded in v2 as a JSON string\n\t\tS []string          // always encoded in v2 as a JSON array\n\t\tM map[string]string // always encoded in v2 as a JSON object\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Marshal\", json.Version), func(t *testing.T) {\n\t\t\tin := []Composites{\n\t\t\t\t{B: []byte(nil), S: []string(nil), M: map[string]string(nil)},\n\t\t\t\t{B: []byte{}, S: []string{}, M: map[string]string{}},\n\t\t\t}\n\t\t\twant := map[string]string{\n\t\t\t\t\"v1\": `[{\"B\":null,\"S\":null,\"M\":null},{\"B\":\"\",\"S\":[],\"M\":{}}]`,\n\t\t\t\t\"v2\": `[{\"B\":\"\",\"S\":[],\"M\":{}},{\"B\":\"\",\"S\":[],\"M\":{}}]`, // v2 emits nil slices and maps as empty JSON objects and arrays\n\t\t\t}[json.Version]\n\t\t\tgot, err := json.Marshal(in)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"json.Marshal error: %v\", err)\n\t\t\t}\n\t\t\tif string(got) != want {\n\t\t\t\tt.Fatalf(\"json.Marshal = %s, want %s\", got, want)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, unmarshaling into a Go array permits JSON arrays with any length.\n// In v2, unmarshaling into a Go array requires that the JSON array\n// have the exact same number of elements as the Go array.\n//\n// Go arrays are often used because the exact length has significant meaning.\n// Ignoring this detail seems like a mistake. Also, the v1 behavior leads to\n// silent data loss when excess JSON array elements are discarded.\nfunc TestArrays(t *testing.T) {\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Unmarshal/TooFew\", json.Version), func(t *testing.T) {\n\t\t\tvar got [2]int\n\t\t\terr := json.Unmarshal([]byte(`[1]`), &got)\n\t\t\tswitch {\n\t\t\tcase got != [2]int{1, 0}:\n\t\t\t\tt.Fatalf(`json.Unmarshal = %v, want [1 0]`, got)\n\t\t\tcase json.Version == \"v1\" && err != nil:\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\tcase json.Version == \"v2\" && err == nil:\n\t\t\t\tt.Fatal(\"json.Unmarshal error is nil, want non-nil\")\n\t\t\t}\n\t\t})\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Unmarshal/TooMany\", json.Version), func(t *testing.T) {\n\t\t\tvar got [2]int\n\t\t\terr := json.Unmarshal([]byte(`[1,2,3]`), &got)\n\t\t\tswitch {\n\t\t\tcase got != [2]int{1, 2}:\n\t\t\t\tt.Fatalf(`json.Unmarshal = %v, want [1 2]`, got)\n\t\t\tcase json.Version == \"v1\" && err != nil:\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\tcase json.Version == \"v2\" && err == nil:\n\t\t\t\tt.Fatal(\"json.Unmarshal error is nil, want non-nil\")\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, byte arrays are treated as arrays of unsigned integers.\n// In v2, byte arrays are treated as binary values (similar to []byte).\n// This is to make the behavior of [N]byte and []byte more consistent.\n//\n// Users of v2 can opt into the v1 behavior by setting\n// the \"format:array\" option in the `json` struct field tag:\n//\n//\tstruct {\n//\t\tB [32]byte `json:\",format:array\"`\n//\t}\nfunc TestByteArrays(t *testing.T) {\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Marshal\", json.Version), func(t *testing.T) {\n\t\t\tin := [4]byte{1, 2, 3, 4}\n\t\t\tgot, err := json.Marshal(in)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"json.Marshal error: %v\", err)\n\t\t\t}\n\t\t\twant := map[string]string{\n\t\t\t\t\"v1\": `[1,2,3,4]`,\n\t\t\t\t\"v2\": `\"AQIDBA==\"`,\n\t\t\t}[json.Version]\n\t\t\tif string(got) != want {\n\t\t\t\tt.Fatalf(\"json.Marshal = %s, want %s\", got, want)\n\t\t\t}\n\t\t})\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Unmarshal\", json.Version), func(t *testing.T) {\n\t\t\tin := map[string]string{\n\t\t\t\t\"v1\": `[1,2,3,4]`,\n\t\t\t\t\"v2\": `\"AQIDBA==\"`,\n\t\t\t}[json.Version]\n\t\t\tvar got [4]byte\n\t\t\terr := json.Unmarshal([]byte(in), &got)\n\t\t\tswitch {\n\t\t\tcase err != nil:\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\tcase got != [4]byte{1, 2, 3, 4}:\n\t\t\t\tt.Fatalf(\"json.Unmarshal = %v, want [1 2 3 4]\", got)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// CallCheck implements json.{Marshaler,Unmarshaler} on a pointer receiver.\ntype CallCheck string\n\n// MarshalJSON always returns a JSON string with the literal \"CALLED\".\nfunc (*CallCheck) MarshalJSON() ([]byte, error) {\n\treturn []byte(`\"CALLED\"`), nil\n}\n\n// UnmarshalJSON always stores a string with the literal \"CALLED\".\nfunc (v *CallCheck) UnmarshalJSON([]byte) error {\n\t*v = `CALLED`\n\treturn nil\n}\n\n// In v1, the implementation is inconsistent about whether it calls\n// MarshalJSON and UnmarshalJSON methods declared on pointer receivers\n// when it has an unaddressable value (per reflect.Value.CanAddr) on hand.\n// When marshaling, it never boxes the value on the heap to make it addressable,\n// while it sometimes boxes values (e.g., for map entries) when unmarshaling.\n//\n// In v2, the implementation always calls MarshalJSON and UnmarshalJSON methods\n// by boxing the value on the heap if necessary.\n//\n// The v1 behavior is surprising at best and buggy at worst.\n// Unfortunately, it cannot be changed without breaking existing usages.\n//\n// Related issues:\n//\n//\thttps://go.dev/issue/27722\n//\thttps://go.dev/issue/33993\n//\thttps://go.dev/issue/42508\nfunc TestPointerReceiver(t *testing.T) {\n\ttype Values struct {\n\t\tS []CallCheck\n\t\tA [1]CallCheck\n\t\tM map[string]CallCheck\n\t\tV CallCheck\n\t\tI any\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Marshal\", json.Version), func(t *testing.T) {\n\t\t\tvar cc CallCheck\n\t\t\tin := Values{\n\t\t\t\tS: []CallCheck{cc},\n\t\t\t\tA: [1]CallCheck{cc},             // MarshalJSON not called on v1\n\t\t\t\tM: map[string]CallCheck{\"\": cc}, // MarshalJSON not called on v1\n\t\t\t\tV: cc,                           // MarshalJSON not called on v1\n\t\t\t\tI: cc,                           // MarshalJSON not called on v1\n\t\t\t}\n\t\t\twant := map[string]string{\n\t\t\t\t\"v1\": `{\"S\":[\"CALLED\"],\"A\":[\"\"],\"M\":{\"\":\"\"},\"V\":\"\",\"I\":\"\"}`,\n\t\t\t\t\"v2\": `{\"S\":[\"CALLED\"],\"A\":[\"CALLED\"],\"M\":{\"\":\"CALLED\"},\"V\":\"CALLED\",\"I\":\"CALLED\"}`,\n\t\t\t}[json.Version]\n\t\t\tgot, err := json.Marshal(in)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"json.Marshal error: %v\", err)\n\t\t\t}\n\t\t\tif string(got) != want {\n\t\t\t\tt.Fatalf(\"json.Marshal = %s, want %s\", got, want)\n\t\t\t}\n\t\t})\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Unmarshal\", json.Version), func(t *testing.T) {\n\t\t\tin := `{\"S\":[\"\"],\"A\":[\"\"],\"M\":{\"\":\"\"},\"V\":\"\",\"I\":\"\"}`\n\t\t\tcalled := CallCheck(\"CALLED\") // resulting state if UnmarshalJSON is called\n\t\t\twant := map[string]Values{\n\t\t\t\t\"v1\": {\n\t\t\t\t\tS: []CallCheck{called},\n\t\t\t\t\tA: [1]CallCheck{called},\n\t\t\t\t\tM: map[string]CallCheck{\"\": called},\n\t\t\t\t\tV: called,\n\t\t\t\t\tI: \"\", // UnmarshalJSON not called on v1; replaced with Go string\n\t\t\t\t},\n\t\t\t\t\"v2\": {\n\t\t\t\t\tS: []CallCheck{called},\n\t\t\t\t\tA: [1]CallCheck{called},\n\t\t\t\t\tM: map[string]CallCheck{\"\": called},\n\t\t\t\t\tV: called,\n\t\t\t\t\tI: called,\n\t\t\t\t},\n\t\t\t}[json.Version]\n\t\t\tgot := Values{\n\t\t\t\tA: [1]CallCheck{CallCheck(\"\")},\n\t\t\t\tS: []CallCheck{CallCheck(\"\")},\n\t\t\t\tM: map[string]CallCheck{\"\": CallCheck(\"\")},\n\t\t\t\tV: CallCheck(\"\"),\n\t\t\t\tI: CallCheck(\"\"),\n\t\t\t}\n\t\t\tif err := json.Unmarshal([]byte(in), &got); err != nil {\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\t}\n\t\t\tif !reflect.DeepEqual(got, want) {\n\t\t\t\tt.Fatalf(\"json.Unmarshal = %v, want %v\", got, want)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, maps are marshaled in a deterministic order.\n// In v2, maps are marshaled in a non-deterministic order.\n//\n// The reason for the change is that v2 prioritizes performance and\n// the guarantee that marshaling operates primarily in a streaming manner.\n//\n// The v2 API provides RawValue.Canonicalize if stability is needed:\n//\n//\t(*json.RawValue)(&b).Canonicalize()\n//\n// Related issue:\n//\n//\thttps://go.dev/issue/7872\n//\thttps://go.dev/issue/33714\nfunc TestMapDeterminism(t *testing.T) {\n\tconst iterations = 10\n\tin := map[int]int{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Marshal\", json.Version), func(t *testing.T) {\n\t\t\touts := make(map[string]bool)\n\t\t\tfor i := 0; i < iterations; i++ {\n\t\t\t\tb, err := json.Marshal(in)\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Fatalf(\"json.Marshal error: %v\", err)\n\t\t\t\t}\n\t\t\t\touts[string(b)] = true\n\t\t\t}\n\t\t\tswitch {\n\t\t\tcase json.Version == \"v1\" && len(outs) != 1:\n\t\t\t\tt.Fatalf(\"json.Marshal encoded to %d unique forms, expected 1\", len(outs))\n\t\t\tcase json.Version == \"v2\" && len(outs) == 1:\n\t\t\t\tt.Logf(\"json.Marshal encoded to 1 unique form by chance; are you feeling lucky?\")\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, JSON string encoding escapes special characters related to HTML.\n// In v2, JSON string encoding uses a normalized representation (per RFC 8785).\n//\n// Users of v2 can opt into the v1 behavior by setting\n// json.EncodeOptions.EscapeRune. See the EscapeHTML example.\n//\n// Escaping HTML-specific characters in a JSON library is a layering violation.\n// It presumes that JSON is always used with HTML and ignores other\n// similar classes of injection attacks (e.g., SQL injection).\n// Users of JSON with HTML should either manually ensure that embedded JSON is\n// properly escaped or be relying on a module like \"github.com/google/safehtml\"\n// to handle safe interoperability of JSON and HTML.\nfunc TestEscapeHTML(t *testing.T) {\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Marshal\", json.Version), func(t *testing.T) {\n\t\t\tconst in = `<script> console.log(\"Hello, world!\"); </script>`\n\t\t\tgot, err := json.Marshal(in)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"json.Marshal error: %v\", err)\n\t\t\t}\n\t\t\twant := map[string]string{\n\t\t\t\t\"v1\": `\"\\u003cscript\\u003e console.log(\\\"Hello, world!\\\"); \\u003c/script\\u003e\"`,\n\t\t\t\t\"v2\": `\"<script> console.log(\\\"Hello, world!\\\"); </script>\"`,\n\t\t\t}[json.Version]\n\t\t\tif string(got) != want {\n\t\t\t\tt.Fatalf(\"json.Marshal = %s, want %s\", got, want)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, JSON serialization silently ignored invalid UTF-8 by\n// replacing such bytes with the Unicode replacement character.\n// In v2, JSON serialization reports an error if invalid UTF-8 is encountered.\n//\n// Users of v2 can opt into the v1 behavior by setting\n// AllowInvalidUTF8 to true in json.EncodeOptions or json.DecodeOptions:\n//\n//\tjson.MarshalOptions{...}.Marshal(json.EncodeOptions{AllowInvalidUTF8: true}, ...)\n//\tjson.UnmarshalOptions{...}.Unmarshal(json.DecodeOptions{AllowInvalidUTF8: true}, ...)\n//\n// Silently allowing invalid UTF-8 causes data corruption that can be difficult\n// to detect until it is too late. Once it has been discovered, strict UTF-8\n// behavior sometimes cannot be enabled since other logic may be depending\n// on the current behavior due to Hyrum's Law.\n//\n// Tim Bray, the author of RFC 8259 recommends that implementations should\n// go beyond RFC 8259 and instead target compliance with RFC 7493,\n// which makes strict decisions about behavior left undefined in RFC 8259.\n// In particular, RFC 7493 rejects the presence of invalid UTF-8.\n// See https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90\nfunc TestInvalidUTF8(t *testing.T) {\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Marshal\", json.Version), func(t *testing.T) {\n\t\t\tgot, err := json.Marshal(\"\\xff\")\n\t\t\tswitch {\n\t\t\tcase json.Version == \"v1\" && err != nil:\n\t\t\t\tt.Fatalf(\"json.Marshal error: %v\", err)\n\t\t\tcase json.Version == \"v1\" && string(got) != `\"\\ufffd\"`:\n\t\t\t\tt.Fatalf(`json.Marshal = %s, want \"\\ufffd\"`, got)\n\t\t\tcase json.Version == \"v2\" && err == nil:\n\t\t\t\tt.Fatal(\"json.Marshal error is nil, want non-nil\")\n\t\t\t}\n\t\t})\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Unmarshal\", json.Version), func(t *testing.T) {\n\t\t\tconst in = \"\\\"\\xff\\\"\"\n\t\t\tvar got string\n\t\t\terr := json.Unmarshal([]byte(in), &got)\n\t\t\tswitch {\n\t\t\tcase json.Version == \"v1\" && err != nil:\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\tcase json.Version == \"v1\" && got != \"\\ufffd\":\n\t\t\t\tt.Fatalf(`json.Unmarshal = %q, want \"\\ufffd\"`, got)\n\t\t\tcase json.Version == \"v2\" && err == nil:\n\t\t\t\tt.Fatal(\"json.Unmarshal error is nil, want non-nil\")\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, duplicate JSON object names are permitted by default where\n// they follow the inconsistent and difficult-to-explain merge semantics of v1.\n// In v2, duplicate JSON object names are rejected by default where\n// they follow the merge semantics of v2 based on RFC 7396.\n//\n// Users of v2 can opt into the v1 behavior by setting\n// AllowDuplicateNames to true in json.EncodeOptions or json.DecodeOptions:\n//\n//\tjson.MarshalOptions{...}.Marshal(json.EncodeOptions{AllowDuplicateNames: true}, ...)\n//\tjson.UnmarshalOptions{...}.Unmarshal(json.DecodeOptions{AllowDuplicateNames: true}, ...)\n//\n// Per RFC 8259, the handling of duplicate names is left as undefined behavior.\n// Rejecting such inputs is within the realm of valid behavior.\n// Tim Bray, the author of RFC 8259 recommends that implementations should\n// go beyond RFC 8259 and instead target compliance with RFC 7493,\n// which makes strict decisions about behavior left undefined in RFC 8259.\n// In particular, RFC 7493 rejects the presence of duplicate object names.\n// See https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90\n//\n// The lack of duplicate name rejection has correctness implications where\n// roundtrip unmarshal/marshal do not result in semantically equivalent JSON.\n// This is surprising behavior for users when they accidentally\n// send JSON objects with duplicate names.\n//\n// The lack of duplicate name rejection may have security implications since it\n// becomes difficult for a security tool to validate the semantic meaning of a\n// JSON object since meaning is undefined in the presence of duplicate names.\n// See https://labs.bishopfox.com/tech-blog/an-exploration-of-json-interoperability-vulnerabilities\n//\n// Related issue:\n//\n//\thttps://go.dev/issue/48298\nfunc TestDuplicateNames(t *testing.T) {\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Unmarshal\", json.Version), func(t *testing.T) {\n\t\t\tconst in = `{\"Name\":1,\"Name\":2}`\n\t\t\tvar got struct{ Name int }\n\t\t\terr := json.Unmarshal([]byte(in), &got)\n\t\t\tswitch {\n\t\t\tcase json.Version == \"v1\" && err != nil:\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\tcase json.Version == \"v1\" && got != struct{ Name int }{2}:\n\t\t\t\tt.Fatalf(`json.Unmarshal = %v, want {2}`, got)\n\t\t\tcase json.Version == \"v2\" && err == nil:\n\t\t\t\tt.Fatal(\"json.Unmarshal error is nil, want non-nil\")\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, unmarshaling a JSON null into a non-empty value was inconsistent\n// in that sometimes it would be ignored and other times clear the value.\n// In v2, unmarshaling a JSON null into a non-empty value would consistently\n// always clear the value regardless of the value's type.\n//\n// The purpose of this change is to have consistent behavior with how JSON nulls\n// are handled during Unmarshal. This semantic detail has no effect\n// when Unmarshaling into a empty value.\n//\n// Related issues:\n//\n//\thttps://go.dev/issue/22177\n//\thttps://go.dev/issue/33835\nfunc TestMergeNull(t *testing.T) {\n\ttype Types struct {\n\t\tBool      bool\n\t\tString    string\n\t\tBytes     []byte\n\t\tInt       int\n\t\tMap       map[string]string\n\t\tStruct    struct{ Field string }\n\t\tSlice     []string\n\t\tArray     [1]string\n\t\tPointer   *string\n\t\tInterface any\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Unmarshal\", json.Version), func(t *testing.T) {\n\t\t\t// Start with a non-empty value where all fields are populated.\n\t\t\tin := Types{\n\t\t\t\tBool:      true,\n\t\t\t\tString:    \"old\",\n\t\t\t\tBytes:     []byte(\"old\"),\n\t\t\t\tInt:       1234,\n\t\t\t\tMap:       map[string]string{\"old\": \"old\"},\n\t\t\t\tStruct:    struct{ Field string }{\"old\"},\n\t\t\t\tSlice:     []string{\"old\"},\n\t\t\t\tArray:     [1]string{\"old\"},\n\t\t\t\tPointer:   new(string),\n\t\t\t\tInterface: \"old\",\n\t\t\t}\n\n\t\t\t// Unmarshal a JSON null into every field.\n\t\t\tif err := json.Unmarshal([]byte(`{\n\t\t\t\t\"Bool\":      null,\n\t\t\t\t\"String\":    null,\n\t\t\t\t\"Bytes\":     null,\n\t\t\t\t\"Int\":       null,\n\t\t\t\t\"Map\":       null,\n\t\t\t\t\"Struct\":    null,\n\t\t\t\t\"Slice\":     null,\n\t\t\t\t\"Array\":     null,\n\t\t\t\t\"Pointer\":   null,\n\t\t\t\t\"Interface\": null\n\t\t\t}`), &in); err != nil {\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\t}\n\n\t\t\twant := map[string]Types{\n\t\t\t\t\"v1\": {\n\t\t\t\t\tBool:   true,\n\t\t\t\t\tString: \"old\",\n\t\t\t\t\tInt:    1234,\n\t\t\t\t\tStruct: struct{ Field string }{\"old\"},\n\t\t\t\t\tArray:  [1]string{\"old\"},\n\t\t\t\t},\n\t\t\t\t\"v2\": {}, // all fields are zeroed\n\t\t\t}[json.Version]\n\t\t\tif !reflect.DeepEqual(in, want) {\n\t\t\t\tt.Fatalf(\"json.Unmarshal = %+v, want %+v\", in, want)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, merge semantics are inconsistent and difficult to explain.\n// In v2, merge semantics replaces the destination value for anything\n// other than a JSON object, and recursively merges JSON objects.\n//\n// Merge semantics in v1 are inconsistent and difficult to explain\n// largely because the behavior came about organically, rather than\n// having a principled approach to how the semantics should operate.\n// In v2, merging follows behavior based on RFC 7396.\n//\n// Related issues:\n//\n//\thttps://go.dev/issue/21092\n//\thttps://go.dev/issue/26946\n//\thttps://go.dev/issue/27172\n//\thttps://go.dev/issue/30701\n//\thttps://go.dev/issue/31924\n//\thttps://go.dev/issue/43664\nfunc TestMergeComposite(t *testing.T) {\n\ttype Tuple struct{ Old, New bool }\n\ttype Composites struct {\n\t\tSlice            []Tuple\n\t\tArray            [1]Tuple\n\t\tMap              map[string]Tuple\n\t\tMapPointer       map[string]*Tuple\n\t\tStruct           struct{ Tuple Tuple }\n\t\tStructPointer    *struct{ Tuple Tuple }\n\t\tInterface        any\n\t\tInterfacePointer any\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Unmarshal\", json.Version), func(t *testing.T) {\n\t\t\t// Start with a non-empty value where all fields are populated.\n\t\t\tin := Composites{\n\t\t\t\tSlice:            []Tuple{{Old: true}, {Old: true}}[:1],\n\t\t\t\tArray:            [1]Tuple{{Old: true}},\n\t\t\t\tMap:              map[string]Tuple{\"Tuple\": {Old: true}},\n\t\t\t\tMapPointer:       map[string]*Tuple{\"Tuple\": {Old: true}},\n\t\t\t\tStruct:           struct{ Tuple Tuple }{Tuple{Old: true}},\n\t\t\t\tStructPointer:    &struct{ Tuple Tuple }{Tuple{Old: true}},\n\t\t\t\tInterface:        Tuple{Old: true},\n\t\t\t\tInterfacePointer: &Tuple{Old: true},\n\t\t\t}\n\n\t\t\t// Unmarshal into every pre-populated field.\n\t\t\tif err := json.Unmarshal([]byte(`{\n\t\t\t\t\"Slice\":            [{\"New\":true}, {\"New\":true}],\n\t\t\t\t\"Array\":            [{\"New\":true}],\n\t\t\t\t\"Map\":              {\"Tuple\": {\"New\":true}},\n\t\t\t\t\"MapPointer\":       {\"Tuple\": {\"New\":true}},\n\t\t\t\t\"Struct\":           {\"Tuple\": {\"New\":true}},\n\t\t\t\t\"StructPointer\":    {\"Tuple\": {\"New\":true}},\n\t\t\t\t\"Interface\":        {\"New\":true},\n\t\t\t\t\"InterfacePointer\": {\"New\":true}\n\t\t\t}`), &in); err != nil {\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\t}\n\n\t\t\tmerged := Tuple{Old: true, New: true}\n\t\t\treplaced := Tuple{Old: false, New: true}\n\t\t\twant := map[string]Composites{\n\t\t\t\t\"v1\": {\n\t\t\t\t\tSlice:            []Tuple{merged, merged},               // merged\n\t\t\t\t\tArray:            [1]Tuple{merged},                      // merged\n\t\t\t\t\tMap:              map[string]Tuple{\"Tuple\": replaced},   // replaced\n\t\t\t\t\tMapPointer:       map[string]*Tuple{\"Tuple\": &replaced}, // replaced\n\t\t\t\t\tStruct:           struct{ Tuple Tuple }{merged},         // merged (same as v2)\n\t\t\t\t\tStructPointer:    &struct{ Tuple Tuple }{merged},        // merged (same as v2)\n\t\t\t\t\tInterface:        map[string]any{\"New\": true},           // replaced\n\t\t\t\t\tInterfacePointer: &merged,                               // merged (same as v2)\n\t\t\t\t},\n\t\t\t\t\"v2\": {\n\t\t\t\t\tSlice:            []Tuple{replaced, replaced},         // replaced\n\t\t\t\t\tArray:            [1]Tuple{replaced},                  // replaced\n\t\t\t\t\tMap:              map[string]Tuple{\"Tuple\": merged},   // merged\n\t\t\t\t\tMapPointer:       map[string]*Tuple{\"Tuple\": &merged}, // merged\n\t\t\t\t\tStruct:           struct{ Tuple Tuple }{merged},       // merged (same as v1)\n\t\t\t\t\tStructPointer:    &struct{ Tuple Tuple }{merged},      // merged (same as v1)\n\t\t\t\t\tInterface:        merged,                              // merged\n\t\t\t\t\tInterfacePointer: &merged,                             // merged (same as v1)\n\t\t\t\t},\n\t\t\t}[json.Version]\n\t\t\tif !reflect.DeepEqual(in, want) {\n\t\t\t\tt.Fatalf(\"json.Unmarshal = %+v, want %+v\", in, want)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, there was no special support for time.Duration,\n// which resulted in that type simply being treated as a signed integer.\n// In v2, there is now first-class support for time.Duration, where the type is\n// formatted and parsed using time.Duration.String and time.ParseDuration.\n//\n// Users of v2 can opt into the v1 behavior by setting\n// the \"format:nanos\" option in the `json` struct field tag:\n//\n//\tstruct {\n//\t\tDuration time.Duration `json:\",format:nanos\"`\n//\t}\n//\n// Related issue:\n//\n//\thttps://go.dev/issue/10275\nfunc TestTimeDurations(t *testing.T) {\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Marshal\", json.Version), func(t *testing.T) {\n\t\t\tgot, err := json.Marshal(time.Minute)\n\t\t\tswitch {\n\t\t\tcase err != nil:\n\t\t\t\tt.Fatalf(\"json.Marshal error: %v\", err)\n\t\t\tcase json.Version == \"v1\" && string(got) != \"60000000000\":\n\t\t\t\tt.Fatalf(\"json.Marshal = %s, want 60000000000\", got)\n\t\t\tcase json.Version == \"v2\" && string(got) != `\"1m0s\"`:\n\t\t\t\tt.Fatalf(`json.Marshal = %s, want \"1m0s\"`, got)\n\t\t\t}\n\t\t})\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Unmarshal\", json.Version), func(t *testing.T) {\n\t\t\tin := map[string]string{\n\t\t\t\t\"v1\": \"60000000000\",\n\t\t\t\t\"v2\": `\"1m0s\"`,\n\t\t\t}[json.Version]\n\t\t\tvar got time.Duration\n\t\t\terr := json.Unmarshal([]byte(in), &got)\n\t\t\tswitch {\n\t\t\tcase err != nil:\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\tcase got != time.Minute:\n\t\t\t\tt.Fatalf(\"json.Unmarshal = %v, want 1m0s\", got)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, unmarshaling a JSON number beyond the representation of a Go float\n// would result in an error.\n// In v2, unmarshaling a JSON number beyond the representation of a Go float\n// would use the closest representable value (i.e., ±math.MaxFloatX).\n//\n// The rationale for the change is to ensure that\n// if a JSON value is syntactically valid according to json.RawValue.IsValid,\n// then it is always valid to unmarshal that into a Go any value.\nfunc TestMaxFloats(t *testing.T) {\n\tfor _, json := range jsonPackages {\n\t\tt.Run(path.Join(\"Unmarshal\", json.Version), func(t *testing.T) {\n\t\t\tconst in = `1e1000`\n\t\t\tvar got any\n\t\t\terr := json.Unmarshal([]byte(in), &got)\n\t\t\tswitch {\n\t\t\tcase json.Version == \"v1\" && err == nil:\n\t\t\t\tt.Fatal(\"json.Unmarshal error is nil, want non-nil\")\n\t\t\tcase json.Version == \"v2\" && got != any(math.MaxFloat64):\n\t\t\t\tt.Fatalf(\"json.Unmarshal = %v, want %v\", got, math.MaxFloat64)\n\t\t\tcase json.Version == \"v2\" && err != nil:\n\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, non-empty structs without any JSON serializable fields are permitted.\n// In v2, non-empty structs without any JSON serializable fields are rejected.\n//\n// The purpose of this change is to avoid a common pitfall for new users\n// where they expect JSON serialization to handle unexported fields.\n// However, this does not work since Go reflection does not\n// provide the package the ability to mutate such fields.\n// Rejecting unserializable structs in v2 is intended to be a clear signal\n// that the type is not supposed to be serialized.\nfunc TestEmptyStructs(t *testing.T) {\n\tnever := func(string) bool { return false }\n\tonlyV2 := func(v string) bool { return v == \"v2\" }\n\tvalues := []struct {\n\t\tin        any\n\t\twantError func(string) bool\n\t}{\n\t\t// It is okay to marshal a truly empty struct in v1 and v2.\n\t\t{in: addr(struct{}{}), wantError: never},\n\t\t// In v1, a non-empty struct without exported fields\n\t\t// is equivalent to an empty struct, but is rejected in v2.\n\t\t// Note that errors.errorString type has only unexported fields.\n\t\t{in: errors.New(\"error\"), wantError: onlyV2},\n\t\t// A mix of exported and unexported fields is permitted.\n\t\t{in: addr(struct{ Exported, unexported int }{}), wantError: never},\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(\"Marshal\", func(t *testing.T) {\n\t\t\tfor _, value := range values {\n\t\t\t\twantError := value.wantError(json.Version)\n\t\t\t\t_, err := json.Marshal(value.in)\n\t\t\t\tswitch {\n\t\t\t\tcase (err == nil) && wantError:\n\t\t\t\t\tt.Fatalf(\"json.Marshal error is nil, want non-nil\")\n\t\t\t\tcase (err != nil) && !wantError:\n\t\t\t\t\tt.Fatalf(\"json.Marshal error: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(\"Unmarshal\", func(t *testing.T) {\n\t\t\tfor _, value := range values {\n\t\t\t\twantError := value.wantError(json.Version)\n\t\t\t\tout := reflect.New(reflect.TypeOf(value.in).Elem()).Interface()\n\t\t\t\terr := json.Unmarshal([]byte(\"{}\"), out)\n\t\t\t\tswitch {\n\t\t\t\tcase (err == nil) && wantError:\n\t\t\t\t\tt.Fatalf(\"json.Unmarshal error is nil, want non-nil\")\n\t\t\t\tcase (err != nil) && !wantError:\n\t\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\n// In v1, embedding an unexported type with exported fields is permitted.\n// If it is an embedded pointer, then the struct cannot be unmarshaled into.\n// In v2, embedding an unexported type with exported fields is never permitted.\n//\n// The visibility of exported fields promoted through an embedded unexported\n// struct type is difficult to explain. Even worse, the use of Go reflection\n// does not directly correspond to what the Go language permits or rejects.\n//\n// The ability to marshal/unmarshal exported fields of unexported embedded types\n// came about organically and has been the subject of various bugs in v1.\n// Currently, the implementation in v1 performs a few hacks to make this work\n// partially since the Go reflect package does not directly permit access.\n// This behavior is only partial since it is impossible to unmarshal into\n// the promoted fields of an embedded pointer to an unexported struct type\n// since the implementation cannot allocate the containing struct value\n// because the embedded field is unexported.\n//\n// Due to all of the subtle behavior and nuances surrounding embedded\n// unexported struct types, v2 rejects all such cases and requires that authors\n// explicitly mark such fields as being ignored with `json:\"-\"`.\n//\n// Related issues:\n//\n//\thttps://go.dev/issue/21353\n//\thttps://go.dev/issue/21357\n//\thttps://go.dev/issue/24153\nfunc TestEmbedUnexported(t *testing.T) {\n\tnever := func(string) bool { return false }\n\tonlyV2 := func(v string) bool { return v == \"v2\" }\n\talways := func(string) bool { return true }\n\ttype Exported struct{ Field string }\n\ttype unexported struct{ Field string }\n\tvalues := []struct {\n\t\tin                 any\n\t\twantMarshalError   func(string) bool\n\t\twantUnmarshalError func(string) bool\n\t}{\n\t\t// Embedding exported types is permitted in both v1 and v2.\n\t\t{in: struct{ Exported }{}, wantMarshalError: never, wantUnmarshalError: never},\n\t\t{in: struct{ *Exported }{}, wantMarshalError: never, wantUnmarshalError: never},\n\t\t// In v2, embedded unexported types are always rejected (unless ignored).\n\t\t{in: struct{ unexported }{}, wantMarshalError: onlyV2, wantUnmarshalError: onlyV2},\n\t\t{in: struct{ *unexported }{}, wantMarshalError: onlyV2, wantUnmarshalError: always},\n\t\t// In v2, embedded unexported types must be explicitly ignored.\n\t\t{in: struct {\n\t\t\tunexported `json:\"-\"`\n\t\t}{}, wantMarshalError: never, wantUnmarshalError: never},\n\t\t{in: struct {\n\t\t\t*unexported `json:\"-\"`\n\t\t}{}, wantMarshalError: never, wantUnmarshalError: never},\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(\"Marshal\", func(t *testing.T) {\n\t\t\tfor _, value := range values {\n\t\t\t\twantError := value.wantMarshalError(json.Version)\n\t\t\t\t_, err := json.Marshal(value.in)\n\t\t\t\tswitch {\n\t\t\t\tcase (err == nil) && wantError:\n\t\t\t\t\tt.Fatalf(\"json.Marshal error is nil, want non-nil\")\n\t\t\t\tcase (err != nil) && !wantError:\n\t\t\t\t\tt.Fatalf(\"json.Marshal error: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tfor _, json := range jsonPackages {\n\t\tt.Run(\"Unmarshal\", func(t *testing.T) {\n\t\t\tfor _, value := range values {\n\t\t\t\twantError := value.wantUnmarshalError(json.Version)\n\t\t\t\tout := reflect.New(reflect.TypeOf(value.in)).Interface()\n\t\t\t\terr := json.Unmarshal([]byte(`{\"Field\":\"Value\"}`), out)\n\t\t\t\tswitch {\n\t\t\t\tcase (err == nil) && wantError:\n\t\t\t\t\tt.Fatalf(\"json.Unmarshal error is nil, want non-nil\")\n\t\t\t\tcase (err != nil) && !wantError:\n\t\t\t\t\tt.Fatalf(\"json.Unmarshal error: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/doc.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package json implements serialization of JSON\n// as specified in RFC 4627, RFC 7159, RFC 7493, RFC 8259, and RFC 8785.\n// JSON is a simple data interchange format that can represent\n// primitive data types such as booleans, strings, and numbers,\n// in addition to structured data types such as objects and arrays.\n//\n// # Terminology\n//\n// This package uses the terms \"encode\" and \"decode\" for syntactic functionality\n// that is concerned with processing JSON based on its grammar, and\n// uses the terms \"marshal\" and \"unmarshal\" for semantic functionality\n// that determines the meaning of JSON values as Go values and vice-versa.\n// It aims to provide a clear distinction between functionality that\n// is purely concerned with encoding versus that of marshaling.\n// For example, one can directly encode a stream of JSON tokens without\n// needing to marshal a concrete Go value representing them.\n// Similarly, one can decode a stream of JSON tokens without\n// needing to unmarshal them into a concrete Go value.\n//\n// This package uses JSON terminology when discussing JSON, which may differ\n// from related concepts in Go or elsewhere in computing literature.\n//\n//   - A JSON \"object\" refers to an unordered collection of name/value members.\n//   - A JSON \"array\" refers to an ordered sequence of elements.\n//   - A JSON \"value\" refers to either a literal (i.e., null, false, or true),\n//     string, number, object, or array.\n//\n// See RFC 8259 for more information.\n//\n// # Specifications\n//\n// Relevant specifications include RFC 4627, RFC 7159, RFC 7493, RFC 8259,\n// and RFC 8785. Each RFC is generally a stricter subset of another RFC.\n// In increasing order of strictness:\n//\n//   - RFC 4627 and RFC 7159 do not require (but recommend) the use of UTF-8\n//     and also do not require (but recommend) that object names be unique.\n//   - RFC 8259 requires the use of UTF-8,\n//     but does not require (but recommends) that object names be unique.\n//   - RFC 7493 requires the use of UTF-8\n//     and also requires that object names be unique.\n//   - RFC 8785 defines a canonical representation. It requires the use of UTF-8\n//     and also requires that object names be unique and in a specific ordering.\n//     It specifies exactly how strings and numbers must be formatted.\n//\n// The primary difference between RFC 4627 and RFC 7159 is that the former\n// restricted top-level values to only JSON objects and arrays, while\n// RFC 7159 and subsequent RFCs permit top-level values to additionally be\n// JSON nulls, booleans, strings, or numbers.\n//\n// By default, this package operates on RFC 7493, but can be configured\n// to operate according to the other RFC specifications.\n// RFC 7493 is a stricter subset of RFC 8259 and fully compliant with it.\n// In particular, it makes specific choices about behavior that RFC 8259\n// leaves as undefined in order to ensure greater interoperability.\n//\n// # JSON Representation of Go structs\n//\n// A Go struct is naturally represented as a JSON object,\n// where each Go struct field corresponds with a JSON object member.\n// When marshaling, all Go struct fields are recursively encoded in depth-first\n// order as JSON object members except those that are ignored or omitted.\n// When unmarshaling, JSON object members are recursively decoded\n// into the corresponding Go struct fields.\n// Object members that do not match any struct fields,\n// also known as “unknown members”, are ignored by default or rejected\n// if UnmarshalOptions.RejectUnknownMembers is specified.\n//\n// The representation of each struct field can be customized in the\n// \"json\" struct field tag, where the tag is a comma separated list of options.\n// As a special case, if the entire tag is `json:\"-\"`,\n// then the field is ignored with regard to its JSON representation.\n//\n// The first option is the JSON object name override for the Go struct field.\n// If the name is not specified, then the Go struct field name\n// is used as the JSON object name. JSON names containing commas or quotes,\n// or names identical to \"\" or \"-\", can be specified using\n// a single-quoted string literal, where the syntax is identical to\n// the Go grammar for a double-quoted string literal,\n// but instead uses single quotes as the delimiters.\n// By default, unmarshaling uses case-sensitive matching to identify\n// the Go struct field associated with a JSON object name.\n//\n// After the name, the following tag options are supported:\n//\n//   - omitzero: When marshaling, the \"omitzero\" option specifies that\n//     the struct field should be omitted if the field value is zero\n//     as determined by the \"IsZero() bool\" method if present,\n//     otherwise based on whether the field is the zero Go value.\n//     This option has no effect when unmarshaling.\n//\n//   - omitempty: When marshaling, the \"omitempty\" option specifies that\n//     the struct field should be omitted if the field value would have been\n//     encoded as a JSON null, empty string, empty object, or empty array.\n//     This option has no effect when unmarshaling.\n//\n//   - string: The \"string\" option specifies that\n//     MarshalOptions.StringifyNumbers and UnmarshalOptions.StringifyNumbers\n//     be set when marshaling or unmarshaling a struct field value.\n//     This causes numeric types to be encoded as a JSON number\n//     within a JSON string, and to be decoded from either a JSON number or\n//     a JSON string containing a JSON number.\n//     This extra level of encoding is often necessary since\n//     many JSON parsers cannot precisely represent 64-bit integers.\n//\n//   - nocase: When unmarshaling, the \"nocase\" option specifies that\n//     if the JSON object name does not exactly match the JSON name\n//     for any of the struct fields, then it attempts to match the struct field\n//     using a case-insensitive match that also ignores dashes and underscores.\n//     If multiple fields match, the first declared field in breadth-first order\n//     takes precedence. This option has no effect when marshaling.\n//\n//   - inline: The \"inline\" option specifies that\n//     the JSON representable content of this field type is to be promoted\n//     as if they were specified in the parent struct.\n//     It is the JSON equivalent of Go struct embedding.\n//     A Go embedded field is implicitly inlined unless an explicit JSON name\n//     is specified. The inlined field must be a Go struct\n//     (that does not implement any JSON methods), RawValue, map[string]T,\n//     or an unnamed pointer to such types. When marshaling,\n//     inlined fields from a pointer type are omitted if it is nil.\n//     Inlined fields of type RawValue and map[string]T are called\n//     “inlined fallbacks” as they can represent all possible\n//     JSON object members not directly handled by the parent struct.\n//     Only one inlined fallback field may be specified in a struct,\n//     while many non-fallback fields may be specified. This option\n//     must not be specified with any other option (including the JSON name).\n//\n//   - unknown: The \"unknown\" option is a specialized variant\n//     of the inlined fallback to indicate that this Go struct field\n//     contains any number of unknown JSON object members. The field type\n//     must be a RawValue, map[string]T, or an unnamed pointer to such types.\n//     If MarshalOptions.DiscardUnknownMembers is specified when marshaling,\n//     the contents of this field are ignored.\n//     If UnmarshalOptions.RejectUnknownMembers is specified when unmarshaling,\n//     any unknown object members are rejected regardless of whether\n//     an inlined fallback with the \"unknown\" option exists. This option\n//     must not be specified with any other option (including the JSON name).\n//\n//   - format: The \"format\" option specifies a format flag\n//     used to specialize the formatting of the field value.\n//     The option is a key-value pair specified as \"format:value\" where\n//     the value must be either a literal consisting of letters and numbers\n//     (e.g., \"format:RFC3339\") or a single-quoted string literal\n//     (e.g., \"format:'2006-01-02'\"). The interpretation of the format flag\n//     is determined by the struct field type.\n//\n// The \"omitzero\" and \"omitempty\" options are mostly semantically identical.\n// The former is defined in terms of the Go type system,\n// while the latter in terms of the JSON type system.\n// Consequently they behave differently in some circumstances.\n// For example, only a nil slice or map is omitted under \"omitzero\", while\n// an empty slice or map is omitted under \"omitempty\" regardless of nilness.\n// The \"omitzero\" option is useful for types with a well-defined zero value\n// (e.g., netip.Addr) or have an IsZero method (e.g., time.Time).\n//\n// Every Go struct corresponds to a list of JSON representable fields\n// which is constructed by performing a breadth-first search over\n// all struct fields (excluding unexported or ignored fields),\n// where the search recursively descends into inlined structs.\n// The set of non-inlined fields in a struct must have unique JSON names.\n// If multiple fields all have the same JSON name, then the one\n// at shallowest depth takes precedence and the other fields at deeper depths\n// are excluded from the list of JSON representable fields.\n// If multiple fields at the shallowest depth have the same JSON name,\n// then all of those fields are excluded from the list. This is analogous to\n// Go visibility rules for struct field selection with embedded struct types.\n//\n// Marshaling or unmarshaling a non-empty struct\n// without any JSON representable fields results in a SemanticError.\n// Unexported fields must not have any `json` tags except for `json:\"-\"`.\npackage json\n\n// requireKeyedLiterals can be embedded in a struct to require keyed literals.\ntype requireKeyedLiterals struct{}\n\n// nonComparable can be embedded in a struct to prevent comparability.\ntype nonComparable [0]func()\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/encode.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"math\"\n\t\"math/bits\"\n\t\"strconv\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n// EncodeOptions configures how JSON encoding operates.\n// The zero value is equivalent to the default settings,\n// which is compliant with both RFC 7493 and RFC 8259.\ntype EncodeOptions struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// multiline specifies whether the encoder should emit multiline output.\n\tmultiline bool\n\n\t// omitTopLevelNewline specifies whether to omit the newline\n\t// that is appended after every top-level JSON value when streaming.\n\tomitTopLevelNewline bool\n\n\t// AllowDuplicateNames specifies that JSON objects may contain\n\t// duplicate member names. Disabling the duplicate name check may provide\n\t// performance benefits, but breaks compliance with RFC 7493, section 2.3.\n\t// The output will still be compliant with RFC 8259,\n\t// which leaves the handling of duplicate names as unspecified behavior.\n\tAllowDuplicateNames bool\n\n\t// AllowInvalidUTF8 specifies that JSON strings may contain invalid UTF-8,\n\t// which will be mangled as the Unicode replacement character, U+FFFD.\n\t// This causes the encoder to break compliance with\n\t// RFC 7493, section 2.1, and RFC 8259, section 8.1.\n\tAllowInvalidUTF8 bool\n\n\t// preserveRawStrings specifies that WriteToken and WriteValue should not\n\t// reformat any JSON string, but keep the formatting verbatim.\n\tpreserveRawStrings bool\n\n\t// canonicalizeNumbers specifies that WriteToken and WriteValue should\n\t// reformat any JSON numbers according to RFC 8785, section 3.2.2.3.\n\tcanonicalizeNumbers bool\n\n\t// EscapeRune reports whether the provided character should be escaped\n\t// as a hexadecimal Unicode codepoint (e.g., \\ufffd).\n\t// If nil, the shortest and simplest encoding will be used,\n\t// which is also the formatting specified by RFC 8785, section 3.2.2.2.\n\tEscapeRune func(rune) bool\n\n\t// Indent (if non-empty) specifies that the encoder should emit multiline\n\t// output where each element in a JSON object or array begins on a new,\n\t// indented line beginning with the indent prefix followed by one or more\n\t// copies of indent according to the indentation nesting.\n\t// It may only be composed of space or tab characters.\n\tIndent string\n\n\t// IndentPrefix is prepended to each line within a JSON object or array.\n\t// The purpose of the indent prefix is to encode data that can more easily\n\t// be embedded inside other formatted JSON data.\n\t// It may only be composed of space or tab characters.\n\t// It is ignored if Indent is empty.\n\tIndentPrefix string\n}\n\n// Encoder is a streaming encoder from raw JSON tokens and values.\n// It is used to write a stream of top-level JSON values,\n// each terminated with a newline character.\n//\n// WriteToken and WriteValue calls may be interleaved.\n// For example, the following JSON value:\n//\n//\t{\"name\":\"value\",\"array\":[null,false,true,3.14159],\"object\":{\"k\":\"v\"}}\n//\n// can be composed with the following calls (ignoring errors for brevity):\n//\n//\te.WriteToken(ObjectStart)           // {\n//\te.WriteToken(String(\"name\"))        // \"name\"\n//\te.WriteToken(String(\"value\"))       // \"value\"\n//\te.WriteValue(RawValue(`\"array\"`))   // \"array\"\n//\te.WriteToken(ArrayStart)            // [\n//\te.WriteToken(Null)                  // null\n//\te.WriteToken(False)                 // false\n//\te.WriteValue(RawValue(\"true\"))      // true\n//\te.WriteToken(Float(3.14159))        // 3.14159\n//\te.WriteToken(ArrayEnd)              // ]\n//\te.WriteValue(RawValue(`\"object\"`))  // \"object\"\n//\te.WriteValue(RawValue(`{\"k\":\"v\"}`)) // {\"k\":\"v\"}\n//\te.WriteToken(ObjectEnd)             // }\n//\n// The above is one of many possible sequence of calls and\n// may not represent the most sensible method to call for any given token/value.\n// For example, it is probably more common to call WriteToken with a string\n// for object names.\ntype Encoder struct {\n\tstate\n\tencodeBuffer\n\toptions EncodeOptions\n\n\tseenPointers seenPointers // only used when marshaling\n}\n\n// encodeBuffer is a buffer split into 2 segments:\n//\n//   - buf[0:len(buf)]        // written (but unflushed) portion of the buffer\n//   - buf[len(buf):cap(buf)] // unused portion of the buffer\ntype encodeBuffer struct {\n\tbuf []byte // may alias wr if it is a bytes.Buffer\n\n\t// baseOffset is added to len(buf) to obtain the absolute offset\n\t// relative to the start of io.Writer stream.\n\tbaseOffset int64\n\n\twr io.Writer\n\n\t// maxValue is the approximate maximum RawValue size passed to WriteValue.\n\tmaxValue int\n\t// unusedCache is the buffer returned by the UnusedBuffer method.\n\tunusedCache []byte\n\t// bufStats is statistics about buffer utilization.\n\t// It is only used with pooled encoders in pools.go.\n\tbufStats bufferStatistics\n}\n\n// NewEncoder constructs a new streaming encoder writing to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn EncodeOptions{}.NewEncoder(w)\n}\n\n// NewEncoder constructs a new streaming encoder writing to w\n// configured with the provided options.\n// It flushes the internal buffer when the buffer is sufficiently full or\n// when a top-level value has been written.\n//\n// If w is a bytes.Buffer, then the encoder appends directly into the buffer\n// without copying the contents from an intermediate buffer.\nfunc (o EncodeOptions) NewEncoder(w io.Writer) *Encoder {\n\te := new(Encoder)\n\to.ResetEncoder(e, w)\n\treturn e\n}\n\n// ResetEncoder resets an encoder such that it is writing afresh to w and\n// configured with the provided options.\nfunc (o EncodeOptions) ResetEncoder(e *Encoder, w io.Writer) {\n\tif e == nil {\n\t\tpanic(\"json: invalid nil Encoder\")\n\t}\n\tif w == nil {\n\t\tpanic(\"json: invalid nil io.Writer\")\n\t}\n\te.reset(nil, w, o)\n}\n\nfunc (e *Encoder) reset(b []byte, w io.Writer, o EncodeOptions) {\n\tif len(o.Indent) > 0 {\n\t\to.multiline = true\n\t\tif s := trimLeftSpaceTab(o.IndentPrefix); len(s) > 0 {\n\t\t\tpanic(\"json: invalid character \" + quoteRune([]byte(s)) + \" in indent prefix\")\n\t\t}\n\t\tif s := trimLeftSpaceTab(o.Indent); len(s) > 0 {\n\t\t\tpanic(\"json: invalid character \" + quoteRune([]byte(s)) + \" in indent\")\n\t\t}\n\t}\n\te.state.reset()\n\te.encodeBuffer = encodeBuffer{buf: b, wr: w, bufStats: e.bufStats}\n\te.options = o\n\tif bb, ok := w.(*bytes.Buffer); ok && bb != nil {\n\t\te.buf = bb.Bytes()[bb.Len():] // alias the unused buffer of bb\n\t}\n}\n\n// Reset resets an encoder such that it is writing afresh to w but\n// keeps any pre-existing encoder options.\nfunc (e *Encoder) Reset(w io.Writer) {\n\te.options.ResetEncoder(e, w)\n}\n\n// needFlush determines whether to flush at this point.\nfunc (e *Encoder) needFlush() bool {\n\t// NOTE: This function is carefully written to be inlineable.\n\n\t// Avoid flushing if e.wr is nil since there is no underlying writer.\n\t// Flush if less than 25% of the capacity remains.\n\t// Flushing at some constant fraction ensures that the buffer stops growing\n\t// so long as the largest Token or Value fits within that unused capacity.\n\treturn e.wr != nil && (e.tokens.depth() == 1 || len(e.buf) > 3*cap(e.buf)/4)\n}\n\n// flush flushes the buffer to the underlying io.Writer.\n// It may append a trailing newline after the top-level value.\nfunc (e *Encoder) flush() error {\n\tif e.wr == nil || e.avoidFlush() {\n\t\treturn nil\n\t}\n\n\t// In streaming mode, always emit a newline after the top-level value.\n\tif e.tokens.depth() == 1 && !e.options.omitTopLevelNewline {\n\t\te.buf = append(e.buf, '\\n')\n\t}\n\n\t// Inform objectNameStack that we are about to flush the buffer content.\n\te.names.copyQuotedBuffer(e.buf)\n\n\t// Specialize bytes.Buffer for better performance.\n\tif bb, ok := e.wr.(*bytes.Buffer); ok {\n\t\t// If e.buf already aliases the internal buffer of bb,\n\t\t// then the Write call simply increments the internal offset,\n\t\t// otherwise Write operates as expected.\n\t\t// See https://go.dev/issue/42986.\n\t\tn, _ := bb.Write(e.buf) // never fails unless bb is nil\n\t\te.baseOffset += int64(n)\n\n\t\t// If the internal buffer of bytes.Buffer is too small,\n\t\t// append operations elsewhere in the Encoder may grow the buffer.\n\t\t// This would be semantically correct, but hurts performance.\n\t\t// As such, ensure 25% of the current length is always available\n\t\t// to reduce the probability that other appends must allocate.\n\t\tif avail := bb.Cap() - bb.Len(); avail < bb.Len()/4 {\n\t\t\tbb.Grow(avail + 1)\n\t\t}\n\n\t\te.buf = bb.Bytes()[bb.Len():] // alias the unused buffer of bb\n\t\treturn nil\n\t}\n\n\t// Flush the internal buffer to the underlying io.Writer.\n\tn, err := e.wr.Write(e.buf)\n\te.baseOffset += int64(n)\n\tif err != nil {\n\t\t// In the event of an error, preserve the unflushed portion.\n\t\t// Thus, write errors aren't fatal so long as the io.Writer\n\t\t// maintains consistent state after errors.\n\t\tif n > 0 {\n\t\t\te.buf = e.buf[:copy(e.buf, e.buf[n:])]\n\t\t}\n\t\treturn &ioError{action: \"write\", err: err}\n\t}\n\te.buf = e.buf[:0]\n\n\t// Check whether to grow the buffer.\n\t// Note that cap(e.buf) may already exceed maxBufferSize since\n\t// an append elsewhere already grew it to store a large token.\n\tconst maxBufferSize = 4 << 10\n\tconst growthSizeFactor = 2 // higher value is faster\n\tconst growthRateFactor = 2 // higher value is slower\n\t// By default, grow if below the maximum buffer size.\n\tgrow := cap(e.buf) <= maxBufferSize/growthSizeFactor\n\t// Growing can be expensive, so only grow\n\t// if a sufficient number of bytes have been processed.\n\tgrow = grow && int64(cap(e.buf)) < e.previousOffsetEnd()/growthRateFactor\n\tif grow {\n\t\te.buf = make([]byte, 0, cap(e.buf)*growthSizeFactor)\n\t}\n\n\treturn nil\n}\n\nfunc (e *encodeBuffer) previousOffsetEnd() int64 { return e.baseOffset + int64(len(e.buf)) }\nfunc (e *encodeBuffer) unflushedBuffer() []byte  { return e.buf }\n\n// avoidFlush indicates whether to avoid flushing to ensure there is always\n// enough in the buffer to unwrite the last object member if it were empty.\nfunc (e *Encoder) avoidFlush() bool {\n\tswitch {\n\tcase e.tokens.last.length() == 0:\n\t\t// Never flush after ObjectStart or ArrayStart since we don't know yet\n\t\t// if the object or array will end up being empty.\n\t\treturn true\n\tcase e.tokens.last.needObjectValue():\n\t\t// Never flush before the object value since we don't know yet\n\t\t// if the object value will end up being empty.\n\t\treturn true\n\tcase e.tokens.last.needObjectName() && len(e.buf) >= 2:\n\t\t// Never flush after the object value if it does turn out to be empty.\n\t\tswitch string(e.buf[len(e.buf)-2:]) {\n\t\tcase `ll`, `\"\"`, `{}`, `[]`: // last two bytes of every empty value\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// unwriteEmptyObjectMember unwrites the last object member if it is empty\n// and reports whether it performed an unwrite operation.\nfunc (e *Encoder) unwriteEmptyObjectMember(prevName *string) bool {\n\tif last := e.tokens.last; !last.isObject() || !last.needObjectName() || last.length() == 0 {\n\t\tpanic(\"BUG: must be called on an object after writing a value\")\n\t}\n\n\t// The flushing logic is modified to never flush a trailing empty value.\n\t// The encoder never writes trailing whitespace eagerly.\n\tb := e.unflushedBuffer()\n\n\t// Detect whether the last value was empty.\n\tvar n int\n\tif len(b) >= 3 {\n\t\tswitch string(b[len(b)-2:]) {\n\t\tcase \"ll\": // last two bytes of `null`\n\t\t\tn = len(`null`)\n\t\tcase `\"\"`:\n\t\t\t// It is possible for a non-empty string to have `\"\"` as a suffix\n\t\t\t// if the second to the last quote was escaped.\n\t\t\tif b[len(b)-3] == '\\\\' {\n\t\t\t\treturn false // e.g., `\"\\\"\"` is not empty\n\t\t\t}\n\t\t\tn = len(`\"\"`)\n\t\tcase `{}`:\n\t\t\tn = len(`{}`)\n\t\tcase `[]`:\n\t\t\tn = len(`[]`)\n\t\t}\n\t}\n\tif n == 0 {\n\t\treturn false\n\t}\n\n\t// Unwrite the value, whitespace, colon, name, whitespace, and comma.\n\tb = b[:len(b)-n]\n\tb = trimSuffixWhitespace(b)\n\tb = trimSuffixByte(b, ':')\n\tb = trimSuffixString(b)\n\tb = trimSuffixWhitespace(b)\n\tb = trimSuffixByte(b, ',')\n\te.buf = b // store back truncated unflushed buffer\n\n\t// Undo state changes.\n\te.tokens.last.decrement() // for object member value\n\te.tokens.last.decrement() // for object member name\n\tif !e.options.AllowDuplicateNames {\n\t\tif e.tokens.last.isActiveNamespace() {\n\t\t\te.namespaces.last().removeLast()\n\t\t}\n\t\te.names.clearLast()\n\t\tif prevName != nil {\n\t\t\te.names.copyQuotedBuffer(e.buf) // required by objectNameStack.replaceLastUnquotedName\n\t\t\te.names.replaceLastUnquotedName(*prevName)\n\t\t}\n\t}\n\treturn true\n}\n\n// unwriteOnlyObjectMemberName unwrites the only object member name\n// and returns the unquoted name.\nfunc (e *Encoder) unwriteOnlyObjectMemberName() string {\n\tif last := e.tokens.last; !last.isObject() || last.length() != 1 {\n\t\tpanic(\"BUG: must be called on an object after writing first name\")\n\t}\n\n\t// Unwrite the name and whitespace.\n\tb := trimSuffixString(e.buf)\n\tisVerbatim := bytes.IndexByte(e.buf[len(b):], '\\\\') < 0\n\tname := string(unescapeStringMayCopy(e.buf[len(b):], isVerbatim))\n\te.buf = trimSuffixWhitespace(b)\n\n\t// Undo state changes.\n\te.tokens.last.decrement()\n\tif !e.options.AllowDuplicateNames {\n\t\tif e.tokens.last.isActiveNamespace() {\n\t\t\te.namespaces.last().removeLast()\n\t\t}\n\t\te.names.clearLast()\n\t}\n\treturn name\n}\n\nfunc trimSuffixWhitespace(b []byte) []byte {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tn := len(b) - 1\n\tfor n >= 0 && (b[n] == ' ' || b[n] == '\\t' || b[n] == '\\r' || b[n] == '\\n') {\n\t\tn--\n\t}\n\treturn b[:n+1]\n}\n\nfunc trimSuffixString(b []byte) []byte {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif len(b) > 0 && b[len(b)-1] == '\"' {\n\t\tb = b[:len(b)-1]\n\t}\n\tfor len(b) >= 2 && !(b[len(b)-1] == '\"' && b[len(b)-2] != '\\\\') {\n\t\tb = b[:len(b)-1] // trim all characters except an unescaped quote\n\t}\n\tif len(b) > 0 && b[len(b)-1] == '\"' {\n\t\tb = b[:len(b)-1]\n\t}\n\treturn b\n}\n\nfunc hasSuffixByte(b []byte, c byte) bool {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\treturn len(b) > 0 && b[len(b)-1] == c\n}\n\nfunc trimSuffixByte(b []byte, c byte) []byte {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif len(b) > 0 && b[len(b)-1] == c {\n\t\treturn b[:len(b)-1]\n\t}\n\treturn b\n}\n\n// WriteToken writes the next token and advances the internal write offset.\n//\n// The provided token kind must be consistent with the JSON grammar.\n// For example, it is an error to provide a number when the encoder\n// is expecting an object name (which is always a string), or\n// to provide an end object delimiter when the encoder is finishing an array.\n// If the provided token is invalid, then it reports a SyntacticError and\n// the internal state remains unchanged.\nfunc (e *Encoder) WriteToken(t Token) error {\n\tk := t.Kind()\n\tb := e.buf // use local variable to avoid mutating e in case of error\n\n\t// Append any delimiters or optional whitespace.\n\tb = e.tokens.mayAppendDelim(b, k)\n\tif e.options.multiline {\n\t\tb = e.appendWhitespace(b, k)\n\t}\n\n\t// Append the token to the output and to the state machine.\n\tvar err error\n\tswitch k {\n\tcase 'n':\n\t\tb = append(b, \"null\"...)\n\t\terr = e.tokens.appendLiteral()\n\tcase 'f':\n\t\tb = append(b, \"false\"...)\n\t\terr = e.tokens.appendLiteral()\n\tcase 't':\n\t\tb = append(b, \"true\"...)\n\t\terr = e.tokens.appendLiteral()\n\tcase '\"':\n\t\tn0 := len(b) // offset before calling t.appendString\n\t\tif b, err = t.appendString(b, !e.options.AllowInvalidUTF8, e.options.preserveRawStrings, e.options.EscapeRune); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif !e.options.AllowDuplicateNames && e.tokens.last.needObjectName() {\n\t\t\tif !e.tokens.last.isValidNamespace() {\n\t\t\t\terr = errInvalidNamespace\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif e.tokens.last.isActiveNamespace() && !e.namespaces.last().insertQuoted(b[n0:], false) {\n\t\t\t\terr = &SyntacticError{str: \"duplicate name \" + string(b[n0:]) + \" in object\"}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\te.names.replaceLastQuotedOffset(n0) // only replace if insertQuoted succeeds\n\t\t}\n\t\terr = e.tokens.appendString()\n\tcase '0':\n\t\tif b, err = t.appendNumber(b, e.options.canonicalizeNumbers); err != nil {\n\t\t\tbreak\n\t\t}\n\t\terr = e.tokens.appendNumber()\n\tcase '{':\n\t\tb = append(b, '{')\n\t\tif err = e.tokens.pushObject(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif !e.options.AllowDuplicateNames {\n\t\t\te.names.push()\n\t\t\te.namespaces.push()\n\t\t}\n\tcase '}':\n\t\tb = append(b, '}')\n\t\tif err = e.tokens.popObject(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif !e.options.AllowDuplicateNames {\n\t\t\te.names.pop()\n\t\t\te.namespaces.pop()\n\t\t}\n\tcase '[':\n\t\tb = append(b, '[')\n\t\terr = e.tokens.pushArray()\n\tcase ']':\n\t\tb = append(b, ']')\n\t\terr = e.tokens.popArray()\n\tdefault:\n\t\treturn &SyntacticError{str: \"invalid json.Token\"}\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Finish off the buffer and store it back into e.\n\te.buf = b\n\tif e.needFlush() {\n\t\treturn e.flush()\n\t}\n\treturn nil\n}\n\nconst (\n\trawIntNumber  = -1\n\trawUintNumber = -2\n)\n\n// writeNumber is specialized version of WriteToken, but optimized for numbers.\n// As a special-case, if bits is -1 or -2, it will treat v as\n// the raw-encoded bits of an int64 or uint64, respectively.\n// It is only called from arshal_default.go.\nfunc (e *Encoder) writeNumber(v float64, bits int, quote bool) error {\n\tb := e.buf // use local variable to avoid mutating e in case of error\n\n\t// Append any delimiters or optional whitespace.\n\tb = e.tokens.mayAppendDelim(b, '0')\n\tif e.options.multiline {\n\t\tb = e.appendWhitespace(b, '0')\n\t}\n\n\tif quote {\n\t\t// Append the value to the output.\n\t\tn0 := len(b) // offset before appending the number\n\t\tb = append(b, '\"')\n\t\tswitch bits {\n\t\tcase rawIntNumber:\n\t\t\tb = strconv.AppendInt(b, int64(math.Float64bits(v)), 10)\n\t\tcase rawUintNumber:\n\t\t\tb = strconv.AppendUint(b, uint64(math.Float64bits(v)), 10)\n\t\tdefault:\n\t\t\tb = appendNumber(b, v, bits)\n\t\t}\n\t\tb = append(b, '\"')\n\n\t\t// Escape the string if necessary.\n\t\tif e.options.EscapeRune != nil {\n\t\t\tb2 := append(e.unusedCache, b[n0+len(`\"`):len(b)-len(`\"`)]...)\n\t\t\tb, _ = appendString(b[:n0], string(b2), false, e.options.EscapeRune)\n\t\t\te.unusedCache = b2[:0]\n\t\t}\n\n\t\t// Update the state machine.\n\t\tif !e.options.AllowDuplicateNames && e.tokens.last.needObjectName() {\n\t\t\tif !e.tokens.last.isValidNamespace() {\n\t\t\t\treturn errInvalidNamespace\n\t\t\t}\n\t\t\tif e.tokens.last.isActiveNamespace() && !e.namespaces.last().insertQuoted(b[n0:], false) {\n\t\t\t\treturn &SyntacticError{str: \"duplicate name \" + string(b[n0:]) + \" in object\"}\n\t\t\t}\n\t\t\te.names.replaceLastQuotedOffset(n0) // only replace if insertQuoted succeeds\n\t\t}\n\t\tif err := e.tokens.appendString(); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tswitch bits {\n\t\tcase rawIntNumber:\n\t\t\tb = strconv.AppendInt(b, int64(math.Float64bits(v)), 10)\n\t\tcase rawUintNumber:\n\t\t\tb = strconv.AppendUint(b, uint64(math.Float64bits(v)), 10)\n\t\tdefault:\n\t\t\tb = appendNumber(b, v, bits)\n\t\t}\n\t\tif err := e.tokens.appendNumber(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Finish off the buffer and store it back into e.\n\te.buf = b\n\tif e.needFlush() {\n\t\treturn e.flush()\n\t}\n\treturn nil\n}\n\n// WriteValue writes the next raw value and advances the internal write offset.\n// The Encoder does not simply copy the provided value verbatim, but\n// parses it to ensure that it is syntactically valid and reformats it\n// according to how the Encoder is configured to format whitespace and strings.\n//\n// The provided value kind must be consistent with the JSON grammar\n// (see examples on Encoder.WriteToken). If the provided value is invalid,\n// then it reports a SyntacticError and the internal state remains unchanged.\nfunc (e *Encoder) WriteValue(v RawValue) error {\n\te.maxValue |= len(v) // bitwise OR is a fast approximation of max\n\n\tk := v.Kind()\n\tb := e.buf // use local variable to avoid mutating e in case of error\n\n\t// Append any delimiters or optional whitespace.\n\tb = e.tokens.mayAppendDelim(b, k)\n\tif e.options.multiline {\n\t\tb = e.appendWhitespace(b, k)\n\t}\n\n\t// Append the value the output.\n\tvar err error\n\tv = v[consumeWhitespace(v):]\n\tn0 := len(b) // offset before calling e.reformatValue\n\tb, v, err = e.reformatValue(b, v, e.tokens.depth())\n\tif err != nil {\n\t\treturn err\n\t}\n\tv = v[consumeWhitespace(v):]\n\tif len(v) > 0 {\n\t\treturn newInvalidCharacterError(v[0:], \"after top-level value\")\n\t}\n\n\t// Append the kind to the state machine.\n\tswitch k {\n\tcase 'n', 'f', 't':\n\t\terr = e.tokens.appendLiteral()\n\tcase '\"':\n\t\tif !e.options.AllowDuplicateNames && e.tokens.last.needObjectName() {\n\t\t\tif !e.tokens.last.isValidNamespace() {\n\t\t\t\terr = errInvalidNamespace\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif e.tokens.last.isActiveNamespace() && !e.namespaces.last().insertQuoted(b[n0:], false) {\n\t\t\t\terr = &SyntacticError{str: \"duplicate name \" + string(b[n0:]) + \" in object\"}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\te.names.replaceLastQuotedOffset(n0) // only replace if insertQuoted succeeds\n\t\t}\n\t\terr = e.tokens.appendString()\n\tcase '0':\n\t\terr = e.tokens.appendNumber()\n\tcase '{':\n\t\tif err = e.tokens.pushObject(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif err = e.tokens.popObject(); err != nil {\n\t\t\tpanic(\"BUG: popObject should never fail immediately after pushObject: \" + err.Error())\n\t\t}\n\tcase '[':\n\t\tif err = e.tokens.pushArray(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif err = e.tokens.popArray(); err != nil {\n\t\t\tpanic(\"BUG: popArray should never fail immediately after pushArray: \" + err.Error())\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Finish off the buffer and store it back into e.\n\te.buf = b\n\tif e.needFlush() {\n\t\treturn e.flush()\n\t}\n\treturn nil\n}\n\n// appendWhitespace appends whitespace that immediately precedes the next token.\nfunc (e *Encoder) appendWhitespace(b []byte, next Kind) []byte {\n\tif e.tokens.needDelim(next) == ':' {\n\t\treturn append(b, ' ')\n\t} else {\n\t\treturn e.appendIndent(b, e.tokens.needIndent(next))\n\t}\n}\n\n// appendIndent appends the appropriate number of indentation characters\n// for the current nested level, n.\nfunc (e *Encoder) appendIndent(b []byte, n int) []byte {\n\tif n == 0 {\n\t\treturn b\n\t}\n\tb = append(b, '\\n')\n\tb = append(b, e.options.IndentPrefix...)\n\tfor ; n > 1; n-- {\n\t\tb = append(b, e.options.Indent...)\n\t}\n\treturn b\n}\n\n// reformatValue parses a JSON value from the start of src and\n// appends it to the end of dst, reformatting whitespace and strings as needed.\n// It returns the updated versions of dst and src.\nfunc (e *Encoder) reformatValue(dst []byte, src RawValue, depth int) ([]byte, RawValue, error) {\n\t// TODO: Should this update valueFlags as input?\n\tif len(src) == 0 {\n\t\treturn dst, src, io.ErrUnexpectedEOF\n\t}\n\tvar n int\n\tvar err error\n\tswitch k := Kind(src[0]).normalize(); k {\n\tcase 'n':\n\t\tif n = consumeNull(src); n == 0 {\n\t\t\tn, err = consumeLiteral(src, \"null\")\n\t\t}\n\tcase 'f':\n\t\tif n = consumeFalse(src); n == 0 {\n\t\t\tn, err = consumeLiteral(src, \"false\")\n\t\t}\n\tcase 't':\n\t\tif n = consumeTrue(src); n == 0 {\n\t\t\tn, err = consumeLiteral(src, \"true\")\n\t\t}\n\tcase '\"':\n\t\tif n := consumeSimpleString(src); n > 0 && e.options.EscapeRune == nil {\n\t\t\tdst, src = append(dst, src[:n]...), src[n:] // copy simple strings verbatim\n\t\t\treturn dst, src, nil\n\t\t}\n\t\treturn reformatString(dst, src, !e.options.AllowInvalidUTF8, e.options.preserveRawStrings, e.options.EscapeRune)\n\tcase '0':\n\t\tif n := consumeSimpleNumber(src); n > 0 && !e.options.canonicalizeNumbers {\n\t\t\tdst, src = append(dst, src[:n]...), src[n:] // copy simple numbers verbatim\n\t\t\treturn dst, src, nil\n\t\t}\n\t\treturn reformatNumber(dst, src, e.options.canonicalizeNumbers)\n\tcase '{':\n\t\treturn e.reformatObject(dst, src, depth)\n\tcase '[':\n\t\treturn e.reformatArray(dst, src, depth)\n\tdefault:\n\t\treturn dst, src, newInvalidCharacterError(src, \"at start of value\")\n\t}\n\tif err != nil {\n\t\treturn dst, src, err\n\t}\n\tdst, src = append(dst, src[:n]...), src[n:]\n\treturn dst, src, nil\n}\n\n// reformatObject parses a JSON object from the start of src and\n// appends it to the end of src, reformatting whitespace and strings as needed.\n// It returns the updated versions of dst and src.\nfunc (e *Encoder) reformatObject(dst []byte, src RawValue, depth int) ([]byte, RawValue, error) {\n\t// Append object start.\n\tif src[0] != '{' {\n\t\tpanic(\"BUG: reformatObject must be called with a buffer that starts with '{'\")\n\t}\n\tdst, src = append(dst, '{'), src[1:]\n\n\t// Append (possible) object end.\n\tsrc = src[consumeWhitespace(src):]\n\tif len(src) == 0 {\n\t\treturn dst, src, io.ErrUnexpectedEOF\n\t}\n\tif src[0] == '}' {\n\t\tdst, src = append(dst, '}'), src[1:]\n\t\treturn dst, src, nil\n\t}\n\n\tvar err error\n\tvar names *objectNamespace\n\tif !e.options.AllowDuplicateNames {\n\t\te.namespaces.push()\n\t\tdefer e.namespaces.pop()\n\t\tnames = e.namespaces.last()\n\t}\n\tdepth++\n\tfor {\n\t\t// Append optional newline and indentation.\n\t\tif e.options.multiline {\n\t\t\tdst = e.appendIndent(dst, depth)\n\t\t}\n\n\t\t// Append object name.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tn0 := len(dst) // offset before calling reformatString\n\t\tn := consumeSimpleString(src)\n\t\tif n > 0 && e.options.EscapeRune == nil {\n\t\t\tdst, src = append(dst, src[:n]...), src[n:] // copy simple strings verbatim\n\t\t} else {\n\t\t\tdst, src, err = reformatString(dst, src, !e.options.AllowInvalidUTF8, e.options.preserveRawStrings, e.options.EscapeRune)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn dst, src, err\n\t\t}\n\t\tif !e.options.AllowDuplicateNames && !names.insertQuoted(dst[n0:], false) {\n\t\t\treturn dst, src, &SyntacticError{str: \"duplicate name \" + string(dst[n0:]) + \" in object\"}\n\t\t}\n\n\t\t// Append colon.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tif src[0] != ':' {\n\t\t\treturn dst, src, newInvalidCharacterError(src, \"after object name (expecting ':')\")\n\t\t}\n\t\tdst, src = append(dst, ':'), src[1:]\n\t\tif e.options.multiline {\n\t\t\tdst = append(dst, ' ')\n\t\t}\n\n\t\t// Append object value.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tdst, src, err = e.reformatValue(dst, src, depth)\n\t\tif err != nil {\n\t\t\treturn dst, src, err\n\t\t}\n\n\t\t// Append comma or object end.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tswitch src[0] {\n\t\tcase ',':\n\t\t\tdst, src = append(dst, ','), src[1:]\n\t\t\tcontinue\n\t\tcase '}':\n\t\t\tif e.options.multiline {\n\t\t\t\tdst = e.appendIndent(dst, depth-1)\n\t\t\t}\n\t\t\tdst, src = append(dst, '}'), src[1:]\n\t\t\treturn dst, src, nil\n\t\tdefault:\n\t\t\treturn dst, src, newInvalidCharacterError(src, \"after object value (expecting ',' or '}')\")\n\t\t}\n\t}\n}\n\n// reformatArray parses a JSON array from the start of src and\n// appends it to the end of dst, reformatting whitespace and strings as needed.\n// It returns the updated versions of dst and src.\nfunc (e *Encoder) reformatArray(dst []byte, src RawValue, depth int) ([]byte, RawValue, error) {\n\t// Append array start.\n\tif src[0] != '[' {\n\t\tpanic(\"BUG: reformatArray must be called with a buffer that starts with '['\")\n\t}\n\tdst, src = append(dst, '['), src[1:]\n\n\t// Append (possible) array end.\n\tsrc = src[consumeWhitespace(src):]\n\tif len(src) == 0 {\n\t\treturn dst, src, io.ErrUnexpectedEOF\n\t}\n\tif src[0] == ']' {\n\t\tdst, src = append(dst, ']'), src[1:]\n\t\treturn dst, src, nil\n\t}\n\n\tvar err error\n\tdepth++\n\tfor {\n\t\t// Append optional newline and indentation.\n\t\tif e.options.multiline {\n\t\t\tdst = e.appendIndent(dst, depth)\n\t\t}\n\n\t\t// Append array value.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tdst, src, err = e.reformatValue(dst, src, depth)\n\t\tif err != nil {\n\t\t\treturn dst, src, err\n\t\t}\n\n\t\t// Append comma or array end.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tswitch src[0] {\n\t\tcase ',':\n\t\t\tdst, src = append(dst, ','), src[1:]\n\t\t\tcontinue\n\t\tcase ']':\n\t\t\tif e.options.multiline {\n\t\t\t\tdst = e.appendIndent(dst, depth-1)\n\t\t\t}\n\t\t\tdst, src = append(dst, ']'), src[1:]\n\t\t\treturn dst, src, nil\n\t\tdefault:\n\t\t\treturn dst, src, newInvalidCharacterError(src, \"after array value (expecting ',' or ']')\")\n\t\t}\n\t}\n}\n\n// OutputOffset returns the current output byte offset. It gives the location\n// of the next byte immediately after the most recently written token or value.\n// The number of bytes actually written to the underlying io.Writer may be less\n// than this offset due to internal buffering effects.\nfunc (e *Encoder) OutputOffset() int64 {\n\treturn e.previousOffsetEnd()\n}\n\n// UnusedBuffer returns a zero-length buffer with a possible non-zero capacity.\n// This buffer is intended to be used to populate a RawValue\n// being passed to an immediately succeeding WriteValue call.\n//\n// Example usage:\n//\n//\tb := d.UnusedBuffer()\n//\tb = append(b, '\"')\n//\tb = appendString(b, v) // append the string formatting of v\n//\tb = append(b, '\"')\n//\t... := d.WriteValue(b)\n//\n// It is the user's responsibility to ensure that the value is valid JSON.\nfunc (e *Encoder) UnusedBuffer() []byte {\n\t// NOTE: We don't return e.buf[len(e.buf):cap(e.buf)] since WriteValue would\n\t// need to take special care to avoid mangling the data while reformatting.\n\t// WriteValue can't easily identify whether the input RawValue aliases e.buf\n\t// without using unsafe.Pointer. Thus, we just return a different buffer.\n\t// Should this ever alias e.buf, we need to consider how it operates with\n\t// the specialized performance optimization for bytes.Buffer.\n\tn := 1 << bits.Len(uint(e.maxValue|63)) // fast approximation for max length\n\tif cap(e.unusedCache) < n {\n\t\te.unusedCache = make([]byte, 0, n)\n\t}\n\treturn e.unusedCache\n}\n\n// StackDepth returns the depth of the state machine for written JSON data.\n// Each level on the stack represents a nested JSON object or array.\n// It is incremented whenever an ObjectStart or ArrayStart token is encountered\n// and decremented whenever an ObjectEnd or ArrayEnd token is encountered.\n// The depth is zero-indexed, where zero represents the top-level JSON value.\nfunc (e *Encoder) StackDepth() int {\n\t// NOTE: Keep in sync with Decoder.StackDepth.\n\treturn e.tokens.depth() - 1\n}\n\n// StackIndex returns information about the specified stack level.\n// It must be a number between 0 and StackDepth, inclusive.\n// For each level, it reports the kind:\n//\n//   - 0 for a level of zero,\n//   - '{' for a level representing a JSON object, and\n//   - '[' for a level representing a JSON array.\n//\n// It also reports the length of that JSON object or array.\n// Each name and value in a JSON object is counted separately,\n// so the effective number of members would be half the length.\n// A complete JSON object must have an even length.\nfunc (e *Encoder) StackIndex(i int) (Kind, int) {\n\t// NOTE: Keep in sync with Decoder.StackIndex.\n\tswitch s := e.tokens.index(i); {\n\tcase i > 0 && s.isObject():\n\t\treturn '{', s.length()\n\tcase i > 0 && s.isArray():\n\t\treturn '[', s.length()\n\tdefault:\n\t\treturn 0, s.length()\n\t}\n}\n\n// StackPointer returns a JSON Pointer (RFC 6901) to the most recently written value.\n// Object names are only present if AllowDuplicateNames is false, otherwise\n// object members are represented using their index within the object.\nfunc (e *Encoder) StackPointer() string {\n\te.names.copyQuotedBuffer(e.buf)\n\treturn string(e.appendStackPointer(nil))\n}\n\n// appendString appends src to dst as a JSON string per RFC 7159, section 7.\n//\n// If validateUTF8 is specified, this rejects input that contains invalid UTF-8\n// otherwise invalid bytes are replaced with the Unicode replacement character.\n// If escapeRune is provided, it specifies which runes to escape using\n// hexadecimal sequences. If nil, the shortest representable form is used,\n// which is also the canonical form for strings (RFC 8785, section 3.2.2.2).\n//\n// Note that this API allows full control over the formatting of strings\n// except for whether a forward solidus '/' may be formatted as '\\/' and\n// the casing of hexadecimal Unicode escape sequences.\nfunc appendString(dst []byte, src string, validateUTF8 bool, escapeRune func(rune) bool) ([]byte, error) {\n\tappendEscapedASCII := func(dst []byte, c byte) []byte {\n\t\tswitch c {\n\t\tcase '\"', '\\\\':\n\t\t\tdst = append(dst, '\\\\', c)\n\t\tcase '\\b':\n\t\t\tdst = append(dst, \"\\\\b\"...)\n\t\tcase '\\f':\n\t\t\tdst = append(dst, \"\\\\f\"...)\n\t\tcase '\\n':\n\t\t\tdst = append(dst, \"\\\\n\"...)\n\t\tcase '\\r':\n\t\t\tdst = append(dst, \"\\\\r\"...)\n\t\tcase '\\t':\n\t\t\tdst = append(dst, \"\\\\t\"...)\n\t\tdefault:\n\t\t\tdst = append(dst, \"\\\\u\"...)\n\t\t\tdst = appendHexUint16(dst, uint16(c))\n\t\t}\n\t\treturn dst\n\t}\n\tappendEscapedUnicode := func(dst []byte, r rune) []byte {\n\t\tif r1, r2 := utf16.EncodeRune(r); r1 != '\\ufffd' && r2 != '\\ufffd' {\n\t\t\tdst = append(dst, \"\\\\u\"...)\n\t\t\tdst = appendHexUint16(dst, uint16(r1))\n\t\t\tdst = append(dst, \"\\\\u\"...)\n\t\t\tdst = appendHexUint16(dst, uint16(r2))\n\t\t} else {\n\t\t\tdst = append(dst, \"\\\\u\"...)\n\t\t\tdst = appendHexUint16(dst, uint16(r))\n\t\t}\n\t\treturn dst\n\t}\n\n\t// Optimize for when escapeRune is nil.\n\tif escapeRune == nil {\n\t\tvar i, n int\n\t\tdst = append(dst, '\"')\n\t\tfor uint(len(src)) > uint(n) {\n\t\t\t// Handle single-byte ASCII.\n\t\t\tif c := src[n]; c < utf8.RuneSelf {\n\t\t\t\tn++\n\t\t\t\tif c < ' ' || c == '\"' || c == '\\\\' {\n\t\t\t\t\tdst = append(dst, src[i:n-1]...)\n\t\t\t\t\tdst = appendEscapedASCII(dst, c)\n\t\t\t\t\ti = n\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Handle multi-byte Unicode.\n\t\t\t_, rn := utf8.DecodeRuneInString(src[n:])\n\t\t\tn += rn\n\t\t\tif rn == 1 { // must be utf8.RuneError since we already checked for single-byte ASCII\n\t\t\t\tdst = append(dst, src[i:n-rn]...)\n\t\t\t\tif validateUTF8 {\n\t\t\t\t\treturn dst, &SyntacticError{str: \"invalid UTF-8 within string\"}\n\t\t\t\t}\n\t\t\t\tdst = append(dst, \"\\ufffd\"...)\n\t\t\t\ti = n\n\t\t\t}\n\t\t}\n\t\tdst = append(dst, src[i:n]...)\n\t\tdst = append(dst, '\"')\n\t\treturn dst, nil\n\t}\n\n\t// Slower implementation for when escapeRune is non-nil.\n\tvar i, n int\n\tdst = append(dst, '\"')\n\tfor uint(len(src)) > uint(n) {\n\t\tswitch r, rn := utf8.DecodeRuneInString(src[n:]); {\n\t\tcase r == utf8.RuneError && rn == 1:\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tif validateUTF8 {\n\t\t\t\treturn dst, &SyntacticError{str: \"invalid UTF-8 within string\"}\n\t\t\t}\n\t\t\tif escapeRune('\\ufffd') {\n\t\t\t\tdst = append(dst, `\\ufffd`...)\n\t\t\t} else {\n\t\t\t\tdst = append(dst, \"\\ufffd\"...)\n\t\t\t}\n\t\t\tn += rn\n\t\t\ti = n\n\t\tcase escapeRune(r):\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tdst = appendEscapedUnicode(dst, r)\n\t\t\tn += rn\n\t\t\ti = n\n\t\tcase r < ' ' || r == '\"' || r == '\\\\':\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tdst = appendEscapedASCII(dst, byte(r))\n\t\t\tn += rn\n\t\t\ti = n\n\t\tdefault:\n\t\t\tn += rn\n\t\t}\n\t}\n\tdst = append(dst, src[i:n]...)\n\tdst = append(dst, '\"')\n\treturn dst, nil\n}\n\n// reformatString consumes a JSON string from src and appends it to dst,\n// reformatting it if necessary for the given escapeRune parameter.\n// It returns the appended output and the remainder of the input.\nfunc reformatString(dst, src []byte, validateUTF8, preserveRaw bool, escapeRune func(rune) bool) ([]byte, []byte, error) {\n\t// TODO: Should this update valueFlags as input?\n\tvar flags valueFlags\n\tn, err := consumeString(&flags, src, validateUTF8)\n\tif err != nil {\n\t\treturn dst, src[n:], err\n\t}\n\tif preserveRaw || (escapeRune == nil && flags.isCanonical()) {\n\t\tdst = append(dst, src[:n]...) // copy the string verbatim\n\t\treturn dst, src[n:], nil\n\t}\n\n\t// TODO: Implement a direct, raw-to-raw reformat for strings.\n\t// If the escapeRune option would have resulted in no changes to the output,\n\t// it would be faster to simply append src to dst without going through\n\t// an intermediary representation in a separate buffer.\n\tb, _ := unescapeString(make([]byte, 0, n), src[:n])\n\tdst, _ = appendString(dst, string(b), validateUTF8, escapeRune)\n\treturn dst, src[n:], nil\n}\n\n// appendNumber appends src to dst as a JSON number per RFC 7159, section 6.\n// It formats numbers similar to the ES6 number-to-string conversion.\n// See https://go.dev/issue/14135.\n//\n// The output is identical to ECMA-262, 6th edition, section 7.1.12.1 and with\n// RFC 8785, section 3.2.2.3 for 64-bit floating-point numbers except for -0,\n// which is formatted as -0 instead of just 0.\n//\n// For 32-bit floating-point numbers,\n// the output is a 32-bit equivalent of the algorithm.\n// Note that ECMA-262 specifies no algorithm for 32-bit numbers.\nfunc appendNumber(dst []byte, src float64, bits int) []byte {\n\tif bits == 32 {\n\t\tsrc = float64(float32(src))\n\t}\n\n\tabs := math.Abs(src)\n\tfmt := byte('f')\n\tif abs != 0 {\n\t\tif bits == 64 && (float64(abs) < 1e-6 || float64(abs) >= 1e21) ||\n\t\t\tbits == 32 && (float32(abs) < 1e-6 || float32(abs) >= 1e21) {\n\t\t\tfmt = 'e'\n\t\t}\n\t}\n\tdst = strconv.AppendFloat(dst, src, fmt, -1, bits)\n\tif fmt == 'e' {\n\t\t// Clean up e-09 to e-9.\n\t\tn := len(dst)\n\t\tif n >= 4 && dst[n-4] == 'e' && dst[n-3] == '-' && dst[n-2] == '0' {\n\t\t\tdst[n-2] = dst[n-1]\n\t\t\tdst = dst[:n-1]\n\t\t}\n\t}\n\treturn dst\n}\n\n// reformatNumber consumes a JSON string from src and appends it to dst,\n// canonicalizing it if specified.\n// It returns the appended output and the remainder of the input.\nfunc reformatNumber(dst, src []byte, canonicalize bool) ([]byte, []byte, error) {\n\tn, err := consumeNumber(src)\n\tif err != nil {\n\t\treturn dst, src[n:], err\n\t}\n\tif !canonicalize {\n\t\tdst = append(dst, src[:n]...) // copy the number verbatim\n\t\treturn dst, src[n:], nil\n\t}\n\n\t// Canonicalize the number per RFC 8785, section 3.2.2.3.\n\t// As an optimization, we can copy integer numbers below 2⁵³ verbatim.\n\tconst maxExactIntegerDigits = 16 // len(strconv.AppendUint(nil, 1<<53, 10))\n\tif n < maxExactIntegerDigits && consumeSimpleNumber(src[:n]) == n {\n\t\tdst = append(dst, src[:n]...) // copy the number verbatim\n\t\treturn dst, src[n:], nil\n\t}\n\tfv, _ := strconv.ParseFloat(string(src[:n]), 64)\n\tswitch {\n\tcase fv == 0:\n\t\tfv = 0 // normalize negative zero as just zero\n\tcase math.IsInf(fv, +1):\n\t\tfv = +math.MaxFloat64\n\tcase math.IsInf(fv, -1):\n\t\tfv = -math.MaxFloat64\n\t}\n\treturn appendNumber(dst, fv, 64), src[n:], nil\n}\n\n// appendHexUint16 appends src to dst as a 4-byte hexadecimal number.\nfunc appendHexUint16(dst []byte, src uint16) []byte {\n\tdst = append(dst, \"0000\"[1+(bits.Len16(src)-1)/4:]...)\n\tdst = strconv.AppendUint(dst, uint64(src), 16)\n\treturn dst\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/encode_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"crypto/sha256\"\n\t\"encoding/binary\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"flag\"\n\t\"io\"\n\t\"math\"\n\t\"net/http\"\n\t\"path\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\t\"unicode\"\n)\n\n// TestEncoder tests whether we can produce JSON with either tokens or raw values.\nfunc TestEncoder(t *testing.T) {\n\tfor _, td := range coderTestdata {\n\t\tfor _, formatName := range []string{\"Compact\", \"Escaped\", \"Indented\"} {\n\t\t\tfor _, typeName := range []string{\"Token\", \"Value\", \"TokenDelims\"} {\n\t\t\t\tt.Run(path.Join(td.name.name, typeName, formatName), func(t *testing.T) {\n\t\t\t\t\ttestEncoder(t, td.name.where, formatName, typeName, td)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n}\nfunc testEncoder(t *testing.T, where pc, formatName, typeName string, td coderTestdataEntry) {\n\tvar want string\n\tdst := new(bytes.Buffer)\n\tenc := NewEncoder(dst)\n\tenc.options.omitTopLevelNewline = true\n\twant = td.outCompacted\n\tswitch formatName {\n\tcase \"Escaped\":\n\t\tenc.options.EscapeRune = func(rune) bool { return true }\n\t\tif td.outEscaped != \"\" {\n\t\t\twant = td.outEscaped\n\t\t}\n\tcase \"Indented\":\n\t\tenc.options.multiline = true\n\t\tenc.options.IndentPrefix = \"\\t\"\n\t\tenc.options.Indent = \"    \"\n\t\tif td.outIndented != \"\" {\n\t\t\twant = td.outIndented\n\t\t}\n\t}\n\n\tswitch typeName {\n\tcase \"Token\":\n\t\tvar pointers []string\n\t\tfor _, tok := range td.tokens {\n\t\t\tif err := enc.WriteToken(tok); err != nil {\n\t\t\t\tt.Fatalf(\"%s: Encoder.WriteToken error: %v\", where, err)\n\t\t\t}\n\t\t\tif td.pointers != nil {\n\t\t\t\tpointers = append(pointers, enc.StackPointer())\n\t\t\t}\n\t\t}\n\t\tif !reflect.DeepEqual(pointers, td.pointers) {\n\t\t\tt.Fatalf(\"%s: pointers mismatch:\\ngot  %q\\nwant %q\", where, pointers, td.pointers)\n\t\t}\n\tcase \"Value\":\n\t\tif err := enc.WriteValue(RawValue(td.in)); err != nil {\n\t\t\tt.Fatalf(\"%s: Encoder.WriteValue error: %v\", where, err)\n\t\t}\n\tcase \"TokenDelims\":\n\t\t// Use WriteToken for object/array delimiters, WriteValue otherwise.\n\t\tfor _, tok := range td.tokens {\n\t\t\tswitch tok.Kind() {\n\t\t\tcase '{', '}', '[', ']':\n\t\t\t\tif err := enc.WriteToken(tok); err != nil {\n\t\t\t\t\tt.Fatalf(\"%s: Encoder.WriteToken error: %v\", where, err)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tval := RawValue(tok.String())\n\t\t\t\tif tok.Kind() == '\"' {\n\t\t\t\t\tval, _ = appendString(nil, tok.String(), false, nil)\n\t\t\t\t}\n\t\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\t\tt.Fatalf(\"%s: Encoder.WriteValue error: %v\", where, err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tgot := dst.String()\n\tif got != want {\n\t\tt.Errorf(\"%s: output mismatch:\\ngot  %q\\nwant %q\", where, got, want)\n\t}\n}\n\n// TestFaultyEncoder tests that temporary I/O errors are not fatal.\nfunc TestFaultyEncoder(t *testing.T) {\n\tfor _, td := range coderTestdata {\n\t\tfor _, typeName := range []string{\"Token\", \"Value\"} {\n\t\t\tt.Run(path.Join(td.name.name, typeName), func(t *testing.T) {\n\t\t\t\ttestFaultyEncoder(t, td.name.where, typeName, td)\n\t\t\t})\n\t\t}\n\t}\n}\nfunc testFaultyEncoder(t *testing.T, where pc, typeName string, td coderTestdataEntry) {\n\tb := &FaultyBuffer{\n\t\tMaxBytes: 1,\n\t\tMayError: io.ErrShortWrite,\n\t}\n\n\t// Write all the tokens.\n\t// Even if the underlying io.Writer may be faulty,\n\t// writing a valid token or value is guaranteed to at least\n\t// be appended to the internal buffer.\n\t// In other words, syntactic errors occur before I/O errors.\n\tenc := NewEncoder(b)\n\tswitch typeName {\n\tcase \"Token\":\n\t\tfor i, tok := range td.tokens {\n\t\t\terr := enc.WriteToken(tok)\n\t\t\tif err != nil && !errors.Is(err, io.ErrShortWrite) {\n\t\t\t\tt.Fatalf(\"%s: %d: Encoder.WriteToken error: %v\", where, i, err)\n\t\t\t}\n\t\t}\n\tcase \"Value\":\n\t\terr := enc.WriteValue(RawValue(td.in))\n\t\tif err != nil && !errors.Is(err, io.ErrShortWrite) {\n\t\t\tt.Fatalf(\"%s: Encoder.WriteValue error: %v\", where, err)\n\t\t}\n\t}\n\tgotOutput := string(append(b.B, enc.unflushedBuffer()...))\n\twantOutput := td.outCompacted + \"\\n\"\n\tif gotOutput != wantOutput {\n\t\tt.Fatalf(\"%s: output mismatch:\\ngot  %s\\nwant %s\", where, gotOutput, wantOutput)\n\t}\n}\n\ntype encoderMethodCall struct {\n\tin          tokOrVal\n\twantErr     error\n\twantPointer string\n}\n\nvar encoderErrorTestdata = []struct {\n\tname    testName\n\topts    EncodeOptions\n\tcalls   []encoderMethodCall\n\twantOut string\n}{{\n\tname: name(\"InvalidToken\"),\n\tcalls: []encoderMethodCall{\n\t\t{zeroToken, &SyntacticError{str: \"invalid json.Token\"}, \"\"},\n\t},\n}, {\n\tname: name(\"InvalidValue\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`#`), newInvalidCharacterError([]byte(\"#\"), \"at start of value\"), \"\"},\n\t},\n}, {\n\tname: name(\"InvalidValue/DoubleZero\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`00`), newInvalidCharacterError([]byte(\"0\"), \"after top-level value\"), \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedValue\"),\n\tcalls: []encoderMethodCall{\n\t\t{zeroValue, io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedNull\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`nul`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"InvalidNull\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`nulL`), newInvalidCharacterError([]byte(\"L\"), \"within literal null (expecting 'l')\"), \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedFalse\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`fals`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"InvalidFalse\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`falsE`), newInvalidCharacterError([]byte(\"E\"), \"within literal false (expecting 'e')\"), \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedTrue\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`tru`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"InvalidTrue\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`truE`), newInvalidCharacterError([]byte(\"E\"), \"within literal true (expecting 'e')\"), \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedString\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`\"star`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"InvalidString\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`\"ok` + \"\\x00\"), newInvalidCharacterError([]byte(\"\\x00\"), `within string (expecting non-control character)`), \"\"},\n\t},\n}, {\n\tname: name(\"ValidString/AllowInvalidUTF8/Token\"),\n\topts: EncodeOptions{AllowInvalidUTF8: true},\n\tcalls: []encoderMethodCall{\n\t\t{String(\"living\\xde\\xad\\xbe\\xef\"), nil, \"\"},\n\t},\n\twantOut: \"\\\"living\\xde\\xad\\ufffd\\ufffd\\\"\\n\",\n}, {\n\tname: name(\"ValidString/AllowInvalidUTF8/Value\"),\n\topts: EncodeOptions{AllowInvalidUTF8: true},\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(\"\\\"living\\xde\\xad\\xbe\\xef\\\"\"), nil, \"\"},\n\t},\n\twantOut: \"\\\"living\\xde\\xad\\ufffd\\ufffd\\\"\\n\",\n}, {\n\tname: name(\"InvalidString/RejectInvalidUTF8\"),\n\topts: EncodeOptions{AllowInvalidUTF8: false},\n\tcalls: []encoderMethodCall{\n\t\t{String(\"living\\xde\\xad\\xbe\\xef\"), &SyntacticError{str: \"invalid UTF-8 within string\"}, \"\"},\n\t\t{RawValue(\"\\\"living\\xde\\xad\\xbe\\xef\\\"\"), &SyntacticError{str: \"invalid UTF-8 within string\"}, \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedNumber\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`0.`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"InvalidNumber\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`0.e`), newInvalidCharacterError([]byte(\"e\"), \"within number (expecting digit)\"), \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedObject/AfterStart\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`{`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedObject/AfterName\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`{\"0\"`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedObject/AfterColon\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`{\"0\":`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedObject/AfterValue\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`{\"0\":0`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedObject/AfterComma\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`{\"0\":0,`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"InvalidObject/MissingColon\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(` { \"fizz\" \"buzz\" } `), newInvalidCharacterError([]byte(\"\\\"\"), \"after object name (expecting ':')\"), \"\"},\n\t\t{RawValue(` { \"fizz\" , \"buzz\" } `), newInvalidCharacterError([]byte(\",\"), \"after object name (expecting ':')\"), \"\"},\n\t},\n}, {\n\tname: name(\"InvalidObject/MissingComma\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(` { \"fizz\" : \"buzz\" \"gazz\" } `), newInvalidCharacterError([]byte(\"\\\"\"), \"after object value (expecting ',' or '}')\"), \"\"},\n\t\t{RawValue(` { \"fizz\" : \"buzz\" : \"gazz\" } `), newInvalidCharacterError([]byte(\":\"), \"after object value (expecting ',' or '}')\"), \"\"},\n\t},\n}, {\n\tname: name(\"InvalidObject/ExtraComma\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(` { , } `), newInvalidCharacterError([]byte(\",\"), `at start of string (expecting '\"')`), \"\"},\n\t\t{RawValue(` { \"fizz\" : \"buzz\" , } `), newInvalidCharacterError([]byte(\"}\"), `at start of string (expecting '\"')`), \"\"},\n\t},\n}, {\n\tname: name(\"InvalidObject/InvalidName\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`{ null }`), newInvalidCharacterError([]byte(\"n\"), `at start of string (expecting '\"')`), \"\"},\n\t\t{RawValue(`{ false }`), newInvalidCharacterError([]byte(\"f\"), `at start of string (expecting '\"')`), \"\"},\n\t\t{RawValue(`{ true }`), newInvalidCharacterError([]byte(\"t\"), `at start of string (expecting '\"')`), \"\"},\n\t\t{RawValue(`{ 0 }`), newInvalidCharacterError([]byte(\"0\"), `at start of string (expecting '\"')`), \"\"},\n\t\t{RawValue(`{ {} }`), newInvalidCharacterError([]byte(\"{\"), `at start of string (expecting '\"')`), \"\"},\n\t\t{RawValue(`{ [] }`), newInvalidCharacterError([]byte(\"[\"), `at start of string (expecting '\"')`), \"\"},\n\t\t{ObjectStart, nil, \"\"},\n\t\t{Null, errMissingName, \"\"},\n\t\t{RawValue(`null`), errMissingName, \"\"},\n\t\t{False, errMissingName, \"\"},\n\t\t{RawValue(`false`), errMissingName, \"\"},\n\t\t{True, errMissingName, \"\"},\n\t\t{RawValue(`true`), errMissingName, \"\"},\n\t\t{Uint(0), errMissingName, \"\"},\n\t\t{RawValue(`0`), errMissingName, \"\"},\n\t\t{ObjectStart, errMissingName, \"\"},\n\t\t{RawValue(`{}`), errMissingName, \"\"},\n\t\t{ArrayStart, errMissingName, \"\"},\n\t\t{RawValue(`[]`), errMissingName, \"\"},\n\t\t{ObjectEnd, nil, \"\"},\n\t},\n\twantOut: \"{}\\n\",\n}, {\n\tname: name(\"InvalidObject/InvalidValue\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`{ \"0\": x }`), newInvalidCharacterError([]byte(\"x\"), `at start of value`), \"\"},\n\t},\n}, {\n\tname: name(\"InvalidObject/MismatchingDelim\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(` { ] `), newInvalidCharacterError([]byte(\"]\"), `at start of string (expecting '\"')`), \"\"},\n\t\t{RawValue(` { \"0\":0 ] `), newInvalidCharacterError([]byte(\"]\"), `after object value (expecting ',' or '}')`), \"\"},\n\t\t{ObjectStart, nil, \"\"},\n\t\t{ArrayEnd, errMismatchDelim, \"\"},\n\t\t{RawValue(`]`), newInvalidCharacterError([]byte(\"]\"), \"at start of value\"), \"\"},\n\t\t{ObjectEnd, nil, \"\"},\n\t},\n\twantOut: \"{}\\n\",\n}, {\n\tname: name(\"ValidObject/UniqueNames\"),\n\tcalls: []encoderMethodCall{\n\t\t{ObjectStart, nil, \"\"},\n\t\t{String(\"0\"), nil, \"\"},\n\t\t{Uint(0), nil, \"\"},\n\t\t{String(\"1\"), nil, \"\"},\n\t\t{Uint(1), nil, \"\"},\n\t\t{ObjectEnd, nil, \"\"},\n\t\t{RawValue(` { \"0\" : 0 , \"1\" : 1 } `), nil, \"\"},\n\t},\n\twantOut: `{\"0\":0,\"1\":1}` + \"\\n\" + `{\"0\":0,\"1\":1}` + \"\\n\",\n}, {\n\tname: name(\"ValidObject/DuplicateNames\"),\n\topts: EncodeOptions{AllowDuplicateNames: true},\n\tcalls: []encoderMethodCall{\n\t\t{ObjectStart, nil, \"\"},\n\t\t{String(\"0\"), nil, \"\"},\n\t\t{Uint(0), nil, \"\"},\n\t\t{String(\"0\"), nil, \"\"},\n\t\t{Uint(0), nil, \"\"},\n\t\t{ObjectEnd, nil, \"\"},\n\t\t{RawValue(` { \"0\" : 0 , \"0\" : 0 } `), nil, \"\"},\n\t},\n\twantOut: `{\"0\":0,\"0\":0}` + \"\\n\" + `{\"0\":0,\"0\":0}` + \"\\n\",\n}, {\n\tname: name(\"InvalidObject/DuplicateNames\"),\n\tcalls: []encoderMethodCall{\n\t\t{ObjectStart, nil, \"\"},\n\t\t{String(\"0\"), nil, \"\"},\n\t\t{ObjectStart, nil, \"\"},\n\t\t{ObjectEnd, nil, \"\"},\n\t\t{String(\"0\"), &SyntacticError{str: `duplicate name \"0\" in object`}, \"/0\"},\n\t\t{RawValue(`\"0\"`), &SyntacticError{str: `duplicate name \"0\" in object`}, \"/0\"},\n\t\t{String(\"1\"), nil, \"\"},\n\t\t{ObjectStart, nil, \"\"},\n\t\t{ObjectEnd, nil, \"\"},\n\t\t{String(\"0\"), &SyntacticError{str: `duplicate name \"0\" in object`}, \"/1\"},\n\t\t{RawValue(`\"0\"`), &SyntacticError{str: `duplicate name \"0\" in object`}, \"/1\"},\n\t\t{String(\"1\"), &SyntacticError{str: `duplicate name \"1\" in object`}, \"/1\"},\n\t\t{RawValue(`\"1\"`), &SyntacticError{str: `duplicate name \"1\" in object`}, \"/1\"},\n\t\t{ObjectEnd, nil, \"\"},\n\t\t{RawValue(` { \"0\" : 0 , \"1\" : 1 , \"0\" : 0 } `), &SyntacticError{str: `duplicate name \"0\" in object`}, \"\"},\n\t},\n\twantOut: `{\"0\":{},\"1\":{}}` + \"\\n\",\n}, {\n\tname: name(\"TruncatedArray/AfterStart\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`[`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedArray/AfterValue\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`[0`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedArray/AfterComma\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(`[0,`), io.ErrUnexpectedEOF, \"\"},\n\t},\n}, {\n\tname: name(\"TruncatedArray/MissingComma\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(` [ \"fizz\" \"buzz\" ] `), newInvalidCharacterError([]byte(\"\\\"\"), \"after array value (expecting ',' or ']')\"), \"\"},\n\t},\n}, {\n\tname: name(\"InvalidArray/MismatchingDelim\"),\n\tcalls: []encoderMethodCall{\n\t\t{RawValue(` [ } `), newInvalidCharacterError([]byte(\"}\"), `at start of value`), \"\"},\n\t\t{ArrayStart, nil, \"\"},\n\t\t{ObjectEnd, errMismatchDelim, \"\"},\n\t\t{RawValue(`}`), newInvalidCharacterError([]byte(\"}\"), \"at start of value\"), \"\"},\n\t\t{ArrayEnd, nil, \"\"},\n\t},\n\twantOut: \"[]\\n\",\n}}\n\n// TestEncoderErrors test that Encoder errors occur when we expect and\n// leaves the Encoder in a consistent state.\nfunc TestEncoderErrors(t *testing.T) {\n\tfor _, td := range encoderErrorTestdata {\n\t\tt.Run(path.Join(td.name.name), func(t *testing.T) {\n\t\t\ttestEncoderErrors(t, td.name.where, td.opts, td.calls, td.wantOut)\n\t\t})\n\t}\n}\nfunc testEncoderErrors(t *testing.T, where pc, opts EncodeOptions, calls []encoderMethodCall, wantOut string) {\n\tdst := new(bytes.Buffer)\n\tenc := opts.NewEncoder(dst)\n\tfor i, call := range calls {\n\t\tvar gotErr error\n\t\tswitch tokVal := call.in.(type) {\n\t\tcase Token:\n\t\t\tgotErr = enc.WriteToken(tokVal)\n\t\tcase RawValue:\n\t\t\tgotErr = enc.WriteValue(tokVal)\n\t\t}\n\t\tif !reflect.DeepEqual(gotErr, call.wantErr) {\n\t\t\tt.Fatalf(\"%s: %d: error mismatch: got %#v, want %#v\", where, i, gotErr, call.wantErr)\n\t\t}\n\t\tif call.wantPointer != \"\" {\n\t\t\tgotPointer := enc.StackPointer()\n\t\t\tif gotPointer != call.wantPointer {\n\t\t\t\tt.Fatalf(\"%s: %d: Encoder.StackPointer = %s, want %s\", where, i, gotPointer, call.wantPointer)\n\t\t\t}\n\t\t}\n\t}\n\tgotOut := dst.String() + string(enc.unflushedBuffer())\n\tif gotOut != wantOut {\n\t\tt.Fatalf(\"%s: output mismatch:\\ngot  %q\\nwant %q\", where, gotOut, wantOut)\n\t}\n\tgotOffset := int(enc.OutputOffset())\n\twantOffset := len(wantOut)\n\tif gotOffset != wantOffset {\n\t\tt.Fatalf(\"%s: Encoder.OutputOffset = %v, want %v\", where, gotOffset, wantOffset)\n\t}\n}\n\nfunc TestAppendString(t *testing.T) {\n\tvar (\n\t\tescapeNothing    = func(r rune) bool { return false }\n\t\tescapeHTML       = func(r rune) bool { return r == '<' || r == '>' || r == '&' || r == '\\u2028' || r == '\\u2029' }\n\t\tescapeNonASCII   = func(r rune) bool { return r > unicode.MaxASCII }\n\t\tescapeEverything = func(r rune) bool { return true }\n\t)\n\n\ttests := []struct {\n\t\tin          string\n\t\tescapeRune  func(rune) bool\n\t\twant        string\n\t\twantErr     error\n\t\twantErrUTF8 error\n\t}{\n\t\t{\"\", nil, `\"\"`, nil, nil},\n\t\t{\"hello\", nil, `\"hello\"`, nil, nil},\n\t\t{\"\\x00\", nil, `\"\\u0000\"`, nil, nil},\n\t\t{\"\\x1f\", nil, `\"\\u001f\"`, nil, nil},\n\t\t{\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\", nil, `\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\"`, nil, nil},\n\t\t{\" !#$%&'()*+,-./0123456789:;<=>?@[]^_`{|}~\\x7f\", nil, \"\\\" !#$%&'()*+,-./0123456789:;<=>?@[]^_`{|}~\\x7f\\\"\", nil, nil},\n\t\t{\"x\\x80\\ufffd\", nil, \"\\\"x\\ufffd\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\xff\\ufffd\", nil, \"\\\"x\\ufffd\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\x80\\ufffd\", escapeNonASCII, \"\\\"x\\\\ufffd\\\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\xff\\ufffd\", escapeNonASCII, \"\\\"x\\\\ufffd\\\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\xc0\", nil, \"\\\"x\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\xc0\\x80\", nil, \"\\\"x\\ufffd\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\xe0\", nil, \"\\\"x\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\xe0\\x80\", nil, \"\\\"x\\ufffd\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\xe0\\x80\\x80\", nil, \"\\\"x\\ufffd\\ufffd\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\xf0\", nil, \"\\\"x\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\xf0\\x80\", nil, \"\\\"x\\ufffd\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\xf0\\x80\\x80\", nil, \"\\\"x\\ufffd\\ufffd\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\xf0\\x80\\x80\\x80\", nil, \"\\\"x\\ufffd\\ufffd\\ufffd\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"x\\xed\\xba\\xad\", nil, \"\\\"x\\ufffd\\ufffd\\ufffd\\\"\", nil, &SyntacticError{str: \"invalid UTF-8 within string\"}},\n\t\t{\"\\\"\\\\/\\b\\f\\n\\r\\t\", nil, `\"\\\"\\\\/\\b\\f\\n\\r\\t\"`, nil, nil},\n\t\t{\"\\\"\\\\/\\b\\f\\n\\r\\t\", escapeEverything, `\"\\u0022\\u005c\\u002f\\u0008\\u000c\\u000a\\u000d\\u0009\"`, nil, nil},\n\t\t{\"٩(-̮̮̃-̃)۶ ٩(●̮̮̃•̃)۶ ٩(͡๏̯͡๏)۶ ٩(-̮̮̃•̃).\", nil, `\"٩(-̮̮̃-̃)۶ ٩(●̮̮̃•̃)۶ ٩(͡๏̯͡๏)۶ ٩(-̮̮̃•̃).\"`, nil, nil},\n\t\t{\"٩(-̮̮̃-̃)۶ ٩(●̮̮̃•̃)۶ ٩(͡๏̯͡๏)۶ ٩(-̮̮̃•̃).\", escapeNonASCII, `\"\\u0669(-\\u032e\\u032e\\u0303-\\u0303)\\u06f6 \\u0669(\\u25cf\\u032e\\u032e\\u0303\\u2022\\u0303)\\u06f6 \\u0669(\\u0361\\u0e4f\\u032f\\u0361\\u0e4f)\\u06f6 \\u0669(-\\u032e\\u032e\\u0303\\u2022\\u0303).\"`, nil, nil},\n\t\t{\"٩(-̮̮̃-̃)۶ ٩(●̮̮̃•̃)۶ ٩(͡๏̯͡๏)۶ ٩(-̮̮̃•̃).\", escapeEverything, `\"\\u0669\\u0028\\u002d\\u032e\\u032e\\u0303\\u002d\\u0303\\u0029\\u06f6\\u0020\\u0669\\u0028\\u25cf\\u032e\\u032e\\u0303\\u2022\\u0303\\u0029\\u06f6\\u0020\\u0669\\u0028\\u0361\\u0e4f\\u032f\\u0361\\u0e4f\\u0029\\u06f6\\u0020\\u0669\\u0028\\u002d\\u032e\\u032e\\u0303\\u2022\\u0303\\u0029\\u002e\"`, nil, nil},\n\t\t{\"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\U0001f602\", nil, \"\\\"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\U0001f602\\\"\", nil, nil},\n\t\t{\"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\U0001f602\", escapeEverything, `\"\\u0080\\u00f6\\u20ac\\ud799\\ue000\\ufb33\\ufffd\\ud83d\\ude02\"`, nil, nil},\n\t\t{\"\\u0000\\u001f\\u0020\\u0022\\u0026\\u003c\\u003e\\u005c\\u007f\\u0080\\u2028\\u2029\\ufffd\\U0001f602\", nil, \"\\\"\\\\u0000\\\\u001f\\u0020\\\\\\\"\\u0026\\u003c\\u003e\\\\\\\\\\u007f\\u0080\\u2028\\u2029\\ufffd\\U0001f602\\\"\", nil, nil},\n\t\t{\"\\u0000\\u001f\\u0020\\u0022\\u0026\\u003c\\u003e\\u005c\\u007f\\u0080\\u2028\\u2029\\ufffd\\U0001f602\", escapeNothing, \"\\\"\\\\u0000\\\\u001f\\u0020\\\\\\\"\\u0026\\u003c\\u003e\\\\\\\\\\u007f\\u0080\\u2028\\u2029\\ufffd\\U0001f602\\\"\", nil, nil},\n\t\t{\"\\u0000\\u001f\\u0020\\u0022\\u0026\\u003c\\u003e\\u005c\\u007f\\u0080\\u2028\\u2029\\ufffd\\U0001f602\", escapeHTML, \"\\\"\\\\u0000\\\\u001f\\u0020\\\\\\\"\\\\u0026\\\\u003c\\\\u003e\\\\\\\\\\u007f\\u0080\\\\u2028\\\\u2029\\ufffd\\U0001f602\\\"\", nil, nil},\n\t\t{\"\\u0000\\u001f\\u0020\\u0022\\u0026\\u003c\\u003e\\u005c\\u007f\\u0080\\u2028\\u2029\\ufffd\\U0001f602\", escapeNonASCII, \"\\\"\\\\u0000\\\\u001f\\u0020\\\\\\\"\\u0026\\u003c\\u003e\\\\\\\\\\u007f\\\\u0080\\\\u2028\\\\u2029\\\\ufffd\\\\ud83d\\\\ude02\\\"\", nil, nil},\n\t\t{\"\\u0000\\u001f\\u0020\\u0022\\u0026\\u003c\\u003e\\u005c\\u007f\\u0080\\u2028\\u2029\\ufffd\\U0001f602\", escapeEverything, \"\\\"\\\\u0000\\\\u001f\\\\u0020\\\\u0022\\\\u0026\\\\u003c\\\\u003e\\\\u005c\\\\u007f\\\\u0080\\\\u2028\\\\u2029\\\\ufffd\\\\ud83d\\\\ude02\\\"\", nil, nil},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(\"\", func(t *testing.T) {\n\t\t\tgot, gotErr := appendString(nil, tt.in, false, tt.escapeRune)\n\t\t\tif string(got) != tt.want || !reflect.DeepEqual(gotErr, tt.wantErr) {\n\t\t\t\tt.Errorf(\"appendString(nil, %q, false, ...) = (%s, %v), want (%s, %v)\", tt.in, got, gotErr, tt.want, tt.wantErr)\n\t\t\t}\n\t\t\tswitch got, gotErr := appendString(nil, tt.in, true, tt.escapeRune); {\n\t\t\tcase tt.wantErrUTF8 == nil && (string(got) != tt.want || !reflect.DeepEqual(gotErr, tt.wantErr)):\n\t\t\t\tt.Errorf(\"appendString(nil, %q, true, ...) = (%s, %v), want (%s, %v)\", tt.in, got, gotErr, tt.want, tt.wantErr)\n\t\t\tcase tt.wantErrUTF8 != nil && (!strings.HasPrefix(tt.want, string(got)) || !reflect.DeepEqual(gotErr, tt.wantErrUTF8)):\n\t\t\t\tt.Errorf(\"appendString(nil, %q, true, ...) = (%s, %v), want (%s, %v)\", tt.in, got, gotErr, tt.want, tt.wantErrUTF8)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestAppendNumber(t *testing.T) {\n\ttests := []struct {\n\t\tin     float64\n\t\twant32 string\n\t\twant64 string\n\t}{\n\t\t{math.E, \"2.7182817\", \"2.718281828459045\"},\n\t\t{math.Pi, \"3.1415927\", \"3.141592653589793\"},\n\t\t{math.SmallestNonzeroFloat32, \"1e-45\", \"1.401298464324817e-45\"},\n\t\t{math.SmallestNonzeroFloat64, \"0\", \"5e-324\"},\n\t\t{math.MaxFloat32, \"3.4028235e+38\", \"3.4028234663852886e+38\"},\n\t\t{math.MaxFloat64, \"\", \"1.7976931348623157e+308\"},\n\t\t{0.1111111111111111, \"0.11111111\", \"0.1111111111111111\"},\n\t\t{0.2222222222222222, \"0.22222222\", \"0.2222222222222222\"},\n\t\t{0.3333333333333333, \"0.33333334\", \"0.3333333333333333\"},\n\t\t{0.4444444444444444, \"0.44444445\", \"0.4444444444444444\"},\n\t\t{0.5555555555555555, \"0.5555556\", \"0.5555555555555555\"},\n\t\t{0.6666666666666666, \"0.6666667\", \"0.6666666666666666\"},\n\t\t{0.7777777777777777, \"0.7777778\", \"0.7777777777777777\"},\n\t\t{0.8888888888888888, \"0.8888889\", \"0.8888888888888888\"},\n\t\t{0.9999999999999999, \"1\", \"0.9999999999999999\"},\n\n\t\t// The following entries are from RFC 8785, appendix B\n\t\t// which are designed to ensure repeatable formatting of 64-bit floats.\n\t\t{math.Float64frombits(0x0000000000000000), \"0\", \"0\"},\n\t\t{math.Float64frombits(0x8000000000000000), \"-0\", \"-0\"}, // differs from RFC 8785\n\t\t{math.Float64frombits(0x0000000000000001), \"0\", \"5e-324\"},\n\t\t{math.Float64frombits(0x8000000000000001), \"-0\", \"-5e-324\"},\n\t\t{math.Float64frombits(0x7fefffffffffffff), \"\", \"1.7976931348623157e+308\"},\n\t\t{math.Float64frombits(0xffefffffffffffff), \"\", \"-1.7976931348623157e+308\"},\n\t\t{math.Float64frombits(0x4340000000000000), \"9007199000000000\", \"9007199254740992\"},\n\t\t{math.Float64frombits(0xc340000000000000), \"-9007199000000000\", \"-9007199254740992\"},\n\t\t{math.Float64frombits(0x4430000000000000), \"295147900000000000000\", \"295147905179352830000\"},\n\t\t{math.Float64frombits(0x44b52d02c7e14af5), \"1e+23\", \"9.999999999999997e+22\"},\n\t\t{math.Float64frombits(0x44b52d02c7e14af6), \"1e+23\", \"1e+23\"},\n\t\t{math.Float64frombits(0x44b52d02c7e14af7), \"1e+23\", \"1.0000000000000001e+23\"},\n\t\t{math.Float64frombits(0x444b1ae4d6e2ef4e), \"1e+21\", \"999999999999999700000\"},\n\t\t{math.Float64frombits(0x444b1ae4d6e2ef4f), \"1e+21\", \"999999999999999900000\"},\n\t\t{math.Float64frombits(0x444b1ae4d6e2ef50), \"1e+21\", \"1e+21\"},\n\t\t{math.Float64frombits(0x3eb0c6f7a0b5ed8c), \"0.000001\", \"9.999999999999997e-7\"},\n\t\t{math.Float64frombits(0x3eb0c6f7a0b5ed8d), \"0.000001\", \"0.000001\"},\n\t\t{math.Float64frombits(0x41b3de4355555553), \"333333340\", \"333333333.3333332\"},\n\t\t{math.Float64frombits(0x41b3de4355555554), \"333333340\", \"333333333.33333325\"},\n\t\t{math.Float64frombits(0x41b3de4355555555), \"333333340\", \"333333333.3333333\"},\n\t\t{math.Float64frombits(0x41b3de4355555556), \"333333340\", \"333333333.3333334\"},\n\t\t{math.Float64frombits(0x41b3de4355555557), \"333333340\", \"333333333.33333343\"},\n\t\t{math.Float64frombits(0xbecbf647612f3696), \"-0.0000033333333\", \"-0.0000033333333333333333\"},\n\t\t{math.Float64frombits(0x43143ff3c1cb0959), \"1424953900000000\", \"1424953923781206.2\"},\n\n\t\t// The following are select entries from RFC 8785, appendix B,\n\t\t// but modified for equivalent 32-bit behavior.\n\t\t{float64(math.Float32frombits(0x65a96815)), \"9.999999e+22\", \"9.999998877476383e+22\"},\n\t\t{float64(math.Float32frombits(0x65a96816)), \"1e+23\", \"9.999999778196308e+22\"},\n\t\t{float64(math.Float32frombits(0x65a96817)), \"1.0000001e+23\", \"1.0000000678916234e+23\"},\n\t\t{float64(math.Float32frombits(0x6258d725)), \"999999900000000000000\", \"999999879303389000000\"},\n\t\t{float64(math.Float32frombits(0x6258d726)), \"999999950000000000000\", \"999999949672133200000\"},\n\t\t{float64(math.Float32frombits(0x6258d727)), \"1e+21\", \"1.0000000200408773e+21\"},\n\t\t{float64(math.Float32frombits(0x6258d728)), \"1.0000001e+21\", \"1.0000000904096215e+21\"},\n\t\t{float64(math.Float32frombits(0x358637bc)), \"9.999999e-7\", \"9.99999883788405e-7\"},\n\t\t{float64(math.Float32frombits(0x358637bd)), \"0.000001\", \"9.999999974752427e-7\"},\n\t\t{float64(math.Float32frombits(0x358637be)), \"0.0000010000001\", \"0.0000010000001111620804\"},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(\"\", func(t *testing.T) {\n\t\t\tif got32 := string(appendNumber(nil, tt.in, 32)); got32 != tt.want32 && tt.want32 != \"\" {\n\t\t\t\tt.Errorf(\"appendNumber(nil, %v, 32) = %v, want %v\", tt.in, got32, tt.want32)\n\t\t\t}\n\t\t\tif got64 := string(appendNumber(nil, tt.in, 64)); got64 != tt.want64 && tt.want64 != \"\" {\n\t\t\t\tt.Errorf(\"appendNumber(nil, %v, 64) = %v, want %v\", tt.in, got64, tt.want64)\n\t\t\t}\n\t\t})\n\t}\n}\n\n// The default of 1e4 lines was chosen since it is sufficiently large to include\n// test numbers from all three categories (i.e., static, series, and random).\n// Yet, it is sufficiently low to execute quickly relative to other tests.\n//\n// Processing 1e8 lines takes a minute and processes about 4GiB worth of text.\nvar testCanonicalNumberLines = flag.Float64(\"canonical-number-lines\", 1e4, \"specify the number of lines to check from the canonical numbers testdata\")\n\n// TestCanonicalNumber verifies that appendNumber complies with RFC 8785\n// according to the testdata provided by the reference implementation.\n// See https://github.com/cyberphone/json-canonicalization/tree/master/testdata#es6-numbers.\nfunc TestCanonicalNumber(t *testing.T) {\n\tconst testfileURL = \"https://github.com/cyberphone/json-canonicalization/releases/download/es6testfile/es6testfile100m.txt.gz\"\n\thashes := map[float64]string{\n\t\t1e3: \"be18b62b6f69cdab33a7e0dae0d9cfa869fda80ddc712221570f9f40a5878687\",\n\t\t1e4: \"b9f7a8e75ef22a835685a52ccba7f7d6bdc99e34b010992cbc5864cd12be6892\",\n\t\t1e5: \"22776e6d4b49fa294a0d0f349268e5c28808fe7e0cb2bcbe28f63894e494d4c7\",\n\t\t1e6: \"49415fee2c56c77864931bd3624faad425c3c577d6d74e89a83bc725506dad16\",\n\t\t1e7: \"b9f8a44a91d46813b21b9602e72f112613c91408db0b8341fb94603d9db135e0\",\n\t\t1e8: \"0f7dda6b0837dde083c5d6b896f7d62340c8a2415b0c7121d83145e08a755272\",\n\t}\n\twantHash := hashes[*testCanonicalNumberLines]\n\tif wantHash == \"\" {\n\t\tt.Fatalf(\"canonical-number-lines must be one of the following values: 1e3, 1e4, 1e5, 1e6, 1e7, 1e8\")\n\t}\n\tnumLines := int(*testCanonicalNumberLines)\n\n\t// generator returns a function that generates the next float64 to format.\n\t// This implements the algorithm specified in the reference implementation.\n\tgenerator := func() func() float64 {\n\t\tstatic := [...]uint64{\n\t\t\t0x0000000000000000, 0x8000000000000000, 0x0000000000000001, 0x8000000000000001,\n\t\t\t0xc46696695dbd1cc3, 0xc43211ede4974a35, 0xc3fce97ca0f21056, 0xc3c7213080c1a6ac,\n\t\t\t0xc39280f39a348556, 0xc35d9b1f5d20d557, 0xc327af4c4a80aaac, 0xc2f2f2a36ecd5556,\n\t\t\t0xc2be51057e155558, 0xc28840d131aaaaac, 0xc253670dc1555557, 0xc21f0b4935555557,\n\t\t\t0xc1e8d5d42aaaaaac, 0xc1b3de4355555556, 0xc17fca0555555556, 0xc1496e6aaaaaaaab,\n\t\t\t0xc114585555555555, 0xc0e046aaaaaaaaab, 0xc0aa0aaaaaaaaaaa, 0xc074d55555555555,\n\t\t\t0xc040aaaaaaaaaaab, 0xc00aaaaaaaaaaaab, 0xbfd5555555555555, 0xbfa1111111111111,\n\t\t\t0xbf6b4e81b4e81b4f, 0xbf35d867c3ece2a5, 0xbf0179ec9cbd821e, 0xbecbf647612f3696,\n\t\t\t0xbe965e9f80f29212, 0xbe61e54c672874db, 0xbe2ca213d840baf8, 0xbdf6e80fe033c8c6,\n\t\t\t0xbdc2533fe68fd3d2, 0xbd8d51ffd74c861c, 0xbd5774ccac3d3817, 0xbd22c3d6f030f9ac,\n\t\t\t0xbcee0624b3818f79, 0xbcb804ea293472c7, 0xbc833721ba905bd3, 0xbc4ebe9c5db3c61e,\n\t\t\t0xbc18987d17c304e5, 0xbbe3ad30dfcf371d, 0xbbaf7b816618582f, 0xbb792f9ab81379bf,\n\t\t\t0xbb442615600f9499, 0xbb101e77800c76e1, 0xbad9ca58cce0be35, 0xbaa4a1e0a3e6fe90,\n\t\t\t0xba708180831f320d, 0xba3a68cd9e985016, 0x446696695dbd1cc3, 0x443211ede4974a35,\n\t\t\t0x43fce97ca0f21056, 0x43c7213080c1a6ac, 0x439280f39a348556, 0x435d9b1f5d20d557,\n\t\t\t0x4327af4c4a80aaac, 0x42f2f2a36ecd5556, 0x42be51057e155558, 0x428840d131aaaaac,\n\t\t\t0x4253670dc1555557, 0x421f0b4935555557, 0x41e8d5d42aaaaaac, 0x41b3de4355555556,\n\t\t\t0x417fca0555555556, 0x41496e6aaaaaaaab, 0x4114585555555555, 0x40e046aaaaaaaaab,\n\t\t\t0x40aa0aaaaaaaaaaa, 0x4074d55555555555, 0x4040aaaaaaaaaaab, 0x400aaaaaaaaaaaab,\n\t\t\t0x3fd5555555555555, 0x3fa1111111111111, 0x3f6b4e81b4e81b4f, 0x3f35d867c3ece2a5,\n\t\t\t0x3f0179ec9cbd821e, 0x3ecbf647612f3696, 0x3e965e9f80f29212, 0x3e61e54c672874db,\n\t\t\t0x3e2ca213d840baf8, 0x3df6e80fe033c8c6, 0x3dc2533fe68fd3d2, 0x3d8d51ffd74c861c,\n\t\t\t0x3d5774ccac3d3817, 0x3d22c3d6f030f9ac, 0x3cee0624b3818f79, 0x3cb804ea293472c7,\n\t\t\t0x3c833721ba905bd3, 0x3c4ebe9c5db3c61e, 0x3c18987d17c304e5, 0x3be3ad30dfcf371d,\n\t\t\t0x3baf7b816618582f, 0x3b792f9ab81379bf, 0x3b442615600f9499, 0x3b101e77800c76e1,\n\t\t\t0x3ad9ca58cce0be35, 0x3aa4a1e0a3e6fe90, 0x3a708180831f320d, 0x3a3a68cd9e985016,\n\t\t\t0x4024000000000000, 0x4014000000000000, 0x3fe0000000000000, 0x3fa999999999999a,\n\t\t\t0x3f747ae147ae147b, 0x3f40624dd2f1a9fc, 0x3f0a36e2eb1c432d, 0x3ed4f8b588e368f1,\n\t\t\t0x3ea0c6f7a0b5ed8d, 0x3e6ad7f29abcaf48, 0x3e35798ee2308c3a, 0x3ed539223589fa95,\n\t\t\t0x3ed4ff26cd5a7781, 0x3ed4f95a762283ff, 0x3ed4f8c60703520c, 0x3ed4f8b72f19cd0d,\n\t\t\t0x3ed4f8b5b31c0c8d, 0x3ed4f8b58d1c461a, 0x3ed4f8b5894f7f0e, 0x3ed4f8b588ee37f3,\n\t\t\t0x3ed4f8b588e47da4, 0x3ed4f8b588e3849c, 0x3ed4f8b588e36bb5, 0x3ed4f8b588e36937,\n\t\t\t0x3ed4f8b588e368f8, 0x3ed4f8b588e368f1, 0x3ff0000000000000, 0xbff0000000000000,\n\t\t\t0xbfeffffffffffffa, 0xbfeffffffffffffb, 0x3feffffffffffffa, 0x3feffffffffffffb,\n\t\t\t0x3feffffffffffffc, 0x3feffffffffffffe, 0xbfefffffffffffff, 0xbfefffffffffffff,\n\t\t\t0x3fefffffffffffff, 0x3fefffffffffffff, 0x3fd3333333333332, 0x3fd3333333333333,\n\t\t\t0x3fd3333333333334, 0x0010000000000000, 0x000ffffffffffffd, 0x000fffffffffffff,\n\t\t\t0x7fefffffffffffff, 0xffefffffffffffff, 0x4340000000000000, 0xc340000000000000,\n\t\t\t0x4430000000000000, 0x44b52d02c7e14af5, 0x44b52d02c7e14af6, 0x44b52d02c7e14af7,\n\t\t\t0x444b1ae4d6e2ef4e, 0x444b1ae4d6e2ef4f, 0x444b1ae4d6e2ef50, 0x3eb0c6f7a0b5ed8c,\n\t\t\t0x3eb0c6f7a0b5ed8d, 0x41b3de4355555553, 0x41b3de4355555554, 0x41b3de4355555555,\n\t\t\t0x41b3de4355555556, 0x41b3de4355555557, 0xbecbf647612f3696, 0x43143ff3c1cb0959,\n\t\t}\n\t\tvar state struct {\n\t\t\tidx   int\n\t\t\tdata  []byte\n\t\t\tblock [sha256.Size]byte\n\t\t}\n\t\treturn func() float64 {\n\t\t\tconst numSerial = 2000\n\t\t\tvar f float64\n\t\t\tswitch {\n\t\t\tcase state.idx < len(static):\n\t\t\t\tf = math.Float64frombits(static[state.idx])\n\t\t\tcase state.idx < len(static)+numSerial:\n\t\t\t\tf = math.Float64frombits(0x0010000000000000 + uint64(state.idx-len(static)))\n\t\t\tdefault:\n\t\t\t\tfor f == 0 || math.IsNaN(f) || math.IsInf(f, 0) {\n\t\t\t\t\tif len(state.data) == 0 {\n\t\t\t\t\t\tstate.block = sha256.Sum256(state.block[:])\n\t\t\t\t\t\tstate.data = state.block[:]\n\t\t\t\t\t}\n\t\t\t\t\tf = math.Float64frombits(binary.LittleEndian.Uint64(state.data))\n\t\t\t\t\tstate.data = state.data[8:]\n\t\t\t\t}\n\t\t\t}\n\t\t\tstate.idx++\n\t\t\treturn f\n\t\t}\n\t}\n\n\t// Pass through the test twice. In the first pass we only hash the output,\n\t// while in the second pass we check every line against the golden testdata.\n\t// If the hashes match in the first pass, then we skip the second pass.\n\tfor _, checkGolden := range []bool{false, true} {\n\t\tvar br *bufio.Reader // for line-by-line reading of es6testfile100m.txt\n\t\tif checkGolden {\n\t\t\tresp, err := http.Get(testfileURL)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"http.Get error: %v\", err)\n\t\t\t}\n\t\t\tdefer resp.Body.Close()\n\n\t\t\tzr, err := gzip.NewReader(resp.Body)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"gzip.NewReader error: %v\", err)\n\t\t\t}\n\n\t\t\tbr = bufio.NewReader(zr)\n\t\t}\n\n\t\t// appendNumberJCS differs from appendNumber only for -0.\n\t\tappendNumberJCS := func(b []byte, f float64) []byte {\n\t\t\tif math.Signbit(f) && f == 0 {\n\t\t\t\treturn append(b, '0')\n\t\t\t}\n\t\t\treturn appendNumber(b, f, 64)\n\t\t}\n\n\t\tvar gotLine []byte\n\t\tnext := generator()\n\t\thash := sha256.New()\n\t\tstart := time.Now()\n\t\tlastPrint := start\n\t\tfor n := 1; n <= numLines; n++ {\n\t\t\t// Generate the formatted line for this number.\n\t\t\tf := next()\n\t\t\tgotLine = gotLine[:0] // reset from previous usage\n\t\t\tgotLine = strconv.AppendUint(gotLine, math.Float64bits(f), 16)\n\t\t\tgotLine = append(gotLine, ',')\n\t\t\tgotLine = appendNumberJCS(gotLine, f)\n\t\t\tgotLine = append(gotLine, '\\n')\n\t\t\thash.Write(gotLine)\n\n\t\t\t// Check that the formatted line matches.\n\t\t\tif checkGolden {\n\t\t\t\twantLine, err := br.ReadBytes('\\n')\n\t\t\t\tif err != nil {\n\t\t\t\t\tt.Fatalf(\"bufio.Reader.ReadBytes error: %v\", err)\n\t\t\t\t}\n\t\t\t\tif !bytes.Equal(gotLine, wantLine) {\n\t\t\t\t\tt.Errorf(\"mismatch on line %d:\\n\\tgot  %v\\n\\twant %v\",\n\t\t\t\t\t\tn, strings.TrimSpace(string(gotLine)), strings.TrimSpace(string(wantLine)))\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Print progress.\n\t\t\tif now := time.Now(); now.Sub(lastPrint) > time.Second || n == numLines {\n\t\t\t\tremaining := float64(now.Sub(start)) * float64(numLines-n) / float64(n)\n\t\t\t\tt.Logf(\"%0.3f%% (%v remaining)\",\n\t\t\t\t\t100.0*float64(n)/float64(numLines),\n\t\t\t\t\ttime.Duration(remaining).Round(time.Second))\n\t\t\t\tlastPrint = now\n\t\t\t}\n\t\t}\n\n\t\tgotHash := hex.EncodeToString(hash.Sum(nil))\n\t\tif gotHash == wantHash {\n\t\t\treturn // hashes match, no need to check golden testdata\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/errors.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\nconst errorPrefix = \"json: \"\n\n// Error matches errors returned by this package according to errors.Is.\nconst Error = jsonError(\"json error\")\n\ntype jsonError string\n\nfunc (e jsonError) Error() string {\n\treturn string(e)\n}\nfunc (e jsonError) Is(target error) bool {\n\treturn e == target || target == Error\n}\n\ntype ioError struct {\n\taction string // either \"read\" or \"write\"\n\terr    error\n}\n\nfunc (e *ioError) Error() string {\n\treturn errorPrefix + e.action + \" error: \" + e.err.Error()\n}\nfunc (e *ioError) Unwrap() error {\n\treturn e.err\n}\nfunc (e *ioError) Is(target error) bool {\n\treturn e == target || target == Error || errors.Is(e.err, target)\n}\n\n// SemanticError describes an error determining the meaning\n// of JSON data as Go data or vice-versa.\n//\n// The contents of this error as produced by this package may change over time.\ntype SemanticError struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\taction string // either \"marshal\" or \"unmarshal\"\n\n\t// ByteOffset indicates that an error occurred after this byte offset.\n\tByteOffset int64\n\t// JSONPointer indicates that an error occurred within this JSON value\n\t// as indicated using the JSON Pointer notation (see RFC 6901).\n\tJSONPointer string\n\n\t// JSONKind is the JSON kind that could not be handled.\n\tJSONKind Kind // may be zero if unknown\n\t// GoType is the Go type that could not be handled.\n\tGoType reflect.Type // may be nil if unknown\n\n\t// Err is the underlying error.\n\tErr error // may be nil\n}\n\nfunc (e *SemanticError) Error() string {\n\tvar sb strings.Builder\n\tsb.WriteString(errorPrefix)\n\n\t// Hyrum-proof the error message by deliberately switching between\n\t// two equivalent renderings of the same error message.\n\t// The randomization is tied to the Hyrum-proofing already applied\n\t// on map iteration in Go.\n\tfor phrase := range map[string]struct{}{\"cannot\": {}, \"unable to\": {}} {\n\t\tsb.WriteString(phrase)\n\t\tbreak // use whichever phrase we get in the first iteration\n\t}\n\n\t// Format action.\n\tvar preposition string\n\tswitch e.action {\n\tcase \"marshal\":\n\t\tsb.WriteString(\" marshal\")\n\t\tpreposition = \" from\"\n\tcase \"unmarshal\":\n\t\tsb.WriteString(\" unmarshal\")\n\t\tpreposition = \" into\"\n\tdefault:\n\t\tsb.WriteString(\" handle\")\n\t\tpreposition = \" with\"\n\t}\n\n\t// Format JSON kind.\n\tvar omitPreposition bool\n\tswitch e.JSONKind {\n\tcase 'n':\n\t\tsb.WriteString(\" JSON null\")\n\tcase 'f', 't':\n\t\tsb.WriteString(\" JSON boolean\")\n\tcase '\"':\n\t\tsb.WriteString(\" JSON string\")\n\tcase '0':\n\t\tsb.WriteString(\" JSON number\")\n\tcase '{', '}':\n\t\tsb.WriteString(\" JSON object\")\n\tcase '[', ']':\n\t\tsb.WriteString(\" JSON array\")\n\tdefault:\n\t\tomitPreposition = true\n\t}\n\n\t// Format Go type.\n\tif e.GoType != nil {\n\t\tif !omitPreposition {\n\t\t\tsb.WriteString(preposition)\n\t\t}\n\t\tsb.WriteString(\" Go value of type \")\n\t\tsb.WriteString(e.GoType.String())\n\t}\n\n\t// Format where.\n\tswitch {\n\tcase e.JSONPointer != \"\":\n\t\tsb.WriteString(\" within JSON value at \")\n\t\tsb.WriteString(strconv.Quote(e.JSONPointer))\n\tcase e.ByteOffset > 0:\n\t\tsb.WriteString(\" after byte offset \")\n\t\tsb.WriteString(strconv.FormatInt(e.ByteOffset, 10))\n\t}\n\n\t// Format underlying error.\n\tif e.Err != nil {\n\t\tsb.WriteString(\": \")\n\t\tsb.WriteString(e.Err.Error())\n\t}\n\n\treturn sb.String()\n}\nfunc (e *SemanticError) Is(target error) bool {\n\treturn e == target || target == Error || errors.Is(e.Err, target)\n}\nfunc (e *SemanticError) Unwrap() error {\n\treturn e.Err\n}\n\n// SyntacticError is a description of a syntactic error that occurred when\n// encoding or decoding JSON according to the grammar.\n//\n// The contents of this error as produced by this package may change over time.\ntype SyntacticError struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// ByteOffset indicates that an error occurred after this byte offset.\n\tByteOffset int64\n\tstr        string\n}\n\nfunc (e *SyntacticError) Error() string {\n\treturn errorPrefix + e.str\n}\nfunc (e *SyntacticError) Is(target error) bool {\n\treturn e == target || target == Error\n}\nfunc (e *SyntacticError) withOffset(pos int64) error {\n\treturn &SyntacticError{ByteOffset: pos, str: e.str}\n}\n\nfunc newInvalidCharacterError(prefix []byte, where string) *SyntacticError {\n\twhat := quoteRune(prefix)\n\treturn &SyntacticError{str: \"invalid character \" + what + \" \" + where}\n}\n\nfunc quoteRune(b []byte) string {\n\tr, n := utf8.DecodeRune(b)\n\tif r == utf8.RuneError && n == 1 {\n\t\treturn `'\\x` + strconv.FormatUint(uint64(b[0]), 16) + `'`\n\t}\n\treturn strconv.QuoteRune(r)\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/errors_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"archive/tar\"\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestSemanticError(t *testing.T) {\n\ttests := []struct {\n\t\terr  error\n\t\twant string\n\t}{{\n\t\terr:  &SemanticError{},\n\t\twant: \"json: cannot handle\",\n\t}, {\n\t\terr:  &SemanticError{JSONKind: 'n'},\n\t\twant: \"json: cannot handle JSON null\",\n\t}, {\n\t\terr:  &SemanticError{action: \"unmarshal\", JSONKind: 't'},\n\t\twant: \"json: cannot unmarshal JSON boolean\",\n\t}, {\n\t\terr:  &SemanticError{action: \"unmarshal\", JSONKind: 'x'},\n\t\twant: \"json: cannot unmarshal\", // invalid token kinds are ignored\n\t}, {\n\t\terr:  &SemanticError{action: \"marshal\", JSONKind: '\"'},\n\t\twant: \"json: cannot marshal JSON string\",\n\t}, {\n\t\terr:  &SemanticError{GoType: reflect.TypeOf(bool(false))},\n\t\twant: \"json: cannot handle Go value of type bool\",\n\t}, {\n\t\terr:  &SemanticError{action: \"marshal\", GoType: reflect.TypeOf(int(0))},\n\t\twant: \"json: cannot marshal Go value of type int\",\n\t}, {\n\t\terr:  &SemanticError{action: \"unmarshal\", GoType: reflect.TypeOf(uint(0))},\n\t\twant: \"json: cannot unmarshal Go value of type uint\",\n\t}, {\n\t\terr:  &SemanticError{JSONKind: '0', GoType: reflect.TypeOf(tar.Header{})},\n\t\twant: \"json: cannot handle JSON number with Go value of type tar.Header\",\n\t}, {\n\t\terr:  &SemanticError{action: \"marshal\", JSONKind: '{', GoType: reflect.TypeOf(bytes.Buffer{})},\n\t\twant: \"json: cannot marshal JSON object from Go value of type bytes.Buffer\",\n\t}, {\n\t\terr:  &SemanticError{action: \"unmarshal\", JSONKind: ']', GoType: reflect.TypeOf(strings.Reader{})},\n\t\twant: \"json: cannot unmarshal JSON array into Go value of type strings.Reader\",\n\t}, {\n\t\terr:  &SemanticError{action: \"unmarshal\", JSONKind: '{', GoType: reflect.TypeOf(float64(0)), ByteOffset: 123},\n\t\twant: \"json: cannot unmarshal JSON object into Go value of type float64 after byte offset 123\",\n\t}, {\n\t\terr:  &SemanticError{action: \"marshal\", JSONKind: 'f', GoType: reflect.TypeOf(complex128(0)), ByteOffset: 123, JSONPointer: \"/foo/2/bar/3\"},\n\t\twant: \"json: cannot marshal JSON boolean from Go value of type complex128 within JSON value at \\\"/foo/2/bar/3\\\"\",\n\t}, {\n\t\terr:  &SemanticError{action: \"unmarshal\", JSONKind: '}', GoType: reflect.TypeOf((*io.Reader)(nil)).Elem(), ByteOffset: 123, JSONPointer: \"/foo/2/bar/3\", Err: errors.New(\"some underlying error\")},\n\t\twant: \"json: cannot unmarshal JSON object into Go value of type io.Reader within JSON value at \\\"/foo/2/bar/3\\\": some underlying error\",\n\t}, {\n\t\terr:  &SemanticError{Err: errors.New(\"some underlying error\")},\n\t\twant: \"json: cannot handle: some underlying error\",\n\t}, {\n\t\terr:  &SemanticError{ByteOffset: 123},\n\t\twant: \"json: cannot handle after byte offset 123\",\n\t}, {\n\t\terr:  &SemanticError{JSONPointer: \"/foo/2/bar/3\"},\n\t\twant: \"json: cannot handle within JSON value at \\\"/foo/2/bar/3\\\"\",\n\t}}\n\n\tfor _, tt := range tests {\n\t\tgot := tt.err.Error()\n\t\t// Cleanup the error of non-deterministic rendering effects.\n\t\tif strings.HasPrefix(got, errorPrefix+\"unable to \") {\n\t\t\tgot = errorPrefix + \"cannot \" + strings.TrimPrefix(got, errorPrefix+\"unable to \")\n\t\t}\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"%#v.Error mismatch:\\ngot  %v\\nwant %v\", tt.err, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestErrorsIs(t *testing.T) {\n\tconst (\n\t\tsomeGlobalError  = jsonError(\"some global error\")\n\t\totherGlobalError = jsonError(\"other global error\")\n\t)\n\n\tvar (\n\t\tsomeIOError         = &ioError{action: \"write\", err: io.ErrShortWrite}\n\t\totherIOError        = &ioError{action: \"read\", err: io.ErrUnexpectedEOF}\n\t\tsomeSyntacticError  = &SyntacticError{str: \"some syntactic error\"}\n\t\totherSyntacticError = &SyntacticError{str: \"other syntactic error\"}\n\t\tsomeSemanticError   = &SemanticError{action: \"unmarshal\", JSONKind: '0', GoType: reflect.TypeOf(int(0)), Err: strconv.ErrRange}\n\t\totherSemanticError  = &SemanticError{action: \"marshal\", GoType: reflect.TypeOf(complex128(0))}\n\t)\n\n\ttests := []struct {\n\t\terr    error\n\t\ttarget error\n\t\twant   bool\n\t}{\n\t\t// Top-level Error should match itself (identity).\n\t\t{Error, Error, true},\n\n\t\t// All sub-error values should match the top-level Error value.\n\t\t{someGlobalError, Error, true},\n\t\t{someIOError, Error, true},\n\t\t{someSyntacticError, Error, true},\n\t\t{someSemanticError, Error, true},\n\n\t\t// Top-level Error should not match any other sub-error value.\n\t\t{Error, someGlobalError, false},\n\t\t{Error, someIOError, false},\n\t\t{Error, someSyntacticError, false},\n\t\t{Error, someSemanticError, false},\n\n\t\t// Sub-error values should match itself (identity).\n\t\t{someGlobalError, someGlobalError, true},\n\t\t{someIOError, someIOError, true},\n\t\t{someSyntacticError, someSyntacticError, true},\n\t\t{someSemanticError, someSemanticError, true},\n\n\t\t// Sub-error values should not match each other.\n\t\t{someGlobalError, someIOError, false},\n\t\t{someIOError, someSyntacticError, false},\n\t\t{someSyntacticError, someSemanticError, false},\n\t\t{someSemanticError, someGlobalError, false},\n\n\t\t// Sub-error values should not match other error values of same type.\n\t\t{someGlobalError, otherGlobalError, false},\n\t\t{someIOError, otherIOError, false},\n\t\t{someSyntacticError, otherSyntacticError, false},\n\t\t{someSemanticError, otherSemanticError, false},\n\n\t\t// Error should not match any other random error.\n\t\t{Error, nil, false},\n\t\t{nil, Error, false},\n\t\t{io.ErrShortWrite, Error, false},\n\t\t{Error, io.ErrShortWrite, false},\n\n\t\t// Wrapped errors should be matched.\n\t\t{&ioError{err: fmt.Errorf(\"%w\", io.ErrShortWrite)}, io.ErrShortWrite, true}, // doubly wrapped\n\t\t{&ioError{err: io.ErrShortWrite}, io.ErrShortWrite, true},                   // singly wrapped\n\t\t{&ioError{err: io.ErrShortWrite}, io.EOF, false},\n\t\t{&SemanticError{Err: fmt.Errorf(\"%w\", strconv.ErrRange)}, strconv.ErrRange, true}, // doubly wrapped\n\t\t{&SemanticError{Err: strconv.ErrRange}, strconv.ErrRange, true},                   // singly wrapped\n\t\t{&SemanticError{Err: strconv.ErrRange}, io.EOF, false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tgot := errors.Is(tt.err, tt.target)\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"errors.Is(%#v, %#v) = %v, want %v\", tt.err, tt.target, got, tt.want)\n\t\t}\n\t\t// If the type supports the Is method,\n\t\t// it should behave the same way if called directly.\n\t\tif iserr, ok := tt.err.(interface{ Is(error) bool }); ok {\n\t\t\tgot := iserr.Is(tt.target)\n\t\t\tif got != tt.want {\n\t\t\t\tt.Errorf(\"%#v.Is(%#v) = %v, want %v\", tt.err, tt.target, got, tt.want)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestQuoteRune(t *testing.T) {\n\ttests := []struct{ in, want string }{\n\t\t{\"x\", `'x'`},\n\t\t{\"\\n\", `'\\n'`},\n\t\t{\"'\", `'\\''`},\n\t\t{\"\\xff\", `'\\xff'`},\n\t\t{\"💩\", `'💩'`},\n\t\t{\"💩\"[:1], `'\\xf0'`},\n\t\t{\"\\uffff\", `'\\uffff'`},\n\t\t{\"\\U00101234\", `'\\U00101234'`},\n\t}\n\tfor _, tt := range tests {\n\t\tgot := quoteRune([]byte(tt.in))\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"quoteRune(%q) = %s, want %s\", tt.in, got, tt.want)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/example_orderedobject_test.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json_test\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"reflect\"\n\n\t\"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// OrderedObject is an ordered sequence of name/value members in a JSON object.\n//\n// RFC 8259 defines an object as an \"unordered collection\".\n// JSON implementations need not make \"ordering of object members visible\"\n// to applications nor will they agree on the semantic meaning of an object if\n// \"the names within an object are not unique\". For maximum compatibility,\n// applications should avoid relying on ordering or duplicity of object names.\ntype OrderedObject[V any] []ObjectMember[V]\n\n// ObjectMember is a JSON object member.\ntype ObjectMember[V any] struct {\n\tName  string\n\tValue V\n}\n\n// MarshalNextJSON encodes obj as a JSON object into enc.\nfunc (obj *OrderedObject[V]) MarshalNextJSON(opts json.MarshalOptions, enc *json.Encoder) error {\n\tif err := enc.WriteToken(json.ObjectStart); err != nil {\n\t\treturn err\n\t}\n\tfor i := range *obj {\n\t\tmember := &(*obj)[i]\n\t\tif err := opts.MarshalNext(enc, &member.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := opts.MarshalNext(enc, &member.Value); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := enc.WriteToken(json.ObjectEnd); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// UnmarshalNextJSON decodes a JSON object from dec into obj.\nfunc (obj *OrderedObject[V]) UnmarshalNextJSON(opts json.UnmarshalOptions, dec *json.Decoder) error {\n\tif k := dec.PeekKind(); k != '{' {\n\t\treturn fmt.Errorf(\"expected object start, but encountered %v\", k)\n\t}\n\tif _, err := dec.ReadToken(); err != nil {\n\t\treturn err\n\t}\n\tfor dec.PeekKind() != '}' {\n\t\t*obj = append(*obj, ObjectMember[V]{})\n\t\tmember := &(*obj)[len(*obj)-1]\n\t\tif err := opts.UnmarshalNext(dec, &member.Name); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := opts.UnmarshalNext(dec, &member.Value); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif _, err := dec.ReadToken(); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// The exact order of JSON object can be preserved through the use of a\n// specialized type that implements MarshalerV2 and UnmarshalerV2.\nfunc Example_orderedObject() {\n\t// Round-trip marshal and unmarshal an ordered object.\n\t// We expect the order and duplicity of JSON object members to be preserved.\n\twant := OrderedObject[string]{\n\t\t{\"fizz\", \"buzz\"},\n\t\t{\"hello\", \"world\"},\n\t\t{\"fizz\", \"wuzz\"},\n\t}\n\tb, err := json.MarshalOptions{}.Marshal(json.EncodeOptions{\n\t\tAllowDuplicateNames: true, // since the object contains \"fizz\" twice\n\t}, &want)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tvar got OrderedObject[string]\n\terr = json.UnmarshalOptions{}.Unmarshal(json.DecodeOptions{\n\t\tAllowDuplicateNames: true, // since the object contains \"fizz\" twice\n\t}, b, &got)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\t// Sanity check.\n\tif !reflect.DeepEqual(got, want) {\n\t\tlog.Fatalf(\"roundtrip mismatch: got %v, want %v\", got, want)\n\t}\n\n\t// Print the serialized JSON object.\n\t(*json.RawValue)(&b).Indent(\"\", \"\\t\") // indent for readability\n\tfmt.Println(string(b))\n\n\t// Output:\n\t// {\n\t// \t\"fizz\": \"buzz\",\n\t// \t\"hello\": \"world\",\n\t// \t\"fizz\": \"wuzz\"\n\t// }\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/example_test.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json_test\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"math\"\n\t\"net/http\"\n\t\"net/netip\"\n\t\"os\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// If a type implements encoding.TextMarshaler and/or encoding.TextUnmarshaler,\n// then the MarshalText and UnmarshalText methods are used to encode/decode\n// the value to/from a JSON string.\nfunc Example_textMarshal() {\n\t// Round-trip marshal and unmarshal a hostname map where the netip.Addr type\n\t// implements both encoding.TextMarshaler and encoding.TextUnmarshaler.\n\twant := map[netip.Addr]string{\n\t\tnetip.MustParseAddr(\"192.168.0.100\"): \"carbonite\",\n\t\tnetip.MustParseAddr(\"192.168.0.101\"): \"obsidian\",\n\t\tnetip.MustParseAddr(\"192.168.0.102\"): \"diamond\",\n\t}\n\tb, err := json.Marshal(&want)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tvar got map[netip.Addr]string\n\terr = json.Unmarshal(b, &got)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\t// Sanity check.\n\tif !reflect.DeepEqual(got, want) {\n\t\tlog.Fatalf(\"roundtrip mismatch: got %v, want %v\", got, want)\n\t}\n\n\t// Print the serialized JSON object. Canonicalize the JSON first since\n\t// Go map entries are not serialized in a deterministic order.\n\t(*json.RawValue)(&b).Canonicalize()\n\t(*json.RawValue)(&b).Indent(\"\", \"\\t\") // indent for readability\n\tfmt.Println(string(b))\n\n\t// Output:\n\t// {\n\t// \t\"192.168.0.100\": \"carbonite\",\n\t// \t\"192.168.0.101\": \"obsidian\",\n\t// \t\"192.168.0.102\": \"diamond\"\n\t// }\n}\n\n// By default, JSON object names for Go struct fields are derived from\n// the Go field name, but may be specified in the `json` tag.\n// Due to JSON's heritage in JavaScript, the most common naming convention\n// used for JSON object names is camelCase.\nfunc Example_fieldNames() {\n\tvar value struct {\n\t\t// This field is explicitly ignored with the special \"-\" name.\n\t\tIgnored any `json:\"-\"`\n\t\t// No JSON name is not provided, so the Go field name is used.\n\t\tGoName any\n\t\t// A JSON name is provided without any special characters.\n\t\tJSONName any `json:\"jsonName\"`\n\t\t// No JSON name is not provided, so the Go field name is used.\n\t\tOption any `json:\",nocase\"`\n\t\t// An empty JSON name specified using an single-quoted string literal.\n\t\tEmpty any `json:\"''\"`\n\t\t// A dash JSON name specified using an single-quoted string literal.\n\t\tDash any `json:\"'-'\"`\n\t\t// A comma JSON name specified using an single-quoted string literal.\n\t\tComma any `json:\"','\"`\n\t\t// JSON name with quotes specified using a single-quoted string literal.\n\t\tQuote any `json:\"'\\\"\\\\''\"`\n\t\t// An unexported field is always ignored.\n\t\tunexported any\n\t}\n\n\tb, err := json.Marshal(value)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\t(*json.RawValue)(&b).Indent(\"\", \"\\t\") // indent for readability\n\tfmt.Println(string(b))\n\n\t// Output:\n\t// {\n\t// \t\"GoName\": null,\n\t// \t\"jsonName\": null,\n\t// \t\"Option\": null,\n\t// \t\"\": null,\n\t// \t\"-\": null,\n\t// \t\",\": null,\n\t// \t\"\\\"'\": null\n\t// }\n}\n\n// Unmarshal matches JSON object names with Go struct fields using\n// a case-sensitive match, but can be configured to use a case-insensitive\n// match with the \"nocase\" option. This permits unmarshaling from inputs that\n// use naming conventions such as camelCase, snake_case, or kebab-case.\nfunc Example_caseSensitivity() {\n\t// JSON input using various naming conventions.\n\tconst input = `[\n\t\t{\"firstname\": true},\n\t\t{\"firstName\": true},\n\t\t{\"FirstName\": true},\n\t\t{\"FIRSTNAME\": true},\n\t\t{\"first_name\": true},\n\t\t{\"FIRST_NAME\": true},\n\t\t{\"first-name\": true},\n\t\t{\"FIRST-NAME\": true},\n\t\t{\"unknown\": true}\n\t]`\n\n\t// Without \"nocase\", Unmarshal looks for an exact match.\n\tvar withcase []struct {\n\t\tX bool `json:\"firstName\"`\n\t}\n\tif err := json.Unmarshal([]byte(input), &withcase); err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println(withcase) // exactly 1 match found\n\n\t// With \"nocase\", Unmarshal looks first for an exact match,\n\t// then for a case-insensitive match if none found.\n\tvar nocase []struct {\n\t\tX bool `json:\"firstName,nocase\"`\n\t}\n\tif err := json.Unmarshal([]byte(input), &nocase); err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println(nocase) // 8 matches found\n\n\t// Output:\n\t// [{false} {true} {false} {false} {false} {false} {false} {false} {false}]\n\t// [{true} {true} {true} {true} {true} {true} {true} {true} {false}]\n}\n\n// Go struct fields can be omitted from the output depending on either\n// the input Go value or the output JSON encoding of the value.\n// The \"omitzero\" option omits a field if it is the zero Go value or\n// implements a \"IsZero() bool\" method that reports true.\n// The \"omitempty\" option omits a field if it encodes as an empty JSON value,\n// which we define as a JSON null or empty JSON string, object, or array.\n// In many cases, the behavior of \"omitzero\" and \"omitempty\" are equivalent.\n// If both provide the desired effect, then using \"omitzero\" is preferred.\nfunc Example_omitFields() {\n\ttype MyStruct struct {\n\t\tFoo string `json:\",omitzero\"`\n\t\tBar []int  `json:\",omitempty\"`\n\t\t// Both \"omitzero\" and \"omitempty\" can be specified together,\n\t\t// in which case the field is omitted if either would take effect.\n\t\t// This omits the Baz field either if it is a nil pointer or\n\t\t// if it would have encoded as an empty JSON object.\n\t\tBaz *MyStruct `json:\",omitzero,omitempty\"`\n\t}\n\n\t// Demonstrate behavior of \"omitzero\".\n\tb, err := json.Marshal(struct {\n\t\tBool         bool        `json:\",omitzero\"`\n\t\tInt          int         `json:\",omitzero\"`\n\t\tString       string      `json:\",omitzero\"`\n\t\tTime         time.Time   `json:\",omitzero\"`\n\t\tAddr         netip.Addr  `json:\",omitzero\"`\n\t\tStruct       MyStruct    `json:\",omitzero\"`\n\t\tSliceNil     []int       `json:\",omitzero\"`\n\t\tSlice        []int       `json:\",omitzero\"`\n\t\tMapNil       map[int]int `json:\",omitzero\"`\n\t\tMap          map[int]int `json:\",omitzero\"`\n\t\tPointerNil   *string     `json:\",omitzero\"`\n\t\tPointer      *string     `json:\",omitzero\"`\n\t\tInterfaceNil any         `json:\",omitzero\"`\n\t\tInterface    any         `json:\",omitzero\"`\n\t}{\n\t\t// Bool is omitted since false is the zero value for a Go bool.\n\t\tBool: false,\n\t\t// Int is omitted since 0 is the zero value for a Go int.\n\t\tInt: 0,\n\t\t// String is omitted since \"\" is the zero value for a Go string.\n\t\tString: \"\",\n\t\t// Time is omitted since time.Time.IsZero reports true.\n\t\tTime: time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC),\n\t\t// Addr is omitted since netip.Addr{} is the zero value for a Go struct.\n\t\tAddr: netip.Addr{},\n\t\t// Struct is NOT omitted since it is not the zero value for a Go struct.\n\t\tStruct: MyStruct{Bar: []int{}, Baz: new(MyStruct)},\n\t\t// SliceNil is omitted since nil is the zero value for a Go slice.\n\t\tSliceNil: nil,\n\t\t// Slice is NOT omitted since []int{} is not the zero value for a Go slice.\n\t\tSlice: []int{},\n\t\t// MapNil is omitted since nil is the zero value for a Go map.\n\t\tMapNil: nil,\n\t\t// Map is NOT omitted since map[int]int{} is not the zero value for a Go map.\n\t\tMap: map[int]int{},\n\t\t// PointerNil is omitted since nil is the zero value for a Go pointer.\n\t\tPointerNil: nil,\n\t\t// Pointer is NOT omitted since new(string) is not the zero value for a Go pointer.\n\t\tPointer: new(string),\n\t\t// InterfaceNil is omitted since nil is the zero value for a Go interface.\n\t\tInterfaceNil: nil,\n\t\t// Interface is NOT omitted since (*string)(nil) is not the zero value for a Go interface.\n\t\tInterface: (*string)(nil),\n\t})\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\t(*json.RawValue)(&b).Indent(\"\", \"\\t\") // indent for readability\n\tfmt.Println(\"OmitZero:\", string(b))   // outputs \"Struct\", \"Slice\", \"Map\", \"Pointer\", and \"Interface\"\n\n\t// Demonstrate behavior of \"omitempty\".\n\tb, err = json.Marshal(struct {\n\t\tBool         bool        `json:\",omitempty\"`\n\t\tInt          int         `json:\",omitempty\"`\n\t\tString       string      `json:\",omitempty\"`\n\t\tTime         time.Time   `json:\",omitempty\"`\n\t\tAddr         netip.Addr  `json:\",omitempty\"`\n\t\tStruct       MyStruct    `json:\",omitempty\"`\n\t\tSlice        []int       `json:\",omitempty\"`\n\t\tMap          map[int]int `json:\",omitempty\"`\n\t\tPointerNil   *string     `json:\",omitempty\"`\n\t\tPointer      *string     `json:\",omitempty\"`\n\t\tInterfaceNil any         `json:\",omitempty\"`\n\t\tInterface    any         `json:\",omitempty\"`\n\t}{\n\t\t// Bool is NOT omitted since false is not an empty JSON value.\n\t\tBool: false,\n\t\t// Int is NOT omitted since 0 is not a empty JSON value.\n\t\tInt: 0,\n\t\t// String is omitted since \"\" is an empty JSON string.\n\t\tString: \"\",\n\t\t// Time is NOT omitted since this encodes as a non-empty JSON string.\n\t\tTime: time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC),\n\t\t// Addr is omitted since this encodes as an empty JSON string.\n\t\tAddr: netip.Addr{},\n\t\t// Struct is omitted since {} is an empty JSON object.\n\t\tStruct: MyStruct{Bar: []int{}, Baz: new(MyStruct)},\n\t\t// Slice is omitted since [] is an empty JSON array.\n\t\tSlice: []int{},\n\t\t// Map is omitted since {} is an empty JSON object.\n\t\tMap: map[int]int{},\n\t\t// PointerNil is ommited since null is an empty JSON value.\n\t\tPointerNil: nil,\n\t\t// Pointer is omitted since \"\" is an empty JSON string.\n\t\tPointer: new(string),\n\t\t// InterfaceNil is omitted since null is an empty JSON value.\n\t\tInterfaceNil: nil,\n\t\t// Interface is omitted since null is an empty JSON value.\n\t\tInterface: (*string)(nil),\n\t})\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\t(*json.RawValue)(&b).Indent(\"\", \"\\t\") // indent for readability\n\tfmt.Println(\"OmitEmpty:\", string(b))  // outputs \"Bool\", \"Int\", and \"Time\"\n\n\t// Output:\n\t// OmitZero: {\n\t// \t\"Struct\": {},\n\t// \t\"Slice\": [],\n\t// \t\"Map\": {},\n\t// \t\"Pointer\": \"\",\n\t// \t\"Interface\": null\n\t// }\n\t// OmitEmpty: {\n\t// \t\"Bool\": false,\n\t// \t\"Int\": 0,\n\t// \t\"Time\": \"0001-01-01T00:00:00Z\"\n\t// }\n}\n\n// JSON objects can be inlined within a parent object similar to\n// how Go structs can be embedded within a parent struct.\n// The inlining rules are similar to those of Go embedding,\n// but operates upon the JSON namespace.\nfunc Example_inlinedFields() {\n\t// Base is embedded within Container.\n\ttype Base struct {\n\t\t// ID is promoted into the JSON object for Container.\n\t\tID string\n\t\t// Type is ignored due to presence of Container.Type.\n\t\tType string\n\t\t// Time cancels out with Container.Inlined.Time.\n\t\tTime time.Time\n\t}\n\t// Other is embedded within Container.\n\ttype Other struct{ Cost float64 }\n\t// Container embeds Base and Other.\n\ttype Container struct {\n\t\t// Base is an embedded struct and is implicitly JSON inlined.\n\t\tBase\n\t\t// Type takes precedence over Base.Type.\n\t\tType int\n\t\t// Inlined is a named Go field, but is explicitly JSON inlined.\n\t\tInlined struct {\n\t\t\t// User is promoted into the JSON object for Container.\n\t\t\tUser string\n\t\t\t// Time cancels out with Base.Time.\n\t\t\tTime string\n\t\t} `json:\",inline\"`\n\t\t// ID does not conflict with Base.ID since the JSON name is different.\n\t\tID string `json:\"uuid\"`\n\t\t// Other is not JSON inlined since it has an explicit JSON name.\n\t\tOther `json:\"other\"`\n\t}\n\n\t// Format an empty Container to show what fields are JSON serializable.\n\tvar input Container\n\tb, err := json.Marshal(&input)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\t(*json.RawValue)(&b).Indent(\"\", \"\\t\") // indent for readability\n\tfmt.Println(string(b))\n\n\t// Output:\n\t// {\n\t// \t\"ID\": \"\",\n\t// \t\"Type\": 0,\n\t// \t\"User\": \"\",\n\t// \t\"uuid\": \"\",\n\t// \t\"other\": {\n\t// \t\t\"Cost\": 0\n\t// \t}\n\t// }\n}\n\n// Due to version skew, the set of JSON object members known at compile-time\n// may differ from the set of members encountered at execution-time.\n// As such, it may be useful to have finer grain handling of unknown members.\n// This package supports preserving, rejecting, or discarding such members.\nfunc Example_unknownMembers() {\n\tconst input = `{\n\t\t\"Name\": \"Teal\",\n\t\t\"Value\": \"#008080\",\n\t\t\"WebSafe\": false\n\t}`\n\ttype Color struct {\n\t\tName  string\n\t\tValue string\n\n\t\t// Unknown is a Go struct field that holds unknown JSON object members.\n\t\t// It is marked as having this behavior with the \"unknown\" tag option.\n\t\t//\n\t\t// The type may be a RawValue or map[string]T.\n\t\tUnknown json.RawValue `json:\",unknown\"`\n\t}\n\n\t// By default, unknown members are stored in a Go field marked as \"unknown\"\n\t// or ignored if no such field exists.\n\tvar color Color\n\terr := json.Unmarshal([]byte(input), &color)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println(\"Unknown members:\", string(color.Unknown))\n\n\t// Specifying UnmarshalOptions.RejectUnknownMembers causes\n\t// Unmarshal to reject the presence of any unknown members.\n\terr = json.UnmarshalOptions{\n\t\tRejectUnknownMembers: true,\n\t}.Unmarshal(json.DecodeOptions{}, []byte(input), new(Color))\n\tif err != nil {\n\t\tfmt.Println(\"Unmarshal error:\", errors.Unwrap(err))\n\t}\n\n\t// By default, Marshal preserves unknown members stored in\n\t// a Go struct field marked as \"unknown\".\n\tb, err := json.Marshal(color)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println(\"Output with unknown members:   \", string(b))\n\n\t// Specifying MarshalOptions.DiscardUnknownMembers causes\n\t// Marshal to discard any unknown members.\n\tb, err = json.MarshalOptions{\n\t\tDiscardUnknownMembers: true,\n\t}.Marshal(json.EncodeOptions{}, color)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println(\"Output without unknown members:\", string(b))\n\n\t// Output:\n\t// Unknown members: {\"WebSafe\":false}\n\t// Unmarshal error: unknown name \"WebSafe\"\n\t// Output with unknown members:    {\"Name\":\"Teal\",\"Value\":\"#008080\",\"WebSafe\":false}\n\t// Output without unknown members: {\"Name\":\"Teal\",\"Value\":\"#008080\"}\n}\n\n// The \"format\" tag option can be used to alter the formatting of certain types.\nfunc Example_formatFlags() {\n\tvalue := struct {\n\t\tBytesBase64    []byte         `json:\",format:base64\"`\n\t\tBytesHex       [8]byte        `json:\",format:hex\"`\n\t\tBytesArray     []byte         `json:\",format:array\"`\n\t\tFloatNonFinite float64        `json:\",format:nonfinite\"`\n\t\tMapEmitNull    map[string]any `json:\",format:emitnull\"`\n\t\tSliceEmitNull  []any          `json:\",format:emitnull\"`\n\t\tTimeDateOnly   time.Time      `json:\",format:'2006-01-02'\"`\n\t\tDurationNanos  time.Duration  `json:\",format:nanos\"`\n\t}{\n\t\tBytesBase64:    []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef},\n\t\tBytesHex:       [8]byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef},\n\t\tBytesArray:     []byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef},\n\t\tFloatNonFinite: math.NaN(),\n\t\tMapEmitNull:    nil,\n\t\tSliceEmitNull:  nil,\n\t\tTimeDateOnly:   time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC),\n\t\tDurationNanos:  time.Second + time.Millisecond + time.Microsecond + time.Nanosecond,\n\t}\n\n\tb, err := json.Marshal(&value)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\t(*json.RawValue)(&b).Indent(\"\", \"\\t\") // indent for readability\n\tfmt.Println(string(b))\n\n\t// Output:\n\t// {\n\t// \t\"BytesBase64\": \"ASNFZ4mrze8=\",\n\t// \t\"BytesHex\": \"0123456789abcdef\",\n\t// \t\"BytesArray\": [\n\t// \t\t1,\n\t// \t\t35,\n\t// \t\t69,\n\t// \t\t103,\n\t// \t\t137,\n\t// \t\t171,\n\t// \t\t205,\n\t// \t\t239\n\t// \t],\n\t// \t\"FloatNonFinite\": \"NaN\",\n\t// \t\"MapEmitNull\": null,\n\t// \t\"SliceEmitNull\": null,\n\t// \t\"TimeDateOnly\": \"2000-01-01\",\n\t// \t\"DurationNanos\": 1001001001\n\t// }\n}\n\n// When implementing HTTP endpoints, it is common to be operating with an\n// io.Reader and an io.Writer. The UnmarshalFull and MarshalFull functions\n// assist in operating on such input/output types.\n// UnmarshalFull reads the entirety of the io.Reader to ensure that io.EOF\n// is encountered without any unexpected bytes after the top-level JSON value.\nfunc Example_serveHTTP() {\n\t// Some global state maintained by the server.\n\tvar n int64\n\n\t// The \"add\" endpoint accepts a POST request with a JSON object\n\t// containing a number to atomically add to the server's global counter.\n\t// It returns the updated value of the counter.\n\thttp.HandleFunc(\"/api/add\", func(w http.ResponseWriter, r *http.Request) {\n\t\t// Unmarshal the request from the client.\n\t\tvar val struct{ N int64 }\n\t\tif err := json.UnmarshalFull(r.Body, &val); err != nil {\n\t\t\t// Inability to unmarshal the input suggests a client-side problem.\n\t\t\thttp.Error(w, err.Error(), http.StatusBadRequest)\n\t\t\treturn\n\t\t}\n\n\t\t// Marshal a response from the server.\n\t\tval.N = atomic.AddInt64(&n, val.N)\n\t\tif err := json.MarshalFull(w, &val); err != nil {\n\t\t\t// Inability to marshal the output suggests a server-side problem.\n\t\t\t// This error is not always observable by the client since\n\t\t\t// json.MarshalFull may have already written to the output.\n\t\t\thttp.Error(w, err.Error(), http.StatusInternalServerError)\n\t\t\treturn\n\t\t}\n\t})\n}\n\n// Some Go types have a custom JSON represention where the implementation\n// is delegated to some external package. Consequentely, the \"json\" package\n// will not know how to use that external implementation.\n// For example, the \"google.golang.org/protobuf/encoding/protojson\" package\n// implements JSON for all \"google.golang.org/protobuf/proto\".Message types.\n// MarshalOptions.Marshalers and UnmarshalOptions.Unmarshalers can be used\n// to configure \"json\" and \"protojson\" to cooperate together.\nfunc Example_protoJSON() {\n\t// Let protoMessage be \"google.golang.org/protobuf/proto\".Message.\n\ttype protoMessage interface{ ProtoReflect() }\n\t// Let foopbMyMessage be a concrete implementation of proto.Message.\n\ttype foopbMyMessage struct{ protoMessage }\n\t// Let protojson be an import of \"google.golang.org/protobuf/encoding/protojson\".\n\tvar protojson struct {\n\t\tMarshal   func(protoMessage) ([]byte, error)\n\t\tUnmarshal func([]byte, protoMessage) error\n\t}\n\n\t// This value mixes both non-proto.Message types and proto.Message types.\n\t// It should use the \"json\" package to handle non-proto.Message types and\n\t// should use the \"protojson\" package to handle proto.Message types.\n\tvar value struct {\n\t\t// GoStruct does not implement proto.Message and\n\t\t// should use the default behavior of the \"json\" package.\n\t\tGoStruct struct {\n\t\t\tName string\n\t\t\tAge  int\n\t\t}\n\n\t\t// ProtoMessage implements proto.Message and\n\t\t// should be handled using protojson.Marshal.\n\t\tProtoMessage *foopbMyMessage\n\t}\n\n\t// Marshal using protojson.Marshal for proto.Message types.\n\tb, err := json.MarshalOptions{\n\t\t// Use protojson.Marshal as a type-specific marshaler.\n\t\tMarshalers: json.MarshalFuncV1(protojson.Marshal),\n\t}.Marshal(json.EncodeOptions{}, &value)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\t// Unmarshal using protojson.Unmarshal for proto.Message types.\n\terr = json.UnmarshalOptions{\n\t\t// Use protojson.Unmarshal as a type-specific unmarshaler.\n\t\tUnmarshalers: json.UnmarshalFuncV1(protojson.Unmarshal),\n\t}.Unmarshal(json.DecodeOptions{}, b, &value)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n}\n\n// This example demonstrates the use of the Encoder and Decoder to\n// parse and modify JSON without unmarshaling it into a concrete Go type.\nfunc Example_stringReplace() {\n\t// Example input with non-idiomatic use of \"Golang\" instead of \"Go\".\n\tconst input = `{\n\t\t\"title\": \"Golang version 1 is released\",\n\t\t\"author\": \"Andrew Gerrand\",\n\t\t\"date\": \"2012-03-28\",\n\t\t\"text\": \"Today marks a major milestone in the development of the Golang programming language.\",\n\t\t\"otherArticles\": [\n\t\t\t\"Twelve Years of Golang\",\n\t\t\t\"The Laws of Reflection\",\n\t\t\t\"Learn Golang from your browser\"\n\t\t]\n\t}`\n\n\t// Using a Decoder and Encoder, we can parse through every token,\n\t// check and modify the token if necessary, and\n\t// write the token to the output.\n\tvar replacements []string\n\tin := strings.NewReader(input)\n\tdec := json.NewDecoder(in)\n\tout := new(bytes.Buffer)\n\tenc := json.EncodeOptions{Indent: \"\\t\"}.NewEncoder(out) // indent for readability\n\tfor {\n\t\t// Read a token from the input.\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tlog.Fatal(err)\n\t\t}\n\n\t\t// Check whether the token contains the string \"Golang\" and\n\t\t// replace each occurence with \"Go\" instead.\n\t\tif tok.Kind() == '\"' && strings.Contains(tok.String(), \"Golang\") {\n\t\t\treplacements = append(replacements, dec.StackPointer())\n\t\t\ttok = json.String(strings.ReplaceAll(tok.String(), \"Golang\", \"Go\"))\n\t\t}\n\n\t\t// Write the (possibly modified) token to the output.\n\t\tif err := enc.WriteToken(tok); err != nil {\n\t\t\tlog.Fatal(err)\n\t\t}\n\t}\n\n\t// Print the list of replacements and the adjusted JSON output.\n\tif len(replacements) > 0 {\n\t\tfmt.Println(`Replaced \"Golang\" with \"Go\" in:`)\n\t\tfor _, where := range replacements {\n\t\t\tfmt.Println(\"\\t\" + where)\n\t\t}\n\t\tfmt.Println()\n\t}\n\tfmt.Println(\"Result:\", out.String())\n\n\t// Output:\n\t// Replaced \"Golang\" with \"Go\" in:\n\t// \t/title\n\t// \t/text\n\t// \t/otherArticles/0\n\t// \t/otherArticles/2\n\t//\n\t// Result: {\n\t// \t\"title\": \"Go version 1 is released\",\n\t// \t\"author\": \"Andrew Gerrand\",\n\t// \t\"date\": \"2012-03-28\",\n\t// \t\"text\": \"Today marks a major milestone in the development of the Go programming language.\",\n\t// \t\"otherArticles\": [\n\t// \t\t\"Twelve Years of Go\",\n\t// \t\t\"The Laws of Reflection\",\n\t// \t\t\"Learn Go from your browser\"\n\t// \t]\n\t// }\n}\n\n// Directly embedding JSON within HTML requires special handling for safety.\n// Escape certain runes to prevent JSON directly treated as HTML\n// from being able to perform <script> injection.\n//\n// This example shows how to obtain equivalent behavior provided by the\n// \"encoding/json\" package that is no longer directly supported by this package.\n// Newly written code that intermix JSON and HTML should instead be using the\n// \"github.com/google/safehtml\" module for safety purposes.\nfunc ExampleEncodeOptions_escapeHTML() {\n\tpage := struct {\n\t\tTitle string\n\t\tBody  string\n\t}{\n\t\tTitle: \"Example Embedded Javascript\",\n\t\tBody:  `<script> console.log(\"Hello, world!\"); </script>`,\n\t}\n\n\tb, err := json.MarshalOptions{}.Marshal(json.EncodeOptions{\n\t\t// Escape certain runes within a JSON string so that\n\t\t// JSON will be safe to directly embed inside HTML.\n\t\tEscapeRune: func(r rune) bool {\n\t\t\tswitch r {\n\t\t\tcase '&', '<', '>', '\\u2028', '\\u2029':\n\t\t\t\treturn true\n\t\t\tdefault:\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t\t// Indent the output for readability.\n\t\tIndent: \"\\t\",\n\t}, &page)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println(string(b))\n\n\t// Output:\n\t// {\n\t// \t\"Title\": \"Example Embedded Javascript\",\n\t// \t\"Body\": \"\\u003cscript\\u003e console.log(\\\"Hello, world!\\\"); \\u003c/script\\u003e\"\n\t// }\n}\n\n// Many error types are not serializable since they tend to be Go structs\n// without any exported fields (e.g., errors constructed with errors.New).\n// Some applications, may desire to marshal an error as a JSON string\n// even if these errors cannot be unmarshaled.\nfunc ExampleMarshalOptions_errors() {\n\t// Response to serialize with some Go errors encountered.\n\tresponse := []struct {\n\t\tResult string `json:\",omitzero\"`\n\t\tError  error  `json:\",omitzero\"`\n\t}{\n\t\t{Result: \"Oranges are a good source of Vitamin C.\"},\n\t\t{Error: &strconv.NumError{Func: \"ParseUint\", Num: \"-1234\", Err: strconv.ErrSyntax}},\n\t\t{Error: &os.PathError{Op: \"ReadFile\", Path: \"/path/to/secret/file\", Err: os.ErrPermission}},\n\t}\n\n\tb, err := json.MarshalOptions{\n\t\t// Intercept every attempt to marshal an error type.\n\t\tMarshalers: json.NewMarshalers(\n\t\t\t// Suppose we consider strconv.NumError to be a safe to serialize:\n\t\t\t// this type-specific marshal function intercepts this type\n\t\t\t// and encodes the error message as a JSON string.\n\t\t\tjson.MarshalFuncV2(func(opts json.MarshalOptions, enc *json.Encoder, err *strconv.NumError) error {\n\t\t\t\treturn enc.WriteToken(json.String(err.Error()))\n\t\t\t}),\n\t\t\t// Error messages may contain sensitive information that may not\n\t\t\t// be appropriate to serialize. For all errors not handled above,\n\t\t\t// report some generic error message.\n\t\t\tjson.MarshalFuncV1(func(error) ([]byte, error) {\n\t\t\t\treturn []byte(`\"internal server error\"`), nil\n\t\t\t}),\n\t\t),\n\t}.Marshal(json.EncodeOptions{\n\t\tIndent: \"\\t\", // indent for readability\n\t}, &response)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println(string(b))\n\n\t// Output:\n\t// [\n\t// \t{\n\t// \t\t\"Result\": \"Oranges are a good source of Vitamin C.\"\n\t// \t},\n\t// \t{\n\t// \t\t\"Error\": \"strconv.ParseUint: parsing \\\"-1234\\\": invalid syntax\"\n\t// \t},\n\t// \t{\n\t// \t\t\"Error\": \"internal server error\"\n\t// \t}\n\t// ]\n}\n\n// In some applications, the exact precision of JSON numbers needs to be\n// preserved when unmarshaling. This can be accomplished using a type-specific\n// unmarshal function that intercepts all any types and pre-populates the\n// interface value with a RawValue, which can represent a JSON number exactly.\nfunc ExampleUnmarshalOptions_rawNumber() {\n\t// Input with JSON numbers beyond the representation of a float64.\n\tconst input = `[false, 1e-1000, 3.141592653589793238462643383279, 1e+1000, true]`\n\n\tvar value any\n\terr := json.UnmarshalOptions{\n\t\t// Intercept every attempt to unmarshal into the any type.\n\t\tUnmarshalers: json.UnmarshalFuncV2(func(opts json.UnmarshalOptions, dec *json.Decoder, val *any) error {\n\t\t\t// If the next value to be decoded is a JSON number,\n\t\t\t// then provide a concrete Go type to unmarshal into.\n\t\t\tif dec.PeekKind() == '0' {\n\t\t\t\t*val = json.RawValue(nil)\n\t\t\t}\n\t\t\t// Return SkipFunc to fallback on default unmarshal behavior.\n\t\t\treturn json.SkipFunc\n\t\t}),\n\t}.Unmarshal(json.DecodeOptions{}, []byte(input), &value)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println(value)\n\n\t// Sanity check.\n\twant := []any{false, json.RawValue(\"1e-1000\"), json.RawValue(\"3.141592653589793238462643383279\"), json.RawValue(\"1e+1000\"), true}\n\tif !reflect.DeepEqual(value, want) {\n\t\tlog.Fatalf(\"value mismatch:\\ngot  %v\\nwant %v\", value, want)\n\t}\n\n\t// Output:\n\t// [false 1e-1000 3.141592653589793238462643383279 1e+1000 true]\n}\n\n// When using JSON for parsing configuration files,\n// the parsing logic often needs to report an error with a line and column\n// indicating where in the input an error occurred.\nfunc ExampleUnmarshalOptions_recordOffsets() {\n\t// Hypothetical configuration file.\n\tconst input = `[\n\t\t{\"Source\": \"192.168.0.100:1234\", \"Destination\": \"192.168.0.1:80\"},\n\t\t{\"Source\": \"192.168.0.251:4004\"},\n\t\t{\"Source\": \"192.168.0.165:8080\", \"Destination\": \"0.0.0.0:80\"}\n\t]`\n\ttype Tunnel struct {\n\t\tSource      netip.AddrPort\n\t\tDestination netip.AddrPort\n\n\t\t// ByteOffset is populated during unmarshal with the byte offset\n\t\t// within the JSON input of the JSON object for this Go struct.\n\t\tByteOffset int64 `json:\"-\"` // metadata to be ignored for JSON serialization\n\t}\n\n\tvar tunnels []Tunnel\n\terr := json.UnmarshalOptions{\n\t\t// Intercept every attempt to unmarshal into the Tunnel type.\n\t\tUnmarshalers: json.UnmarshalFuncV2(func(opts json.UnmarshalOptions, dec *json.Decoder, tunnel *Tunnel) error {\n\t\t\t// Decoder.InputOffset reports the offset after the last token,\n\t\t\t// but we want to record the offset before the next token.\n\t\t\t//\n\t\t\t// Call Decoder.PeekKind to buffer enough to reach the next token.\n\t\t\t// Add the number of leading whitespace, commas, and colons\n\t\t\t// to locate the start of the next token.\n\t\t\tdec.PeekKind()\n\t\t\tunread := dec.UnreadBuffer()\n\t\t\tn := len(unread) - len(bytes.TrimLeft(unread, \" \\n\\r\\t,:\"))\n\t\t\ttunnel.ByteOffset = dec.InputOffset() + int64(n)\n\n\t\t\t// Return SkipFunc to fallback on default unmarshal behavior.\n\t\t\treturn json.SkipFunc\n\t\t}),\n\t}.Unmarshal(json.DecodeOptions{}, []byte(input), &tunnels)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\t// lineColumn converts a byte offset into a one-indexed line and column.\n\t// The offset must be within the bounds of the input.\n\tlineColumn := func(input string, offset int) (line, column int) {\n\t\tline = 1 + strings.Count(input[:offset], \"\\n\")\n\t\tcolumn = 1 + offset - (strings.LastIndex(input[:offset], \"\\n\") + len(\"\\n\"))\n\t\treturn line, column\n\t}\n\n\t// Verify that the configuration file is valid.\n\tfor _, tunnel := range tunnels {\n\t\tif !tunnel.Source.IsValid() || !tunnel.Destination.IsValid() {\n\t\t\tline, column := lineColumn(input, int(tunnel.ByteOffset))\n\t\t\tfmt.Printf(\"%d:%d: source and destination must both be specified\", line, column)\n\t\t}\n\t}\n\n\t// Output:\n\t// 3:3: source and destination must both be specified\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/fields.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\nvar errIgnoredField = errors.New(\"ignored field\")\n\ntype isZeroer interface {\n\tIsZero() bool\n}\n\nvar isZeroerType = reflect.TypeOf((*isZeroer)(nil)).Elem()\n\ntype structFields struct {\n\tflattened       []structField // listed in depth-first ordering\n\tbyActualName    map[string]*structField\n\tbyFoldedName    map[string][]*structField\n\tinlinedFallback *structField\n}\n\ntype structField struct {\n\tid      int   // unique numeric ID in breadth-first ordering\n\tindex   []int // index into a struct according to reflect.Type.FieldByIndex\n\ttyp     reflect.Type\n\tfncs    *arshaler\n\tisZero  func(addressableValue) bool\n\tisEmpty func(addressableValue) bool\n\tfieldOptions\n}\n\nfunc makeStructFields(root reflect.Type) (structFields, *SemanticError) {\n\tvar fs structFields\n\tfs.byActualName = make(map[string]*structField, root.NumField())\n\tfs.byFoldedName = make(map[string][]*structField, root.NumField())\n\n\t// ambiguous is a sentinel value to indicate that at least two fields\n\t// at the same depth have the same name, and thus cancel each other out.\n\t// This follows the same rules as selecting a field on embedded structs\n\t// where the shallowest field takes precedence. If more than one field\n\t// exists at the shallowest depth, then the selection is illegal.\n\t// See https://go.dev/ref/spec#Selectors.\n\tambiguous := new(structField)\n\n\t// Setup a queue for a breath-first search.\n\tvar queueIndex int\n\ttype queueEntry struct {\n\t\ttyp           reflect.Type\n\t\tindex         []int\n\t\tvisitChildren bool // whether to recursively visit inlined field in this struct\n\t}\n\tqueue := []queueEntry{{root, nil, true}}\n\tseen := map[reflect.Type]bool{root: true}\n\n\t// Perform a breadth-first search over all reachable fields.\n\t// This ensures that len(f.index) will be monotonically increasing.\n\tfor queueIndex < len(queue) {\n\t\tqe := queue[queueIndex]\n\t\tqueueIndex++\n\n\t\tt := qe.typ\n\t\tinlinedFallbackIndex := -1         // index of last inlined fallback field in current struct\n\t\tnamesIndex := make(map[string]int) // index of each field with a given JSON object name in current struct\n\t\tvar hasAnyJSONTag bool             // whether any Go struct field has a `json` tag\n\t\tvar hasAnyJSONField bool           // whether any JSON serializable fields exist in current struct\n\t\tfor i := 0; i < t.NumField(); i++ {\n\t\t\tsf := t.Field(i)\n\t\t\t_, hasTag := sf.Tag.Lookup(\"json\")\n\t\t\thasAnyJSONTag = hasAnyJSONTag || hasTag\n\t\t\toptions, err := parseFieldOptions(sf)\n\t\t\tif err != nil {\n\t\t\t\tif err == errIgnoredField {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t}\n\t\t\thasAnyJSONField = true\n\t\t\tf := structField{\n\t\t\t\t// Allocate a new slice (len=N+1) to hold both\n\t\t\t\t// the parent index (len=N) and the current index (len=1).\n\t\t\t\t// Do this to avoid clobbering the memory of the parent index.\n\t\t\t\tindex:        append(append(make([]int, 0, len(qe.index)+1), qe.index...), i),\n\t\t\t\ttyp:          sf.Type,\n\t\t\t\tfieldOptions: options,\n\t\t\t}\n\t\t\tif sf.Anonymous && !f.hasName {\n\t\t\t\tf.inline = true // implied by use of Go embedding without an explicit name\n\t\t\t}\n\t\t\tif f.inline || f.unknown {\n\t\t\t\t// Handle an inlined field that serializes to/from\n\t\t\t\t// zero or more JSON object members.\n\n\t\t\t\tif f.inline && f.unknown {\n\t\t\t\t\terr := fmt.Errorf(\"Go struct field %s cannot have both `inline` and `unknown` specified\", sf.Name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\tswitch f.fieldOptions {\n\t\t\t\tcase fieldOptions{name: f.name, quotedName: f.quotedName, inline: true}:\n\t\t\t\tcase fieldOptions{name: f.name, quotedName: f.quotedName, unknown: true}:\n\t\t\t\tdefault:\n\t\t\t\t\terr := fmt.Errorf(\"Go struct field %s cannot have any options other than `inline` or `unknown` specified\", sf.Name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\n\t\t\t\t// Unwrap one level of pointer indirection similar to how Go\n\t\t\t\t// only allows embedding either T or *T, but not **T.\n\t\t\t\ttf := f.typ\n\t\t\t\tif tf.Kind() == reflect.Pointer && tf.Name() == \"\" {\n\t\t\t\t\ttf = tf.Elem()\n\t\t\t\t}\n\t\t\t\t// Reject any types with custom serialization otherwise\n\t\t\t\t// it becomes impossible to know what sub-fields to inline.\n\t\t\t\tif which, _ := implementsWhich(tf,\n\t\t\t\t\tjsonMarshalerV2Type, jsonMarshalerV1Type, textMarshalerType,\n\t\t\t\t\tjsonUnmarshalerV2Type, jsonUnmarshalerV1Type, textUnmarshalerType,\n\t\t\t\t); which != nil && tf != rawValueType {\n\t\t\t\t\terr := fmt.Errorf(\"inlined Go struct field %s of type %s must not implement JSON marshal or unmarshal methods\", sf.Name, tf)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\n\t\t\t\t// Handle an inlined field that serializes to/from\n\t\t\t\t// a finite number of JSON object members backed by a Go struct.\n\t\t\t\tif tf.Kind() == reflect.Struct {\n\t\t\t\t\tif f.unknown {\n\t\t\t\t\t\terr := fmt.Errorf(\"inlined Go struct field %s of type %s with `unknown` tag must be a Go map of string key or a json.RawValue\", sf.Name, tf)\n\t\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t\t}\n\t\t\t\t\tif qe.visitChildren {\n\t\t\t\t\t\tqueue = append(queue, queueEntry{tf, f.index, !seen[tf]})\n\t\t\t\t\t}\n\t\t\t\t\tseen[tf] = true\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Handle an inlined field that serializes to/from any number of\n\t\t\t\t// JSON object members back by a Go map or RawValue.\n\t\t\t\tswitch {\n\t\t\t\tcase tf == rawValueType:\n\t\t\t\t\tf.fncs = nil // specially handled in arshal_inlined.go\n\t\t\t\tcase tf.Kind() == reflect.Map && tf.Key() == stringType:\n\t\t\t\t\tf.fncs = lookupArshaler(tf.Elem())\n\t\t\t\tdefault:\n\t\t\t\t\terr := fmt.Errorf(\"inlined Go struct field %s of type %s must be a Go struct, Go map of string key, or json.RawValue\", sf.Name, tf)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\n\t\t\t\t// Reject multiple inlined fallback fields within the same struct.\n\t\t\t\tif inlinedFallbackIndex >= 0 {\n\t\t\t\t\terr := fmt.Errorf(\"inlined Go struct fields %s and %s cannot both be a Go map or json.RawValue\", t.Field(inlinedFallbackIndex).Name, sf.Name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\tinlinedFallbackIndex = i\n\n\t\t\t\t// Multiple inlined fallback fields across different structs\n\t\t\t\t// follow the same precedence rules as Go struct embedding.\n\t\t\t\tif fs.inlinedFallback == nil {\n\t\t\t\t\tfs.inlinedFallback = &f // store first occurrence at lowest depth\n\t\t\t\t} else if len(fs.inlinedFallback.index) == len(f.index) {\n\t\t\t\t\tfs.inlinedFallback = ambiguous // at least two occurrences at same depth\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Handle normal Go struct field that serializes to/from\n\t\t\t\t// a single JSON object member.\n\n\t\t\t\t// Provide a function that uses a type's IsZero method.\n\t\t\t\tswitch {\n\t\t\t\tcase sf.Type.Kind() == reflect.Interface && sf.Type.Implements(isZeroerType):\n\t\t\t\t\tf.isZero = func(va addressableValue) bool {\n\t\t\t\t\t\t// Avoid panics calling IsZero on a nil interface or\n\t\t\t\t\t\t// non-nil interface with nil pointer.\n\t\t\t\t\t\treturn va.IsNil() || (va.Elem().Kind() == reflect.Pointer && va.Elem().IsNil()) || va.Interface().(isZeroer).IsZero()\n\t\t\t\t\t}\n\t\t\t\tcase sf.Type.Kind() == reflect.Pointer && sf.Type.Implements(isZeroerType):\n\t\t\t\t\tf.isZero = func(va addressableValue) bool {\n\t\t\t\t\t\t// Avoid panics calling IsZero on nil pointer.\n\t\t\t\t\t\treturn va.IsNil() || va.Interface().(isZeroer).IsZero()\n\t\t\t\t\t}\n\t\t\t\tcase sf.Type.Implements(isZeroerType):\n\t\t\t\t\tf.isZero = func(va addressableValue) bool { return va.Interface().(isZeroer).IsZero() }\n\t\t\t\tcase reflect.PointerTo(sf.Type).Implements(isZeroerType):\n\t\t\t\t\tf.isZero = func(va addressableValue) bool { return va.Addr().Interface().(isZeroer).IsZero() }\n\t\t\t\t}\n\n\t\t\t\t// Provide a function that can determine whether the value would\n\t\t\t\t// serialize as an empty JSON value.\n\t\t\t\tswitch sf.Type.Kind() {\n\t\t\t\tcase reflect.String, reflect.Map, reflect.Array, reflect.Slice:\n\t\t\t\t\tf.isEmpty = func(va addressableValue) bool { return va.Len() == 0 }\n\t\t\t\tcase reflect.Pointer, reflect.Interface:\n\t\t\t\t\tf.isEmpty = func(va addressableValue) bool { return va.IsNil() }\n\t\t\t\t}\n\n\t\t\t\tf.id = len(fs.flattened)\n\t\t\t\tf.fncs = lookupArshaler(sf.Type)\n\t\t\t\tfs.flattened = append(fs.flattened, f)\n\n\t\t\t\t// Reject user-specified names with invalid UTF-8.\n\t\t\t\tif !utf8.ValidString(f.name) {\n\t\t\t\t\terr := fmt.Errorf(\"Go struct field %s has JSON object name %q with invalid UTF-8\", sf.Name, f.name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\t// Reject multiple fields with same name within the same struct.\n\t\t\t\tif j, ok := namesIndex[f.name]; ok {\n\t\t\t\t\terr := fmt.Errorf(\"Go struct fields %s and %s conflict over JSON object name %q\", t.Field(j).Name, sf.Name, f.name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\tnamesIndex[f.name] = i\n\n\t\t\t\t// Multiple fields of the same name across different structs\n\t\t\t\t// follow the same precedence rules as Go struct embedding.\n\t\t\t\tif f2 := fs.byActualName[f.name]; f2 == nil {\n\t\t\t\t\tfs.byActualName[f.name] = &fs.flattened[len(fs.flattened)-1] // store first occurrence at lowest depth\n\t\t\t\t} else if len(f2.index) == len(f.index) {\n\t\t\t\t\tfs.byActualName[f.name] = ambiguous // at least two occurrences at same depth\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// NOTE: New users to the json package are occasionally surprised that\n\t\t// unexported fields are ignored. This occurs by necessity due to our\n\t\t// inability to directly introspect such fields with Go reflection\n\t\t// without the use of unsafe.\n\t\t//\n\t\t// To reduce friction here, refuse to serialize any Go struct that\n\t\t// has no JSON serializable fields, has at least one Go struct field,\n\t\t// and does not have any `json` tags present. For example,\n\t\t// errors returned by errors.New would fail to serialize.\n\t\tisEmptyStruct := t.NumField() == 0\n\t\tif !isEmptyStruct && !hasAnyJSONTag && !hasAnyJSONField {\n\t\t\terr := errors.New(\"Go struct has no exported fields\")\n\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t}\n\t}\n\n\t// Remove all fields that are duplicates.\n\t// This may move elements forward to fill the holes from removed fields.\n\tvar n int\n\tfor _, f := range fs.flattened {\n\t\tswitch f2 := fs.byActualName[f.name]; {\n\t\tcase f2 == ambiguous:\n\t\t\tdelete(fs.byActualName, f.name)\n\t\tcase f2 == nil:\n\t\t\tcontinue // may be nil due to previous delete\n\t\t// TODO(https://go.dev/issue/45955): Use slices.Equal.\n\t\tcase reflect.DeepEqual(f.index, f2.index):\n\t\t\tf.id = n\n\t\t\tfs.flattened[n] = f\n\t\t\tfs.byActualName[f.name] = &fs.flattened[n] // fix pointer to new location\n\t\t\tn++\n\t\t}\n\t}\n\tfs.flattened = fs.flattened[:n]\n\tif fs.inlinedFallback == ambiguous {\n\t\tfs.inlinedFallback = nil\n\t}\n\tif len(fs.flattened) != len(fs.byActualName) {\n\t\tpanic(fmt.Sprintf(\"BUG: flattened list of fields mismatches fields mapped by name: %d != %d\", len(fs.flattened), len(fs.byActualName)))\n\t}\n\n\t// Sort the fields according to a depth-first ordering.\n\t// This operation will cause pointers in byActualName to become incorrect,\n\t// which we will correct in another loop shortly thereafter.\n\tsort.Slice(fs.flattened, func(i, j int) bool {\n\t\tsi := fs.flattened[i].index\n\t\tsj := fs.flattened[j].index\n\t\tfor len(si) > 0 && len(sj) > 0 {\n\t\t\tswitch {\n\t\t\tcase si[0] < sj[0]:\n\t\t\t\treturn true\n\t\t\tcase si[0] > sj[0]:\n\t\t\t\treturn false\n\t\t\tdefault:\n\t\t\t\tsi = si[1:]\n\t\t\t\tsj = sj[1:]\n\t\t\t}\n\t\t}\n\t\treturn len(si) < len(sj)\n\t})\n\n\t// Recompute the mapping of fields in the byActualName map.\n\t// Pre-fold all names so that we can lookup folded names quickly.\n\tfor i, f := range fs.flattened {\n\t\tfoldedName := string(foldName([]byte(f.name)))\n\t\tfs.byActualName[f.name] = &fs.flattened[i]\n\t\tfs.byFoldedName[foldedName] = append(fs.byFoldedName[foldedName], &fs.flattened[i])\n\t}\n\tfor foldedName, fields := range fs.byFoldedName {\n\t\tif len(fields) > 1 {\n\t\t\t// The precedence order for conflicting nocase names\n\t\t\t// is by breadth-first order, rather than depth-first order.\n\t\t\tsort.Slice(fields, func(i, j int) bool {\n\t\t\t\treturn fields[i].id < fields[j].id\n\t\t\t})\n\t\t\tfs.byFoldedName[foldedName] = fields\n\t\t}\n\t}\n\n\treturn fs, nil\n}\n\ntype fieldOptions struct {\n\tname       string\n\tquotedName string // quoted name per RFC 8785, section 3.2.2.2.\n\thasName    bool\n\tnocase     bool\n\tinline     bool\n\tunknown    bool\n\tomitzero   bool\n\tomitempty  bool\n\tstring     bool\n\tformat     string\n}\n\n// parseFieldOptions parses the `json` tag in a Go struct field as\n// a structured set of options configuring parameters such as\n// the JSON member name and other features.\n// As a special case, it returns errIgnoredField if the field is ignored.\nfunc parseFieldOptions(sf reflect.StructField) (out fieldOptions, err error) {\n\ttag, hasTag := sf.Tag.Lookup(\"json\")\n\n\t// Check whether this field is explicitly ignored.\n\tif tag == \"-\" {\n\t\treturn fieldOptions{}, errIgnoredField\n\t}\n\n\t// Check whether this field is unexported.\n\tif !sf.IsExported() {\n\t\t// In contrast to v1, v2 no longer forwards exported fields from\n\t\t// embedded fields of unexported types since Go reflection does not\n\t\t// allow the same set of operations that are available in normal cases\n\t\t// of purely exported fields.\n\t\t// See https://go.dev/issue/21357 and https://go.dev/issue/24153.\n\t\tif sf.Anonymous {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"embedded Go struct field %s of an unexported type must be explicitly ignored with a `json:\\\"-\\\"` tag\", sf.Type.Name())\n\t\t}\n\t\t// Tag options specified on an unexported field suggests user error.\n\t\tif hasTag {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"unexported Go struct field %s cannot have non-ignored `json:%q` tag\", sf.Name, tag)\n\t\t}\n\t\treturn fieldOptions{}, errIgnoredField\n\t}\n\n\t// Determine the JSON member name for this Go field. A user-specified name\n\t// may be provided as either an identifier or a single-quoted string.\n\t// The single-quoted string allows arbitrary characters in the name.\n\t// See https://go.dev/issue/2718 and https://go.dev/issue/3546.\n\tout.name = sf.Name // always starts with an uppercase character\n\tif len(tag) > 0 && !strings.HasPrefix(tag, \",\") {\n\t\t// For better compatibility with v1, accept almost any unescaped name.\n\t\tn := len(tag) - len(strings.TrimLeftFunc(tag, func(r rune) bool {\n\t\t\treturn !strings.ContainsRune(\",\\\\'\\\"`\", r) // reserve comma, backslash, and quotes\n\t\t}))\n\t\topt := tag[:n]\n\t\tif n == 0 {\n\t\t\t// Allow a single quoted string for arbitrary names.\n\t\t\topt, n, err = consumeTagOption(tag)\n\t\t\tif err != nil {\n\t\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed `json` tag: %v\", sf.Name, err)\n\t\t\t}\n\t\t}\n\t\tout.hasName = true\n\t\tout.name = opt\n\t\ttag = tag[n:]\n\t}\n\tb, _ := appendString(nil, out.name, false, nil)\n\tout.quotedName = string(b)\n\n\t// Handle any additional tag options (if any).\n\tvar wasFormat bool\n\tseenOpts := make(map[string]bool)\n\tfor len(tag) > 0 {\n\t\t// Consume comma delimiter.\n\t\tif tag[0] != ',' {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed `json` tag: invalid character %q before next option (expecting ',')\", sf.Name, tag[0])\n\t\t}\n\t\ttag = tag[len(\",\"):]\n\t\tif len(tag) == 0 {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed `json` tag: invalid trailing ',' character\", sf.Name)\n\t\t}\n\n\t\t// Consume and process the tag option.\n\t\topt, n, err := consumeTagOption(tag)\n\t\tif err != nil {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed `json` tag: %v\", sf.Name, err)\n\t\t}\n\t\trawOpt := tag[:n]\n\t\ttag = tag[n:]\n\t\tswitch {\n\t\tcase wasFormat:\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has `format` tag option that was not specified last\", sf.Name)\n\t\tcase strings.HasPrefix(rawOpt, \"'\") && strings.TrimFunc(opt, isLetterOrDigit) == \"\":\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has unnecessarily quoted appearance of `%s` tag option; specify `%s` instead\", sf.Name, rawOpt, opt)\n\t\t}\n\t\tswitch opt {\n\t\tcase \"nocase\":\n\t\t\tout.nocase = true\n\t\tcase \"inline\":\n\t\t\tout.inline = true\n\t\tcase \"unknown\":\n\t\t\tout.unknown = true\n\t\tcase \"omitzero\":\n\t\t\tout.omitzero = true\n\t\tcase \"omitempty\":\n\t\t\tout.omitempty = true\n\t\tcase \"string\":\n\t\t\tout.string = true\n\t\tcase \"format\":\n\t\t\tif !strings.HasPrefix(tag, \":\") {\n\t\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s is missing value for `format` tag option\", sf.Name)\n\t\t\t}\n\t\t\ttag = tag[len(\":\"):]\n\t\t\topt, n, err := consumeTagOption(tag)\n\t\t\tif err != nil {\n\t\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed value for `format` tag option: %v\", sf.Name, err)\n\t\t\t}\n\t\t\ttag = tag[n:]\n\t\t\tout.format = opt\n\t\t\twasFormat = true\n\t\tdefault:\n\t\t\t// Reject keys that resemble one of the supported options.\n\t\t\t// This catches invalid mutants such as \"omitEmpty\" or \"omit_empty\".\n\t\t\tnormOpt := strings.ReplaceAll(strings.ToLower(opt), \"_\", \"\")\n\t\t\tswitch normOpt {\n\t\t\tcase \"nocase\", \"inline\", \"unknown\", \"omitzero\", \"omitempty\", \"string\", \"format\":\n\t\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has invalid appearance of `%s` tag option; specify `%s` instead\", sf.Name, opt, normOpt)\n\t\t\t}\n\n\t\t\t// NOTE: Everything else is ignored. This does not mean it is\n\t\t\t// forward compatible to insert arbitrary tag options since\n\t\t\t// a future version of this package may understand that tag.\n\t\t}\n\n\t\t// Reject duplicates.\n\t\tif seenOpts[opt] {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has duplicate appearance of `%s` tag option\", sf.Name, rawOpt)\n\t\t}\n\t\tseenOpts[opt] = true\n\t}\n\treturn out, nil\n}\n\nfunc consumeTagOption(in string) (string, int, error) {\n\tswitch r, _ := utf8.DecodeRuneInString(in); {\n\t// Option as a Go identifier.\n\tcase r == '_' || unicode.IsLetter(r):\n\t\tn := len(in) - len(strings.TrimLeftFunc(in, isLetterOrDigit))\n\t\treturn in[:n], n, nil\n\t// Option as a single-quoted string.\n\tcase r == '\\'':\n\t\t// The grammar is nearly identical to a double-quoted Go string literal,\n\t\t// but uses single quotes as the terminators. The reason for a custom\n\t\t// grammar is because both backtick and double quotes cannot be used\n\t\t// verbatim in a struct tag.\n\t\t//\n\t\t// Convert a single-quoted string to a double-quote string and rely on\n\t\t// strconv.Unquote to handle the rest.\n\t\tvar inEscape bool\n\t\tb := []byte{'\"'}\n\t\tn := len(`'`)\n\t\tfor len(in) > n {\n\t\t\tr, rn := utf8.DecodeRuneInString(in[n:])\n\t\t\tswitch {\n\t\t\tcase inEscape:\n\t\t\t\tif r == '\\'' {\n\t\t\t\t\tb = b[:len(b)-1] // remove escape character: `\\'` => `'`\n\t\t\t\t}\n\t\t\t\tinEscape = false\n\t\t\tcase r == '\\\\':\n\t\t\t\tinEscape = true\n\t\t\tcase r == '\"':\n\t\t\t\tb = append(b, '\\\\') // insert escape character: `\"` => `\\\"`\n\t\t\tcase r == '\\'':\n\t\t\t\tb = append(b, '\"')\n\t\t\t\tn += len(`'`)\n\t\t\t\tout, err := strconv.Unquote(string(b))\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn \"\", 0, fmt.Errorf(\"invalid single-quoted string: %s\", in[:n])\n\t\t\t\t}\n\t\t\t\treturn out, n, nil\n\t\t\t}\n\t\t\tb = append(b, in[n:][:rn]...)\n\t\t\tn += rn\n\t\t}\n\t\tif n > 10 {\n\t\t\tn = 10 // limit the amount of context printed in the error\n\t\t}\n\t\treturn \"\", 0, fmt.Errorf(\"single-quoted string not terminated: %s...\", in[:n])\n\tcase len(in) == 0:\n\t\treturn \"\", 0, io.ErrUnexpectedEOF\n\tdefault:\n\t\treturn \"\", 0, fmt.Errorf(\"invalid character %q at start of option (expecting Unicode letter or single quote)\", r)\n\t}\n}\n\nfunc isLetterOrDigit(r rune) bool {\n\treturn r == '_' || unicode.IsLetter(r) || unicode.IsNumber(r)\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/fields_test.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"encoding\"\n\t\"errors\"\n\t\"reflect\"\n\t\"testing\"\n)\n\ntype unexported struct{}\n\nfunc TestMakeStructFields(t *testing.T) {\n\ttype Embed struct {\n\t\tFoo string\n\t}\n\ttype Recursive struct {\n\t\tA          string\n\t\t*Recursive `json:\",inline\"`\n\t\tB          string\n\t}\n\ttype MapStringAny map[string]any\n\ttests := []struct {\n\t\tname    testName\n\t\tin      any\n\t\twant    structFields\n\t\twantErr error\n\t}{{\n\t\tname: name(\"Names\"),\n\t\tin: struct {\n\t\t\tF1 string\n\t\t\tF2 string `json:\"-\"`\n\t\t\tF3 string `json:\"json_name\"`\n\t\t\tf3 string\n\t\t\tF5 string `json:\"json_name_nocase,nocase\"`\n\t\t}{},\n\t\twant: structFields{\n\t\t\tflattened: []structField{\n\t\t\t\t{id: 0, index: []int{0}, typ: stringType, fieldOptions: fieldOptions{name: \"F1\", quotedName: `\"F1\"`}},\n\t\t\t\t{id: 1, index: []int{2}, typ: stringType, fieldOptions: fieldOptions{name: \"json_name\", quotedName: `\"json_name\"`, hasName: true}},\n\t\t\t\t{id: 2, index: []int{4}, typ: stringType, fieldOptions: fieldOptions{name: \"json_name_nocase\", quotedName: `\"json_name_nocase\"`, hasName: true, nocase: true}},\n\t\t\t},\n\t\t},\n\t}, {\n\t\tname: name(\"BreadthFirstSearch\"),\n\t\tin: struct {\n\t\t\tL1A string\n\t\t\tL1B struct {\n\t\t\t\tL2A string\n\t\t\t\tL2B struct {\n\t\t\t\t\tL3A string\n\t\t\t\t} `json:\",inline\"`\n\t\t\t\tL2C string\n\t\t\t} `json:\",inline\"`\n\t\t\tL1C string\n\t\t\tL1D struct {\n\t\t\t\tL2D string\n\t\t\t\tL2E struct {\n\t\t\t\t\tL3B string\n\t\t\t\t} `json:\",inline\"`\n\t\t\t\tL2F string\n\t\t\t} `json:\",inline\"`\n\t\t\tL1E string\n\t\t}{},\n\t\twant: structFields{\n\t\t\tflattened: []structField{\n\t\t\t\t{id: 0, index: []int{0}, typ: stringType, fieldOptions: fieldOptions{name: \"L1A\", quotedName: `\"L1A\"`}},\n\t\t\t\t{id: 3, index: []int{1, 0}, typ: stringType, fieldOptions: fieldOptions{name: \"L2A\", quotedName: `\"L2A\"`}},\n\t\t\t\t{id: 7, index: []int{1, 1, 0}, typ: stringType, fieldOptions: fieldOptions{name: \"L3A\", quotedName: `\"L3A\"`}},\n\t\t\t\t{id: 4, index: []int{1, 2}, typ: stringType, fieldOptions: fieldOptions{name: \"L2C\", quotedName: `\"L2C\"`}},\n\t\t\t\t{id: 1, index: []int{2}, typ: stringType, fieldOptions: fieldOptions{name: \"L1C\", quotedName: `\"L1C\"`}},\n\t\t\t\t{id: 5, index: []int{3, 0}, typ: stringType, fieldOptions: fieldOptions{name: \"L2D\", quotedName: `\"L2D\"`}},\n\t\t\t\t{id: 8, index: []int{3, 1, 0}, typ: stringType, fieldOptions: fieldOptions{name: \"L3B\", quotedName: `\"L3B\"`}},\n\t\t\t\t{id: 6, index: []int{3, 2}, typ: stringType, fieldOptions: fieldOptions{name: \"L2F\", quotedName: `\"L2F\"`}},\n\t\t\t\t{id: 2, index: []int{4}, typ: stringType, fieldOptions: fieldOptions{name: \"L1E\", quotedName: `\"L1E\"`}},\n\t\t\t},\n\t\t},\n\t}, {\n\t\tname: name(\"NameResolution\"),\n\t\tin: struct {\n\t\t\tX1 struct {\n\t\t\t\tX struct {\n\t\t\t\t\tA string // loses in precedence to A\n\t\t\t\t\tB string // cancels out with X2.X.B\n\t\t\t\t\tD string // loses in precedence to D\n\t\t\t\t} `json:\",inline\"`\n\t\t\t} `json:\",inline\"`\n\t\t\tX2 struct {\n\t\t\t\tX struct {\n\t\t\t\t\tB string // cancels out with X1.X.B\n\t\t\t\t\tC string\n\t\t\t\t\tD string // loses in precedence to D\n\t\t\t\t} `json:\",inline\"`\n\t\t\t} `json:\",inline\"`\n\t\t\tA string // takes precedence over X1.X.A\n\t\t\tD string // takes precedence over X1.X.D and X2.X.D\n\t\t}{},\n\t\twant: structFields{\n\t\t\tflattened: []structField{\n\t\t\t\t{id: 2, index: []int{1, 0, 1}, typ: stringType, fieldOptions: fieldOptions{name: \"C\", quotedName: `\"C\"`}},\n\t\t\t\t{id: 0, index: []int{2}, typ: stringType, fieldOptions: fieldOptions{name: \"A\", quotedName: `\"A\"`}},\n\t\t\t\t{id: 1, index: []int{3}, typ: stringType, fieldOptions: fieldOptions{name: \"D\", quotedName: `\"D\"`}},\n\t\t\t},\n\t\t},\n\t}, {\n\t\tname: name(\"Embed/Implicit\"),\n\t\tin: struct {\n\t\t\tEmbed\n\t\t}{},\n\t\twant: structFields{\n\t\t\tflattened: []structField{\n\t\t\t\t{id: 0, index: []int{0, 0}, typ: stringType, fieldOptions: fieldOptions{name: \"Foo\", quotedName: `\"Foo\"`}},\n\t\t\t},\n\t\t},\n\t}, {\n\t\tname: name(\"Embed/Explicit\"),\n\t\tin: struct {\n\t\t\tEmbed `json:\",inline\"`\n\t\t}{},\n\t\twant: structFields{\n\t\t\tflattened: []structField{\n\t\t\t\t{id: 0, index: []int{0, 0}, typ: stringType, fieldOptions: fieldOptions{name: \"Foo\", quotedName: `\"Foo\"`}},\n\t\t\t},\n\t\t},\n\t}, {\n\t\tname: name(\"Recursive\"),\n\t\tin: struct {\n\t\t\tA         string\n\t\t\tRecursive `json:\",inline\"`\n\t\t\tC         string\n\t\t}{},\n\t\twant: structFields{\n\t\t\tflattened: []structField{\n\t\t\t\t{id: 0, index: []int{0}, typ: stringType, fieldOptions: fieldOptions{name: \"A\", quotedName: `\"A\"`}},\n\t\t\t\t{id: 2, index: []int{1, 2}, typ: stringType, fieldOptions: fieldOptions{name: \"B\", quotedName: `\"B\"`}},\n\t\t\t\t{id: 1, index: []int{2}, typ: stringType, fieldOptions: fieldOptions{name: \"C\", quotedName: `\"C\"`}},\n\t\t\t},\n\t\t},\n\t}, {\n\t\tname: name(\"InlinedFallback/Cancelation\"),\n\t\tin: struct {\n\t\t\tX1 struct {\n\t\t\t\tX RawValue `json:\",inline\"`\n\t\t\t} `json:\",inline\"`\n\t\t\tX2 struct {\n\t\t\t\tX map[string]any `json:\",unknown\"`\n\t\t\t} `json:\",inline\"`\n\t\t}{},\n\t\twant: structFields{},\n\t}, {\n\t\tname: name(\"InlinedFallback/Precedence\"),\n\t\tin: struct {\n\t\t\tX1 struct {\n\t\t\t\tX RawValue `json:\",inline\"`\n\t\t\t} `json:\",inline\"`\n\t\t\tX2 struct {\n\t\t\t\tX map[string]any `json:\",unknown\"`\n\t\t\t} `json:\",inline\"`\n\t\t\tX map[string]RawValue `json:\",unknown\"`\n\t\t}{},\n\t\twant: structFields{\n\t\t\tinlinedFallback: &structField{id: 0, index: []int{2}, typ: reflect.TypeOf(map[string]RawValue(nil)), fieldOptions: fieldOptions{name: \"X\", quotedName: `\"X\"`, unknown: true}},\n\t\t},\n\t}, {\n\t\tname: name(\"InvalidUTF8\"),\n\t\tin: struct {\n\t\t\tName string `json:\"'\\\\xde\\\\xad\\\\xbe\\\\xef'\"`\n\t\t}{},\n\t\twantErr: errors.New(`Go struct field Name has JSON object name \"ޭ\\xbe\\xef\" with invalid UTF-8`),\n\t}, {\n\t\tname: name(\"DuplicateName\"),\n\t\tin: struct {\n\t\t\tA string `json:\"same\"`\n\t\t\tB string `json:\"same\"`\n\t\t}{},\n\t\twantErr: errors.New(`Go struct fields A and B conflict over JSON object name \"same\"`),\n\t}, {\n\t\tname: name(\"BothInlineAndUnknown\"),\n\t\tin: struct {\n\t\t\tA struct{} `json:\",inline,unknown\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field A cannot have both `inline` and `unknown` specified\"),\n\t}, {\n\t\tname: name(\"InlineWithOptions\"),\n\t\tin: struct {\n\t\t\tA struct{} `json:\",inline,omitempty\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field A cannot have any options other than `inline` or `unknown` specified\"),\n\t}, {\n\t\tname: name(\"UnknownWithOptions\"),\n\t\tin: struct {\n\t\t\tA map[string]any `json:\",inline,omitempty\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field A cannot have any options other than `inline` or `unknown` specified\"),\n\t}, {\n\t\tname: name(\"InlineTextMarshaler\"),\n\t\tin: struct {\n\t\t\tA struct{ encoding.TextMarshaler } `json:\",inline\"`\n\t\t}{},\n\t\twantErr: errors.New(`inlined Go struct field A of type struct { encoding.TextMarshaler } must not implement JSON marshal or unmarshal methods`),\n\t}, {\n\t\tname: name(\"UnknownJSONMarshalerV1\"),\n\t\tin: struct {\n\t\t\tA struct{ MarshalerV1 } `json:\",unknown\"`\n\t\t}{},\n\t\twantErr: errors.New(`inlined Go struct field A of type struct { json.MarshalerV1 } must not implement JSON marshal or unmarshal methods`),\n\t}, {\n\t\tname: name(\"InlineJSONMarshalerV2\"),\n\t\tin: struct {\n\t\t\tA struct{ MarshalerV2 } `json:\",inline\"`\n\t\t}{},\n\t\twantErr: errors.New(`inlined Go struct field A of type struct { json.MarshalerV2 } must not implement JSON marshal or unmarshal methods`),\n\t}, {\n\t\tname: name(\"UnknownTextUnmarshaler\"),\n\t\tin: struct {\n\t\t\tA *struct{ encoding.TextUnmarshaler } `json:\",unknown\"`\n\t\t}{},\n\t\twantErr: errors.New(`inlined Go struct field A of type struct { encoding.TextUnmarshaler } must not implement JSON marshal or unmarshal methods`),\n\t}, {\n\t\tname: name(\"InlineJSONUnmarshalerV1\"),\n\t\tin: struct {\n\t\t\tA *struct{ UnmarshalerV1 } `json:\",inline\"`\n\t\t}{},\n\t\twantErr: errors.New(`inlined Go struct field A of type struct { json.UnmarshalerV1 } must not implement JSON marshal or unmarshal methods`),\n\t}, {\n\t\tname: name(\"UnknownJSONUnmarshalerV2\"),\n\t\tin: struct {\n\t\t\tA struct{ UnmarshalerV2 } `json:\",unknown\"`\n\t\t}{},\n\t\twantErr: errors.New(`inlined Go struct field A of type struct { json.UnmarshalerV2 } must not implement JSON marshal or unmarshal methods`),\n\t}, {\n\t\tname: name(\"UnknownStruct\"),\n\t\tin: struct {\n\t\t\tA struct {\n\t\t\t\tX, Y, Z string\n\t\t\t} `json:\",unknown\"`\n\t\t}{},\n\t\twantErr: errors.New(\"inlined Go struct field A of type struct { X string; Y string; Z string } with `unknown` tag must be a Go map of string key or a json.RawValue\"),\n\t}, {\n\t\tname: name(\"InlineUnsupported/MapIntKey\"),\n\t\tin: struct {\n\t\t\tA map[int]any `json:\",unknown\"`\n\t\t}{},\n\t\twantErr: errors.New(`inlined Go struct field A of type map[int]interface {} must be a Go struct, Go map of string key, or json.RawValue`),\n\t}, {\n\t\tname: name(\"InlineUnsupported/MapNamedStringKey\"),\n\t\tin: struct {\n\t\t\tA map[namedString]any `json:\",inline\"`\n\t\t}{},\n\t\twantErr: errors.New(`inlined Go struct field A of type map[json.namedString]interface {} must be a Go struct, Go map of string key, or json.RawValue`),\n\t}, {\n\t\tname: name(\"InlineUnsupported/DoublePointer\"),\n\t\tin: struct {\n\t\t\tA **struct{} `json:\",inline\"`\n\t\t}{},\n\t\twantErr: errors.New(`inlined Go struct field A of type *struct {} must be a Go struct, Go map of string key, or json.RawValue`),\n\t}, {\n\t\tname: name(\"DuplicateInline\"),\n\t\tin: struct {\n\t\t\tA map[string]any `json:\",inline\"`\n\t\t\tB RawValue       `json:\",inline\"`\n\t\t}{},\n\t\twantErr: errors.New(`inlined Go struct fields A and B cannot both be a Go map or json.RawValue`),\n\t}, {\n\t\tname: name(\"DuplicateEmbedInline\"),\n\t\tin: struct {\n\t\t\tMapStringAny\n\t\t\tB RawValue `json:\",inline\"`\n\t\t}{},\n\t\twantErr: errors.New(`inlined Go struct fields MapStringAny and B cannot both be a Go map or json.RawValue`),\n\t}}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name.name, func(t *testing.T) {\n\t\t\tgot, err := makeStructFields(reflect.TypeOf(tt.in))\n\n\t\t\t// Sanity check that pointers are consistent.\n\t\t\tpointers := make(map[*structField]bool)\n\t\t\tfor i := range got.flattened {\n\t\t\t\tpointers[&got.flattened[i]] = true\n\t\t\t}\n\t\t\tfor _, f := range got.byActualName {\n\t\t\t\tif !pointers[f] {\n\t\t\t\t\tt.Errorf(\"%s: byActualName pointer not in flattened\", tt.name.where)\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor _, fs := range got.byFoldedName {\n\t\t\t\tfor _, f := range fs {\n\t\t\t\t\tif !pointers[f] {\n\t\t\t\t\t\tt.Errorf(\"%s: byFoldedName pointer not in flattened\", tt.name.where)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Zero out fields that are incomparable.\n\t\t\tfor i := range got.flattened {\n\t\t\t\tgot.flattened[i].fncs = nil\n\t\t\t\tgot.flattened[i].isEmpty = nil\n\t\t\t}\n\t\t\tif got.inlinedFallback != nil {\n\t\t\t\tgot.inlinedFallback.fncs = nil\n\t\t\t\tgot.inlinedFallback.isEmpty = nil\n\t\t\t}\n\n\t\t\t// Reproduce maps in want.\n\t\t\tif tt.wantErr == nil {\n\t\t\t\ttt.want.byActualName = make(map[string]*structField)\n\t\t\t\tfor i := range tt.want.flattened {\n\t\t\t\t\tf := &tt.want.flattened[i]\n\t\t\t\t\ttt.want.byActualName[f.name] = f\n\t\t\t\t}\n\t\t\t\ttt.want.byFoldedName = make(map[string][]*structField)\n\t\t\t\tfor i, f := range tt.want.flattened {\n\t\t\t\t\tfoldedName := string(foldName([]byte(f.name)))\n\t\t\t\t\ttt.want.byFoldedName[foldedName] = append(tt.want.byFoldedName[foldedName], &tt.want.flattened[i])\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Only compare underlying error to simplify test logic.\n\t\t\tvar gotErr error\n\t\t\tif err != nil {\n\t\t\t\tgotErr = err.Err\n\t\t\t}\n\n\t\t\tif !reflect.DeepEqual(got, tt.want) || !reflect.DeepEqual(gotErr, tt.wantErr) {\n\t\t\t\tt.Errorf(\"%s: makeStructFields(%T):\\n\\tgot  (%v, %v)\\n\\twant (%v, %v)\", tt.name.where, tt.in, got, gotErr, tt.want, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestParseTagOptions(t *testing.T) {\n\ttests := []struct {\n\t\tname     testName\n\t\tin       any // must be a struct with a single field\n\t\twantOpts fieldOptions\n\t\twantErr  error\n\t}{{\n\t\tname: name(\"GoName\"),\n\t\tin: struct {\n\t\t\tFieldName int\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"FieldName\", quotedName: `\"FieldName\"`},\n\t}, {\n\t\tname: name(\"GoNameWithOptions\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",inline\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"FieldName\", quotedName: `\"FieldName\"`, inline: true},\n\t}, {\n\t\tname: name(\"Empty\"),\n\t\tin: struct {\n\t\t\tV int `json:\"\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"V\", quotedName: `\"V\"`},\n\t}, {\n\t\tname: name(\"Unexported\"),\n\t\tin: struct {\n\t\t\tv int `json:\"Hello\"`\n\t\t}{},\n\t\twantErr: errors.New(\"unexported Go struct field v cannot have non-ignored `json:\\\"Hello\\\"` tag\"),\n\t}, {\n\t\tname: name(\"UnexportedEmpty\"),\n\t\tin: struct {\n\t\t\tv int `json:\"\"`\n\t\t}{},\n\t\twantErr: errors.New(\"unexported Go struct field v cannot have non-ignored `json:\\\"\\\"` tag\"),\n\t}, {\n\t\tname: name(\"EmbedUnexported\"),\n\t\tin: struct {\n\t\t\tunexported\n\t\t}{},\n\t\twantErr: errors.New(\"embedded Go struct field unexported of an unexported type must be explicitly ignored with a `json:\\\"-\\\"` tag\"),\n\t}, {\n\t\tname: name(\"Ignored\"),\n\t\tin: struct {\n\t\t\tV int `json:\"-\"`\n\t\t}{},\n\t\twantErr: errIgnoredField,\n\t}, {\n\t\tname: name(\"IgnoredEmbedUnexported\"),\n\t\tin: struct {\n\t\t\tunexported `json:\"-\"`\n\t\t}{},\n\t\twantErr: errIgnoredField,\n\t}, {\n\t\tname: name(\"DashComma\"),\n\t\tin: struct {\n\t\t\tV int `json:\"-,\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field V has malformed `json` tag: invalid trailing ',' character\"),\n\t}, {\n\t\tname: name(\"QuotedDashName\"),\n\t\tin: struct {\n\t\t\tV int `json:\"'-'\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"-\", quotedName: `\"-\"`},\n\t}, {\n\t\tname: name(\"LatinPunctuationName\"),\n\t\tin: struct {\n\t\t\tV int `json:\"$%-/\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"$%-/\", quotedName: `\"$%-/\"`},\n\t}, {\n\t\tname: name(\"QuotedLatinPunctuationName\"),\n\t\tin: struct {\n\t\t\tV int `json:\"'$%-/'\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"$%-/\", quotedName: `\"$%-/\"`},\n\t}, {\n\t\tname: name(\"LatinDigitsName\"),\n\t\tin: struct {\n\t\t\tV int `json:\"0123456789\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"0123456789\", quotedName: `\"0123456789\"`},\n\t}, {\n\t\tname: name(\"QuotedLatinDigitsName\"),\n\t\tin: struct {\n\t\t\tV int `json:\"'0123456789'\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"0123456789\", quotedName: `\"0123456789\"`},\n\t}, {\n\t\tname: name(\"LatinUppercaseName\"),\n\t\tin: struct {\n\t\t\tV int `json:\"ABCDEFGHIJKLMOPQRSTUVWXYZ\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"ABCDEFGHIJKLMOPQRSTUVWXYZ\", quotedName: `\"ABCDEFGHIJKLMOPQRSTUVWXYZ\"`},\n\t}, {\n\t\tname: name(\"LatinLowercaseName\"),\n\t\tin: struct {\n\t\t\tV int `json:\"abcdefghijklmnopqrstuvwxyz_\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"abcdefghijklmnopqrstuvwxyz_\", quotedName: `\"abcdefghijklmnopqrstuvwxyz_\"`},\n\t}, {\n\t\tname: name(\"GreekName\"),\n\t\tin: struct {\n\t\t\tV string `json:\"Ελλάδα\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"Ελλάδα\", quotedName: `\"Ελλάδα\"`},\n\t}, {\n\t\tname: name(\"QuotedGreekName\"),\n\t\tin: struct {\n\t\t\tV string `json:\"'Ελλάδα'\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"Ελλάδα\", quotedName: `\"Ελλάδα\"`},\n\t}, {\n\t\tname: name(\"ChineseName\"),\n\t\tin: struct {\n\t\t\tV string `json:\"世界\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"世界\", quotedName: `\"世界\"`},\n\t}, {\n\t\tname: name(\"QuotedChineseName\"),\n\t\tin: struct {\n\t\t\tV string `json:\"'世界'\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"世界\", quotedName: `\"世界\"`},\n\t}, {\n\t\tname: name(\"PercentSlashName\"),\n\t\tin: struct {\n\t\t\tV int `json:\"text/html%\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"text/html%\", quotedName: `\"text/html%\"`},\n\t}, {\n\t\tname: name(\"QuotedPercentSlashName\"),\n\t\tin: struct {\n\t\t\tV int `json:\"'text/html%'\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"text/html%\", quotedName: `\"text/html%\"`},\n\t}, {\n\t\tname: name(\"PunctuationName\"),\n\t\tin: struct {\n\t\t\tV string `json:\"!#$%&()*+-./:;<=>?@[]^_{|}~ \"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"!#$%&()*+-./:;<=>?@[]^_{|}~ \", quotedName: `\"!#$%&()*+-./:;<=>?@[]^_{|}~ \"`},\n\t}, {\n\t\tname: name(\"QuotedPunctuationName\"),\n\t\tin: struct {\n\t\t\tV string `json:\"'!#$%&()*+-./:;<=>?@[]^_{|}~ '\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"!#$%&()*+-./:;<=>?@[]^_{|}~ \", quotedName: `\"!#$%&()*+-./:;<=>?@[]^_{|}~ \"`},\n\t}, {\n\t\tname: name(\"EmptyName\"),\n\t\tin: struct {\n\t\t\tV int `json:\"''\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \"\", quotedName: `\"\"`},\n\t}, {\n\t\tname: name(\"SpaceName\"),\n\t\tin: struct {\n\t\t\tV int `json:\"' '\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: \" \", quotedName: `\" \"`},\n\t}, {\n\t\tname: name(\"CommaQuotes\"),\n\t\tin: struct {\n\t\t\tV int `json:\"',\\\\'\\\"\\\\\\\"'\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{hasName: true, name: `,'\"\"`, quotedName: `\",'\\\"\\\"\"`},\n\t}, {\n\t\tname: name(\"SingleComma\"),\n\t\tin: struct {\n\t\t\tV int `json:\",\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field V has malformed `json` tag: invalid trailing ',' character\"),\n\t}, {\n\t\tname: name(\"SuperfluousCommas\"),\n\t\tin: struct {\n\t\t\tV int `json:\",,,,\\\"\\\",,inline,unknown,,,,\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field V has malformed `json` tag: invalid character ',' at start of option (expecting Unicode letter or single quote)\"),\n\t}, {\n\t\tname: name(\"NoCaseOption\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",nocase\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"FieldName\", quotedName: `\"FieldName\"`, nocase: true},\n\t}, {\n\t\tname: name(\"InlineOption\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",inline\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"FieldName\", quotedName: `\"FieldName\"`, inline: true},\n\t}, {\n\t\tname: name(\"UnknownOption\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",unknown\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"FieldName\", quotedName: `\"FieldName\"`, unknown: true},\n\t}, {\n\t\tname: name(\"OmitZeroOption\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",omitzero\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"FieldName\", quotedName: `\"FieldName\"`, omitzero: true},\n\t}, {\n\t\tname: name(\"OmitEmptyOption\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",omitempty\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"FieldName\", quotedName: `\"FieldName\"`, omitempty: true},\n\t}, {\n\t\tname: name(\"StringOption\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",string\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"FieldName\", quotedName: `\"FieldName\"`, string: true},\n\t}, {\n\t\tname: name(\"FormatOptionEqual\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",format=fizzbuzz\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field FieldName is missing value for `format` tag option\"),\n\t}, {\n\t\tname: name(\"FormatOptionColon\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",format:fizzbuzz\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"FieldName\", quotedName: `\"FieldName\"`, format: \"fizzbuzz\"},\n\t}, {\n\t\tname: name(\"FormatOptionQuoted\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",format:'2006-01-02'\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"FieldName\", quotedName: `\"FieldName\"`, format: \"2006-01-02\"},\n\t}, {\n\t\tname: name(\"FormatOptionInvalid\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",format:'2006-01-02\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field FieldName has malformed value for `format` tag option: single-quoted string not terminated: '2006-01-0...\"),\n\t}, {\n\t\tname: name(\"FormatOptionNotLast\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",format:alpha,ordered\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field FieldName has `format` tag option that was not specified last\"),\n\t}, {\n\t\tname: name(\"AllOptions\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",nocase,inline,unknown,omitzero,omitempty,string,format:format\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{\n\t\t\tname:       \"FieldName\",\n\t\t\tquotedName: `\"FieldName\"`,\n\t\t\tnocase:     true,\n\t\t\tinline:     true,\n\t\t\tunknown:    true,\n\t\t\tomitzero:   true,\n\t\t\tomitempty:  true,\n\t\t\tstring:     true,\n\t\t\tformat:     \"format\",\n\t\t},\n\t}, {\n\t\tname: name(\"AllOptionsQuoted\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",'nocase','inline','unknown','omitzero','omitempty','string','format':'format'\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field FieldName has unnecessarily quoted appearance of `'nocase'` tag option; specify `nocase` instead\"),\n\t}, {\n\t\tname: name(\"AllOptionsCaseSensitive\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",NOCASE,INLINE,UNKNOWN,OMITZERO,OMITEMPTY,STRING,FORMAT:FORMAT\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field FieldName has invalid appearance of `NOCASE` tag option; specify `nocase` instead\"),\n\t}, {\n\t\tname: name(\"AllOptionsSpaceSensitive\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\", nocase , inline , unknown , omitzero , omitempty , string , format:format \"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field FieldName has malformed `json` tag: invalid character ' ' at start of option (expecting Unicode letter or single quote)\"),\n\t}, {\n\t\tname: name(\"UnknownTagOption\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\",inline,whoknows,string\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"FieldName\", quotedName: `\"FieldName\"`, inline: true, string: true},\n\t}, {\n\t\tname: name(\"MalformedQuotedString/MissingQuote\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\"'hello,string\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field FieldName has malformed `json` tag: single-quoted string not terminated: 'hello,str...\"),\n\t}, {\n\t\tname: name(\"MalformedQuotedString/MissingComma\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\"'hello'inline,string\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field FieldName has malformed `json` tag: invalid character 'i' before next option (expecting ',')\"),\n\t}, {\n\t\tname: name(\"MalformedQuotedString/InvalidEscape\"),\n\t\tin: struct {\n\t\t\tFieldName int `json:\"'hello\\\\u####',inline,string\"`\n\t\t}{},\n\t\twantErr: errors.New(\"Go struct field FieldName has malformed `json` tag: invalid single-quoted string: 'hello\\\\u####'\"),\n\t}, {\n\t\tname: name(\"MisnamedTag\"),\n\t\tin: struct {\n\t\t\tV int `jsom:\"Misnamed\"`\n\t\t}{},\n\t\twantOpts: fieldOptions{name: \"V\", quotedName: `\"V\"`},\n\t}}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name.name, func(t *testing.T) {\n\t\t\tfs := reflect.TypeOf(tt.in).Field(0)\n\t\t\tgotOpts, gotErr := parseFieldOptions(fs)\n\t\t\tif !reflect.DeepEqual(gotOpts, tt.wantOpts) || !reflect.DeepEqual(gotErr, tt.wantErr) {\n\t\t\t\tt.Errorf(\"%s: parseFieldOptions(%T) = (%v, %v), want (%v, %v)\", tt.name.where, tt.in, gotOpts, gotErr, tt.wantOpts, tt.wantErr)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/fold.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// foldName returns a folded string such that foldName(x) == foldName(y)\n// is similar to strings.EqualFold(x, y), but ignores underscore and dashes.\n// This allows foldName to match common naming conventions.\nfunc foldName(in []byte) []byte {\n\t// This is inlinable to take advantage of \"function outlining\".\n\t// See https://blog.filippo.io/efficient-go-apis-with-the-inliner/\n\tvar arr [32]byte // large enough for most JSON names\n\treturn appendFoldedName(arr[:0], in)\n}\nfunc appendFoldedName(out, in []byte) []byte {\n\tfor i := 0; i < len(in); {\n\t\t// Handle single-byte ASCII.\n\t\tif c := in[i]; c < utf8.RuneSelf {\n\t\t\tif c != '_' && c != '-' {\n\t\t\t\tif 'a' <= c && c <= 'z' {\n\t\t\t\t\tc -= 'a' - 'A'\n\t\t\t\t}\n\t\t\t\tout = append(out, c)\n\t\t\t}\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\t// Handle multi-byte Unicode.\n\t\tr, n := utf8.DecodeRune(in[i:])\n\t\tout = utf8.AppendRune(out, foldRune(r))\n\t\ti += n\n\t}\n\treturn out\n}\n\n// foldRune is a variation on unicode.SimpleFold that returns the same rune\n// for all runes in the same fold set.\n//\n// Invariant:\n//\n//\tfoldRune(x) == foldRune(y) ⇔ strings.EqualFold(string(x), string(y))\nfunc foldRune(r rune) rune {\n\tfor {\n\t\tr2 := unicode.SimpleFold(r)\n\t\tif r2 <= r {\n\t\t\treturn r2 // smallest character in the fold set\n\t\t}\n\t\tr = r2\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/fold_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"testing\"\n\t\"unicode\"\n\n\tjsonv1 \"encoding/json\"\n)\n\nvar equalFoldTestdata = []struct {\n\tin1, in2 string\n\twant     bool\n}{\n\t{\"\", \"\", true},\n\t{\"abc\", \"abc\", true},\n\t{\"ABcd\", \"ABcd\", true},\n\t{\"123abc\", \"123ABC\", true},\n\t{\"_1_2_-_3__--a-_-b-c-\", \"123ABC\", true},\n\t{\"αβδ\", \"ΑΒΔ\", true},\n\t{\"abc\", \"xyz\", false},\n\t{\"abc\", \"XYZ\", false},\n\t{\"abcdefghijk\", \"abcdefghijX\", false},\n\t{\"abcdefghijk\", \"abcdefghij\\u212A\", true},\n\t{\"abcdefghijK\", \"abcdefghij\\u212A\", true},\n\t{\"abcdefghijkz\", \"abcdefghij\\u212Ay\", false},\n\t{\"abcdefghijKz\", \"abcdefghij\\u212Ay\", false},\n\t{\"1\", \"2\", false},\n\t{\"utf-8\", \"US-ASCII\", false},\n\t{\"hello, world!\", \"hello, world!\", true},\n\t{\"hello, world!\", \"Hello, World!\", true},\n\t{\"hello, world!\", \"HELLO, WORLD!\", true},\n\t{\"hello, world!\", \"jello, world!\", false},\n\t{\"γειά, κόσμε!\", \"γειά, κόσμε!\", true},\n\t{\"γειά, κόσμε!\", \"Γειά, Κόσμε!\", true},\n\t{\"γειά, κόσμε!\", \"ΓΕΙΆ, ΚΌΣΜΕ!\", true},\n\t{\"γειά, κόσμε!\", \"ΛΕΙΆ, ΚΌΣΜΕ!\", false},\n\t{\"AESKey\", \"aesKey\", true},\n\t{\"γειά, κόσμε!\", \"Γ\\xce_\\xb5ιά, Κόσμε!\", false},\n\t{\"aeskey\", \"AESKEY\", true},\n\t{\"AESKEY\", \"aes_key\", true},\n\t{\"aes_key\", \"AES_KEY\", true},\n\t{\"AES_KEY\", \"aes-key\", true},\n\t{\"aes-key\", \"AES-KEY\", true},\n\t{\"AES-KEY\", \"aesKey\", true},\n\t{\"aesKey\", \"AesKey\", true},\n\t{\"AesKey\", \"AESKey\", true},\n\t{\"AESKey\", \"aeskey\", true},\n\t{\"DESKey\", \"aeskey\", false},\n\t{\"AES Key\", \"aeskey\", false},\n\t{\"aes﹏key\", \"aeskey\", false}, // Unicode underscore not handled\n\t{\"aes〰key\", \"aeskey\", false}, // Unicode dash not handled\n}\n\nfunc TestEqualFold(t *testing.T) {\n\tfor _, tt := range equalFoldTestdata {\n\t\tgot := equalFold([]byte(tt.in1), []byte(tt.in2))\n\t\tif got != tt.want {\n\t\t\tt.Errorf(\"equalFold(%q, %q) = %v, want %v\", tt.in1, tt.in2, got, tt.want)\n\t\t}\n\t}\n}\n\nfunc equalFold(x, y []byte) bool {\n\treturn string(foldName(x)) == string(foldName(y))\n}\n\nfunc TestFoldRune(t *testing.T) {\n\tif testing.Short() {\n\t\tt.Skip()\n\t}\n\n\tvar foldSet []rune\n\tfor r := rune(0); r <= unicode.MaxRune; r++ {\n\t\t// Derive all runes that are all part of the same fold set.\n\t\tfoldSet = foldSet[:0]\n\t\tfor r0 := r; r != r0 || len(foldSet) == 0; r = unicode.SimpleFold(r) {\n\t\t\tfoldSet = append(foldSet, r)\n\t\t}\n\n\t\t// Normalized form of each rune in a foldset must be the same and\n\t\t// also be within the set itself.\n\t\tvar withinSet bool\n\t\trr0 := foldRune(foldSet[0])\n\t\tfor _, r := range foldSet {\n\t\t\twithinSet = withinSet || rr0 == r\n\t\t\trr := foldRune(r)\n\t\t\tif rr0 != rr {\n\t\t\t\tt.Errorf(\"foldRune(%q) = %q, want %q\", r, rr, rr0)\n\t\t\t}\n\t\t}\n\t\tif !withinSet {\n\t\t\tt.Errorf(\"foldRune(%q) = %q not in fold set %q\", foldSet[0], rr0, string(foldSet))\n\t\t}\n\t}\n}\n\n// TestBenchmarkUnmarshalUnknown unmarshals an unknown field into a struct with\n// varying number of fields. Since the unknown field does not directly match\n// any known field by name, it must fall back on case-insensitive matching.\nfunc TestBenchmarkUnmarshalUnknown(t *testing.T) { runUnmarshalUnknown(t) }\nfunc BenchmarkUnmarshalUnknown(b *testing.B)     { runUnmarshalUnknown(b) }\n\nfunc runUnmarshalUnknown(tb testing.TB) {\n\tin := []byte(`{\"NameUnknown\":null}`)\n\tfor _, n := range []int{1, 2, 5, 10, 20, 50, 100} {\n\t\tunmarshal := Unmarshal\n\t\tif benchV1 {\n\t\t\tunmarshal = jsonv1.Unmarshal\n\t\t}\n\n\t\tvar fields []reflect.StructField\n\t\tfor i := 0; i < n; i++ {\n\t\t\tfields = append(fields, reflect.StructField{\n\t\t\t\tName: fmt.Sprintf(\"Name%d\", i),\n\t\t\t\tType: reflect.TypeOf(0),\n\t\t\t\tTag:  `json:\",nocase\"`,\n\t\t\t})\n\t\t}\n\t\tout := reflect.New(reflect.StructOf(fields)).Interface()\n\n\t\trunTestOrBench(tb, fmt.Sprintf(\"N%d\", n), int64(len(in)), func(tb testing.TB) {\n\t\t\tif err := unmarshal(in, out); err != nil {\n\t\t\t\ttb.Fatalf(\"Unmarshal error: %v\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/fuzz_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"math/rand\"\n\t\"reflect\"\n\t\"testing\"\n)\n\nfunc FuzzCoder(f *testing.F) {\n\t// Add a number of inputs to the corpus including valid and invalid data.\n\tfor _, td := range coderTestdata {\n\t\tf.Add(int64(0), []byte(td.in))\n\t}\n\tfor _, td := range decoderErrorTestdata {\n\t\tf.Add(int64(0), []byte(td.in))\n\t}\n\tfor _, td := range encoderErrorTestdata {\n\t\tf.Add(int64(0), []byte(td.wantOut))\n\t}\n\tfor _, td := range jsonTestdata() {\n\t\tf.Add(int64(0), td.data)\n\t}\n\n\tf.Fuzz(func(t *testing.T, seed int64, b []byte) {\n\t\tvar tokVals []tokOrVal\n\t\trn := rand.NewSource(seed)\n\n\t\t// Read a sequence of tokens or values. Skip the test for any errors\n\t\t// since we expect this with randomly generated fuzz inputs.\n\t\tsrc := bytes.NewReader(b)\n\t\tdec := NewDecoder(src)\n\t\tfor {\n\t\t\tif rn.Int63()%8 > 0 {\n\t\t\t\ttok, err := dec.ReadToken()\n\t\t\t\tif err != nil {\n\t\t\t\t\tif err == io.EOF {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tt.Skipf(\"Decoder.ReadToken error: %v\", err)\n\t\t\t\t}\n\t\t\t\ttokVals = append(tokVals, tok.Clone())\n\t\t\t} else {\n\t\t\t\tval, err := dec.ReadValue()\n\t\t\t\tif err != nil {\n\t\t\t\t\texpectError := dec.PeekKind() == '}' || dec.PeekKind() == ']'\n\t\t\t\t\tif expectError && errors.As(err, new(*SyntacticError)) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tif err == io.EOF {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tt.Skipf(\"Decoder.ReadValue error: %v\", err)\n\t\t\t\t}\n\t\t\t\ttokVals = append(tokVals, append(zeroValue, val...))\n\t\t\t}\n\t\t}\n\n\t\t// Write a sequence of tokens or values. Fail the test for any errors\n\t\t// since the previous stage guarantees that the input is valid.\n\t\tdst := new(bytes.Buffer)\n\t\tenc := NewEncoder(dst)\n\t\tfor _, tokVal := range tokVals {\n\t\t\tswitch tokVal := tokVal.(type) {\n\t\t\tcase Token:\n\t\t\t\tif err := enc.WriteToken(tokVal); err != nil {\n\t\t\t\t\tt.Fatalf(\"Encoder.WriteToken error: %v\", err)\n\t\t\t\t}\n\t\t\tcase RawValue:\n\t\t\t\tif err := enc.WriteValue(tokVal); err != nil {\n\t\t\t\t\tt.Fatalf(\"Encoder.WriteValue error: %v\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Encoded output and original input must decode to the same thing.\n\t\tvar got, want []Token\n\t\tfor dec := NewDecoder(bytes.NewReader(b)); dec.PeekKind() > 0; {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Decoder.ReadToken error: %v\", err)\n\t\t\t}\n\t\t\tgot = append(got, tok.Clone())\n\t\t}\n\t\tfor dec := NewDecoder(dst); dec.PeekKind() > 0; {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"Decoder.ReadToken error: %v\", err)\n\t\t\t}\n\t\t\twant = append(want, tok.Clone())\n\t\t}\n\t\tif !equalTokens(got, want) {\n\t\t\tt.Fatalf(\"mismatching output:\\ngot  %v\\nwant %v\", got, want)\n\t\t}\n\t})\n}\n\nfunc FuzzResumableDecoder(f *testing.F) {\n\tfor _, td := range resumableDecoderTestdata {\n\t\tf.Add(int64(0), []byte(td))\n\t}\n\n\tf.Fuzz(func(t *testing.T, seed int64, b []byte) {\n\t\trn := rand.NewSource(seed)\n\n\t\t// Regardless of how many bytes the underlying io.Reader produces,\n\t\t// the provided tokens, values, and errors should always be identical.\n\t\tt.Run(\"ReadToken\", func(t *testing.T) {\n\t\t\tdecGot := NewDecoder(&FaultyBuffer{B: b, MaxBytes: 8, Rand: rn})\n\t\t\tdecWant := NewDecoder(bytes.NewReader(b))\n\t\t\tgotTok, gotErr := decGot.ReadToken()\n\t\t\twantTok, wantErr := decWant.ReadToken()\n\t\t\tif gotTok.String() != wantTok.String() || !reflect.DeepEqual(gotErr, wantErr) {\n\t\t\t\tt.Errorf(\"Decoder.ReadToken = (%v, %v), want (%v, %v)\", gotTok, gotErr, wantTok, wantErr)\n\t\t\t}\n\t\t})\n\t\tt.Run(\"ReadValue\", func(t *testing.T) {\n\t\t\tdecGot := NewDecoder(&FaultyBuffer{B: b, MaxBytes: 8, Rand: rn})\n\t\t\tdecWant := NewDecoder(bytes.NewReader(b))\n\t\t\tgotVal, gotErr := decGot.ReadValue()\n\t\t\twantVal, wantErr := decWant.ReadValue()\n\t\t\tif !reflect.DeepEqual(gotVal, wantVal) || !reflect.DeepEqual(gotErr, wantErr) {\n\t\t\t\tt.Errorf(\"Decoder.ReadValue = (%s, %v), want (%s, %v)\", gotVal, gotErr, wantVal, wantErr)\n\t\t\t}\n\t\t})\n\t})\n}\n\nfunc FuzzRawValueReformat(f *testing.F) {\n\tfor _, td := range rawValueTestdata {\n\t\tf.Add([]byte(td.in))\n\t}\n\n\t// isValid reports whether b is valid according to the specified options.\n\tisValid := func(opts DecodeOptions, b []byte) bool {\n\t\td := opts.NewDecoder(bytes.NewReader(b))\n\t\t_, errVal := d.ReadValue()\n\t\t_, errEOF := d.ReadToken()\n\t\treturn errVal == nil && errEOF == io.EOF\n\t}\n\n\t// stripWhitespace removes all JSON whitespace characters from the input.\n\tstripWhitespace := func(in []byte) (out []byte) {\n\t\tout = make([]byte, 0, len(in))\n\t\tfor _, c := range in {\n\t\t\tswitch c {\n\t\t\tcase ' ', '\\n', '\\r', '\\t':\n\t\t\tdefault:\n\t\t\t\tout = append(out, c)\n\t\t\t}\n\t\t}\n\t\treturn out\n\t}\n\n\t// unmarshal unmarshals the input into an any.\n\tunmarshal := func(in []byte) (out any) {\n\t\tif err := Unmarshal(in, &out); err != nil {\n\t\t\treturn nil // ignore invalid input\n\t\t}\n\t\treturn out\n\t}\n\n\tf.Fuzz(func(t *testing.T, b []byte) {\n\t\tvalidRFC7159 := isValid(DecodeOptions{AllowInvalidUTF8: true, AllowDuplicateNames: true}, b)\n\t\tvalidRFC8259 := isValid(DecodeOptions{AllowInvalidUTF8: false, AllowDuplicateNames: true}, b)\n\t\tvalidRFC7493 := isValid(DecodeOptions{AllowInvalidUTF8: false, AllowDuplicateNames: false}, b)\n\t\tswitch {\n\t\tcase !validRFC7159 && validRFC8259:\n\t\t\tt.Errorf(\"invalid input per RFC 7159 implies invalid per RFC 8259\")\n\t\tcase !validRFC8259 && validRFC7493:\n\t\t\tt.Errorf(\"invalid input per RFC 8259 implies invalid per RFC 7493\")\n\t\t}\n\n\t\tgotValid := RawValue(b).IsValid()\n\t\twantValid := validRFC7493\n\t\tif gotValid != wantValid {\n\t\t\tt.Errorf(\"RawValue.IsValid = %v, want %v\", gotValid, wantValid)\n\t\t}\n\n\t\tgotCompacted := RawValue(string(b))\n\t\tgotCompactOk := gotCompacted.Compact() == nil\n\t\twantCompactOk := validRFC7159\n\t\tif !bytes.Equal(stripWhitespace(gotCompacted), stripWhitespace(b)) {\n\t\t\tt.Errorf(\"stripWhitespace(RawValue.Compact) = %s, want %s\", stripWhitespace(gotCompacted), stripWhitespace(b))\n\t\t}\n\t\tif !reflect.DeepEqual(unmarshal(gotCompacted), unmarshal(b)) {\n\t\t\tt.Errorf(\"unmarshal(RawValue.Compact) = %s, want %s\", unmarshal(gotCompacted), unmarshal(b))\n\t\t}\n\t\tif gotCompactOk != wantCompactOk {\n\t\t\tt.Errorf(\"RawValue.Compact success mismatch: got %v, want %v\", gotCompactOk, wantCompactOk)\n\t\t}\n\n\t\tgotIndented := RawValue(string(b))\n\t\tgotIndentOk := gotIndented.Indent(\"\", \" \") == nil\n\t\twantIndentOk := validRFC7159\n\t\tif !bytes.Equal(stripWhitespace(gotIndented), stripWhitespace(b)) {\n\t\t\tt.Errorf(\"stripWhitespace(RawValue.Indent) = %s, want %s\", stripWhitespace(gotIndented), stripWhitespace(b))\n\t\t}\n\t\tif !reflect.DeepEqual(unmarshal(gotIndented), unmarshal(b)) {\n\t\t\tt.Errorf(\"unmarshal(RawValue.Indent) = %s, want %s\", unmarshal(gotIndented), unmarshal(b))\n\t\t}\n\t\tif gotIndentOk != wantIndentOk {\n\t\t\tt.Errorf(\"RawValue.Indent success mismatch: got %v, want %v\", gotIndentOk, wantIndentOk)\n\t\t}\n\n\t\tgotCanonicalized := RawValue(string(b))\n\t\tgotCanonicalizeOk := gotCanonicalized.Canonicalize() == nil\n\t\twantCanonicalizeOk := validRFC7493\n\t\tif !reflect.DeepEqual(unmarshal(gotCanonicalized), unmarshal(b)) {\n\t\t\tt.Errorf(\"unmarshal(RawValue.Canonicalize) = %s, want %s\", unmarshal(gotCanonicalized), unmarshal(b))\n\t\t}\n\t\tif gotCanonicalizeOk != wantCanonicalizeOk {\n\t\t\tt.Errorf(\"RawValue.Canonicalize success mismatch: got %v, want %v\", gotCanonicalizeOk, wantCanonicalizeOk)\n\t\t}\n\t})\n}\n\nfunc FuzzEqualFold(f *testing.F) {\n\tfor _, tt := range equalFoldTestdata {\n\t\tf.Add([]byte(tt.in1), []byte(tt.in2))\n\t}\n\n\tequalFoldSimple := func(x, y []byte) bool {\n\t\tstrip := func(b []byte) []byte {\n\t\t\treturn bytes.Map(func(r rune) rune {\n\t\t\t\tif r == '_' || r == '-' {\n\t\t\t\t\treturn -1 // ignore underscores and dashes\n\t\t\t\t}\n\t\t\t\treturn r\n\t\t\t}, b)\n\t\t}\n\t\treturn bytes.EqualFold(strip(x), strip(y))\n\t}\n\n\tf.Fuzz(func(t *testing.T, s1, s2 []byte) {\n\t\t// Compare the optimized and simplified implementations.\n\t\tgot := equalFold(s1, s2)\n\t\twant := equalFoldSimple(s1, s2)\n\t\tif got != want {\n\t\t\tt.Errorf(\"equalFold(%q, %q) = %v, want %v\", s1, s2, got, want)\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/inline_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"os\"\n\t\"os/exec\"\n\t\"strings\"\n\t\"testing\"\n)\n\n// Whether a function is inlineable is dependent on the Go compiler version\n// and also relies on the presence of the Go toolchain itself being installed.\n// This test is disabled by default and explicitly enabled with an\n// environment variable that is specified in our integration tests,\n// which have fine control over exactly which Go version is being tested.\nvar testInline = os.Getenv(\"TEST_INLINE\") != \"\"\n\nfunc TestInline(t *testing.T) {\n\tif !testInline {\n\t\tt.SkipNow()\n\t}\n\n\tfncs := func() map[string]bool {\n\t\tm := make(map[string]bool)\n\t\tfor _, s := range []string{\n\t\t\t\"Encoder.needFlush\",\n\t\t\t\"Decoder.ReadValue\", // thin wrapper over Decoder.readValue\n\t\t\t\"decodeBuffer.needMore\",\n\t\t\t\"consumeWhitespace\",\n\t\t\t\"consumeNull\",\n\t\t\t\"consumeFalse\",\n\t\t\t\"consumeTrue\",\n\t\t\t\"consumeSimpleString\",\n\t\t\t\"consumeString\", // thin wrapper over consumeStringResumable\n\t\t\t\"consumeSimpleNumber\",\n\t\t\t\"consumeNumber\",         // thin wrapper over consumeNumberResumable\n\t\t\t\"unescapeStringMayCopy\", // thin wrapper over unescapeString\n\t\t\t\"hasSuffixByte\",\n\t\t\t\"trimSuffixByte\",\n\t\t\t\"trimSuffixString\",\n\t\t\t\"trimSuffixWhitespace\",\n\t\t\t\"stateMachine.appendLiteral\",\n\t\t\t\"stateMachine.appendNumber\",\n\t\t\t\"stateMachine.appendString\",\n\t\t\t\"stateMachine.depth\",\n\t\t\t\"stateMachine.reset\",\n\t\t\t\"stateMachine.mayAppendDelim\",\n\t\t\t\"stateMachine.needDelim\",\n\t\t\t\"stateMachine.popArray\",\n\t\t\t\"stateMachine.popObject\",\n\t\t\t\"stateMachine.pushArray\",\n\t\t\t\"stateMachine.pushObject\",\n\t\t\t\"stateEntry.increment\",\n\t\t\t\"stateEntry.decrement\",\n\t\t\t\"stateEntry.isArray\",\n\t\t\t\"stateEntry.isObject\",\n\t\t\t\"stateEntry.length\",\n\t\t\t\"stateEntry.needImplicitColon\",\n\t\t\t\"stateEntry.needImplicitComma\",\n\t\t\t\"stateEntry.needObjectName\",\n\t\t\t\"stateEntry.needObjectValue\",\n\t\t\t\"objectNameStack.reset\",\n\t\t\t\"objectNameStack.length\",\n\t\t\t\"objectNameStack.getUnquoted\",\n\t\t\t\"objectNameStack.push\",\n\t\t\t\"objectNameStack.replaceLastQuotedOffset\",\n\t\t\t\"objectNameStack.replaceLastUnquotedName\",\n\t\t\t\"objectNameStack.pop\",\n\t\t\t\"objectNameStack.ensureCopiedBuffer\",\n\t\t\t\"objectNamespace.insertQuoted\",   // thin wrapper over objectNamespace.insert\n\t\t\t\"objectNamespace.insertUnquoted\", // thin wrapper over objectNamespace.insert\n\t\t\t\"Token.String\",                   // thin wrapper over Token.string\n\t\t\t\"foldName\",                       // thin wrapper over appendFoldedName\n\t\t\t\"hash64\",\n\t\t} {\n\t\t\tm[s] = true\n\t\t}\n\t\treturn m\n\t}()\n\n\tcmd := exec.Command(\"go\", \"build\", \"-gcflags=-m\")\n\tb, err := cmd.CombinedOutput()\n\tif err != nil {\n\t\tt.Fatalf(\"exec.Command error: %v\\n\\n%s\", err, b)\n\t}\n\tfor _, line := range strings.Split(string(b), \"\\n\") {\n\t\tconst phrase = \": can inline \"\n\t\tif i := strings.Index(line, phrase); i >= 0 {\n\t\t\tfnc := line[i+len(phrase):]\n\t\t\tfnc = strings.ReplaceAll(fnc, \"(\", \"\")\n\t\t\tfnc = strings.ReplaceAll(fnc, \"*\", \"\")\n\t\t\tfnc = strings.ReplaceAll(fnc, \")\", \"\")\n\t\t\tdelete(fncs, fnc)\n\t\t}\n\t}\n\tfor fnc := range fncs {\n\t\tt.Errorf(\"%v is not inlineable, expected it to be\", fnc)\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/intern.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"encoding/binary\"\n\t\"math/bits\"\n)\n\n// stringCache is a cache for strings converted from a []byte.\ntype stringCache [256]string // 256*unsafe.Sizeof(string(\"\")) => 4KiB\n\n// make returns the string form of b.\n// It returns a pre-allocated string from c if present, otherwise\n// it allocates a new string, inserts it into the cache, and returns it.\nfunc (c *stringCache) make(b []byte) string {\n\tconst (\n\t\tminCachedLen = 2   // single byte strings are already interned by the runtime\n\t\tmaxCachedLen = 256 // large enough for UUIDs, IPv6 addresses, SHA-256 checksums, etc.\n\t)\n\tif c == nil || len(b) < minCachedLen || len(b) > maxCachedLen {\n\t\treturn string(b)\n\t}\n\n\t// Compute a hash from the fixed-width prefix and suffix of the string.\n\t// This ensures hashing a string is a constant time operation.\n\tvar h uint32\n\tswitch {\n\tcase len(b) >= 8:\n\t\tlo := binary.LittleEndian.Uint64(b[:8])\n\t\thi := binary.LittleEndian.Uint64(b[len(b)-8:])\n\t\th = hash64(uint32(lo), uint32(lo>>32)) ^ hash64(uint32(hi), uint32(hi>>32))\n\tcase len(b) >= 4:\n\t\tlo := binary.LittleEndian.Uint32(b[:4])\n\t\thi := binary.LittleEndian.Uint32(b[len(b)-4:])\n\t\th = hash64(lo, hi)\n\tcase len(b) >= 2:\n\t\tlo := binary.LittleEndian.Uint16(b[:2])\n\t\thi := binary.LittleEndian.Uint16(b[len(b)-2:])\n\t\th = hash64(uint32(lo), uint32(hi))\n\t}\n\n\t// Check the cache for the string.\n\ti := h % uint32(len(*c))\n\tif s := (*c)[i]; s == string(b) {\n\t\treturn s\n\t}\n\ts := string(b)\n\t(*c)[i] = s\n\treturn s\n}\n\n// hash64 returns the hash of two uint32s as a single uint32.\nfunc hash64(lo, hi uint32) uint32 {\n\t// If avalanche=true, this is identical to XXH32 hash on a 8B string:\n\t//\tvar b [8]byte\n\t//\tbinary.LittleEndian.PutUint32(b[:4], lo)\n\t//\tbinary.LittleEndian.PutUint32(b[4:], hi)\n\t//\treturn xxhash.Sum32(b[:])\n\tconst (\n\t\tprime1 = 0x9e3779b1\n\t\tprime2 = 0x85ebca77\n\t\tprime3 = 0xc2b2ae3d\n\t\tprime4 = 0x27d4eb2f\n\t\tprime5 = 0x165667b1\n\t)\n\th := prime5 + uint32(8)\n\th += lo * prime3\n\th = bits.RotateLeft32(h, 17) * prime4\n\th += hi * prime3\n\th = bits.RotateLeft32(h, 17) * prime4\n\t// Skip final mix (avalanche) step of XXH32 for performance reasons.\n\t// Empirical testing shows that the improvements in unbiased distribution\n\t// does not outweigh the extra cost in computational complexity.\n\tconst avalanche = false\n\tif avalanche {\n\t\th ^= h >> 15\n\t\th *= prime2\n\t\th ^= h >> 13\n\t\th *= prime3\n\t\th ^= h >> 16\n\t}\n\treturn h\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/intern_test.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"testing\"\n)\n\nfunc TestIntern(t *testing.T) {\n\tvar sc stringCache\n\tconst alphabet = \"abcdefghijklmnopqrstuvwxyz\"\n\tfor i := 0; i <= len(alphabet); i++ {\n\t\twant := alphabet[i:]\n\t\tif got := sc.make([]byte(want)); got != want {\n\t\t\tt.Fatalf(\"make = %v, want %v\", got, want)\n\t\t}\n\t}\n\tfor i := 0; i < 1000; i++ {\n\t\twant := fmt.Sprintf(\"test%b\", i)\n\t\tif got := sc.make([]byte(want)); got != want {\n\t\t\tt.Fatalf(\"make = %v, want %v\", got, want)\n\t\t}\n\t}\n}\n\nvar sink string\n\nfunc BenchmarkIntern(b *testing.B) {\n\tdatasetStrings := func(name string) (out [][]byte) {\n\t\tvar data []byte\n\t\tfor _, ts := range jsonTestdata() {\n\t\t\tif ts.name == name {\n\t\t\t\tdata = ts.data\n\t\t\t}\n\t\t}\n\t\tdec := NewDecoder(bytes.NewReader(data))\n\t\tfor {\n\t\t\tk, n := dec.StackIndex(dec.StackDepth())\n\t\t\tisObjectName := k == '{' && n%2 == 0\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\tif err == io.EOF {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tb.Fatalf(\"ReadToken error: %v\", err)\n\t\t\t}\n\t\t\tif tok.Kind() == '\"' && !isObjectName {\n\t\t\t\tout = append(out, []byte(tok.String()))\n\t\t\t}\n\t\t}\n\t\treturn out\n\t}\n\n\ttests := []struct {\n\t\tlabel string\n\t\tdata  [][]byte\n\t}{\n\t\t// Best is the best case scenario where every string is the same.\n\t\t{\"Best\", func() (out [][]byte) {\n\t\t\tfor i := 0; i < 1000; i++ {\n\t\t\t\tout = append(out, []byte(\"hello, world!\"))\n\t\t\t}\n\t\t\treturn out\n\t\t}()},\n\n\t\t// Repeat is a sequence of the same set of names repeated.\n\t\t// This commonly occurs when unmarshaling a JSON array of JSON objects,\n\t\t// where the set of all names is usually small.\n\t\t{\"Repeat\", func() (out [][]byte) {\n\t\t\tfor i := 0; i < 100; i++ {\n\t\t\t\tfor _, s := range []string{\"first_name\", \"last_name\", \"age\", \"address\", \"street_address\", \"city\", \"state\", \"postal_code\", \"phone_numbers\", \"gender\"} {\n\t\t\t\t\tout = append(out, []byte(s))\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn out\n\t\t}()},\n\n\t\t// Synthea is all string values encountered in the Synthea FHIR dataset.\n\t\t{\"Synthea\", datasetStrings(\"SyntheaFhir\")},\n\n\t\t// Twitter is all string values encountered in the Twitter dataset.\n\t\t{\"Twitter\", datasetStrings(\"TwitterStatus\")},\n\n\t\t// Worst is the worst case scenario where every string is different\n\t\t// resulting in wasted time looking up a string that will never match.\n\t\t{\"Worst\", func() (out [][]byte) {\n\t\t\tfor i := 0; i < 1000; i++ {\n\t\t\t\tout = append(out, []byte(fmt.Sprintf(\"%016x\", i)))\n\t\t\t}\n\t\t\treturn out\n\t\t}()},\n\t}\n\n\tfor _, tt := range tests {\n\t\tb.Run(tt.label, func(b *testing.B) {\n\t\t\t// Alloc simply heap allocates each string.\n\t\t\t// This provides an upper bound on the number of allocations.\n\t\t\tb.Run(\"Alloc\", func(b *testing.B) {\n\t\t\t\tb.ReportAllocs()\n\t\t\t\tfor i := 0; i < b.N; i++ {\n\t\t\t\t\tfor _, b := range tt.data {\n\t\t\t\t\t\tsink = string(b)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Cache interns strings using stringCache.\n\t\t\t// We want to optimize for having a faster runtime than Alloc,\n\t\t\t// and also keeping the number of allocations closer to GoMap.\n\t\t\tb.Run(\"Cache\", func(b *testing.B) {\n\t\t\t\tb.ReportAllocs()\n\t\t\t\tfor i := 0; i < b.N; i++ {\n\t\t\t\t\tvar sc stringCache\n\t\t\t\t\tfor _, b := range tt.data {\n\t\t\t\t\t\tsink = sc.make(b)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\t// GoMap interns all strings in a simple Go map.\n\t\t\t// This provides a lower bound on the number of allocations.\n\t\t\tb.Run(\"GoMap\", func(b *testing.B) {\n\t\t\t\tb.ReportAllocs()\n\t\t\t\tfor i := 0; i < b.N; i++ {\n\t\t\t\t\tm := make(map[string]string)\n\t\t\t\t\tfor _, b := range tt.data {\n\t\t\t\t\t\ts, ok := m[string(b)]\n\t\t\t\t\t\tif !ok {\n\t\t\t\t\t\t\ts = string(b)\n\t\t\t\t\t\t\tm[s] = s\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsink = s\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/pools.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"math/bits\"\n\t\"sort\"\n\t\"sync\"\n)\n\n// TODO(https://go.dev/issue/47657): Use sync.PoolOf.\n\nvar (\n\t// This owns the internal buffer since there is no io.Writer to output to.\n\t// Since the buffer can get arbitrarily large in normal usage,\n\t// there is statistical tracking logic to determine whether to recycle\n\t// the internal buffer or not based on a history of utilization.\n\tbufferedEncoderPool = &sync.Pool{New: func() any { return new(Encoder) }}\n\n\t// This owns the internal buffer, but it is only used to temporarily store\n\t// buffered JSON before flushing it to the underlying io.Writer.\n\t// In a sufficiently efficient streaming mode, we do not expect the buffer\n\t// to grow arbitrarily large. Thus, we avoid recycling large buffers.\n\tstreamingEncoderPool = &sync.Pool{New: func() any { return new(Encoder) }}\n\n\t// This does not own the internal buffer since\n\t// it is taken directly from the provided bytes.Buffer.\n\tbytesBufferEncoderPool = &sync.Pool{New: func() any { return new(Encoder) }}\n)\n\n// bufferStatistics is statistics to track buffer utilization.\n// It is used to determine whether to recycle a buffer or not\n// to avoid https://go.dev/issue/23199.\ntype bufferStatistics struct {\n\tstrikes int // number of times the buffer was under-utilized\n\tprevLen int // length of previous buffer\n}\n\nfunc getBufferedEncoder(o EncodeOptions) *Encoder {\n\te := bufferedEncoderPool.Get().(*Encoder)\n\tif e.buf == nil {\n\t\t// Round up to nearest 2ⁿ to make best use of malloc size classes.\n\t\t// See runtime/sizeclasses.go on Go1.15.\n\t\t// Logical OR with 63 to ensure 64 as the minimum buffer size.\n\t\tn := 1 << bits.Len(uint(e.bufStats.prevLen|63))\n\t\te.buf = make([]byte, 0, n)\n\t}\n\te.reset(e.buf[:0], nil, o)\n\treturn e\n}\nfunc putBufferedEncoder(e *Encoder) {\n\t// Recycle large buffers only if sufficiently utilized.\n\t// If a buffer is under-utilized enough times sequentially,\n\t// then it is discarded, ensuring that a single large buffer\n\t// won't be kept alive by a continuous stream of small usages.\n\t//\n\t// The worst case utilization is computed as:\n\t//\tMIN_UTILIZATION_THRESHOLD / (1 + MAX_NUM_STRIKES)\n\t//\n\t// For the constants chosen below, this is (25%)/(1+4) ⇒ 5%.\n\t// This may seem low, but it ensures a lower bound on\n\t// the absolute worst-case utilization. Without this check,\n\t// this would be theoretically 0%, which is infinitely worse.\n\t//\n\t// See https://go.dev/issue/27735.\n\tswitch {\n\tcase cap(e.buf) <= 4<<10: // always recycle buffers smaller than 4KiB\n\t\te.bufStats.strikes = 0\n\tcase cap(e.buf)/4 <= len(e.buf): // at least 25% utilization\n\t\te.bufStats.strikes = 0\n\tcase e.bufStats.strikes < 4: // at most 4 strikes\n\t\te.bufStats.strikes++\n\tdefault: // discard the buffer; too large and too often under-utilized\n\t\te.bufStats.strikes = 0\n\t\te.bufStats.prevLen = len(e.buf) // heuristic for size to allocate next time\n\t\te.buf = nil\n\t}\n\tbufferedEncoderPool.Put(e)\n}\n\nfunc getStreamingEncoder(w io.Writer, o EncodeOptions) *Encoder {\n\tif _, ok := w.(*bytes.Buffer); ok {\n\t\te := bytesBufferEncoderPool.Get().(*Encoder)\n\t\te.reset(nil, w, o) // buffer taken from bytes.Buffer\n\t\treturn e\n\t} else {\n\t\te := streamingEncoderPool.Get().(*Encoder)\n\t\te.reset(e.buf[:0], w, o) // preserve existing buffer\n\t\treturn e\n\t}\n}\nfunc putStreamingEncoder(e *Encoder) {\n\tif _, ok := e.wr.(*bytes.Buffer); ok {\n\t\tbytesBufferEncoderPool.Put(e)\n\t} else {\n\t\tif cap(e.buf) > 64<<10 {\n\t\t\te.buf = nil // avoid pinning arbitrarily large amounts of memory\n\t\t}\n\t\tstreamingEncoderPool.Put(e)\n\t}\n}\n\nvar (\n\t// This does not own the internal buffer since it is externally provided.\n\tbufferedDecoderPool = &sync.Pool{New: func() any { return new(Decoder) }}\n\n\t// This owns the internal buffer, but it is only used to temporarily store\n\t// buffered JSON fetched from the underlying io.Reader.\n\t// In a sufficiently efficient streaming mode, we do not expect the buffer\n\t// to grow arbitrarily large. Thus, we avoid recycling large buffers.\n\tstreamingDecoderPool = &sync.Pool{New: func() any { return new(Decoder) }}\n\n\t// This does not own the internal buffer since\n\t// it is taken directly from the provided bytes.Buffer.\n\tbytesBufferDecoderPool = bufferedDecoderPool\n)\n\nfunc getBufferedDecoder(b []byte, o DecodeOptions) *Decoder {\n\td := bufferedDecoderPool.Get().(*Decoder)\n\td.reset(b, nil, o)\n\treturn d\n}\nfunc putBufferedDecoder(d *Decoder) {\n\tbufferedDecoderPool.Put(d)\n}\n\nfunc getStreamingDecoder(r io.Reader, o DecodeOptions) *Decoder {\n\tif _, ok := r.(*bytes.Buffer); ok {\n\t\td := bytesBufferDecoderPool.Get().(*Decoder)\n\t\td.reset(nil, r, o) // buffer taken from bytes.Buffer\n\t\treturn d\n\t} else {\n\t\td := streamingDecoderPool.Get().(*Decoder)\n\t\td.reset(d.buf[:0], r, o) // preserve existing buffer\n\t\treturn d\n\t}\n}\nfunc putStreamingDecoder(d *Decoder) {\n\tif _, ok := d.rd.(*bytes.Buffer); ok {\n\t\tbytesBufferDecoderPool.Put(d)\n\t} else {\n\t\tif cap(d.buf) > 64<<10 {\n\t\t\td.buf = nil // avoid pinning arbitrarily large amounts of memory\n\t\t}\n\t\tstreamingDecoderPool.Put(d)\n\t}\n}\n\nvar stringsPools = &sync.Pool{New: func() any { return new(stringSlice) }}\n\ntype stringSlice []string\n\n// getStrings returns a non-nil pointer to a slice with length n.\nfunc getStrings(n int) *stringSlice {\n\ts := stringsPools.Get().(*stringSlice)\n\tif cap(*s) < n {\n\t\t*s = make([]string, n)\n\t}\n\t*s = (*s)[:n]\n\treturn s\n}\n\nfunc putStrings(s *stringSlice) {\n\tif cap(*s) > 1<<10 {\n\t\t*s = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n\tstringsPools.Put(s)\n}\n\n// Sort sorts the string slice according to RFC 8785, section 3.2.3.\nfunc (ss *stringSlice) Sort() {\n\t// TODO(https://go.dev/issue/47619): Use slices.SortFunc instead.\n\tsort.Sort(ss)\n}\n\nfunc (ss *stringSlice) Len() int           { return len(*ss) }\nfunc (ss *stringSlice) Less(i, j int) bool { return lessUTF16((*ss)[i], (*ss)[j]) }\nfunc (ss *stringSlice) Swap(i, j int)      { (*ss)[i], (*ss)[j] = (*ss)[j], (*ss)[i] }\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/state.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"math\"\n\t\"strconv\"\n)\n\nvar (\n\terrMissingName   = &SyntacticError{str: \"missing string for object name\"}\n\terrMissingColon  = &SyntacticError{str: \"missing character ':' after object name\"}\n\terrMissingValue  = &SyntacticError{str: \"missing value after object name\"}\n\terrMissingComma  = &SyntacticError{str: \"missing character ',' after object or array value\"}\n\terrMismatchDelim = &SyntacticError{str: \"mismatching structural token for object or array\"}\n)\n\nconst errInvalidNamespace = jsonError(\"object namespace is in an invalid state\")\n\ntype state struct {\n\t// tokens validates whether the next token kind is valid.\n\ttokens stateMachine\n\n\t// names is a stack of object names.\n\t// Not used if AllowDuplicateNames is true.\n\tnames objectNameStack\n\n\t// namespaces is a stack of object namespaces.\n\t// For performance reasons, Encoder or Decoder may not update this\n\t// if Marshal or Unmarshal is able to track names in a more efficient way.\n\t// See makeMapArshaler and makeStructArshaler.\n\t// Not used if AllowDuplicateNames is true.\n\tnamespaces objectNamespaceStack\n}\n\nfunc (s *state) reset() {\n\ts.tokens.reset()\n\ts.names.reset()\n\ts.namespaces.reset()\n}\n\n// appendStackPointer appends a JSON Pointer (RFC 6901) to the current value.\n// The returned pointer is only accurate if s.names is populated,\n// otherwise it uses the numeric index as the object member name.\n//\n// Invariant: Must call s.names.copyQuotedBuffer beforehand.\nfunc (s state) appendStackPointer(b []byte) []byte {\n\tvar objectDepth int\n\tfor i := 1; i < s.tokens.depth(); i++ {\n\t\te := s.tokens.index(i)\n\t\tif e.length() == 0 {\n\t\t\tbreak // empty object or array\n\t\t}\n\t\tb = append(b, '/')\n\t\tswitch {\n\t\tcase e.isObject():\n\t\t\tif objectDepth < s.names.length() {\n\t\t\t\tfor _, c := range s.names.getUnquoted(objectDepth) {\n\t\t\t\t\t// Per RFC 6901, section 3, escape '~' and '/' characters.\n\t\t\t\t\tswitch c {\n\t\t\t\t\tcase '~':\n\t\t\t\t\t\tb = append(b, \"~0\"...)\n\t\t\t\t\tcase '/':\n\t\t\t\t\t\tb = append(b, \"~1\"...)\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tb = append(b, c)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Since the names stack is unpopulated, the name is unknown.\n\t\t\t\t// As a best-effort replacement, use the numeric member index.\n\t\t\t\t// While inaccurate, it produces a syntactically valid pointer.\n\t\t\t\tb = strconv.AppendUint(b, uint64((e.length()-1)/2), 10)\n\t\t\t}\n\t\t\tobjectDepth++\n\t\tcase e.isArray():\n\t\t\tb = strconv.AppendUint(b, uint64(e.length()-1), 10)\n\t\t}\n\t}\n\treturn b\n}\n\n// stateMachine is a push-down automaton that validates whether\n// a sequence of tokens is valid or not according to the JSON grammar.\n// It is useful for both encoding and decoding.\n//\n// It is a stack where each entry represents a nested JSON object or array.\n// The stack has a minimum depth of 1 where the first level is a\n// virtual JSON array to handle a stream of top-level JSON values.\n// The top-level virtual JSON array is special in that it doesn't require commas\n// between each JSON value.\n//\n// For performance, most methods are carefully written to be inlineable.\n// The zero value is a valid state machine ready for use.\ntype stateMachine struct {\n\tstack []stateEntry\n\tlast  stateEntry\n}\n\n// reset resets the state machine.\n// The machine always starts with a minimum depth of 1.\nfunc (m *stateMachine) reset() {\n\tm.stack = m.stack[:0]\n\tif cap(m.stack) > 1<<10 {\n\t\tm.stack = nil\n\t}\n\tm.last = stateTypeArray\n}\n\n// depth is the current nested depth of JSON objects and arrays.\n// It is one-indexed (i.e., top-level values have a depth of 1).\nfunc (m stateMachine) depth() int {\n\treturn len(m.stack) + 1\n}\n\n// index returns a reference to the ith entry.\n// It is only valid until the next push method call.\nfunc (m *stateMachine) index(i int) *stateEntry {\n\tif i == len(m.stack) {\n\t\treturn &m.last\n\t}\n\treturn &m.stack[i]\n}\n\n// depthLength reports the current nested depth and\n// the length of the last JSON object or array.\nfunc (m stateMachine) depthLength() (int, int) {\n\treturn m.depth(), m.last.length()\n}\n\n// appendLiteral appends a JSON literal as the next token in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) appendLiteral() error {\n\tswitch {\n\tcase m.last.needObjectName():\n\t\treturn errMissingName\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last.increment()\n\t\treturn nil\n\t}\n}\n\n// appendString appends a JSON string as the next token in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) appendString() error {\n\tswitch {\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last.increment()\n\t\treturn nil\n\t}\n}\n\n// appendNumber appends a JSON number as the next token in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) appendNumber() error {\n\treturn m.appendLiteral()\n}\n\n// pushObject appends a JSON start object token as next in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) pushObject() error {\n\tswitch {\n\tcase m.last.needObjectName():\n\t\treturn errMissingName\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last.increment()\n\t\tm.stack = append(m.stack, m.last)\n\t\tm.last = stateTypeObject\n\t\treturn nil\n\t}\n}\n\n// popObject appends a JSON end object token as next in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) popObject() error {\n\tswitch {\n\tcase !m.last.isObject():\n\t\treturn errMismatchDelim\n\tcase m.last.needObjectValue():\n\t\treturn errMissingValue\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last = m.stack[len(m.stack)-1]\n\t\tm.stack = m.stack[:len(m.stack)-1]\n\t\treturn nil\n\t}\n}\n\n// pushArray appends a JSON start array token as next in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) pushArray() error {\n\tswitch {\n\tcase m.last.needObjectName():\n\t\treturn errMissingName\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last.increment()\n\t\tm.stack = append(m.stack, m.last)\n\t\tm.last = stateTypeArray\n\t\treturn nil\n\t}\n}\n\n// popArray appends a JSON end array token as next in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) popArray() error {\n\tswitch {\n\tcase !m.last.isArray() || len(m.stack) == 0: // forbid popping top-level virtual JSON array\n\t\treturn errMismatchDelim\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last = m.stack[len(m.stack)-1]\n\t\tm.stack = m.stack[:len(m.stack)-1]\n\t\treturn nil\n\t}\n}\n\n// needIndent reports whether indent whitespace should be injected.\n// A zero value means that no whitespace should be injected.\n// A positive value means '\\n', indentPrefix, and (n-1) copies of indentBody\n// should be appended to the output immediately before the next token.\nfunc (m stateMachine) needIndent(next Kind) (n int) {\n\twillEnd := next == '}' || next == ']'\n\tswitch {\n\tcase m.depth() == 1:\n\t\treturn 0 // top-level values are never indented\n\tcase m.last.length() == 0 && willEnd:\n\t\treturn 0 // an empty object or array is never indented\n\tcase m.last.length() == 0 || m.last.needImplicitComma(next):\n\t\treturn m.depth()\n\tcase willEnd:\n\t\treturn m.depth() - 1\n\tdefault:\n\t\treturn 0\n\t}\n}\n\n// mayAppendDelim appends a colon or comma that may precede the next token.\nfunc (m stateMachine) mayAppendDelim(b []byte, next Kind) []byte {\n\tswitch {\n\tcase m.last.needImplicitColon():\n\t\treturn append(b, ':')\n\tcase m.last.needImplicitComma(next) && len(m.stack) != 0: // comma not needed for top-level values\n\t\treturn append(b, ',')\n\tdefault:\n\t\treturn b\n\t}\n}\n\n// needDelim reports whether a colon or comma token should be implicitly emitted\n// before the next token of the specified kind.\n// A zero value means no delimiter should be emitted.\nfunc (m stateMachine) needDelim(next Kind) (delim byte) {\n\tswitch {\n\tcase m.last.needImplicitColon():\n\t\treturn ':'\n\tcase m.last.needImplicitComma(next) && len(m.stack) != 0: // comma not needed for top-level values\n\t\treturn ','\n\tdefault:\n\t\treturn 0\n\t}\n}\n\n// checkDelim reports whether the specified delimiter should be there given\n// the kind of the next token that appears immediately afterwards.\nfunc (m stateMachine) checkDelim(delim byte, next Kind) error {\n\tswitch needDelim := m.needDelim(next); {\n\tcase needDelim == delim:\n\t\treturn nil\n\tcase needDelim == ':':\n\t\treturn errMissingColon\n\tcase needDelim == ',':\n\t\treturn errMissingComma\n\tdefault:\n\t\treturn newInvalidCharacterError([]byte{delim}, \"before next token\")\n\t}\n}\n\n// invalidateDisabledNamespaces marks all disabled namespaces as invalid.\n//\n// For efficiency, Marshal and Unmarshal may disable namespaces since there are\n// more efficient ways to track duplicate names. However, if an error occurs,\n// the namespaces in Encoder or Decoder will be left in an inconsistent state.\n// Mark the namespaces as invalid so that future method calls on\n// Encoder or Decoder will return an error.\nfunc (m *stateMachine) invalidateDisabledNamespaces() {\n\tfor i := 0; i < m.depth(); i++ {\n\t\te := m.index(i)\n\t\tif !e.isActiveNamespace() {\n\t\t\te.invalidateNamespace()\n\t\t}\n\t}\n}\n\n// stateEntry encodes several artifacts within a single unsigned integer:\n//   - whether this represents a JSON object or array,\n//   - whether this object should check for duplicate names, and\n//   - how many elements are in this JSON object or array.\ntype stateEntry uint64\n\nconst (\n\t// The type mask (1 bit) records whether this is a JSON object or array.\n\tstateTypeMask   stateEntry = 0x8000_0000_0000_0000\n\tstateTypeObject stateEntry = 0x8000_0000_0000_0000\n\tstateTypeArray  stateEntry = 0x0000_0000_0000_0000\n\n\t// The name check mask (2 bit) records whether to update\n\t// the namespaces for the current JSON object and\n\t// whether the namespace is valid.\n\tstateNamespaceMask    stateEntry = 0x6000_0000_0000_0000\n\tstateDisableNamespace stateEntry = 0x4000_0000_0000_0000\n\tstateInvalidNamespace stateEntry = 0x2000_0000_0000_0000\n\n\t// The count mask (61 bits) records the number of elements.\n\tstateCountMask    stateEntry = 0x1fff_ffff_ffff_ffff\n\tstateCountLSBMask stateEntry = 0x0000_0000_0000_0001\n\tstateCountOdd     stateEntry = 0x0000_0000_0000_0001\n\tstateCountEven    stateEntry = 0x0000_0000_0000_0000\n)\n\n// length reports the number of elements in the JSON object or array.\n// Each name and value in an object entry is treated as a separate element.\nfunc (e stateEntry) length() int {\n\treturn int(e & stateCountMask)\n}\n\n// isObject reports whether this is a JSON object.\nfunc (e stateEntry) isObject() bool {\n\treturn e&stateTypeMask == stateTypeObject\n}\n\n// isArray reports whether this is a JSON array.\nfunc (e stateEntry) isArray() bool {\n\treturn e&stateTypeMask == stateTypeArray\n}\n\n// needObjectName reports whether the next token must be a JSON string,\n// which is necessary for JSON object names.\nfunc (e stateEntry) needObjectName() bool {\n\treturn e&(stateTypeMask|stateCountLSBMask) == stateTypeObject|stateCountEven\n}\n\n// needImplicitColon reports whether an colon should occur next,\n// which always occurs after JSON object names.\nfunc (e stateEntry) needImplicitColon() bool {\n\treturn e.needObjectValue()\n}\n\n// needObjectValue reports whether the next token must be a JSON value,\n// which is necessary after every JSON object name.\nfunc (e stateEntry) needObjectValue() bool {\n\treturn e&(stateTypeMask|stateCountLSBMask) == stateTypeObject|stateCountOdd\n}\n\n// needImplicitComma reports whether an comma should occur next,\n// which always occurs after a value in a JSON object or array\n// before the next value (or name).\nfunc (e stateEntry) needImplicitComma(next Kind) bool {\n\treturn !e.needObjectValue() && e.length() > 0 && next != '}' && next != ']'\n}\n\n// increment increments the number of elements for the current object or array.\n// This assumes that overflow won't practically be an issue since\n// 1<<bits.OnesCount(stateCountMask) is sufficiently large.\nfunc (e *stateEntry) increment() {\n\t(*e)++\n}\n\n// decrement decrements the number of elements for the current object or array.\n// It is the callers responsibility to ensure that e.length > 0.\nfunc (e *stateEntry) decrement() {\n\t(*e)--\n}\n\n// disableNamespace disables the JSON object namespace such that the\n// Encoder or Decoder no longer updates the namespace.\nfunc (e *stateEntry) disableNamespace() {\n\t*e |= stateDisableNamespace\n}\n\n// isActiveNamespace reports whether the JSON object namespace is actively\n// being updated and used for duplicate name checks.\nfunc (e stateEntry) isActiveNamespace() bool {\n\treturn e&(stateDisableNamespace) == 0\n}\n\n// invalidateNamespace marks the JSON object namespace as being invalid.\nfunc (e *stateEntry) invalidateNamespace() {\n\t*e |= stateInvalidNamespace\n}\n\n// isValidNamespace reports whether the JSON object namespace is valid.\nfunc (e stateEntry) isValidNamespace() bool {\n\treturn e&(stateInvalidNamespace) == 0\n}\n\n// objectNameStack is a stack of names when descending into a JSON object.\n// In contrast to objectNamespaceStack, this only has to remember a single name\n// per JSON object.\n//\n// This data structure may contain offsets to encodeBuffer or decodeBuffer.\n// It violates clean abstraction of layers, but is significantly more efficient.\n// This ensures that popping and pushing in the common case is a trivial\n// push/pop of an offset integer.\n//\n// The zero value is an empty names stack ready for use.\ntype objectNameStack struct {\n\t// offsets is a stack of offsets for each name.\n\t// A non-negative offset is the ending offset into the local names buffer.\n\t// A negative offset is the bit-wise inverse of a starting offset into\n\t// a remote buffer (e.g., encodeBuffer or decodeBuffer).\n\t// A math.MinInt offset at the end implies that the last object is empty.\n\t// Invariant: Positive offsets always occur before negative offsets.\n\toffsets []int\n\t// unquotedNames is a back-to-back concatenation of names.\n\tunquotedNames []byte\n}\n\nfunc (ns *objectNameStack) reset() {\n\tns.offsets = ns.offsets[:0]\n\tns.unquotedNames = ns.unquotedNames[:0]\n\tif cap(ns.offsets) > 1<<6 {\n\t\tns.offsets = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n\tif cap(ns.unquotedNames) > 1<<10 {\n\t\tns.unquotedNames = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n}\n\nfunc (ns *objectNameStack) length() int {\n\treturn len(ns.offsets)\n}\n\n// getUnquoted retrieves the ith unquoted name in the namespace.\n// It returns an empty string if the last object is empty.\n//\n// Invariant: Must call copyQuotedBuffer beforehand.\nfunc (ns *objectNameStack) getUnquoted(i int) []byte {\n\tns.ensureCopiedBuffer()\n\tif i == 0 {\n\t\treturn ns.unquotedNames[:ns.offsets[0]]\n\t} else {\n\t\treturn ns.unquotedNames[ns.offsets[i-1]:ns.offsets[i-0]]\n\t}\n}\n\n// invalidOffset indicates that the last JSON object currently has no name.\nconst invalidOffset = math.MinInt\n\n// push descends into a nested JSON object.\nfunc (ns *objectNameStack) push() {\n\tns.offsets = append(ns.offsets, invalidOffset)\n}\n\n// replaceLastQuotedOffset replaces the last name with the starting offset\n// to the quoted name in some remote buffer. All offsets provided must be\n// relative to the same buffer until copyQuotedBuffer is called.\nfunc (ns *objectNameStack) replaceLastQuotedOffset(i int) {\n\t// Use bit-wise inversion instead of naive multiplication by -1 to avoid\n\t// ambiguity regarding zero (which is a valid offset into the names field).\n\t// Bit-wise inversion is mathematically equivalent to -i-1,\n\t// such that 0 becomes -1, 1 becomes -2, and so forth.\n\t// This ensures that remote offsets are always negative.\n\tns.offsets[len(ns.offsets)-1] = ^i\n}\n\n// replaceLastUnquotedName replaces the last name with the provided name.\n//\n// Invariant: Must call copyQuotedBuffer beforehand.\nfunc (ns *objectNameStack) replaceLastUnquotedName(s string) {\n\tns.ensureCopiedBuffer()\n\tvar startOffset int\n\tif len(ns.offsets) > 1 {\n\t\tstartOffset = ns.offsets[len(ns.offsets)-2]\n\t}\n\tns.unquotedNames = append(ns.unquotedNames[:startOffset], s...)\n\tns.offsets[len(ns.offsets)-1] = len(ns.unquotedNames)\n}\n\n// clearLast removes any name in the last JSON object.\n// It is semantically equivalent to ns.push followed by ns.pop.\nfunc (ns *objectNameStack) clearLast() {\n\tns.offsets[len(ns.offsets)-1] = invalidOffset\n}\n\n// pop ascends out of a nested JSON object.\nfunc (ns *objectNameStack) pop() {\n\tns.offsets = ns.offsets[:len(ns.offsets)-1]\n}\n\n// copyQuotedBuffer copies names from the remote buffer into the local names\n// buffer so that there are no more offset references into the remote buffer.\n// This allows the remote buffer to change contents without affecting\n// the names that this data structure is trying to remember.\nfunc (ns *objectNameStack) copyQuotedBuffer(b []byte) {\n\t// Find the first negative offset.\n\tvar i int\n\tfor i = len(ns.offsets) - 1; i >= 0 && ns.offsets[i] < 0; i-- {\n\t\tcontinue\n\t}\n\n\t// Copy each name from the remote buffer into the local buffer.\n\tfor i = i + 1; i < len(ns.offsets); i++ {\n\t\tif i == len(ns.offsets)-1 && ns.offsets[i] == invalidOffset {\n\t\t\tif i == 0 {\n\t\t\t\tns.offsets[i] = 0\n\t\t\t} else {\n\t\t\t\tns.offsets[i] = ns.offsets[i-1]\n\t\t\t}\n\t\t\tbreak // last JSON object had a push without any names\n\t\t}\n\n\t\t// As a form of Hyrum proofing, we write an invalid character into the\n\t\t// buffer to make misuse of Decoder.ReadToken more obvious.\n\t\t// We need to undo that mutation here.\n\t\tquotedName := b[^ns.offsets[i]:]\n\t\tif quotedName[0] == invalidateBufferByte {\n\t\t\tquotedName[0] = '\"'\n\t\t}\n\n\t\t// Append the unquoted name to the local buffer.\n\t\tvar startOffset int\n\t\tif i > 0 {\n\t\t\tstartOffset = ns.offsets[i-1]\n\t\t}\n\t\tif n := consumeSimpleString(quotedName); n > 0 {\n\t\t\tns.unquotedNames = append(ns.unquotedNames[:startOffset], quotedName[len(`\"`):n-len(`\"`)]...)\n\t\t} else {\n\t\t\tns.unquotedNames, _ = unescapeString(ns.unquotedNames[:startOffset], quotedName)\n\t\t}\n\t\tns.offsets[i] = len(ns.unquotedNames)\n\t}\n}\n\nfunc (ns *objectNameStack) ensureCopiedBuffer() {\n\tif len(ns.offsets) > 0 && ns.offsets[len(ns.offsets)-1] < 0 {\n\t\tpanic(\"BUG: copyQuotedBuffer not called beforehand\")\n\t}\n}\n\n// objectNamespaceStack is a stack of object namespaces.\n// This data structure assists in detecting duplicate names.\ntype objectNamespaceStack []objectNamespace\n\n// reset resets the object namespace stack.\nfunc (nss *objectNamespaceStack) reset() {\n\tif cap(*nss) > 1<<10 {\n\t\t*nss = nil\n\t}\n\t*nss = (*nss)[:0]\n}\n\n// push starts a new namespace for a nested JSON object.\nfunc (nss *objectNamespaceStack) push() {\n\tif cap(*nss) > len(*nss) {\n\t\t*nss = (*nss)[:len(*nss)+1]\n\t\tnss.last().reset()\n\t} else {\n\t\t*nss = append(*nss, objectNamespace{})\n\t}\n}\n\n// last returns a pointer to the last JSON object namespace.\nfunc (nss objectNamespaceStack) last() *objectNamespace {\n\treturn &nss[len(nss)-1]\n}\n\n// pop terminates the namespace for a nested JSON object.\nfunc (nss *objectNamespaceStack) pop() {\n\t*nss = (*nss)[:len(*nss)-1]\n}\n\n// objectNamespace is the namespace for a JSON object.\n// In contrast to objectNameStack, this needs to remember a all names\n// per JSON object.\n//\n// The zero value is an empty namespace ready for use.\ntype objectNamespace struct {\n\t// It relies on a linear search over all the names before switching\n\t// to use a Go map for direct lookup.\n\n\t// endOffsets is a list of offsets to the end of each name in buffers.\n\t// The length of offsets is the number of names in the namespace.\n\tendOffsets []uint\n\t// allUnquotedNames is a back-to-back concatenation of every name in the namespace.\n\tallUnquotedNames []byte\n\t// mapNames is a Go map containing every name in the namespace.\n\t// Only valid if non-nil.\n\tmapNames map[string]struct{}\n}\n\n// reset resets the namespace to be empty.\nfunc (ns *objectNamespace) reset() {\n\tns.endOffsets = ns.endOffsets[:0]\n\tns.allUnquotedNames = ns.allUnquotedNames[:0]\n\tns.mapNames = nil\n\tif cap(ns.endOffsets) > 1<<6 {\n\t\tns.endOffsets = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n\tif cap(ns.allUnquotedNames) > 1<<10 {\n\t\tns.allUnquotedNames = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n}\n\n// length reports the number of names in the namespace.\nfunc (ns *objectNamespace) length() int {\n\treturn len(ns.endOffsets)\n}\n\n// getUnquoted retrieves the ith unquoted name in the namespace.\nfunc (ns *objectNamespace) getUnquoted(i int) []byte {\n\tif i == 0 {\n\t\treturn ns.allUnquotedNames[:ns.endOffsets[0]]\n\t} else {\n\t\treturn ns.allUnquotedNames[ns.endOffsets[i-1]:ns.endOffsets[i-0]]\n\t}\n}\n\n// lastUnquoted retrieves the last name in the namespace.\nfunc (ns *objectNamespace) lastUnquoted() []byte {\n\treturn ns.getUnquoted(ns.length() - 1)\n}\n\n// insertQuoted inserts a name and reports whether it was inserted,\n// which only occurs if name is not already in the namespace.\n// The provided name must be a valid JSON string.\nfunc (ns *objectNamespace) insertQuoted(name []byte, isVerbatim bool) bool {\n\tif isVerbatim {\n\t\tname = name[len(`\"`) : len(name)-len(`\"`)]\n\t}\n\treturn ns.insert(name, !isVerbatim)\n}\nfunc (ns *objectNamespace) insertUnquoted(name []byte) bool {\n\treturn ns.insert(name, false)\n}\nfunc (ns *objectNamespace) insert(name []byte, quoted bool) bool {\n\tvar allNames []byte\n\tif quoted {\n\t\tallNames, _ = unescapeString(ns.allUnquotedNames, name)\n\t} else {\n\t\tallNames = append(ns.allUnquotedNames, name...)\n\t}\n\tname = allNames[len(ns.allUnquotedNames):]\n\n\t// Switch to a map if the buffer is too large for linear search.\n\t// This does not add the current name to the map.\n\tif ns.mapNames == nil && (ns.length() > 64 || len(ns.allUnquotedNames) > 1024) {\n\t\tns.mapNames = make(map[string]struct{})\n\t\tvar startOffset uint\n\t\tfor _, endOffset := range ns.endOffsets {\n\t\t\tname := ns.allUnquotedNames[startOffset:endOffset]\n\t\t\tns.mapNames[string(name)] = struct{}{} // allocates a new string\n\t\t\tstartOffset = endOffset\n\t\t}\n\t}\n\n\tif ns.mapNames == nil {\n\t\t// Perform linear search over the buffer to find matching names.\n\t\t// It provides O(n) lookup, but does not require any allocations.\n\t\tvar startOffset uint\n\t\tfor _, endOffset := range ns.endOffsets {\n\t\t\tif string(ns.allUnquotedNames[startOffset:endOffset]) == string(name) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tstartOffset = endOffset\n\t\t}\n\t} else {\n\t\t// Use the map if it is populated.\n\t\t// It provides O(1) lookup, but requires a string allocation per name.\n\t\tif _, ok := ns.mapNames[string(name)]; ok {\n\t\t\treturn false\n\t\t}\n\t\tns.mapNames[string(name)] = struct{}{} // allocates a new string\n\t}\n\n\tns.allUnquotedNames = allNames\n\tns.endOffsets = append(ns.endOffsets, uint(len(ns.allUnquotedNames)))\n\treturn true\n}\n\n// removeLast removes the last name in the namespace.\nfunc (ns *objectNamespace) removeLast() {\n\tif ns.mapNames != nil {\n\t\tdelete(ns.mapNames, string(ns.lastUnquoted()))\n\t}\n\tif ns.length()-1 == 0 {\n\t\tns.endOffsets = ns.endOffsets[:0]\n\t\tns.allUnquotedNames = ns.allUnquotedNames[:0]\n\t} else {\n\t\tns.endOffsets = ns.endOffsets[:ns.length()-1]\n\t\tns.allUnquotedNames = ns.allUnquotedNames[:ns.endOffsets[ns.length()-1]]\n\t}\n}\n\ntype uintSet64 uint64\n\nfunc (s uintSet64) has(i uint) bool { return s&(1<<i) > 0 }\nfunc (s *uintSet64) set(i uint)     { *s |= 1 << i }\n\n// uintSet is a set of unsigned integers.\n// It is optimized for most integers being close to zero.\ntype uintSet struct {\n\tlo uintSet64\n\thi []uintSet64\n}\n\n// has reports whether i is in the set.\nfunc (s *uintSet) has(i uint) bool {\n\tif i < 64 {\n\t\treturn s.lo.has(i)\n\t} else {\n\t\ti -= 64\n\t\tiHi, iLo := int(i/64), i%64\n\t\treturn iHi < len(s.hi) && s.hi[iHi].has(iLo)\n\t}\n}\n\n// insert inserts i into the set and reports whether it was the first insertion.\nfunc (s *uintSet) insert(i uint) bool {\n\t// TODO: Make this inlineable at least for the lower 64-bit case.\n\tif i < 64 {\n\t\thas := s.lo.has(i)\n\t\ts.lo.set(i)\n\t\treturn !has\n\t} else {\n\t\ti -= 64\n\t\tiHi, iLo := int(i/64), i%64\n\t\tif iHi >= len(s.hi) {\n\t\t\ts.hi = append(s.hi, make([]uintSet64, iHi+1-len(s.hi))...)\n\t\t\ts.hi = s.hi[:cap(s.hi)]\n\t\t}\n\t\thas := s.hi[iHi].has(iLo)\n\t\ts.hi[iHi].set(iLo)\n\t\treturn !has\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/state_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestStateMachine(t *testing.T) {\n\t// To test a state machine, we pass an ordered sequence of operations and\n\t// check whether the current state is as expected.\n\t// The operation type is a union type of various possible operations,\n\t// which either call mutating methods on the state machine or\n\t// call accessor methods on state machine and verify the results.\n\ttype operation any\n\ttype (\n\t\t// stackLengths checks the results of stateEntry.length accessors.\n\t\tstackLengths []int\n\n\t\t// appendTokens is sequence of token kinds to append where\n\t\t// none of them are expected to fail.\n\t\t//\n\t\t// For example: `[nft]` is equivalent to the following sequence:\n\t\t//\n\t\t//\tpushArray()\n\t\t//\tappendLiteral()\n\t\t//\tappendString()\n\t\t//\tappendNumber()\n\t\t//\tpopArray()\n\t\t//\n\t\tappendTokens string\n\n\t\t// appendToken is a single token kind to append with the expected error.\n\t\tappendToken struct {\n\t\t\tkind Kind\n\t\t\twant error\n\t\t}\n\n\t\t// needDelim checks the result of the needDelim accessor.\n\t\tneedDelim struct {\n\t\t\tnext Kind\n\t\t\twant byte\n\t\t}\n\t)\n\n\t// Each entry is a sequence of tokens to pass to the state machine.\n\ttests := []struct {\n\t\tlabel string\n\t\tops   []operation\n\t}{{\n\t\t\"TopLevelValues\",\n\t\t[]operation{\n\t\t\tstackLengths{0},\n\t\t\tneedDelim{'n', 0},\n\t\t\tappendTokens(`nft`),\n\t\t\tstackLengths{3},\n\t\t\tneedDelim{'\"', 0},\n\t\t\tappendTokens(`\"0[]{}`),\n\t\t\tstackLengths{7},\n\t\t},\n\t}, {\n\t\t\"ArrayValues\",\n\t\t[]operation{\n\t\t\tstackLengths{0},\n\t\t\tneedDelim{'[', 0},\n\t\t\tappendTokens(`[`),\n\t\t\tstackLengths{1, 0},\n\t\t\tneedDelim{'n', 0},\n\t\t\tappendTokens(`nft`),\n\t\t\tstackLengths{1, 3},\n\t\t\tneedDelim{'\"', ','},\n\t\t\tappendTokens(`\"0[]{}`),\n\t\t\tstackLengths{1, 7},\n\t\t\tneedDelim{']', 0},\n\t\t\tappendTokens(`]`),\n\t\t\tstackLengths{1},\n\t\t},\n\t}, {\n\t\t\"ObjectValues\",\n\t\t[]operation{\n\t\t\tstackLengths{0},\n\t\t\tneedDelim{'{', 0},\n\t\t\tappendTokens(`{`),\n\t\t\tstackLengths{1, 0},\n\t\t\tneedDelim{'\"', 0},\n\t\t\tappendTokens(`\"`),\n\t\t\tstackLengths{1, 1},\n\t\t\tneedDelim{'n', ':'},\n\t\t\tappendTokens(`n`),\n\t\t\tstackLengths{1, 2},\n\t\t\tneedDelim{'\"', ','},\n\t\t\tappendTokens(`\"f\"t`),\n\t\t\tstackLengths{1, 6},\n\t\t\tappendTokens(`\"\"\"0\"[]\"{}`),\n\t\t\tstackLengths{1, 14},\n\t\t\tneedDelim{'}', 0},\n\t\t\tappendTokens(`}`),\n\t\t\tstackLengths{1},\n\t\t},\n\t}, {\n\t\t\"ObjectCardinality\",\n\t\t[]operation{\n\t\t\tappendTokens(`{`),\n\n\t\t\t// Appending any kind other than string for object name is an error.\n\t\t\tappendToken{'n', errMissingName},\n\t\t\tappendToken{'f', errMissingName},\n\t\t\tappendToken{'t', errMissingName},\n\t\t\tappendToken{'0', errMissingName},\n\t\t\tappendToken{'{', errMissingName},\n\t\t\tappendToken{'[', errMissingName},\n\t\t\tappendTokens(`\"`),\n\n\t\t\t// Appending '}' without first appending any value is an error.\n\t\t\tappendToken{'}', errMissingValue},\n\t\t\tappendTokens(`\"`),\n\n\t\t\tappendTokens(`}`),\n\t\t},\n\t}, {\n\t\t\"MismatchingDelims\",\n\t\t[]operation{\n\t\t\tappendToken{'}', errMismatchDelim}, // appending '}' without preceding '{'\n\t\t\tappendTokens(`[[{`),\n\t\t\tappendToken{']', errMismatchDelim}, // appending ']' that mismatches preceding '{'\n\t\t\tappendTokens(`}]`),\n\t\t\tappendToken{'}', errMismatchDelim}, // appending '}' that mismatches preceding '['\n\t\t\tappendTokens(`]`),\n\t\t\tappendToken{']', errMismatchDelim}, // appending ']' without preceding '['\n\t\t},\n\t}}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.label, func(t *testing.T) {\n\t\t\t// Flatten appendTokens to sequence of appendToken entries.\n\t\t\tvar ops []operation\n\t\t\tfor _, op := range tt.ops {\n\t\t\t\tif toks, ok := op.(appendTokens); ok {\n\t\t\t\t\tfor _, k := range []byte(toks) {\n\t\t\t\t\t\tops = append(ops, appendToken{Kind(k), nil})\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tops = append(ops, op)\n\t\t\t}\n\n\t\t\t// Append each token to the state machine and check the output.\n\t\t\tvar state stateMachine\n\t\t\tstate.reset()\n\t\t\tvar sequence []Kind\n\t\t\tfor _, op := range ops {\n\t\t\t\tswitch op := op.(type) {\n\t\t\t\tcase stackLengths:\n\t\t\t\t\tvar got []int\n\t\t\t\t\tfor i := 0; i < state.depth(); i++ {\n\t\t\t\t\t\te := state.index(i)\n\t\t\t\t\t\tgot = append(got, e.length())\n\t\t\t\t\t}\n\t\t\t\t\twant := []int(op)\n\t\t\t\t\tif !reflect.DeepEqual(got, want) {\n\t\t\t\t\t\tt.Fatalf(\"%s: stack lengths mismatch:\\ngot  %v\\nwant %v\", sequence, got, want)\n\t\t\t\t\t}\n\t\t\t\tcase appendToken:\n\t\t\t\t\tgot := state.append(op.kind)\n\t\t\t\t\tif !reflect.DeepEqual(got, op.want) {\n\t\t\t\t\t\tt.Fatalf(\"%s: append('%c') = %v, want %v\", sequence, op.kind, got, op.want)\n\t\t\t\t\t}\n\t\t\t\t\tif got == nil {\n\t\t\t\t\t\tsequence = append(sequence, op.kind)\n\t\t\t\t\t}\n\t\t\t\tcase needDelim:\n\t\t\t\t\tif got := state.needDelim(op.next); got != op.want {\n\t\t\t\t\t\tt.Fatalf(\"%s: needDelim('%c') = '%c', want '%c'\", sequence, op.next, got, op.want)\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tpanic(fmt.Sprintf(\"unknown operation: %T\", op))\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\n// append is a thin wrapper over the other append, pop, or push methods\n// based on the token kind.\nfunc (s *stateMachine) append(k Kind) error {\n\tswitch k {\n\tcase 'n', 'f', 't':\n\t\treturn s.appendLiteral()\n\tcase '\"':\n\t\treturn s.appendString()\n\tcase '0':\n\t\treturn s.appendNumber()\n\tcase '{':\n\t\treturn s.pushObject()\n\tcase '}':\n\t\treturn s.popObject()\n\tcase '[':\n\t\treturn s.pushArray()\n\tcase ']':\n\t\treturn s.popArray()\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"invalid token kind: '%c'\", k))\n\t}\n}\n\nfunc TestObjectNamespace(t *testing.T) {\n\ttype operation any\n\ttype (\n\t\tinsert struct {\n\t\t\tname         string\n\t\t\twantInserted bool\n\t\t}\n\t\tremoveLast struct{}\n\t)\n\n\t// Sequence of insert operations to perform (order matters).\n\tops := []operation{\n\t\tinsert{`\"\"`, true},\n\t\tremoveLast{},\n\t\tinsert{`\"\"`, true},\n\t\tinsert{`\"\"`, false},\n\n\t\t// Test insertion of the same name with different formatting.\n\t\tinsert{`\"alpha\"`, true},\n\t\tinsert{`\"ALPHA\"`, true}, // case-sensitive matching\n\t\tinsert{`\"alpha\"`, false},\n\t\tinsert{`\"\\u0061\\u006c\\u0070\\u0068\\u0061\"`, false}, // unescapes to \"alpha\"\n\t\tremoveLast{},                                      // removes \"ALPHA\"\n\t\tinsert{`\"alpha\"`, false},\n\t\tremoveLast{}, // removes \"alpha\"\n\t\tinsert{`\"alpha\"`, true},\n\t\tremoveLast{},\n\n\t\t// Bulk insert simple names.\n\t\tinsert{`\"alpha\"`, true},\n\t\tinsert{`\"bravo\"`, true},\n\t\tinsert{`\"charlie\"`, true},\n\t\tinsert{`\"delta\"`, true},\n\t\tinsert{`\"echo\"`, true},\n\t\tinsert{`\"foxtrot\"`, true},\n\t\tinsert{`\"golf\"`, true},\n\t\tinsert{`\"hotel\"`, true},\n\t\tinsert{`\"india\"`, true},\n\t\tinsert{`\"juliet\"`, true},\n\t\tinsert{`\"kilo\"`, true},\n\t\tinsert{`\"lima\"`, true},\n\t\tinsert{`\"mike\"`, true},\n\t\tinsert{`\"november\"`, true},\n\t\tinsert{`\"oscar\"`, true},\n\t\tinsert{`\"papa\"`, true},\n\t\tinsert{`\"quebec\"`, true},\n\t\tinsert{`\"romeo\"`, true},\n\t\tinsert{`\"sierra\"`, true},\n\t\tinsert{`\"tango\"`, true},\n\t\tinsert{`\"uniform\"`, true},\n\t\tinsert{`\"victor\"`, true},\n\t\tinsert{`\"whiskey\"`, true},\n\t\tinsert{`\"xray\"`, true},\n\t\tinsert{`\"yankee\"`, true},\n\t\tinsert{`\"zulu\"`, true},\n\n\t\t// Test insertion of invalid UTF-8.\n\t\tinsert{`\"` + \"\\ufffd\" + `\"`, true},\n\t\tinsert{`\"` + \"\\ufffd\" + `\"`, false},\n\t\tinsert{`\"\\ufffd\"`, false},         // unescapes to Unicode replacement character\n\t\tinsert{`\"\\uFFFD\"`, false},         // unescapes to Unicode replacement character\n\t\tinsert{`\"` + \"\\xff\" + `\"`, false}, // mangles as Unicode replacement character\n\t\tremoveLast{},\n\t\tinsert{`\"` + \"\\ufffd\" + `\"`, true},\n\n\t\t// Test insertion of unicode characters.\n\t\tinsert{`\"☺☻☹\"`, true},\n\t\tinsert{`\"☺☻☹\"`, false},\n\t\tremoveLast{},\n\t\tinsert{`\"☺☻☹\"`, true},\n\t}\n\n\t// Execute the sequence of operations twice:\n\t// 1) on a fresh namespace and 2) on a namespace that has been reset.\n\tvar ns objectNamespace\n\twantNames := []string{}\n\tfor _, reset := range []bool{false, true} {\n\t\tif reset {\n\t\t\tns.reset()\n\t\t\twantNames = nil\n\t\t}\n\n\t\t// Execute the operations and ensure the state is consistent.\n\t\tfor i, op := range ops {\n\t\t\tswitch op := op.(type) {\n\t\t\tcase insert:\n\t\t\t\tgotInserted := ns.insertQuoted([]byte(op.name), false)\n\t\t\t\tif gotInserted != op.wantInserted {\n\t\t\t\t\tt.Fatalf(\"%d: objectNamespace{%v}.insert(%v) = %v, want %v\", i, strings.Join(wantNames, \" \"), op.name, gotInserted, op.wantInserted)\n\t\t\t\t}\n\t\t\t\tif gotInserted {\n\t\t\t\t\tb, _ := unescapeString(nil, []byte(op.name))\n\t\t\t\t\twantNames = append(wantNames, string(b))\n\t\t\t\t}\n\t\t\tcase removeLast:\n\t\t\t\tns.removeLast()\n\t\t\t\twantNames = wantNames[:len(wantNames)-1]\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Sprintf(\"unknown operation: %T\", op))\n\t\t\t}\n\n\t\t\t// Check that the namespace is consistent.\n\t\t\tgotNames := []string{}\n\t\t\tfor i := 0; i < ns.length(); i++ {\n\t\t\t\tgotNames = append(gotNames, string(ns.getUnquoted(i)))\n\t\t\t}\n\t\t\tif !reflect.DeepEqual(gotNames, wantNames) {\n\t\t\t\tt.Fatalf(\"%d: objectNamespace = {%v}, want {%v}\", i, strings.Join(gotNames, \" \"), strings.Join(wantNames, \" \"))\n\t\t\t}\n\t\t}\n\n\t\t// Verify that we have not switched to using a Go map.\n\t\tif ns.mapNames != nil {\n\t\t\tt.Errorf(\"objectNamespace.mapNames = non-nil, want nil\")\n\t\t}\n\n\t\t// Insert a large number of names.\n\t\tfor i := 0; i < 64; i++ {\n\t\t\tns.insertUnquoted([]byte(fmt.Sprintf(`name%d`, i)))\n\t\t}\n\n\t\t// Verify that we did switch to using a Go map.\n\t\tif ns.mapNames == nil {\n\t\t\tt.Errorf(\"objectNamespace.mapNames = nil, want non-nil\")\n\t\t}\n\t}\n}\n\nfunc TestUintSet(t *testing.T) {\n\ttype operation any // has | insert\n\ttype has struct {\n\t\tin   uint\n\t\twant bool\n\t}\n\ttype insert struct {\n\t\tin   uint\n\t\twant bool\n\t}\n\n\t// Sequence of operations to perform (order matters).\n\tops := []operation{\n\t\thas{0, false},\n\t\thas{63, false},\n\t\thas{64, false},\n\t\thas{1234, false},\n\t\tinsert{3, true},\n\t\thas{2, false},\n\t\thas{3, true},\n\t\thas{4, false},\n\t\thas{63, false},\n\t\tinsert{3, false},\n\t\tinsert{63, true},\n\t\thas{63, true},\n\t\tinsert{64, true},\n\t\tinsert{64, false},\n\t\thas{64, true},\n\t\tinsert{3264, true},\n\t\thas{3264, true},\n\t\tinsert{3, false},\n\t\thas{3, true},\n\t}\n\n\tvar us uintSet\n\tfor i, op := range ops {\n\t\tswitch op := op.(type) {\n\t\tcase has:\n\t\t\tif got := us.has(op.in); got != op.want {\n\t\t\t\tt.Fatalf(\"%d: uintSet.has(%v) = %v, want %v\", i, op.in, got, op.want)\n\t\t\t}\n\t\tcase insert:\n\t\t\tif got := us.insert(op.in); got != op.want {\n\t\t\t\tt.Fatalf(\"%d: uintSet.insert(%v) = %v, want %v\", i, op.in, got, op.want)\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"unknown operation: %T\", op))\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/testdata_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"testing\"\n\t\"time\"\n)\n\ntype jsonTestdataEntry struct {\n\tname string\n\tdata []byte\n\tnew  func() any // nil if there is no concrete type for this\n}\n\nvar (\n\tjsonTestdataOnce sync.Once\n\tjsonTestdataLazy []jsonTestdataEntry\n)\n\nfunc jsonTestdata() []jsonTestdataEntry {\n\tjsonTestdataOnce.Do(func() {\n\t\tfis, err := ioutil.ReadDir(\"testdata\")\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tsort.Slice(fis, func(i, j int) bool { return fis[i].Name() < fis[j].Name() })\n\t\tfor _, fi := range fis {\n\t\t\tif !strings.HasSuffix(fi.Name(), \".json.gz\") {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Skip large files for a short test run.\n\t\t\tif testing.Short() {\n\t\t\t\tfi, err := os.Stat(filepath.Join(\"testdata\", fi.Name()))\n\t\t\t\tif err == nil && fi.Size() > 1e3 {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Convert snake_case file name to CamelCase.\n\t\t\twords := strings.Split(strings.TrimSuffix(fi.Name(), \".json.gz\"), \"_\")\n\t\t\tfor i := range words {\n\t\t\t\twords[i] = strings.Title(words[i])\n\t\t\t}\n\t\t\tname := strings.Join(words, \"\")\n\n\t\t\t// Read and decompress the test data.\n\t\t\tb, err := ioutil.ReadFile(filepath.Join(\"testdata\", fi.Name()))\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tzr, err := gzip.NewReader(bytes.NewReader(b))\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t\tdata, err := ioutil.ReadAll(zr)\n\t\t\tif err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\n\t\t\t// Check whether there is a concrete type for this data.\n\t\t\tvar newFn func() any\n\t\t\tswitch name {\n\t\t\tcase \"CanadaGeometry\":\n\t\t\t\tnewFn = func() any { return new(canadaRoot) }\n\t\t\tcase \"CitmCatalog\":\n\t\t\t\tnewFn = func() any { return new(citmRoot) }\n\t\t\tcase \"GolangSource\":\n\t\t\t\tnewFn = func() any { return new(golangRoot) }\n\t\t\tcase \"StringEscaped\":\n\t\t\t\tnewFn = func() any { return new(stringRoot) }\n\t\t\tcase \"StringUnicode\":\n\t\t\t\tnewFn = func() any { return new(stringRoot) }\n\t\t\tcase \"SyntheaFhir\":\n\t\t\t\tnewFn = func() any { return new(syntheaRoot) }\n\t\t\tcase \"TwitterStatus\":\n\t\t\t\tnewFn = func() any { return new(twitterRoot) }\n\t\t\t}\n\n\t\t\tjsonTestdataLazy = append(jsonTestdataLazy, jsonTestdataEntry{name, data, newFn})\n\t\t}\n\t})\n\treturn jsonTestdataLazy\n}\n\ntype (\n\tcanadaRoot struct {\n\t\tType     string `json:\"type\"`\n\t\tFeatures []struct {\n\t\t\tType       string `json:\"type\"`\n\t\t\tProperties struct {\n\t\t\t\tName string `json:\"name\"`\n\t\t\t} `json:\"properties\"`\n\t\t\tGeometry struct {\n\t\t\t\tType        string         `json:\"type\"`\n\t\t\t\tCoordinates [][][2]float64 `json:\"coordinates\"`\n\t\t\t} `json:\"geometry\"`\n\t\t} `json:\"features\"`\n\t}\n)\n\ntype (\n\tcitmRoot struct {\n\t\tAreaNames                map[int64]string `json:\"areaNames\"`\n\t\tAudienceSubCategoryNames map[int64]string `json:\"audienceSubCategoryNames\"`\n\t\tBlockNames               map[int64]string `json:\"blockNames\"`\n\t\tEvents                   map[int64]struct {\n\t\t\tDescription string `json:\"description\"`\n\t\t\tID          int    `json:\"id\"`\n\t\t\tLogo        string `json:\"logo\"`\n\t\t\tName        string `json:\"name\"`\n\t\t\tSubTopicIds []int  `json:\"subTopicIds\"`\n\t\t\tSubjectCode any    `json:\"subjectCode\"`\n\t\t\tSubtitle    any    `json:\"subtitle\"`\n\t\t\tTopicIds    []int  `json:\"topicIds\"`\n\t\t} `json:\"events\"`\n\t\tPerformances []struct {\n\t\t\tEventID int `json:\"eventId\"`\n\t\t\tID      int `json:\"id\"`\n\t\t\tLogo    any `json:\"logo\"`\n\t\t\tName    any `json:\"name\"`\n\t\t\tPrices  []struct {\n\t\t\t\tAmount                int   `json:\"amount\"`\n\t\t\t\tAudienceSubCategoryID int64 `json:\"audienceSubCategoryId\"`\n\t\t\t\tSeatCategoryID        int64 `json:\"seatCategoryId\"`\n\t\t\t} `json:\"prices\"`\n\t\t\tSeatCategories []struct {\n\t\t\t\tAreas []struct {\n\t\t\t\t\tAreaID   int   `json:\"areaId\"`\n\t\t\t\t\tBlockIds []any `json:\"blockIds\"`\n\t\t\t\t} `json:\"areas\"`\n\t\t\t\tSeatCategoryID int `json:\"seatCategoryId\"`\n\t\t\t} `json:\"seatCategories\"`\n\t\t\tSeatMapImage any    `json:\"seatMapImage\"`\n\t\t\tStart        int64  `json:\"start\"`\n\t\t\tVenueCode    string `json:\"venueCode\"`\n\t\t} `json:\"performances\"`\n\t\tSeatCategoryNames map[uint64]string   `json:\"seatCategoryNames\"`\n\t\tSubTopicNames     map[uint64]string   `json:\"subTopicNames\"`\n\t\tSubjectNames      map[uint64]string   `json:\"subjectNames\"`\n\t\tTopicNames        map[uint64]string   `json:\"topicNames\"`\n\t\tTopicSubTopics    map[uint64][]uint64 `json:\"topicSubTopics\"`\n\t\tVenueNames        map[string]string   `json:\"venueNames\"`\n\t}\n)\n\ntype (\n\tgolangRoot struct {\n\t\tTree     *golangNode `json:\"tree\"`\n\t\tUsername string      `json:\"username\"`\n\t}\n\tgolangNode struct {\n\t\tName     string       `json:\"name\"`\n\t\tKids     []golangNode `json:\"kids\"`\n\t\tCLWeight float64      `json:\"cl_weight\"`\n\t\tTouches  int          `json:\"touches\"`\n\t\tMinT     uint64       `json:\"min_t\"`\n\t\tMaxT     uint64       `json:\"max_t\"`\n\t\tMeanT    uint64       `json:\"mean_t\"`\n\t}\n)\n\ntype (\n\tstringRoot struct {\n\t\tArabic                             string `json:\"Arabic\"`\n\t\tArabicPresentationFormsA           string `json:\"Arabic Presentation Forms-A\"`\n\t\tArabicPresentationFormsB           string `json:\"Arabic Presentation Forms-B\"`\n\t\tArmenian                           string `json:\"Armenian\"`\n\t\tArrows                             string `json:\"Arrows\"`\n\t\tBengali                            string `json:\"Bengali\"`\n\t\tBopomofo                           string `json:\"Bopomofo\"`\n\t\tBoxDrawing                         string `json:\"Box Drawing\"`\n\t\tCJKCompatibility                   string `json:\"CJK Compatibility\"`\n\t\tCJKCompatibilityForms              string `json:\"CJK Compatibility Forms\"`\n\t\tCJKCompatibilityIdeographs         string `json:\"CJK Compatibility Ideographs\"`\n\t\tCJKSymbolsAndPunctuation           string `json:\"CJK Symbols and Punctuation\"`\n\t\tCJKUnifiedIdeographs               string `json:\"CJK Unified Ideographs\"`\n\t\tCJKUnifiedIdeographsExtensionA     string `json:\"CJK Unified Ideographs Extension A\"`\n\t\tCJKUnifiedIdeographsExtensionB     string `json:\"CJK Unified Ideographs Extension B\"`\n\t\tCherokee                           string `json:\"Cherokee\"`\n\t\tCurrencySymbols                    string `json:\"Currency Symbols\"`\n\t\tCyrillic                           string `json:\"Cyrillic\"`\n\t\tCyrillicSupplementary              string `json:\"Cyrillic Supplementary\"`\n\t\tDevanagari                         string `json:\"Devanagari\"`\n\t\tEnclosedAlphanumerics              string `json:\"Enclosed Alphanumerics\"`\n\t\tEnclosedCJKLettersAndMonths        string `json:\"Enclosed CJK Letters and Months\"`\n\t\tEthiopic                           string `json:\"Ethiopic\"`\n\t\tGeometricShapes                    string `json:\"Geometric Shapes\"`\n\t\tGeorgian                           string `json:\"Georgian\"`\n\t\tGreekAndCoptic                     string `json:\"Greek and Coptic\"`\n\t\tGujarati                           string `json:\"Gujarati\"`\n\t\tGurmukhi                           string `json:\"Gurmukhi\"`\n\t\tHangulCompatibilityJamo            string `json:\"Hangul Compatibility Jamo\"`\n\t\tHangulJamo                         string `json:\"Hangul Jamo\"`\n\t\tHangulSyllables                    string `json:\"Hangul Syllables\"`\n\t\tHebrew                             string `json:\"Hebrew\"`\n\t\tHiragana                           string `json:\"Hiragana\"`\n\t\tIPAExtentions                      string `json:\"IPA Extentions\"`\n\t\tKangxiRadicals                     string `json:\"Kangxi Radicals\"`\n\t\tKatakana                           string `json:\"Katakana\"`\n\t\tKhmer                              string `json:\"Khmer\"`\n\t\tKhmerSymbols                       string `json:\"Khmer Symbols\"`\n\t\tLatin                              string `json:\"Latin\"`\n\t\tLatinExtendedAdditional            string `json:\"Latin Extended Additional\"`\n\t\tLatin1Supplement                   string `json:\"Latin-1 Supplement\"`\n\t\tLatinExtendedA                     string `json:\"Latin-Extended A\"`\n\t\tLatinExtendedB                     string `json:\"Latin-Extended B\"`\n\t\tLetterlikeSymbols                  string `json:\"Letterlike Symbols\"`\n\t\tMalayalam                          string `json:\"Malayalam\"`\n\t\tMathematicalAlphanumericSymbols    string `json:\"Mathematical Alphanumeric Symbols\"`\n\t\tMathematicalOperators              string `json:\"Mathematical Operators\"`\n\t\tMiscellaneousSymbols               string `json:\"Miscellaneous Symbols\"`\n\t\tMongolian                          string `json:\"Mongolian\"`\n\t\tNumberForms                        string `json:\"Number Forms\"`\n\t\tOriya                              string `json:\"Oriya\"`\n\t\tPhoneticExtensions                 string `json:\"Phonetic Extensions\"`\n\t\tSupplementalArrowsB                string `json:\"Supplemental Arrows-B\"`\n\t\tSyriac                             string `json:\"Syriac\"`\n\t\tTamil                              string `json:\"Tamil\"`\n\t\tThaana                             string `json:\"Thaana\"`\n\t\tThai                               string `json:\"Thai\"`\n\t\tUnifiedCanadianAboriginalSyllabics string `json:\"Unified Canadian Aboriginal Syllabics\"`\n\t\tYiRadicals                         string `json:\"Yi Radicals\"`\n\t\tYiSyllables                        string `json:\"Yi Syllables\"`\n\t}\n)\n\ntype (\n\tsyntheaRoot struct {\n\t\tEntry []struct {\n\t\t\tFullURL string `json:\"fullUrl\"`\n\t\t\tRequest *struct {\n\t\t\t\tMethod string `json:\"method\"`\n\t\t\t\tURL    string `json:\"url\"`\n\t\t\t} `json:\"request\"`\n\t\t\tResource *struct {\n\t\t\t\tAbatementDateTime time.Time   `json:\"abatementDateTime\"`\n\t\t\t\tAchievementStatus syntheaCode `json:\"achievementStatus\"`\n\t\t\t\tActive            bool        `json:\"active\"`\n\t\t\t\tActivity          []struct {\n\t\t\t\t\tDetail *struct {\n\t\t\t\t\t\tCode     syntheaCode      `json:\"code\"`\n\t\t\t\t\t\tLocation syntheaReference `json:\"location\"`\n\t\t\t\t\t\tStatus   string           `json:\"status\"`\n\t\t\t\t\t} `json:\"detail\"`\n\t\t\t\t} `json:\"activity\"`\n\t\t\t\tAddress        []syntheaAddress   `json:\"address\"`\n\t\t\t\tAddresses      []syntheaReference `json:\"addresses\"`\n\t\t\t\tAuthoredOn     time.Time          `json:\"authoredOn\"`\n\t\t\t\tBillablePeriod syntheaRange       `json:\"billablePeriod\"`\n\t\t\t\tBirthDate      string             `json:\"birthDate\"`\n\t\t\t\tCareTeam       []struct {\n\t\t\t\t\tProvider  syntheaReference `json:\"provider\"`\n\t\t\t\t\tReference string           `json:\"reference\"`\n\t\t\t\t\tRole      syntheaCode      `json:\"role\"`\n\t\t\t\t\tSequence  int64            `json:\"sequence\"`\n\t\t\t\t} `json:\"careTeam\"`\n\t\t\t\tCategory       []syntheaCode    `json:\"category\"`\n\t\t\t\tClaim          syntheaReference `json:\"claim\"`\n\t\t\t\tClass          syntheaCoding    `json:\"class\"`\n\t\t\t\tClinicalStatus syntheaCode      `json:\"clinicalStatus\"`\n\t\t\t\tCode           syntheaCode      `json:\"code\"`\n\t\t\t\tCommunication  []struct {\n\t\t\t\t\tLanguage syntheaCode `json:\"language\"`\n\t\t\t\t} `json:\"communication\"`\n\t\t\t\tComponent []struct {\n\t\t\t\t\tCode          syntheaCode   `json:\"code\"`\n\t\t\t\t\tValueQuantity syntheaCoding `json:\"valueQuantity\"`\n\t\t\t\t} `json:\"component\"`\n\t\t\t\tContained []struct {\n\t\t\t\t\tBeneficiary  syntheaReference   `json:\"beneficiary\"`\n\t\t\t\t\tID           string             `json:\"id\"`\n\t\t\t\t\tIntent       string             `json:\"intent\"`\n\t\t\t\t\tPayor        []syntheaReference `json:\"payor\"`\n\t\t\t\t\tPerformer    []syntheaReference `json:\"performer\"`\n\t\t\t\t\tRequester    syntheaReference   `json:\"requester\"`\n\t\t\t\t\tResourceType string             `json:\"resourceType\"`\n\t\t\t\t\tStatus       string             `json:\"status\"`\n\t\t\t\t\tSubject      syntheaReference   `json:\"subject\"`\n\t\t\t\t\tType         syntheaCode        `json:\"type\"`\n\t\t\t\t} `json:\"contained\"`\n\t\t\t\tCreated          time.Time   `json:\"created\"`\n\t\t\t\tDeceasedDateTime time.Time   `json:\"deceasedDateTime\"`\n\t\t\t\tDescription      syntheaCode `json:\"description\"`\n\t\t\t\tDiagnosis        []struct {\n\t\t\t\t\tDiagnosisReference syntheaReference `json:\"diagnosisReference\"`\n\t\t\t\t\tSequence           int64            `json:\"sequence\"`\n\t\t\t\t\tType               []syntheaCode    `json:\"type\"`\n\t\t\t\t} `json:\"diagnosis\"`\n\t\t\t\tDosageInstruction []struct {\n\t\t\t\t\tAsNeededBoolean bool `json:\"asNeededBoolean\"`\n\t\t\t\t\tDoseAndRate     []struct {\n\t\t\t\t\t\tDoseQuantity *struct {\n\t\t\t\t\t\t\tValue float64 `json:\"value\"`\n\t\t\t\t\t\t} `json:\"doseQuantity\"`\n\t\t\t\t\t\tType syntheaCode `json:\"type\"`\n\t\t\t\t\t} `json:\"doseAndRate\"`\n\t\t\t\t\tSequence int64 `json:\"sequence\"`\n\t\t\t\t\tTiming   *struct {\n\t\t\t\t\t\tRepeat *struct {\n\t\t\t\t\t\t\tFrequency  int64   `json:\"frequency\"`\n\t\t\t\t\t\t\tPeriod     float64 `json:\"period\"`\n\t\t\t\t\t\t\tPeriodUnit string  `json:\"periodUnit\"`\n\t\t\t\t\t\t} `json:\"repeat\"`\n\t\t\t\t\t} `json:\"timing\"`\n\t\t\t\t} `json:\"dosageInstruction\"`\n\t\t\t\tEffectiveDateTime time.Time          `json:\"effectiveDateTime\"`\n\t\t\t\tEncounter         syntheaReference   `json:\"encounter\"`\n\t\t\t\tExtension         []syntheaExtension `json:\"extension\"`\n\t\t\t\tGender            string             `json:\"gender\"`\n\t\t\t\tGoal              []syntheaReference `json:\"goal\"`\n\t\t\t\tID                string             `json:\"id\"`\n\t\t\t\tIdentifier        []struct {\n\t\t\t\t\tSystem string      `json:\"system\"`\n\t\t\t\t\tType   syntheaCode `json:\"type\"`\n\t\t\t\t\tUse    string      `json:\"use\"`\n\t\t\t\t\tValue  string      `json:\"value\"`\n\t\t\t\t} `json:\"identifier\"`\n\t\t\t\tInsurance []struct {\n\t\t\t\t\tCoverage syntheaReference `json:\"coverage\"`\n\t\t\t\t\tFocal    bool             `json:\"focal\"`\n\t\t\t\t\tSequence int64            `json:\"sequence\"`\n\t\t\t\t} `json:\"insurance\"`\n\t\t\t\tInsurer syntheaReference `json:\"insurer\"`\n\t\t\t\tIntent  string           `json:\"intent\"`\n\t\t\t\tIssued  time.Time        `json:\"issued\"`\n\t\t\t\tItem    []struct {\n\t\t\t\t\tAdjudication []struct {\n\t\t\t\t\t\tAmount   syntheaCurrency `json:\"amount\"`\n\t\t\t\t\t\tCategory syntheaCode     `json:\"category\"`\n\t\t\t\t\t} `json:\"adjudication\"`\n\t\t\t\t\tCategory                syntheaCode        `json:\"category\"`\n\t\t\t\t\tDiagnosisSequence       []int64            `json:\"diagnosisSequence\"`\n\t\t\t\t\tEncounter               []syntheaReference `json:\"encounter\"`\n\t\t\t\t\tInformationSequence     []int64            `json:\"informationSequence\"`\n\t\t\t\t\tLocationCodeableConcept syntheaCode        `json:\"locationCodeableConcept\"`\n\t\t\t\t\tNet                     syntheaCurrency    `json:\"net\"`\n\t\t\t\t\tProcedureSequence       []int64            `json:\"procedureSequence\"`\n\t\t\t\t\tProductOrService        syntheaCode        `json:\"productOrService\"`\n\t\t\t\t\tSequence                int64              `json:\"sequence\"`\n\t\t\t\t\tServicedPeriod          syntheaRange       `json:\"servicedPeriod\"`\n\t\t\t\t} `json:\"item\"`\n\t\t\t\tLifecycleStatus           string             `json:\"lifecycleStatus\"`\n\t\t\t\tManagingOrganization      []syntheaReference `json:\"managingOrganization\"`\n\t\t\t\tMaritalStatus             syntheaCode        `json:\"maritalStatus\"`\n\t\t\t\tMedicationCodeableConcept syntheaCode        `json:\"medicationCodeableConcept\"`\n\t\t\t\tMultipleBirthBoolean      bool               `json:\"multipleBirthBoolean\"`\n\t\t\t\tName                      RawValue           `json:\"name\"`\n\t\t\t\tNumberOfInstances         int64              `json:\"numberOfInstances\"`\n\t\t\t\tNumberOfSeries            int64              `json:\"numberOfSeries\"`\n\t\t\t\tOccurrenceDateTime        time.Time          `json:\"occurrenceDateTime\"`\n\t\t\t\tOnsetDateTime             time.Time          `json:\"onsetDateTime\"`\n\t\t\t\tOutcome                   string             `json:\"outcome\"`\n\t\t\t\tParticipant               []struct {\n\t\t\t\t\tIndividual syntheaReference `json:\"individual\"`\n\t\t\t\t\tMember     syntheaReference `json:\"member\"`\n\t\t\t\t\tRole       []syntheaCode    `json:\"role\"`\n\t\t\t\t} `json:\"participant\"`\n\t\t\t\tPatient syntheaReference `json:\"patient\"`\n\t\t\t\tPayment *struct {\n\t\t\t\t\tAmount syntheaCurrency `json:\"amount\"`\n\t\t\t\t} `json:\"payment\"`\n\t\t\t\tPerformedPeriod syntheaRange     `json:\"performedPeriod\"`\n\t\t\t\tPeriod          syntheaRange     `json:\"period\"`\n\t\t\t\tPrescription    syntheaReference `json:\"prescription\"`\n\t\t\t\tPrimarySource   bool             `json:\"primarySource\"`\n\t\t\t\tPriority        syntheaCode      `json:\"priority\"`\n\t\t\t\tProcedure       []struct {\n\t\t\t\t\tProcedureReference syntheaReference `json:\"procedureReference\"`\n\t\t\t\t\tSequence           int64            `json:\"sequence\"`\n\t\t\t\t} `json:\"procedure\"`\n\t\t\t\tProvider        syntheaReference   `json:\"provider\"`\n\t\t\t\tReasonCode      []syntheaCode      `json:\"reasonCode\"`\n\t\t\t\tReasonReference []syntheaReference `json:\"reasonReference\"`\n\t\t\t\tRecordedDate    time.Time          `json:\"recordedDate\"`\n\t\t\t\tReferral        syntheaReference   `json:\"referral\"`\n\t\t\t\tRequester       syntheaReference   `json:\"requester\"`\n\t\t\t\tResourceType    string             `json:\"resourceType\"`\n\t\t\t\tResult          []syntheaReference `json:\"result\"`\n\t\t\t\tSeries          []struct {\n\t\t\t\t\tBodySite syntheaCoding `json:\"bodySite\"`\n\t\t\t\t\tInstance []struct {\n\t\t\t\t\t\tNumber   int64         `json:\"number\"`\n\t\t\t\t\t\tSopClass syntheaCoding `json:\"sopClass\"`\n\t\t\t\t\t\tTitle    string        `json:\"title\"`\n\t\t\t\t\t\tUID      string        `json:\"uid\"`\n\t\t\t\t\t} `json:\"instance\"`\n\t\t\t\t\tModality          syntheaCoding `json:\"modality\"`\n\t\t\t\t\tNumber            int64         `json:\"number\"`\n\t\t\t\t\tNumberOfInstances int64         `json:\"numberOfInstances\"`\n\t\t\t\t\tStarted           string        `json:\"started\"`\n\t\t\t\t\tUID               string        `json:\"uid\"`\n\t\t\t\t} `json:\"series\"`\n\t\t\t\tServiceProvider syntheaReference `json:\"serviceProvider\"`\n\t\t\t\tStarted         time.Time        `json:\"started\"`\n\t\t\t\tStatus          string           `json:\"status\"`\n\t\t\t\tSubject         syntheaReference `json:\"subject\"`\n\t\t\t\tSupportingInfo  []struct {\n\t\t\t\t\tCategory       syntheaCode      `json:\"category\"`\n\t\t\t\t\tSequence       int64            `json:\"sequence\"`\n\t\t\t\t\tValueReference syntheaReference `json:\"valueReference\"`\n\t\t\t\t} `json:\"supportingInfo\"`\n\t\t\t\tTelecom              []map[string]string `json:\"telecom\"`\n\t\t\t\tText                 map[string]string   `json:\"text\"`\n\t\t\t\tTotal                RawValue            `json:\"total\"`\n\t\t\t\tType                 RawValue            `json:\"type\"`\n\t\t\t\tUse                  string              `json:\"use\"`\n\t\t\t\tVaccineCode          syntheaCode         `json:\"vaccineCode\"`\n\t\t\t\tValueCodeableConcept syntheaCode         `json:\"valueCodeableConcept\"`\n\t\t\t\tValueQuantity        syntheaCoding       `json:\"valueQuantity\"`\n\t\t\t\tVerificationStatus   syntheaCode         `json:\"verificationStatus\"`\n\t\t\t} `json:\"resource\"`\n\t\t} `json:\"entry\"`\n\t\tResourceType string `json:\"resourceType\"`\n\t\tType         string `json:\"type\"`\n\t}\n\tsyntheaCode struct {\n\t\tCoding []syntheaCoding `json:\"coding\"`\n\t\tText   string          `json:\"text\"`\n\t}\n\tsyntheaCoding struct {\n\t\tCode    string  `json:\"code\"`\n\t\tDisplay string  `json:\"display\"`\n\t\tSystem  string  `json:\"system\"`\n\t\tUnit    string  `json:\"unit\"`\n\t\tValue   float64 `json:\"value\"`\n\t}\n\tsyntheaReference struct {\n\t\tDisplay   string `json:\"display\"`\n\t\tReference string `json:\"reference\"`\n\t}\n\tsyntheaAddress struct {\n\t\tCity       string             `json:\"city\"`\n\t\tCountry    string             `json:\"country\"`\n\t\tExtension  []syntheaExtension `json:\"extension\"`\n\t\tLine       []string           `json:\"line\"`\n\t\tPostalCode string             `json:\"postalCode\"`\n\t\tState      string             `json:\"state\"`\n\t}\n\tsyntheaExtension struct {\n\t\tURL          string             `json:\"url\"`\n\t\tValueAddress syntheaAddress     `json:\"valueAddress\"`\n\t\tValueCode    string             `json:\"valueCode\"`\n\t\tValueDecimal float64            `json:\"valueDecimal\"`\n\t\tValueString  string             `json:\"valueString\"`\n\t\tExtension    []syntheaExtension `json:\"extension\"`\n\t}\n\tsyntheaRange struct {\n\t\tEnd   time.Time `json:\"end\"`\n\t\tStart time.Time `json:\"start\"`\n\t}\n\tsyntheaCurrency struct {\n\t\tCurrency string  `json:\"currency\"`\n\t\tValue    float64 `json:\"value\"`\n\t}\n)\n\ntype (\n\ttwitterRoot struct {\n\t\tStatuses       []twitterStatus `json:\"statuses\"`\n\t\tSearchMetadata struct {\n\t\t\tCompletedIn float64 `json:\"completed_in\"`\n\t\t\tMaxID       int64   `json:\"max_id\"`\n\t\t\tMaxIDStr    int64   `json:\"max_id_str,string\"`\n\t\t\tNextResults string  `json:\"next_results\"`\n\t\t\tQuery       string  `json:\"query\"`\n\t\t\tRefreshURL  string  `json:\"refresh_url\"`\n\t\t\tCount       int     `json:\"count\"`\n\t\t\tSinceID     int     `json:\"since_id\"`\n\t\t\tSinceIDStr  int     `json:\"since_id_str,string\"`\n\t\t} `json:\"search_metadata\"`\n\t}\n\ttwitterStatus struct {\n\t\tMetadata struct {\n\t\t\tResultType      string `json:\"result_type\"`\n\t\t\tIsoLanguageCode string `json:\"iso_language_code\"`\n\t\t} `json:\"metadata\"`\n\t\tCreatedAt            string          `json:\"created_at\"`\n\t\tID                   int64           `json:\"id\"`\n\t\tIDStr                int64           `json:\"id_str,string\"`\n\t\tText                 string          `json:\"text\"`\n\t\tSource               string          `json:\"source\"`\n\t\tTruncated            bool            `json:\"truncated\"`\n\t\tInReplyToStatusID    int64           `json:\"in_reply_to_status_id\"`\n\t\tInReplyToStatusIDStr int64           `json:\"in_reply_to_status_id_str,string\"`\n\t\tInReplyToUserID      int64           `json:\"in_reply_to_user_id\"`\n\t\tInReplyToUserIDStr   int64           `json:\"in_reply_to_user_id_str,string\"`\n\t\tInReplyToScreenName  string          `json:\"in_reply_to_screen_name\"`\n\t\tUser                 twitterUser     `json:\"user,omitempty\"`\n\t\tGeo                  any             `json:\"geo\"`\n\t\tCoordinates          any             `json:\"coordinates\"`\n\t\tPlace                any             `json:\"place\"`\n\t\tContributors         any             `json:\"contributors\"`\n\t\tRetweeetedStatus     *twitterStatus  `json:\"retweeted_status\"`\n\t\tRetweetCount         int             `json:\"retweet_count\"`\n\t\tFavoriteCount        int             `json:\"favorite_count\"`\n\t\tEntities             twitterEntities `json:\"entities,omitempty\"`\n\t\tFavorited            bool            `json:\"favorited\"`\n\t\tRetweeted            bool            `json:\"retweeted\"`\n\t\tPossiblySensitive    bool            `json:\"possibly_sensitive\"`\n\t\tLang                 string          `json:\"lang\"`\n\t}\n\ttwitterUser struct {\n\t\tID                             int64           `json:\"id\"`\n\t\tIDStr                          string          `json:\"id_str\"`\n\t\tName                           string          `json:\"name\"`\n\t\tScreenName                     string          `json:\"screen_name\"`\n\t\tLocation                       string          `json:\"location\"`\n\t\tDescription                    string          `json:\"description\"`\n\t\tURL                            any             `json:\"url\"`\n\t\tEntities                       twitterEntities `json:\"entities\"`\n\t\tProtected                      bool            `json:\"protected\"`\n\t\tFollowersCount                 int             `json:\"followers_count\"`\n\t\tFriendsCount                   int             `json:\"friends_count\"`\n\t\tListedCount                    int             `json:\"listed_count\"`\n\t\tCreatedAt                      string          `json:\"created_at\"`\n\t\tFavouritesCount                int             `json:\"favourites_count\"`\n\t\tUtcOffset                      int             `json:\"utc_offset\"`\n\t\tTimeZone                       string          `json:\"time_zone\"`\n\t\tGeoEnabled                     bool            `json:\"geo_enabled\"`\n\t\tVerified                       bool            `json:\"verified\"`\n\t\tStatusesCount                  int             `json:\"statuses_count\"`\n\t\tLang                           string          `json:\"lang\"`\n\t\tContributorsEnabled            bool            `json:\"contributors_enabled\"`\n\t\tIsTranslator                   bool            `json:\"is_translator\"`\n\t\tIsTranslationEnabled           bool            `json:\"is_translation_enabled\"`\n\t\tProfileBackgroundColor         string          `json:\"profile_background_color\"`\n\t\tProfileBackgroundImageURL      string          `json:\"profile_background_image_url\"`\n\t\tProfileBackgroundImageURLHTTPS string          `json:\"profile_background_image_url_https\"`\n\t\tProfileBackgroundTile          bool            `json:\"profile_background_tile\"`\n\t\tProfileImageURL                string          `json:\"profile_image_url\"`\n\t\tProfileImageURLHTTPS           string          `json:\"profile_image_url_https\"`\n\t\tProfileBannerURL               string          `json:\"profile_banner_url\"`\n\t\tProfileLinkColor               string          `json:\"profile_link_color\"`\n\t\tProfileSidebarBorderColor      string          `json:\"profile_sidebar_border_color\"`\n\t\tProfileSidebarFillColor        string          `json:\"profile_sidebar_fill_color\"`\n\t\tProfileTextColor               string          `json:\"profile_text_color\"`\n\t\tProfileUseBackgroundImage      bool            `json:\"profile_use_background_image\"`\n\t\tDefaultProfile                 bool            `json:\"default_profile\"`\n\t\tDefaultProfileImage            bool            `json:\"default_profile_image\"`\n\t\tFollowing                      bool            `json:\"following\"`\n\t\tFollowRequestSent              bool            `json:\"follow_request_sent\"`\n\t\tNotifications                  bool            `json:\"notifications\"`\n\t}\n\ttwitterEntities struct {\n\t\tHashtags     []any        `json:\"hashtags\"`\n\t\tSymbols      []any        `json:\"symbols\"`\n\t\tURL          *twitterURL  `json:\"url\"`\n\t\tURLs         []twitterURL `json:\"urls\"`\n\t\tUserMentions []struct {\n\t\t\tScreenName string `json:\"screen_name\"`\n\t\t\tName       string `json:\"name\"`\n\t\t\tID         int64  `json:\"id\"`\n\t\t\tIDStr      int64  `json:\"id_str,string\"`\n\t\t\tIndices    []int  `json:\"indices\"`\n\t\t} `json:\"user_mentions\"`\n\t\tDescription struct {\n\t\t\tURLs []twitterURL `json:\"urls\"`\n\t\t} `json:\"description\"`\n\t\tMedia []struct {\n\t\t\tID            int64  `json:\"id\"`\n\t\t\tIDStr         string `json:\"id_str\"`\n\t\t\tIndices       []int  `json:\"indices\"`\n\t\t\tMediaURL      string `json:\"media_url\"`\n\t\t\tMediaURLHTTPS string `json:\"media_url_https\"`\n\t\t\tURL           string `json:\"url\"`\n\t\t\tDisplayURL    string `json:\"display_url\"`\n\t\t\tExpandedURL   string `json:\"expanded_url\"`\n\t\t\tType          string `json:\"type\"`\n\t\t\tSizes         map[string]struct {\n\t\t\t\tW      int    `json:\"w\"`\n\t\t\t\tH      int    `json:\"h\"`\n\t\t\t\tResize string `json:\"resize\"`\n\t\t\t} `json:\"sizes\"`\n\t\t\tSourceStatusID    int64 `json:\"source_status_id\"`\n\t\t\tSourceStatusIDStr int64 `json:\"source_status_id_str,string\"`\n\t\t} `json:\"media\"`\n\t}\n\ttwitterURL struct {\n\t\tURL         string       `json:\"url\"`\n\t\tURLs        []twitterURL `json:\"urls\"`\n\t\tExpandedURL string       `json:\"expanded_url\"`\n\t\tDisplayURL  string       `json:\"display_url\"`\n\t\tIndices     []int        `json:\"indices\"`\n\t}\n)\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/token.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"math\"\n\t\"strconv\"\n)\n\n// NOTE: Token is analogous to v1 json.Token.\n\nconst (\n\tmaxInt64  = math.MaxInt64\n\tminInt64  = math.MinInt64\n\tmaxUint64 = math.MaxUint64\n\tminUint64 = 0 // for consistency and readability purposes\n\n\tinvalidTokenPanic = \"invalid json.Token; it has been voided by a subsequent json.Decoder call\"\n)\n\n// Token represents a lexical JSON token, which may be one of the following:\n//   - a JSON literal (i.e., null, true, or false)\n//   - a JSON string (e.g., \"hello, world!\")\n//   - a JSON number (e.g., 123.456)\n//   - a start or end delimiter for a JSON object (i.e., { or } )\n//   - a start or end delimiter for a JSON array (i.e., [ or ] )\n//\n// A Token cannot represent entire array or object values, while a RawValue can.\n// There is no Token to represent commas and colons since\n// these structural tokens can be inferred from the surrounding context.\ntype Token struct {\n\tnonComparable\n\n\t// Tokens can exist in either a \"raw\" or an \"exact\" form.\n\t// Tokens produced by the Decoder are in the \"raw\" form.\n\t// Tokens returned by constructors are usually in the \"exact\" form.\n\t// The Encoder accepts Tokens in either the \"raw\" or \"exact\" form.\n\t//\n\t// The following chart shows the possible values for each Token type:\n\t//\t╔═════════════════╦════════════╤════════════╤════════════╗\n\t//\t║ Token type      ║ raw field  │ str field  │ num field  ║\n\t//\t╠═════════════════╬════════════╪════════════╪════════════╣\n\t//\t║ null   (raw)    ║ \"null\"     │ \"\"         │ 0          ║\n\t//\t║ false  (raw)    ║ \"false\"    │ \"\"         │ 0          ║\n\t//\t║ true   (raw)    ║ \"true\"     │ \"\"         │ 0          ║\n\t//\t║ string (raw)    ║ non-empty  │ \"\"         │ offset     ║\n\t//\t║ string (string) ║ nil        │ non-empty  │ 0          ║\n\t//\t║ number (raw)    ║ non-empty  │ \"\"         │ offset     ║\n\t//\t║ number (float)  ║ nil        │ \"f\"        │ non-zero   ║\n\t//\t║ number (int64)  ║ nil        │ \"i\"        │ non-zero   ║\n\t//\t║ number (uint64) ║ nil        │ \"u\"        │ non-zero   ║\n\t//\t║ object (delim)  ║ \"{\" or \"}\" │ \"\"         │ 0          ║\n\t//\t║ array  (delim)  ║ \"[\" or \"]\" │ \"\"         │ 0          ║\n\t//\t╚═════════════════╩════════════╧════════════╧════════════╝\n\t//\n\t// Notes:\n\t//   - For tokens stored in \"raw\" form, the num field contains the\n\t//     absolute offset determined by raw.previousOffsetStart().\n\t//     The buffer itself is stored in raw.previousBuffer().\n\t//   - JSON literals and structural characters are always in the \"raw\" form.\n\t//   - JSON strings and numbers can be in either \"raw\" or \"exact\" forms.\n\t//   - The exact zero value of JSON strings and numbers in the \"exact\" forms\n\t//     have ambiguous representation. Thus, they are always represented\n\t//     in the \"raw\" form.\n\n\t// raw contains a reference to the raw decode buffer.\n\t// If non-nil, then its value takes precedence over str and num.\n\t// It is only valid if num == raw.previousOffsetStart().\n\traw *decodeBuffer\n\n\t// str is the unescaped JSON string if num is zero.\n\t// Otherwise, it is \"f\", \"i\", or \"u\" if num should be interpreted\n\t// as a float64, int64, or uint64, respectively.\n\tstr string\n\n\t// num is a float64, int64, or uint64 stored as a uint64 value.\n\t// It is non-zero for any JSON number in the \"exact\" form.\n\tnum uint64\n}\n\n// TODO: Does representing 1-byte delimiters as *decodeBuffer cause performance issues?\n\nvar (\n\tNull  Token = rawToken(\"null\")\n\tFalse Token = rawToken(\"false\")\n\tTrue  Token = rawToken(\"true\")\n\n\tObjectStart Token = rawToken(\"{\")\n\tObjectEnd   Token = rawToken(\"}\")\n\tArrayStart  Token = rawToken(\"[\")\n\tArrayEnd    Token = rawToken(\"]\")\n\n\tzeroString Token = rawToken(`\"\"`)\n\tzeroNumber Token = rawToken(`0`)\n\n\tnanString  Token = String(\"NaN\")\n\tpinfString Token = String(\"Infinity\")\n\tninfString Token = String(\"-Infinity\")\n)\n\nfunc rawToken(s string) Token {\n\treturn Token{raw: &decodeBuffer{buf: []byte(s), prevStart: 0, prevEnd: len(s)}}\n}\n\n// Bool constructs a Token representing a JSON boolean.\nfunc Bool(b bool) Token {\n\tif b {\n\t\treturn True\n\t}\n\treturn False\n}\n\n// String constructs a Token representing a JSON string.\n// The provided string should contain valid UTF-8, otherwise invalid characters\n// may be mangled as the Unicode replacement character.\nfunc String(s string) Token {\n\tif len(s) == 0 {\n\t\treturn zeroString\n\t}\n\treturn Token{str: s}\n}\n\n// Float constructs a Token representing a JSON number.\n// The values NaN, +Inf, and -Inf will be represented\n// as a JSON string with the values \"NaN\", \"Infinity\", and \"-Infinity\".\nfunc Float(n float64) Token {\n\tswitch {\n\tcase math.Float64bits(n) == 0:\n\t\treturn zeroNumber\n\tcase math.IsNaN(n):\n\t\treturn nanString\n\tcase math.IsInf(n, +1):\n\t\treturn pinfString\n\tcase math.IsInf(n, -1):\n\t\treturn ninfString\n\t}\n\treturn Token{str: \"f\", num: math.Float64bits(n)}\n}\n\n// Int constructs a Token representing a JSON number from an int64.\nfunc Int(n int64) Token {\n\tif n == 0 {\n\t\treturn zeroNumber\n\t}\n\treturn Token{str: \"i\", num: uint64(n)}\n}\n\n// Uint constructs a Token representing a JSON number from a uint64.\nfunc Uint(n uint64) Token {\n\tif n == 0 {\n\t\treturn zeroNumber\n\t}\n\treturn Token{str: \"u\", num: uint64(n)}\n}\n\n// Clone makes a copy of the Token such that its value remains valid\n// even after a subsequent Decoder.Read call.\nfunc (t Token) Clone() Token {\n\t// TODO: Allow caller to avoid any allocations?\n\tif raw := t.raw; raw != nil {\n\t\t// Avoid copying globals.\n\t\tif t.raw.prevStart == 0 {\n\t\t\tswitch t.raw {\n\t\t\tcase Null.raw:\n\t\t\t\treturn Null\n\t\t\tcase False.raw:\n\t\t\t\treturn False\n\t\t\tcase True.raw:\n\t\t\t\treturn True\n\t\t\tcase ObjectStart.raw:\n\t\t\t\treturn ObjectStart\n\t\t\tcase ObjectEnd.raw:\n\t\t\t\treturn ObjectEnd\n\t\t\tcase ArrayStart.raw:\n\t\t\t\treturn ArrayStart\n\t\t\tcase ArrayEnd.raw:\n\t\t\t\treturn ArrayEnd\n\t\t\t}\n\t\t}\n\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\t// TODO(https://go.dev/issue/45038): Use bytes.Clone.\n\t\tbuf := append([]byte(nil), raw.previousBuffer()...)\n\t\treturn Token{raw: &decodeBuffer{buf: buf, prevStart: 0, prevEnd: len(buf)}}\n\t}\n\treturn t\n}\n\n// Bool returns the value for a JSON boolean.\n// It panics if the token kind is not a JSON boolean.\nfunc (t Token) Bool() bool {\n\tswitch t.raw {\n\tcase True.raw:\n\t\treturn true\n\tcase False.raw:\n\t\treturn false\n\tdefault:\n\t\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n\t}\n}\n\n// appendString appends a JSON string to dst and returns it.\n// It panics if t is not a JSON string.\nfunc (t Token) appendString(dst []byte, validateUTF8, preserveRaw bool, escapeRune func(rune) bool) ([]byte, error) {\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw string value.\n\t\tbuf := raw.previousBuffer()\n\t\tif Kind(buf[0]) == '\"' {\n\t\t\tif escapeRune == nil && consumeSimpleString(buf) == len(buf) {\n\t\t\t\treturn append(dst, buf...), nil\n\t\t\t}\n\t\t\tdst, _, err := reformatString(dst, buf, validateUTF8, preserveRaw, escapeRune)\n\t\t\treturn dst, err\n\t\t}\n\t} else if len(t.str) != 0 && t.num == 0 {\n\t\t// Handle exact string value.\n\t\treturn appendString(dst, t.str, validateUTF8, escapeRune)\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// String returns the unescaped string value for a JSON string.\n// For other JSON kinds, this returns the raw JSON representation.\nfunc (t Token) String() string {\n\t// This is inlinable to take advantage of \"function outlining\".\n\t// This avoids an allocation for the string(b) conversion\n\t// if the caller does not use the string in an escaping manner.\n\t// See https://blog.filippo.io/efficient-go-apis-with-the-inliner/\n\ts, b := t.string()\n\tif len(b) > 0 {\n\t\treturn string(b)\n\t}\n\treturn s\n}\nfunc (t Token) string() (string, []byte) {\n\tif raw := t.raw; raw != nil {\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\tbuf := raw.previousBuffer()\n\t\tif buf[0] == '\"' {\n\t\t\t// TODO: Preserve valueFlags in Token?\n\t\t\tisVerbatim := consumeSimpleString(buf) == len(buf)\n\t\t\treturn \"\", unescapeStringMayCopy(buf, isVerbatim)\n\t\t}\n\t\t// Handle tokens that are not JSON strings for fmt.Stringer.\n\t\treturn \"\", buf\n\t}\n\tif len(t.str) != 0 && t.num == 0 {\n\t\treturn t.str, nil\n\t}\n\t// Handle tokens that are not JSON strings for fmt.Stringer.\n\tif t.num > 0 {\n\t\tswitch t.str[0] {\n\t\tcase 'f':\n\t\t\treturn string(appendNumber(nil, math.Float64frombits(t.num), 64)), nil\n\t\tcase 'i':\n\t\t\treturn strconv.FormatInt(int64(t.num), 10), nil\n\t\tcase 'u':\n\t\t\treturn strconv.FormatUint(uint64(t.num), 10), nil\n\t\t}\n\t}\n\treturn \"<invalid json.Token>\", nil\n}\n\n// appendNumber appends a JSON number to dst and returns it.\n// It panics if t is not a JSON number.\nfunc (t Token) appendNumber(dst []byte, canonicalize bool) ([]byte, error) {\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw number value.\n\t\tbuf := raw.previousBuffer()\n\t\tif Kind(buf[0]).normalize() == '0' {\n\t\t\tif !canonicalize {\n\t\t\t\treturn append(dst, buf...), nil\n\t\t\t}\n\t\t\tdst, _, err := reformatNumber(dst, buf, canonicalize)\n\t\t\treturn dst, err\n\t\t}\n\t} else if t.num != 0 {\n\t\t// Handle exact number value.\n\t\tswitch t.str[0] {\n\t\tcase 'f':\n\t\t\treturn appendNumber(dst, math.Float64frombits(t.num), 64), nil\n\t\tcase 'i':\n\t\t\treturn strconv.AppendInt(dst, int64(t.num), 10), nil\n\t\tcase 'u':\n\t\t\treturn strconv.AppendUint(dst, uint64(t.num), 10), nil\n\t\t}\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// Float returns the floating-point value for a JSON number.\n// It returns a NaN, +Inf, or -Inf value for any JSON string\n// with the values \"NaN\", \"Infinity\", or \"-Infinity\".\n// It panics for all other cases.\nfunc (t Token) Float() float64 {\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw number value.\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\tbuf := raw.previousBuffer()\n\t\tif Kind(buf[0]).normalize() == '0' {\n\t\t\tfv, _ := parseFloat(buf, 64)\n\t\t\treturn fv\n\t\t}\n\t} else if t.num != 0 {\n\t\t// Handle exact number value.\n\t\tswitch t.str[0] {\n\t\tcase 'f':\n\t\t\treturn math.Float64frombits(t.num)\n\t\tcase 'i':\n\t\t\treturn float64(int64(t.num))\n\t\tcase 'u':\n\t\t\treturn float64(uint64(t.num))\n\t\t}\n\t}\n\n\t// Handle string values with \"NaN\", \"Infinity\", or \"-Infinity\".\n\tif t.Kind() == '\"' {\n\t\tswitch t.String() {\n\t\tcase \"NaN\":\n\t\t\treturn math.NaN()\n\t\tcase \"Infinity\":\n\t\t\treturn math.Inf(+1)\n\t\tcase \"-Infinity\":\n\t\t\treturn math.Inf(-1)\n\t\t}\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// Int returns the signed integer value for a JSON number.\n// The fractional component of any number is ignored (truncation toward zero).\n// Any number beyond the representation of an int64 will be saturated\n// to the closest representable value.\n// It panics if the token kind is not a JSON number.\nfunc (t Token) Int() int64 {\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw integer value.\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\tneg := false\n\t\tbuf := raw.previousBuffer()\n\t\tif len(buf) > 0 && buf[0] == '-' {\n\t\t\tneg, buf = true, buf[1:]\n\t\t}\n\t\tif numAbs, ok := parseDecUint(buf); ok {\n\t\t\tif neg {\n\t\t\t\tif numAbs > -minInt64 {\n\t\t\t\t\treturn minInt64\n\t\t\t\t}\n\t\t\t\treturn -1 * int64(numAbs)\n\t\t\t} else {\n\t\t\t\tif numAbs > +maxInt64 {\n\t\t\t\t\treturn maxInt64\n\t\t\t\t}\n\t\t\t\treturn +1 * int64(numAbs)\n\t\t\t}\n\t\t}\n\t} else if t.num != 0 {\n\t\t// Handle exact integer value.\n\t\tswitch t.str[0] {\n\t\tcase 'i':\n\t\t\treturn int64(t.num)\n\t\tcase 'u':\n\t\t\tif t.num > maxInt64 {\n\t\t\t\treturn maxInt64\n\t\t\t}\n\t\t\treturn int64(t.num)\n\t\t}\n\t}\n\n\t// Handle JSON number that is a floating-point value.\n\tif t.Kind() == '0' {\n\t\tswitch fv := t.Float(); {\n\t\tcase fv >= maxInt64:\n\t\t\treturn maxInt64\n\t\tcase fv <= minInt64:\n\t\t\treturn minInt64\n\t\tdefault:\n\t\t\treturn int64(fv) // truncation toward zero\n\t\t}\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// Uint returns the unsigned integer value for a JSON number.\n// The fractional component of any number is ignored (truncation toward zero).\n// Any number beyond the representation of an uint64 will be saturated\n// to the closest representable value.\n// It panics if the token kind is not a JSON number.\nfunc (t Token) Uint() uint64 {\n\t// NOTE: This accessor returns 0 for any negative JSON number,\n\t// which might be surprising, but is at least consistent with the behavior\n\t// of saturating out-of-bounds numbers to the closest representable number.\n\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw integer value.\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\tneg := false\n\t\tbuf := raw.previousBuffer()\n\t\tif len(buf) > 0 && buf[0] == '-' {\n\t\t\tneg, buf = true, buf[1:]\n\t\t}\n\t\tif num, ok := parseDecUint(buf); ok {\n\t\t\tif neg {\n\t\t\t\treturn minUint64\n\t\t\t}\n\t\t\treturn num\n\t\t}\n\t} else if t.num != 0 {\n\t\t// Handle exact integer value.\n\t\tswitch t.str[0] {\n\t\tcase 'u':\n\t\t\treturn t.num\n\t\tcase 'i':\n\t\t\tif int64(t.num) < minUint64 {\n\t\t\t\treturn minUint64\n\t\t\t}\n\t\t\treturn uint64(int64(t.num))\n\t\t}\n\t}\n\n\t// Handle JSON number that is a floating-point value.\n\tif t.Kind() == '0' {\n\t\tswitch fv := t.Float(); {\n\t\tcase fv >= maxUint64:\n\t\t\treturn maxUint64\n\t\tcase fv <= minUint64:\n\t\t\treturn minUint64\n\t\tdefault:\n\t\t\treturn uint64(fv) // truncation toward zero\n\t\t}\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// Kind returns the token kind.\nfunc (t Token) Kind() Kind {\n\tswitch {\n\tcase t.raw != nil:\n\t\traw := t.raw\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\treturn Kind(t.raw.buf[raw.prevStart]).normalize()\n\tcase t.num != 0:\n\t\treturn '0'\n\tcase len(t.str) != 0:\n\t\treturn '\"'\n\tdefault:\n\t\treturn invalidKind\n\t}\n}\n\n// Kind represents each possible JSON token kind with a single byte,\n// which is conveniently the first byte of that kind's grammar\n// with the restriction that numbers always be represented with '0':\n//\n//   - 'n': null\n//   - 'f': false\n//   - 't': true\n//   - '\"': string\n//   - '0': number\n//   - '{': object start\n//   - '}': object end\n//   - '[': array start\n//   - ']': array end\n//\n// An invalid kind is usually represented using 0,\n// but may be non-zero due to invalid JSON data.\ntype Kind byte\n\nconst invalidKind Kind = 0\n\n// String prints the kind in a humanly readable fashion.\nfunc (k Kind) String() string {\n\tswitch k {\n\tcase 'n':\n\t\treturn \"null\"\n\tcase 'f':\n\t\treturn \"false\"\n\tcase 't':\n\t\treturn \"true\"\n\tcase '\"':\n\t\treturn \"string\"\n\tcase '0':\n\t\treturn \"number\"\n\tcase '{':\n\t\treturn \"{\"\n\tcase '}':\n\t\treturn \"}\"\n\tcase '[':\n\t\treturn \"[\"\n\tcase ']':\n\t\treturn \"]\"\n\tdefault:\n\t\treturn \"<invalid json.Kind: \" + quoteRune([]byte{byte(k)}) + \">\"\n\t}\n}\n\n// normalize coalesces all possible starting characters of a number as just '0'.\nfunc (k Kind) normalize() Kind {\n\tif k == '-' || ('0' <= k && k <= '9') {\n\t\treturn '0'\n\t}\n\treturn k\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/token_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"math\"\n\t\"reflect\"\n\t\"testing\"\n)\n\nfunc TestTokenStringAllocations(t *testing.T) {\n\tif testing.CoverMode() != \"\" {\n\t\tt.Skip(\"coverage mode breaks the compiler optimization this depends on\")\n\t}\n\n\ttok := rawToken(`\"hello\"`)\n\tvar m map[string]bool\n\tgot := int(testing.AllocsPerRun(10, func() {\n\t\t// This function uses tok.String() is a non-escaping manner\n\t\t// (i.e., looking it up in a Go map). It should not allocate.\n\t\tif m[tok.String()] {\n\t\t\tpanic(\"never executed\")\n\t\t}\n\t}))\n\tif got > 0 {\n\t\tt.Errorf(\"Token.String allocated %d times, want 0\", got)\n\t}\n}\n\nfunc TestTokenAccessors(t *testing.T) {\n\ttype token struct {\n\t\tBool   bool\n\t\tString string\n\t\tFloat  float64\n\t\tInt    int64\n\t\tUint   uint64\n\t\tKind   Kind\n\t}\n\n\ttests := []struct {\n\t\tin   Token\n\t\twant token\n\t}{\n\t\t{Token{}, token{String: \"<invalid json.Token>\"}},\n\t\t{Null, token{String: \"null\", Kind: 'n'}},\n\t\t{False, token{Bool: false, String: \"false\", Kind: 'f'}},\n\t\t{True, token{Bool: true, String: \"true\", Kind: 't'}},\n\t\t{Bool(false), token{Bool: false, String: \"false\", Kind: 'f'}},\n\t\t{Bool(true), token{Bool: true, String: \"true\", Kind: 't'}},\n\t\t{ObjectStart, token{String: \"{\", Kind: '{'}},\n\t\t{ObjectEnd, token{String: \"}\", Kind: '}'}},\n\t\t{ArrayStart, token{String: \"[\", Kind: '['}},\n\t\t{ArrayEnd, token{String: \"]\", Kind: ']'}},\n\t\t{String(\"\"), token{String: \"\", Kind: '\"'}},\n\t\t{String(\"hello, world!\"), token{String: \"hello, world!\", Kind: '\"'}},\n\t\t{rawToken(`\"hello, world!\"`), token{String: \"hello, world!\", Kind: '\"'}},\n\t\t{Float(0), token{String: \"0\", Float: 0, Int: 0, Uint: 0, Kind: '0'}},\n\t\t{Float(math.Copysign(0, -1)), token{String: \"-0\", Float: math.Copysign(0, -1), Int: 0, Uint: 0, Kind: '0'}},\n\t\t{Float(math.NaN()), token{String: \"NaN\", Float: math.NaN(), Int: 0, Uint: 0, Kind: '\"'}},\n\t\t{Float(math.Inf(+1)), token{String: \"Infinity\", Float: math.Inf(+1), Kind: '\"'}},\n\t\t{Float(math.Inf(-1)), token{String: \"-Infinity\", Float: math.Inf(-1), Kind: '\"'}},\n\t\t{Int(minInt64), token{String: \"-9223372036854775808\", Float: minInt64, Int: minInt64, Uint: minUint64, Kind: '0'}},\n\t\t{Int(minInt64 + 1), token{String: \"-9223372036854775807\", Float: minInt64 + 1, Int: minInt64 + 1, Uint: minUint64, Kind: '0'}},\n\t\t{Int(-1), token{String: \"-1\", Float: -1, Int: -1, Uint: minUint64, Kind: '0'}},\n\t\t{Int(0), token{String: \"0\", Float: 0, Int: 0, Uint: 0, Kind: '0'}},\n\t\t{Int(+1), token{String: \"1\", Float: +1, Int: +1, Uint: +1, Kind: '0'}},\n\t\t{Int(maxInt64 - 1), token{String: \"9223372036854775806\", Float: maxInt64 - 1, Int: maxInt64 - 1, Uint: maxInt64 - 1, Kind: '0'}},\n\t\t{Int(maxInt64), token{String: \"9223372036854775807\", Float: maxInt64, Int: maxInt64, Uint: maxInt64, Kind: '0'}},\n\t\t{Uint(minUint64), token{String: \"0\", Kind: '0'}},\n\t\t{Uint(minUint64 + 1), token{String: \"1\", Float: minUint64 + 1, Int: minUint64 + 1, Uint: minUint64 + 1, Kind: '0'}},\n\t\t{Uint(maxUint64 - 1), token{String: \"18446744073709551614\", Float: maxUint64 - 1, Int: maxInt64, Uint: maxUint64 - 1, Kind: '0'}},\n\t\t{Uint(maxUint64), token{String: \"18446744073709551615\", Float: maxUint64, Int: maxInt64, Uint: maxUint64, Kind: '0'}},\n\t\t{rawToken(`-0`), token{String: \"-0\", Float: math.Copysign(0, -1), Int: 0, Uint: 0, Kind: '0'}},\n\t\t{rawToken(`1e1000`), token{String: \"1e1000\", Float: math.MaxFloat64, Int: maxInt64, Uint: maxUint64, Kind: '0'}},\n\t\t{rawToken(`-1e1000`), token{String: \"-1e1000\", Float: -math.MaxFloat64, Int: minInt64, Uint: minUint64, Kind: '0'}},\n\t\t{rawToken(`0.1`), token{String: \"0.1\", Float: 0.1, Int: 0, Uint: 0, Kind: '0'}},\n\t\t{rawToken(`0.5`), token{String: \"0.5\", Float: 0.5, Int: 0, Uint: 0, Kind: '0'}},\n\t\t{rawToken(`0.9`), token{String: \"0.9\", Float: 0.9, Int: 0, Uint: 0, Kind: '0'}},\n\t\t{rawToken(`1.1`), token{String: \"1.1\", Float: 1.1, Int: 1, Uint: 1, Kind: '0'}},\n\t\t{rawToken(`-0.1`), token{String: \"-0.1\", Float: -0.1, Int: 0, Uint: 0, Kind: '0'}},\n\t\t{rawToken(`-0.5`), token{String: \"-0.5\", Float: -0.5, Int: 0, Uint: 0, Kind: '0'}},\n\t\t{rawToken(`-0.9`), token{String: \"-0.9\", Float: -0.9, Int: 0, Uint: 0, Kind: '0'}},\n\t\t{rawToken(`-1.1`), token{String: \"-1.1\", Float: -1.1, Int: -1, Uint: 0, Kind: '0'}},\n\t\t{rawToken(`99999999999999999999`), token{String: \"99999999999999999999\", Float: 1e20 - 1, Int: maxInt64, Uint: maxUint64, Kind: '0'}},\n\t\t{rawToken(`-99999999999999999999`), token{String: \"-99999999999999999999\", Float: -1e20 - 1, Int: minInt64, Uint: minUint64, Kind: '0'}},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(\"\", func(t *testing.T) {\n\t\t\tgot := token{\n\t\t\t\tBool: func() bool {\n\t\t\t\t\tdefer func() { recover() }()\n\t\t\t\t\treturn tt.in.Bool()\n\t\t\t\t}(),\n\t\t\t\tString: tt.in.String(),\n\t\t\t\tFloat: func() float64 {\n\t\t\t\t\tdefer func() { recover() }()\n\t\t\t\t\treturn tt.in.Float()\n\t\t\t\t}(),\n\t\t\t\tInt: func() int64 {\n\t\t\t\t\tdefer func() { recover() }()\n\t\t\t\t\treturn tt.in.Int()\n\t\t\t\t}(),\n\t\t\t\tUint: func() uint64 {\n\t\t\t\t\tdefer func() { recover() }()\n\t\t\t\t\treturn tt.in.Uint()\n\t\t\t\t}(),\n\t\t\t\tKind: tt.in.Kind(),\n\t\t\t}\n\n\t\t\tif got.Bool != tt.want.Bool {\n\t\t\t\tt.Errorf(\"Token(%s).Bool() = %v, want %v\", tt.in, got.Bool, tt.want.Bool)\n\t\t\t}\n\t\t\tif got.String != tt.want.String {\n\t\t\t\tt.Errorf(\"Token(%s).String() = %v, want %v\", tt.in, got.String, tt.want.String)\n\t\t\t}\n\t\t\tif math.Float64bits(got.Float) != math.Float64bits(tt.want.Float) {\n\t\t\t\tt.Errorf(\"Token(%s).Float() = %v, want %v\", tt.in, got.Float, tt.want.Float)\n\t\t\t}\n\t\t\tif got.Int != tt.want.Int {\n\t\t\t\tt.Errorf(\"Token(%s).Int() = %v, want %v\", tt.in, got.Int, tt.want.Int)\n\t\t\t}\n\t\t\tif got.Uint != tt.want.Uint {\n\t\t\t\tt.Errorf(\"Token(%s).Uint() = %v, want %v\", tt.in, got.Uint, tt.want.Uint)\n\t\t\t}\n\t\t\tif got.Kind != tt.want.Kind {\n\t\t\t\tt.Errorf(\"Token(%s).Kind() = %v, want %v\", tt.in, got.Kind, tt.want.Kind)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestTokenClone(t *testing.T) {\n\ttests := []struct {\n\t\tin           Token\n\t\twantExactRaw bool\n\t}{\n\t\t{Token{}, true},\n\t\t{Null, true},\n\t\t{False, true},\n\t\t{True, true},\n\t\t{ObjectStart, true},\n\t\t{ObjectEnd, true},\n\t\t{ArrayStart, true},\n\t\t{ArrayEnd, true},\n\t\t{String(\"hello, world!\"), true},\n\t\t{rawToken(`\"hello, world!\"`), false},\n\t\t{Float(3.14159), true},\n\t\t{rawToken(`3.14159`), false},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(\"\", func(t *testing.T) {\n\t\t\tgot := tt.in.Clone()\n\t\t\tif !reflect.DeepEqual(got, tt.in) {\n\t\t\t\tt.Errorf(\"Token(%s) == Token(%s).Clone() = false, want true\", tt.in, tt.in)\n\t\t\t}\n\t\t\tgotExactRaw := got.raw == tt.in.raw\n\t\t\tif gotExactRaw != tt.wantExactRaw {\n\t\t\t\tt.Errorf(\"Token(%s).raw == Token(%s).Clone().raw = %v, want %v\", tt.in, tt.in, gotExactRaw, tt.wantExactRaw)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/value.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"sort\"\n\t\"sync\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n// NOTE: RawValue is analogous to v1 json.RawMessage.\n\n// RawValue represents a single raw JSON value, which may be one of the following:\n//   - a JSON literal (i.e., null, true, or false)\n//   - a JSON string (e.g., \"hello, world!\")\n//   - a JSON number (e.g., 123.456)\n//   - an entire JSON object (e.g., {\"fizz\":\"buzz\"} )\n//   - an entire JSON array (e.g., [1,2,3] )\n//\n// RawValue can represent entire array or object values, while Token cannot.\n// RawValue may contain leading and/or trailing whitespace.\ntype RawValue []byte\n\n// Clone returns a copy of v.\nfunc (v RawValue) Clone() RawValue {\n\tif v == nil {\n\t\treturn nil\n\t}\n\treturn append(RawValue{}, v...)\n}\n\n// String returns the string formatting of v.\nfunc (v RawValue) String() string {\n\tif v == nil {\n\t\treturn \"null\"\n\t}\n\treturn string(v)\n}\n\n// IsValid reports whether the raw JSON value is syntactically valid\n// according to RFC 7493.\n//\n// It verifies whether the input is properly encoded as UTF-8,\n// that escape sequences within strings decode to valid Unicode codepoints, and\n// that all names in each object are unique.\n// It does not verify whether numbers are representable within the limits\n// of any common numeric type (e.g., float64, int64, or uint64).\nfunc (v RawValue) IsValid() bool {\n\td := getBufferedDecoder(v, DecodeOptions{})\n\tdefer putBufferedDecoder(d)\n\t_, errVal := d.ReadValue()\n\t_, errEOF := d.ReadToken()\n\treturn errVal == nil && errEOF == io.EOF\n}\n\n// Compact removes all whitespace from the raw JSON value.\n//\n// It does not reformat JSON strings to use any other representation.\n// It is guaranteed to succeed if the input is valid.\n// If the value is already compacted, then the buffer is not mutated.\nfunc (v *RawValue) Compact() error {\n\treturn v.reformat(false, false, \"\", \"\")\n}\n\n// Indent reformats the whitespace in the raw JSON value so that each element\n// in a JSON object or array begins on a new, indented line beginning with\n// prefix followed by one or more copies of indent according to the nesting.\n// The value does not begin with the prefix nor any indention,\n// to make it easier to embed inside other formatted JSON data.\n//\n// It does not reformat JSON strings to use any other representation.\n// It is guaranteed to succeed if the input is valid.\n// If the value is already indented properly, then the buffer is not mutated.\nfunc (v *RawValue) Indent(prefix, indent string) error {\n\treturn v.reformat(false, true, prefix, indent)\n}\n\n// Canonicalize canonicalizes the raw JSON value according to the\n// JSON Canonicalization Scheme (JCS) as defined by RFC 8785\n// where it produces a stable representation of a JSON value.\n//\n// The output stability is dependent on the stability of the application data\n// (see RFC 8785, Appendix E). It cannot produce stable output from\n// fundamentally unstable input. For example, if the JSON value\n// contains ephemeral data (e.g., a frequently changing timestamp),\n// then the value is still unstable regardless of whether this is called.\n//\n// Note that JCS treats all JSON numbers as IEEE 754 double precision numbers.\n// Any numbers with precision beyond what is representable by that form\n// will lose their precision when canonicalized. For example, integer values\n// beyond ±2⁵³ will lose their precision. It is recommended that\n// int64 and uint64 data types be represented as a JSON string.\n//\n// It is guaranteed to succeed if the input is valid.\n// If the value is already canonicalized, then the buffer is not mutated.\nfunc (v *RawValue) Canonicalize() error {\n\treturn v.reformat(true, false, \"\", \"\")\n}\n\n// TODO: Instead of implementing the v1 Marshaler/Unmarshaler,\n// consider implementing the v2 versions instead.\n\n// MarshalJSON returns v as the JSON encoding of v.\n// It returns the stored value as the raw JSON output without any validation.\n// If v is nil, then this returns a JSON null.\nfunc (v RawValue) MarshalJSON() ([]byte, error) {\n\t// NOTE: This matches the behavior of v1 json.RawMessage.MarshalJSON.\n\tif v == nil {\n\t\treturn []byte(\"null\"), nil\n\t}\n\treturn v, nil\n}\n\n// UnmarshalJSON sets v as the JSON encoding of b.\n// It stores a copy of the provided raw JSON input without any validation.\nfunc (v *RawValue) UnmarshalJSON(b []byte) error {\n\t// NOTE: This matches the behavior of v1 json.RawMessage.UnmarshalJSON.\n\tif v == nil {\n\t\treturn errors.New(\"json.RawValue: UnmarshalJSON on nil pointer\")\n\t}\n\t*v = append((*v)[:0], b...)\n\treturn nil\n}\n\n// Kind returns the starting token kind.\n// For a valid value, this will never include '}' or ']'.\nfunc (v RawValue) Kind() Kind {\n\tif v := v[consumeWhitespace(v):]; len(v) > 0 {\n\t\treturn Kind(v[0]).normalize()\n\t}\n\treturn invalidKind\n}\n\nfunc (v *RawValue) reformat(canonical, multiline bool, prefix, indent string) error {\n\tvar eo EncodeOptions\n\tif canonical {\n\t\teo.AllowInvalidUTF8 = false    // per RFC 8785, section 3.2.4\n\t\teo.AllowDuplicateNames = false // per RFC 8785, section 3.1\n\t\teo.canonicalizeNumbers = true  // per RFC 8785, section 3.2.2.3\n\t\teo.EscapeRune = nil            // per RFC 8785, section 3.2.2.2\n\t\teo.multiline = false           // per RFC 8785, section 3.2.1\n\t} else {\n\t\tif s := trimLeftSpaceTab(prefix); len(s) > 0 {\n\t\t\tpanic(\"json: invalid character \" + quoteRune([]byte(s)) + \" in indent prefix\")\n\t\t}\n\t\tif s := trimLeftSpaceTab(indent); len(s) > 0 {\n\t\t\tpanic(\"json: invalid character \" + quoteRune([]byte(s)) + \" in indent\")\n\t\t}\n\t\teo.AllowInvalidUTF8 = true\n\t\teo.AllowDuplicateNames = true\n\t\teo.preserveRawStrings = true\n\t\teo.multiline = multiline // in case indent is empty\n\t\teo.IndentPrefix = prefix\n\t\teo.Indent = indent\n\t}\n\teo.omitTopLevelNewline = true\n\n\t// Write the entire value to reformat all tokens and whitespace.\n\te := getBufferedEncoder(eo)\n\tdefer putBufferedEncoder(e)\n\tif err := e.WriteValue(*v); err != nil {\n\t\treturn err\n\t}\n\n\t// For canonical output, we may need to reorder object members.\n\tif canonical {\n\t\t// Obtain a buffered encoder just to use its internal buffer as\n\t\t// a scratch buffer in reorderObjects for reordering object members.\n\t\te2 := getBufferedEncoder(EncodeOptions{})\n\t\tdefer putBufferedEncoder(e2)\n\n\t\t// Disable redundant checks performed earlier during encoding.\n\t\td := getBufferedDecoder(e.buf, DecodeOptions{AllowInvalidUTF8: true, AllowDuplicateNames: true})\n\t\tdefer putBufferedDecoder(d)\n\t\treorderObjects(d, &e2.buf) // per RFC 8785, section 3.2.3\n\t}\n\n\t// Store the result back into the value if different.\n\tif !bytes.Equal(*v, e.buf) {\n\t\t*v = append((*v)[:0], e.buf...)\n\t}\n\treturn nil\n}\n\nfunc trimLeftSpaceTab(s string) string {\n\tfor i, r := range s {\n\t\tswitch r {\n\t\tcase ' ', '\\t':\n\t\tdefault:\n\t\t\treturn s[i:]\n\t\t}\n\t}\n\treturn \"\"\n}\n\ntype memberName struct {\n\t// name is the unescaped name.\n\tname []byte\n\t// before and after are byte offsets into Decoder.buf that represents\n\t// the entire name/value pair. It may contain leading commas.\n\tbefore, after int64\n}\n\nvar memberNamePool = sync.Pool{New: func() any { return new(memberNames) }}\n\nfunc getMemberNames() *memberNames {\n\tns := memberNamePool.Get().(*memberNames)\n\t*ns = (*ns)[:0]\n\treturn ns\n}\nfunc putMemberNames(ns *memberNames) {\n\tif cap(*ns) < 1<<10 {\n\t\tfor i := range *ns {\n\t\t\t(*ns)[i] = memberName{} // avoid pinning name\n\t\t}\n\t\tmemberNamePool.Put(ns)\n\t}\n}\n\ntype memberNames []memberName\n\nfunc (m *memberNames) Len() int           { return len(*m) }\nfunc (m *memberNames) Less(i, j int) bool { return lessUTF16((*m)[i].name, (*m)[j].name) }\nfunc (m *memberNames) Swap(i, j int)      { (*m)[i], (*m)[j] = (*m)[j], (*m)[i] }\n\n// reorderObjects recursively reorders all object members in place\n// according to the ordering specified in RFC 8785, section 3.2.3.\n//\n// Pre-conditions:\n//   - The value is valid (i.e., no decoder errors should ever occur).\n//   - The value is compact (i.e., no whitespace is present).\n//   - Initial call is provided a Decoder reading from the start of v.\n//\n// Post-conditions:\n//   - Exactly one JSON value is read from the Decoder.\n//   - All fully-parsed JSON objects are reordered by directly moving\n//     the members in the value buffer.\n//\n// The runtime is approximately O(n·log(n)) + O(m·log(m)),\n// where n is len(v) and m is the total number of object members.\nfunc reorderObjects(d *Decoder, scratch *[]byte) {\n\tswitch tok, _ := d.ReadToken(); tok.Kind() {\n\tcase '{':\n\t\t// Iterate and collect the name and offsets for every object member.\n\t\tmembers := getMemberNames()\n\t\tdefer putMemberNames(members)\n\t\tvar prevName []byte\n\t\tisSorted := true\n\n\t\tbeforeBody := d.InputOffset() // offset after '{'\n\t\tfor d.PeekKind() != '}' {\n\t\t\tbeforeName := d.InputOffset()\n\t\t\tvar flags valueFlags\n\t\t\tname, _ := d.readValue(&flags)\n\t\t\tname = unescapeStringMayCopy(name, flags.isVerbatim())\n\t\t\treorderObjects(d, scratch)\n\t\t\tafterValue := d.InputOffset()\n\n\t\t\tif isSorted && len(*members) > 0 {\n\t\t\t\tisSorted = lessUTF16(prevName, []byte(name))\n\t\t\t}\n\t\t\t*members = append(*members, memberName{name, beforeName, afterValue})\n\t\t\tprevName = name\n\t\t}\n\t\tafterBody := d.InputOffset() // offset before '}'\n\t\td.ReadToken()\n\n\t\t// Sort the members; return early if it's already sorted.\n\t\tif isSorted {\n\t\t\treturn\n\t\t}\n\t\t// TODO(https://go.dev/issue/47619): Use slices.Sort.\n\t\tsort.Sort(members)\n\n\t\t// Append the reordered members to a new buffer,\n\t\t// then copy the reordered members back over the original members.\n\t\t// Avoid swapping in place since each member may be a different size\n\t\t// where moving a member over a smaller member may corrupt the data\n\t\t// for subsequent members before they have been moved.\n\t\t//\n\t\t// The following invariant must hold:\n\t\t//\tsum([m.after-m.before for m in members]) == afterBody-beforeBody\n\t\tsorted := (*scratch)[:0]\n\t\tfor i, member := range *members {\n\t\t\tif d.buf[member.before] == ',' {\n\t\t\t\tmember.before++ // trim leading comma\n\t\t\t}\n\t\t\tsorted = append(sorted, d.buf[member.before:member.after]...)\n\t\t\tif i < len(*members)-1 {\n\t\t\t\tsorted = append(sorted, ',') // append trailing comma\n\t\t\t}\n\t\t}\n\t\tif int(afterBody-beforeBody) != len(sorted) {\n\t\t\tpanic(\"BUG: length invariant violated\")\n\t\t}\n\t\tcopy(d.buf[beforeBody:afterBody], sorted)\n\n\t\t// Update scratch buffer to the largest amount ever used.\n\t\tif len(sorted) > len(*scratch) {\n\t\t\t*scratch = sorted\n\t\t}\n\tcase '[':\n\t\tfor d.PeekKind() != ']' {\n\t\t\treorderObjects(d, scratch)\n\t\t}\n\t\td.ReadToken()\n\t}\n}\n\n// lessUTF16 reports whether x is lexicographically less than y according\n// to the UTF-16 codepoints of the UTF-8 encoded input strings.\n// This implements the ordering specified in RFC 8785, section 3.2.3.\n// The inputs must be valid UTF-8, otherwise this may panic.\nfunc lessUTF16[Bytes []byte | string](x, y Bytes) bool {\n\t// NOTE: This is an optimized, allocation-free implementation\n\t// of lessUTF16Simple in fuzz_test.go. FuzzLessUTF16 verifies that the\n\t// two implementations agree on the result of comparing any two strings.\n\n\tisUTF16Self := func(r rune) bool {\n\t\treturn ('\\u0000' <= r && r <= '\\uD7FF') || ('\\uE000' <= r && r <= '\\uFFFF')\n\t}\n\n\tvar invalidUTF8 bool\n\tx0, y0 := x, y\n\tfor {\n\t\tif len(x) == 0 || len(y) == 0 {\n\t\t\tif len(x) == len(y) && invalidUTF8 {\n\t\t\t\treturn string(x0) < string(y0)\n\t\t\t}\n\t\t\treturn len(x) < len(y)\n\t\t}\n\n\t\t// ASCII fast-path.\n\t\tif x[0] < utf8.RuneSelf || y[0] < utf8.RuneSelf {\n\t\t\tif x[0] != y[0] {\n\t\t\t\treturn x[0] < y[0]\n\t\t\t}\n\t\t\tx, y = x[1:], y[1:]\n\t\t\tcontinue\n\t\t}\n\n\t\t// Decode next pair of runes as UTF-8.\n\t\t// TODO(https://go.dev/issue/56948): Use a generic implementation\n\t\t// of utf8.DecodeRune, or rely on a compiler optimization to statically\n\t\t// hide the cost of a type switch (https://go.dev/issue/57072).\n\t\tvar rx, ry rune\n\t\tvar nx, ny int\n\t\tswitch any(x).(type) {\n\t\tcase string:\n\t\t\trx, nx = utf8.DecodeRuneInString(string(x))\n\t\t\try, ny = utf8.DecodeRuneInString(string(y))\n\t\tcase []byte:\n\t\t\trx, nx = utf8.DecodeRune([]byte(x))\n\t\t\try, ny = utf8.DecodeRune([]byte(y))\n\t\t}\n\n\t\tselfx := isUTF16Self(rx)\n\t\tselfy := isUTF16Self(ry)\n\t\tswitch {\n\t\t// The x rune is a single UTF-16 codepoint, while\n\t\t// the y rune is a surrogate pair of UTF-16 codepoints.\n\t\tcase selfx && !selfy:\n\t\t\try, _ = utf16.EncodeRune(ry)\n\t\t// The y rune is a single UTF-16 codepoint, while\n\t\t// the x rune is a surrogate pair of UTF-16 codepoints.\n\t\tcase selfy && !selfx:\n\t\t\trx, _ = utf16.EncodeRune(rx)\n\t\t}\n\t\tif rx != ry {\n\t\t\treturn rx < ry\n\t\t}\n\t\tinvalidUTF8 = invalidUTF8 || (rx == utf8.RuneError && nx == 1) || (ry == utf8.RuneError && ny == 1)\n\t\tx, y = x[nx:], y[ny:]\n\t}\n}\n"
  },
  {
    "path": "pkg/internal/third_party/go-json-experiment/json/value_test.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"reflect\"\n\t\"strings\"\n\t\"testing\"\n\t\"unicode/utf16\"\n)\n\ntype rawValueTestdataEntry struct {\n\tname                testName\n\tin                  string\n\twantValid           bool\n\twantCompacted       string\n\twantCompactErr      error  // implies wantCompacted is in\n\twantIndented        string // wantCompacted if empty; uses \"\\t\" for indent prefix and \"    \" for indent\n\twantIndentErr       error  // implies wantCompacted is in\n\twantCanonicalized   string // wantCompacted if empty\n\twantCanonicalizeErr error  // implies wantCompacted is in\n}\n\nvar rawValueTestdata = append(func() (out []rawValueTestdataEntry) {\n\t// Initialize rawValueTestdata from coderTestdata.\n\tfor _, td := range coderTestdata {\n\t\t// NOTE: The Compact method preserves the raw formatting of strings,\n\t\t// while the Encoder (by default) does not.\n\t\tif td.name.name == \"ComplicatedString\" {\n\t\t\ttd.outCompacted = strings.TrimSpace(td.in)\n\t\t}\n\t\tout = append(out, rawValueTestdataEntry{\n\t\t\tname:              td.name,\n\t\t\tin:                td.in,\n\t\t\twantValid:         true,\n\t\t\twantCompacted:     td.outCompacted,\n\t\t\twantIndented:      td.outIndented,\n\t\t\twantCanonicalized: td.outCanonicalized,\n\t\t})\n\t}\n\treturn out\n}(), []rawValueTestdataEntry{{\n\tname: name(\"RFC8785/Primitives\"),\n\tin: `{\n\t\t\"numbers\": [333333333.33333329, 1E30, 4.50,\n\t\t\t\t\t2e-3, 0.000000000000000000000000001],\n\t\t\"string\": \"\\u20ac$\\u000F\\u000aA'\\u0042\\u0022\\u005c\\\\\\\"\\/\",\n\t\t\"literals\": [null, true, false]\n\t}`,\n\twantValid:     true,\n\twantCompacted: `{\"numbers\":[333333333.33333329,1E30,4.50,2e-3,0.000000000000000000000000001],\"string\":\"\\u20ac$\\u000F\\u000aA'\\u0042\\u0022\\u005c\\\\\\\"\\/\",\"literals\":[null,true,false]}`,\n\twantIndented: `{\n\t    \"numbers\": [\n\t        333333333.33333329,\n\t        1E30,\n\t        4.50,\n\t        2e-3,\n\t        0.000000000000000000000000001\n\t    ],\n\t    \"string\": \"\\u20ac$\\u000F\\u000aA'\\u0042\\u0022\\u005c\\\\\\\"\\/\",\n\t    \"literals\": [\n\t        null,\n\t        true,\n\t        false\n\t    ]\n\t}`,\n\twantCanonicalized: `{\"literals\":[null,true,false],\"numbers\":[333333333.3333333,1e+30,4.5,0.002,1e-27],\"string\":\"€$\\u000f\\nA'B\\\"\\\\\\\\\\\"/\"}`,\n}, {\n\tname: name(\"RFC8785/ObjectOrdering\"),\n\tin: `{\n\t\t\"\\u20ac\": \"Euro Sign\",\n\t\t\"\\r\": \"Carriage Return\",\n\t\t\"\\ufb33\": \"Hebrew Letter Dalet With Dagesh\",\n\t\t\"1\": \"One\",\n\t\t\"\\ud83d\\ude00\": \"Emoji: Grinning Face\",\n\t\t\"\\u0080\": \"Control\",\n\t\t\"\\u00f6\": \"Latin Small Letter O With Diaeresis\"\n\t}`,\n\twantValid:     true,\n\twantCompacted: `{\"\\u20ac\":\"Euro Sign\",\"\\r\":\"Carriage Return\",\"\\ufb33\":\"Hebrew Letter Dalet With Dagesh\",\"1\":\"One\",\"\\ud83d\\ude00\":\"Emoji: Grinning Face\",\"\\u0080\":\"Control\",\"\\u00f6\":\"Latin Small Letter O With Diaeresis\"}`,\n\twantIndented: `{\n\t    \"\\u20ac\": \"Euro Sign\",\n\t    \"\\r\": \"Carriage Return\",\n\t    \"\\ufb33\": \"Hebrew Letter Dalet With Dagesh\",\n\t    \"1\": \"One\",\n\t    \"\\ud83d\\ude00\": \"Emoji: Grinning Face\",\n\t    \"\\u0080\": \"Control\",\n\t    \"\\u00f6\": \"Latin Small Letter O With Diaeresis\"\n\t}`,\n\twantCanonicalized: `{\"\\r\":\"Carriage Return\",\"1\":\"One\",\"\":\"Control\",\"ö\":\"Latin Small Letter O With Diaeresis\",\"€\":\"Euro Sign\",\"😀\":\"Emoji: Grinning Face\",\"דּ\":\"Hebrew Letter Dalet With Dagesh\"}`,\n}, {\n\tname:          name(\"LargeIntegers\"),\n\tin:            ` [ -9223372036854775808 , 9223372036854775807 ] `,\n\twantValid:     true,\n\twantCompacted: `[-9223372036854775808,9223372036854775807]`,\n\twantIndented: `[\n\t    -9223372036854775808,\n\t    9223372036854775807\n\t]`,\n\twantCanonicalized: `[-9223372036854776000,9223372036854776000]`, // NOTE: Loss of precision due to numbers being treated as floats.\n}, {\n\tname:                name(\"InvalidUTF8\"),\n\tin:                  `  \"living` + \"\\xde\\xad\\xbe\\xef\" + `\\ufffd�\"  `,\n\twantValid:           false, // uses RFC 7493 as the definition; which validates UTF-8\n\twantCompacted:       `\"living` + \"\\xde\\xad\\xbe\\xef\" + `\\ufffd�\"`,\n\twantCanonicalizeErr: &SyntacticError{str: \"invalid UTF-8 within string\"},\n}, {\n\tname:                name(\"InvalidUTF8/SurrogateHalf\"),\n\tin:                  `\"\\ud800\"`,\n\twantValid:           false, // uses RFC 7493 as the definition; which validates UTF-8\n\twantCompacted:       `\"\\ud800\"`,\n\twantCanonicalizeErr: &SyntacticError{str: `invalid escape sequence \"\\\"\" within string`},\n}, {\n\tname:              name(\"UppercaseEscaped\"),\n\tin:                `\"\\u000B\"`,\n\twantValid:         true,\n\twantCompacted:     `\"\\u000B\"`,\n\twantCanonicalized: `\"\\u000b\"`,\n}, {\n\tname:          name(\"DuplicateNames\"),\n\tin:            ` { \"0\" : 0 , \"1\" : 1 , \"0\" : 0 }`,\n\twantValid:     false, // uses RFC 7493 as the definition; which does check for object uniqueness\n\twantCompacted: `{\"0\":0,\"1\":1,\"0\":0}`,\n\twantIndented: `{\n\t    \"0\": 0,\n\t    \"1\": 1,\n\t    \"0\": 0\n\t}`,\n\twantCanonicalizeErr: &SyntacticError{str: `duplicate name \"0\" in object`},\n}}...)\n\nfunc TestRawValueMethods(t *testing.T) {\n\tfor _, td := range rawValueTestdata {\n\t\tt.Run(td.name.name, func(t *testing.T) {\n\t\t\tif td.wantIndented == \"\" {\n\t\t\t\ttd.wantIndented = td.wantCompacted\n\t\t\t}\n\t\t\tif td.wantCanonicalized == \"\" {\n\t\t\t\ttd.wantCanonicalized = td.wantCompacted\n\t\t\t}\n\t\t\tif td.wantCompactErr != nil {\n\t\t\t\ttd.wantCompacted = td.in\n\t\t\t}\n\t\t\tif td.wantIndentErr != nil {\n\t\t\t\ttd.wantIndented = td.in\n\t\t\t}\n\t\t\tif td.wantCanonicalizeErr != nil {\n\t\t\t\ttd.wantCanonicalized = td.in\n\t\t\t}\n\n\t\t\tv := RawValue(td.in)\n\t\t\tgotValid := v.IsValid()\n\t\t\tif gotValid != td.wantValid {\n\t\t\t\tt.Errorf(\"%s: RawValue.IsValid = %v, want %v\", td.name.where, gotValid, td.wantValid)\n\t\t\t}\n\n\t\t\tgotCompacted := RawValue(td.in)\n\t\t\tgotCompactErr := gotCompacted.Compact()\n\t\t\tif string(gotCompacted) != td.wantCompacted {\n\t\t\t\tt.Errorf(\"%s: RawValue.Compact = %s, want %s\", td.name.where, gotCompacted, td.wantCompacted)\n\t\t\t}\n\t\t\tif !reflect.DeepEqual(gotCompactErr, td.wantCompactErr) {\n\t\t\t\tt.Errorf(\"%s: RawValue.Compact error mismatch: got %#v, want %#v\", td.name.where, gotCompactErr, td.wantCompactErr)\n\t\t\t}\n\n\t\t\tgotIndented := RawValue(td.in)\n\t\t\tgotIndentErr := gotIndented.Indent(\"\\t\", \"    \")\n\t\t\tif string(gotIndented) != td.wantIndented {\n\t\t\t\tt.Errorf(\"%s: RawValue.Indent = %s, want %s\", td.name.where, gotIndented, td.wantIndented)\n\t\t\t}\n\t\t\tif !reflect.DeepEqual(gotIndentErr, td.wantIndentErr) {\n\t\t\t\tt.Errorf(\"%s: RawValue.Indent error mismatch: got %#v, want %#v\", td.name.where, gotIndentErr, td.wantIndentErr)\n\t\t\t}\n\n\t\t\tgotCanonicalized := RawValue(td.in)\n\t\t\tgotCanonicalizeErr := gotCanonicalized.Canonicalize()\n\t\t\tif string(gotCanonicalized) != td.wantCanonicalized {\n\t\t\t\tt.Errorf(\"%s: RawValue.Canonicalize = %s, want %s\", td.name.where, gotCanonicalized, td.wantCanonicalized)\n\t\t\t}\n\t\t\tif !reflect.DeepEqual(gotCanonicalizeErr, td.wantCanonicalizeErr) {\n\t\t\t\tt.Errorf(\"%s: RawValue.Canonicalize error mismatch: got %#v, want %#v\", td.name.where, gotCanonicalizeErr, td.wantCanonicalizeErr)\n\t\t\t}\n\t\t})\n\t}\n}\n\nvar lessUTF16Testdata = []string{\"\", \"\\r\", \"1\", \"\\u0080\", \"\\u00f6\", \"\\u20ac\", \"\\U0001f600\", \"\\ufb33\"}\n\nfunc TestLessUTF16(t *testing.T) {\n\tfor i, si := range lessUTF16Testdata {\n\t\tfor j, sj := range lessUTF16Testdata {\n\t\t\tgot := lessUTF16([]byte(si), []byte(sj))\n\t\t\twant := i < j\n\t\t\tif got != want {\n\t\t\t\tt.Errorf(\"lessUTF16(%q, %q) = %v, want %v\", si, sj, got, want)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc FuzzLessUTF16(f *testing.F) {\n\tfor _, td1 := range lessUTF16Testdata {\n\t\tfor _, td2 := range lessUTF16Testdata {\n\t\t\tf.Add([]byte(td1), []byte(td2))\n\t\t}\n\t}\n\n\t// lessUTF16Simple is identical to lessUTF16,\n\t// but relies on naively converting a string to a []uint16 codepoints.\n\t// It is easy to verify as correct, but is slow.\n\tlessUTF16Simple := func(x, y []byte) bool {\n\t\tux := utf16.Encode([]rune(string(x)))\n\t\tuy := utf16.Encode([]rune(string(y)))\n\t\t// TODO(https://go.dev/issue/57433): Use slices.Compare.\n\t\tfor {\n\t\t\tif len(ux) == 0 || len(uy) == 0 {\n\t\t\t\tif len(ux) == len(uy) {\n\t\t\t\t\treturn string(x) < string(y)\n\t\t\t\t}\n\t\t\t\treturn len(ux) < len(uy)\n\t\t\t}\n\t\t\tif ux[0] != uy[0] {\n\t\t\t\treturn ux[0] < uy[0]\n\t\t\t}\n\t\t\tux, uy = ux[1:], uy[1:]\n\t\t}\n\t}\n\n\tf.Fuzz(func(t *testing.T, s1, s2 []byte) {\n\t\t// Compare the optimized and simplified implementations.\n\t\tgot := lessUTF16(s1, s2)\n\t\twant := lessUTF16Simple(s1, s2)\n\t\tif got != want {\n\t\t\tt.Errorf(\"lessUTF16(%q, %q) = %v, want %v\", s1, s2, got, want)\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "pkg/internal/third_party/govalidator/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014 Alex Saskevich\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
  },
  {
    "path": "pkg/internal/third_party/govalidator/patterns.go",
    "content": "package govalidator\n\nimport \"regexp\"\n\n// Basic regular expressions for validating strings\nconst (\n\tCreditCard string = \"^(?: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})$\"\n\tISBN10     string = \"^(?:[0-9]{9}X|[0-9]{10})$\"\n\tISBN13     string = \"^(?:[0-9]{13})$\"\n\tHexcolor   string = \"^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$\"\n\tRGBcolor   string = \"^rgb\\\\(\\\\s*(0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\s*,\\\\s*(0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\s*,\\\\s*(0|[1-9]\\\\d?|1\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\s*\\\\)$\"\n\tBase64     string = \"^(?:[A-Za-z0-9+\\\\/]{4})*(?:[A-Za-z0-9+\\\\/]{2}==|[A-Za-z0-9+\\\\/]{3}=|[A-Za-z0-9+\\\\/]{4})$\"\n\tSSN        string = `^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$`\n\tInt        string = \"^(?:[-+]?(?:0|[1-9][0-9]*))$\"\n)\n\nvar (\n\trxCreditCard = regexp.MustCompile(CreditCard)\n\trxInt        = regexp.MustCompile(Int)\n\trxISBN10     = regexp.MustCompile(ISBN10)\n\trxISBN13     = regexp.MustCompile(ISBN13)\n\trxHexcolor   = regexp.MustCompile(Hexcolor)\n\trxRGBcolor   = regexp.MustCompile(RGBcolor)\n\trxBase64     = regexp.MustCompile(Base64)\n\trxSSN        = regexp.MustCompile(SSN)\n)\n"
  },
  {
    "path": "pkg/internal/third_party/govalidator/validator.go",
    "content": "// Package govalidator is package of validators and sanitizers for strings, structs and collections.\npackage govalidator\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"net/url\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nvar (\n\tnotNumberRegexp     = regexp.MustCompile(\"[^0-9]+\")\n\twhiteSpacesAndMinus = regexp.MustCompile(`[\\s-]+`)\n)\n\n// IsRequestURI check if the string rawurl, assuming\n// it was received in an HTTP request, is an\n// absolute URI or an absolute path.\nfunc IsRequestURI(rawurl string) bool {\n\t_, err := url.ParseRequestURI(rawurl)\n\treturn err == nil\n}\n\n// IsHexcolor check if the string is a hexadecimal color.\nfunc IsHexcolor(str string) bool {\n\treturn rxHexcolor.MatchString(str)\n}\n\n// IsRGBcolor check if the string is a valid RGB color in form rgb(RRR, GGG, BBB).\nfunc IsRGBcolor(str string) bool {\n\treturn rxRGBcolor.MatchString(str)\n}\n\n// IsCreditCard check if the string is a credit card.\nfunc IsCreditCard(str string) bool {\n\tsanitized := notNumberRegexp.ReplaceAllString(str, \"\")\n\tif !rxCreditCard.MatchString(sanitized) {\n\t\treturn false\n\t}\n\tvar sum int64\n\tvar digit string\n\tvar tmpNum int64\n\tvar shouldDouble bool\n\tfor i := len(sanitized) - 1; i >= 0; i-- {\n\t\tdigit = sanitized[i:(i + 1)]\n\t\ttmpNum, _ = ToInt(digit)\n\t\tif shouldDouble {\n\t\t\ttmpNum *= 2\n\t\t\tif tmpNum >= 10 {\n\t\t\t\tsum += (tmpNum % 10) + 1\n\t\t\t} else {\n\t\t\t\tsum += tmpNum\n\t\t\t}\n\t\t} else {\n\t\t\tsum += tmpNum\n\t\t}\n\t\tshouldDouble = !shouldDouble\n\t}\n\n\treturn sum%10 == 0\n}\n\n// IsISBN10 check if the string is an ISBN version 10.\nfunc IsISBN10(str string) bool {\n\treturn IsISBN(str, 10)\n}\n\n// IsISBN13 check if the string is an ISBN version 13.\nfunc IsISBN13(str string) bool {\n\treturn IsISBN(str, 13)\n}\n\n// IsISBN check if the string is an ISBN (version 10 or 13).\n// If version value is not equal to 10 or 13, it will be check both variants.\nfunc IsISBN(str string, version int) bool {\n\tsanitized := whiteSpacesAndMinus.ReplaceAllString(str, \"\")\n\tvar checksum int32\n\tvar i int32\n\tif version == 10 {\n\t\tif !rxISBN10.MatchString(sanitized) {\n\t\t\treturn false\n\t\t}\n\t\tfor i = 0; i < 9; i++ {\n\t\t\tchecksum += (i + 1) * int32(sanitized[i]-'0')\n\t\t}\n\t\tif sanitized[9] == 'X' {\n\t\t\tchecksum += 10 * 10\n\t\t} else {\n\t\t\tchecksum += 10 * int32(sanitized[9]-'0')\n\t\t}\n\t\tif checksum%11 == 0 {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if version == 13 {\n\t\tif !rxISBN13.MatchString(sanitized) {\n\t\t\treturn false\n\t\t}\n\t\tfactor := []int32{1, 3}\n\t\tfor i = 0; i < 12; i++ {\n\t\t\tchecksum += factor[i%2] * int32(sanitized[i]-'0')\n\t\t}\n\t\treturn (int32(sanitized[12]-'0'))-((10-(checksum%10))%10) == 0\n\t}\n\treturn IsISBN(str, 10) || IsISBN(str, 13)\n}\n\n// IsBase64 check if a string is base64 encoded.\nfunc IsBase64(str string) bool {\n\treturn rxBase64.MatchString(str)\n}\n\n// IsIPv6 check if the string is an IP version 6.\nfunc IsIPv6(str string) bool {\n\tip := net.ParseIP(str)\n\treturn ip != nil && strings.Contains(str, \":\")\n}\n\n// IsMAC check if a string is valid MAC address.\n// Possible MAC formats:\n// 01:23:45:67:89:ab\n// 01:23:45:67:89:ab:cd:ef\n// 01-23-45-67-89-ab\n// 01-23-45-67-89-ab-cd-ef\n// 0123.4567.89ab\n// 0123.4567.89ab.cdef\nfunc IsMAC(str string) bool {\n\t_, err := net.ParseMAC(str)\n\treturn err == nil\n}\n\n// IsSSN will validate the given string as a U.S. Social Security Number\nfunc IsSSN(str string) bool {\n\tif str == \"\" || len(str) != 11 {\n\t\treturn false\n\t}\n\treturn rxSSN.MatchString(str)\n}\n\n// ToInt convert the input string or any int type to an integer type 64, or 0 if the input is not an integer.\nfunc ToInt(value interface{}) (res int64, err error) {\n\tval := reflect.ValueOf(value)\n\n\tswitch value.(type) {\n\tcase int, int8, int16, int32, int64:\n\t\tres = val.Int()\n\tcase uint, uint8, uint16, uint32, uint64:\n\t\tres = int64(val.Uint())\n\tcase string:\n\t\tif IsInt(val.String()) {\n\t\t\tres, err = strconv.ParseInt(val.String(), 0, 64)\n\t\t\tif err != nil {\n\t\t\t\tres = 0\n\t\t\t}\n\t\t} else {\n\t\t\terr = fmt.Errorf(\"math: square root of negative number %g\", value)\n\t\t\tres = 0\n\t\t}\n\tdefault:\n\t\terr = fmt.Errorf(\"math: square root of negative number %g\", value)\n\t\tres = 0\n\t}\n\n\treturn\n}\n\n// IsInt check if the string is an integer. Empty string is valid.\nfunc IsInt(str string) bool {\n\tif IsNull(str) {\n\t\treturn true\n\t}\n\treturn rxInt.MatchString(str)\n}\n\n// IsNull check if the string is null.\nfunc IsNull(str string) bool {\n\treturn len(str) == 0\n}\n"
  },
  {
    "path": "pkg/internal/third_party/govalidator/validator_test.go",
    "content": "package govalidator\n\nimport (\n\t\"testing\"\n)\n\nfunc TestIsRequestURI(t *testing.T) {\n\tt.Parallel()\n\n\tvar tests = []struct {\n\t\tparam    string\n\t\texpected bool\n\t}{\n\t\t{\"\", false},\n\t\t{\"http://foo.bar/#com\", true},\n\t\t{\"http://foobar.com\", true},\n\t\t{\"https://foobar.com\", true},\n\t\t{\"foobar.com\", false},\n\t\t{\"http://foobar.coffee/\", true},\n\t\t{\"http://foobar.中文网/\", true},\n\t\t{\"http://foobar.org/\", true},\n\t\t{\"http://foobar.org:8080/\", true},\n\t\t{\"ftp://foobar.ru/\", true},\n\t\t{\"http://user:pass@www.foobar.com/\", true},\n\t\t{\"http://127.0.0.1/\", true},\n\t\t{\"http://duckduckgo.com/?q=%2F\", true},\n\t\t{\"http://localhost:3000/\", true},\n\t\t{\"http://foobar.com/?foo=bar#baz=qux\", true},\n\t\t{\"http://foobar.com?foo=bar\", true},\n\t\t{\"http://www.xn--froschgrn-x9a.net/\", true},\n\t\t{\"xyz://foobar.com\", true},\n\t\t{\"invalid.\", false},\n\t\t{\".com\", false},\n\t\t{\"rtmp://foobar.com\", true},\n\t\t{\"http://www.foo_bar.com/\", true},\n\t\t{\"http://localhost:3000/\", true},\n\t\t{\"http://foobar.com/#baz=qux\", true},\n\t\t{\"http://foobar.com/t$-_.+!*\\\\'(),\", true},\n\t\t{\"http://www.foobar.com/~foobar\", true},\n\t\t{\"http://www.-foobar.com/\", true},\n\t\t{\"http://www.foo---bar.com/\", true},\n\t\t{\"mailto:someone@example.com\", true},\n\t\t{\"irc://irc.server.org/channel\", true},\n\t\t{\"/abs/test/dir\", true},\n\t\t{\"./rel/test/dir\", false},\n\t}\n\tfor _, test := range tests {\n\t\tactual := IsRequestURI(test.param)\n\t\tif actual != test.expected {\n\t\t\tt.Errorf(\"Expected IsRequestURI(%q) to be %v, got %v\", test.param, test.expected, actual)\n\t\t}\n\t}\n}\n\nfunc TestIsHexcolor(t *testing.T) {\n\tt.Parallel()\n\n\tvar tests = []struct {\n\t\tparam    string\n\t\texpected bool\n\t}{\n\t\t{\"\", false},\n\t\t{\"#ff\", false},\n\t\t{\"fff0\", false},\n\t\t{\"#ff12FG\", false},\n\t\t{\"CCccCC\", true},\n\t\t{\"fff\", true},\n\t\t{\"#f00\", true},\n\t}\n\tfor _, test := range tests {\n\t\tactual := IsHexcolor(test.param)\n\t\tif actual != test.expected {\n\t\t\tt.Errorf(\"Expected IsHexcolor(%q) to be %v, got %v\", test.param, test.expected, actual)\n\t\t}\n\t}\n}\n\nfunc TestIsRGBcolor(t *testing.T) {\n\tt.Parallel()\n\n\tvar tests = []struct {\n\t\tparam    string\n\t\texpected bool\n\t}{\n\t\t{\"\", false},\n\t\t{\"rgb(0,31,255)\", true},\n\t\t{\"rgb(1,349,275)\", false},\n\t\t{\"rgb(01,31,255)\", false},\n\t\t{\"rgb(0.6,31,255)\", false},\n\t\t{\"rgba(0,31,255)\", false},\n\t\t{\"rgb(0,  31, 255)\", true},\n\t}\n\tfor _, test := range tests {\n\t\tactual := IsRGBcolor(test.param)\n\t\tif actual != test.expected {\n\t\t\tt.Errorf(\"Expected IsRGBcolor(%q) to be %v, got %v\", test.param, test.expected, actual)\n\t\t}\n\t}\n}\n\nfunc TestIsCreditCard(t *testing.T) {\n\tt.Parallel()\n\ttests := []struct {\n\t\tname   string\n\t\tnumber string\n\t\twant   bool\n\t}{\n\t\t{\"empty\", \"\", false},\n\t\t{\"not numbers\", \"credit card\", false},\n\t\t{\"invalid luhn algorithm\", \"4220855426213389\", false},\n\n\t\t{\"visa\", \"4220855426222389\", true},\n\t\t{\"visa spaces\", \"4220 8554 2622 2389\", true},\n\t\t{\"visa dashes\", \"4220-8554-2622-2389\", true},\n\t\t{\"mastercard\", \"5139288802098206\", true},\n\t\t{\"american express\", \"374953669708156\", true},\n\t\t{\"discover\", \"6011464355444102\", true},\n\t\t{\"jcb\", \"3548209662790989\", true},\n\n\t\t// below should be valid, do they respect international standards?\n\t\t// is our validator logic not correct?\n\t\t{\"diners club international\", \"30190239451016\", false},\n\t\t{\"rupay\", \"6521674451993089\", false},\n\t\t{\"mir\", \"2204151414444676\", false},\n\t\t{\"china unionPay\", \"624356436327468104\", false},\n\t}\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tif got := IsCreditCard(tt.number); got != tt.want {\n\t\t\t\tt.Errorf(\"IsCreditCard(%v) = %v, want %v\", tt.number, got, tt.want)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestIsISBN(t *testing.T) {\n\tt.Parallel()\n\n\t// Without version\n\tvar tests = []struct {\n\t\tparam    string\n\t\texpected bool\n\t}{\n\t\t{\"\", false},\n\t\t{\"foo\", false},\n\t\t{\"3836221195\", true},\n\t\t{\"1-61729-085-8\", true},\n\t\t{\"3 423 21412 0\", true},\n\t\t{\"3 401 01319 X\", true},\n\t\t{\"9784873113685\", true},\n\t\t{\"978-4-87311-368-5\", true},\n\t\t{\"978 3401013190\", true},\n\t\t{\"978-3-8362-2119-1\", true},\n\t}\n\tfor _, test := range tests {\n\t\tactual := IsISBN(test.param, -1)\n\t\tif actual != test.expected {\n\t\t\tt.Errorf(\"Expected IsISBN(%q, -1) to be %v, got %v\", test.param, test.expected, actual)\n\t\t}\n\t}\n\n\t// ISBN 10\n\ttests = []struct {\n\t\tparam    string\n\t\texpected bool\n\t}{\n\t\t{\"\", false},\n\t\t{\"foo\", false},\n\t\t{\"3423214121\", false},\n\t\t{\"978-3836221191\", false},\n\t\t{\"3-423-21412-1\", false},\n\t\t{\"3 423 21412 1\", false},\n\t\t{\"3836221195\", true},\n\t\t{\"1-61729-085-8\", true},\n\t\t{\"3 423 21412 0\", true},\n\t\t{\"3 401 01319 X\", true},\n\t}\n\tfor _, test := range tests {\n\t\tactual := IsISBN10(test.param)\n\t\tif actual != test.expected {\n\t\t\tt.Errorf(\"Expected IsISBN10(%q) to be %v, got %v\", test.param, test.expected, actual)\n\t\t}\n\t}\n\n\t// ISBN 13\n\ttests = []struct {\n\t\tparam    string\n\t\texpected bool\n\t}{\n\t\t{\"\", false},\n\t\t{\"foo\", false},\n\t\t{\"3-8362-2119-5\", false},\n\t\t{\"01234567890ab\", false},\n\t\t{\"978 3 8362 2119 0\", false},\n\t\t{\"9784873113685\", true},\n\t\t{\"978-4-87311-368-5\", true},\n\t\t{\"978 3401013190\", true},\n\t\t{\"978-3-8362-2119-1\", true},\n\t}\n\tfor _, test := range tests {\n\t\tactual := IsISBN13(test.param)\n\t\tif actual != test.expected {\n\t\t\tt.Errorf(\"Expected IsISBN13(%q) to be %v, got %v\", test.param, test.expected, actual)\n\t\t}\n\t}\n}\n\nfunc TestIsBase64(t *testing.T) {\n\tt.Parallel()\n\n\tvar tests = []struct {\n\t\tparam    string\n\t\texpected bool\n\t}{\n\t\t{\"TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4=\", true},\n\t\t{\"Vml2YW11cyBmZXJtZW50dW0gc2VtcGVyIHBvcnRhLg==\", true},\n\t\t{\"U3VzcGVuZGlzc2UgbGVjdHVzIGxlbw==\", true},\n\t\t{\"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuMPNS1Ufof9EW/M98FNw\" +\n\t\t\t\"UAKrwflsqVxaxQjBQnHQmiI7Vac40t8x7pIb8gLGV6wL7sBTJiPovJ0V7y7oc0Ye\" +\n\t\t\t\"rhKh0Rm4skP2z/jHwwZICgGzBvA0rH8xlhUiTvcwDCJ0kc+fh35hNt8srZQM4619\" +\n\t\t\t\"FTgB66Xmp4EtVyhpQV+t02g6NzK72oZI0vnAvqhpkxLeLiMCyrI416wHm5Tkukhx\" +\n\t\t\t\"QmcL2a6hNOyu0ixX/x2kSFXApEnVrJ+/IxGyfyw8kf4N2IZpW5nEP847lpfj0SZZ\" +\n\t\t\t\"Fwrd1mnfnDbYohX2zRptLy2ZUn06Qo9pkG5ntvFEPo9bfZeULtjYzIl6K8gJ2uGZ\" + \"HQIDAQAB\", true},\n\t\t{\"12345\", false},\n\t\t{\"\", false},\n\t\t{\"Vml2YW11cyBmZXJtZtesting123\", false},\n\t}\n\tfor _, test := range tests {\n\t\tactual := IsBase64(test.param)\n\t\tif actual != test.expected {\n\t\t\tt.Errorf(\"Expected IsBase64(%q) to be %v, got %v\", test.param, test.expected, actual)\n\t\t}\n\t}\n}\n\nfunc TestIIsIPv6(t *testing.T) {\n\tt.Parallel()\n\n\t// IPv6\n\tvar tests = []struct {\n\t\tparam    string\n\t\texpected bool\n\t}{\n\t\t{\"\", false},\n\t\t{\"127.0.0.1\", false},\n\t\t{\"0.0.0.0\", false},\n\t\t{\"255.255.255.255\", false},\n\t\t{\"1.2.3.4\", false},\n\t\t{\"::1\", true},\n\t\t{\"2001:db8:0000:1:1:1:1:1\", true},\n\t\t{\"300.0.0.0\", false},\n\t}\n\tfor _, test := range tests {\n\t\tactual := IsIPv6(test.param)\n\t\tif actual != test.expected {\n\t\t\tt.Errorf(\"Expected IsIPv6(%q) to be %v, got %v\", test.param, test.expected, actual)\n\t\t}\n\t}\n}\n\nfunc TestIsMAC(t *testing.T) {\n\tt.Parallel()\n\n\tvar tests = []struct {\n\t\tparam    string\n\t\texpected bool\n\t}{\n\t\t{\"3D:F2:C9:A6:B3:4F\", true},\n\t\t{\"3D-F2-C9-A6-B3:4F\", false},\n\t\t{\"123\", false},\n\t\t{\"\", false},\n\t\t{\"abacaba\", false},\n\t}\n\tfor _, test := range tests {\n\t\tactual := IsMAC(test.param)\n\t\tif actual != test.expected {\n\t\t\tt.Errorf(\"Expected IsMAC(%q) to be %v, got %v\", test.param, test.expected, actual)\n\t\t}\n\t}\n}\n\nfunc TestIsSSN(t *testing.T) {\n\tt.Parallel()\n\n\tvar tests = []struct {\n\t\tparam    string\n\t\texpected bool\n\t}{\n\t\t{\"\", false},\n\t\t{\"00-90-8787\", false},\n\t\t{\"66690-76\", false},\n\t\t{\"191 60 2869\", true},\n\t\t{\"191-60-2869\", true},\n\t}\n\tfor _, test := range tests {\n\t\tactual := IsSSN(test.param)\n\t\tif actual != test.expected {\n\t\t\tt.Errorf(\"Expected IsSSN(%q) to be %v, got %v\", test.param, test.expected, actual)\n\t\t}\n\t}\n}\n\nfunc TestIsInt(t *testing.T) {\n\tt.Parallel()\n\n\tvar tests = []struct {\n\t\tparam    string\n\t\texpected bool\n\t}{\n\t\t{\"-2147483648\", true},          //Signed 32 Bit Min Int\n\t\t{\"2147483647\", true},           //Signed 32 Bit Max Int\n\t\t{\"-2147483649\", true},          //Signed 32 Bit Min Int - 1\n\t\t{\"2147483648\", true},           //Signed 32 Bit Max Int + 1\n\t\t{\"4294967295\", true},           //Unsigned 32 Bit Max Int\n\t\t{\"4294967296\", true},           //Unsigned 32 Bit Max Int + 1\n\t\t{\"-9223372036854775808\", true}, //Signed 64 Bit Min Int\n\t\t{\"9223372036854775807\", true},  //Signed 64 Bit Max Int\n\t\t{\"-9223372036854775809\", true}, //Signed 64 Bit Min Int - 1\n\t\t{\"9223372036854775808\", true},  //Signed 64 Bit Max Int + 1\n\t\t{\"18446744073709551615\", true}, //Unsigned 64 Bit Max Int\n\t\t{\"18446744073709551616\", true}, //Unsigned 64 Bit Max Int + 1\n\t\t{\"\", true},\n\t\t{\"123\", true},\n\t\t{\"0\", true},\n\t\t{\"-0\", true},\n\t\t{\"+0\", true},\n\t\t{\"01\", false},\n\t\t{\"123.123\", false},\n\t\t{\" \", false},\n\t\t{\"000\", false},\n\t}\n\tfor _, test := range tests {\n\t\tactual := IsInt(test.param)\n\t\tif actual != test.expected {\n\t\t\tt.Errorf(\"Expected IsInt(%q) to be %v, got %v\", test.param, test.expected, actual)\n\t\t}\n\t}\n}\n\nfunc TestIsNull(t *testing.T) {\n\tt.Parallel()\n\n\tvar tests = []struct {\n\t\tparam    string\n\t\texpected bool\n\t}{\n\t\t{\"abacaba\", false},\n\t\t{\"\", true},\n\t}\n\tfor _, test := range tests {\n\t\tactual := IsNull(test.param)\n\t\tif actual != test.expected {\n\t\t\tt.Errorf(\"Expected IsNull(%q) to be %v, got %v\", test.param, test.expected, actual)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/openapiconv/convert.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage openapiconv\n\nimport (\n\t\"strings\"\n\n\tklog \"k8s.io/klog/v2\"\n\tbuilderutil \"k8s.io/kube-openapi/pkg/builder3/util\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nvar OpenAPIV2DefPrefix = \"#/definitions/\"\nvar OpenAPIV3DefPrefix = \"#/components/schemas/\"\n\n// ConvertV2ToV3 converts an OpenAPI V2 object into V3.\n// Certain references may be shared between the V2 and V3 objects in the conversion.\nfunc ConvertV2ToV3(v2Spec *spec.Swagger) *spec3.OpenAPI {\n\tv3Spec := &spec3.OpenAPI{\n\t\tVersion:      \"3.0.0\",\n\t\tInfo:         v2Spec.Info,\n\t\tExternalDocs: ConvertExternalDocumentation(v2Spec.ExternalDocs),\n\t\tPaths:        ConvertPaths(v2Spec.Paths),\n\t\tComponents:   ConvertComponents(v2Spec.SecurityDefinitions, v2Spec.Definitions, v2Spec.Responses, v2Spec.Produces),\n\t}\n\n\treturn v3Spec\n}\n\nfunc ConvertExternalDocumentation(v2ED *spec.ExternalDocumentation) *spec3.ExternalDocumentation {\n\tif v2ED == nil {\n\t\treturn nil\n\t}\n\treturn &spec3.ExternalDocumentation{\n\t\tExternalDocumentationProps: spec3.ExternalDocumentationProps{\n\t\t\tDescription: v2ED.Description,\n\t\t\tURL:         v2ED.URL,\n\t\t},\n\t}\n}\n\nfunc ConvertComponents(v2SecurityDefinitions spec.SecurityDefinitions, v2Definitions spec.Definitions, v2Responses map[string]spec.Response, produces []string) *spec3.Components {\n\tcomponents := &spec3.Components{}\n\n\tif v2Definitions != nil {\n\t\tcomponents.Schemas = make(map[string]*spec.Schema)\n\t}\n\tfor s, schema := range v2Definitions {\n\t\tcomponents.Schemas[s] = ConvertSchema(&schema)\n\t}\n\tif v2SecurityDefinitions != nil {\n\t\tcomponents.SecuritySchemes = make(spec3.SecuritySchemes)\n\t}\n\tfor s, securityScheme := range v2SecurityDefinitions {\n\t\tcomponents.SecuritySchemes[s] = ConvertSecurityScheme(securityScheme)\n\t}\n\tif v2Responses != nil {\n\t\tcomponents.Responses = make(map[string]*spec3.Response)\n\t}\n\tfor r, response := range v2Responses {\n\t\tcomponents.Responses[r] = ConvertResponse(&response, produces)\n\t}\n\n\treturn components\n}\n\nfunc ConvertSchema(v2Schema *spec.Schema) *spec.Schema {\n\tif v2Schema == nil {\n\t\treturn nil\n\t}\n\tv3Schema := spec.Schema{\n\t\tVendorExtensible:   v2Schema.VendorExtensible,\n\t\tSchemaProps:        v2Schema.SchemaProps,\n\t\tSwaggerSchemaProps: v2Schema.SwaggerSchemaProps,\n\t\tExtraProps:         v2Schema.ExtraProps,\n\t}\n\n\tif refString := v2Schema.Ref.String(); refString != \"\" {\n\t\tif idx := strings.Index(refString, OpenAPIV2DefPrefix); idx != -1 {\n\t\t\tv3Schema.Ref = spec.MustCreateRef(OpenAPIV3DefPrefix + refString[idx+len(OpenAPIV2DefPrefix):])\n\t\t} else {\n\t\t\tklog.Errorf(\"Error: Swagger V2 Ref %s does not contain #/definitions\\n\", refString)\n\t\t}\n\t}\n\n\tif v2Schema.Properties != nil {\n\t\tv3Schema.Properties = make(map[string]spec.Schema)\n\t\tfor key, property := range v2Schema.Properties {\n\t\t\tv3Schema.Properties[key] = *ConvertSchema(&property)\n\t\t}\n\t}\n\tif v2Schema.Items != nil {\n\t\tv3Schema.Items = &spec.SchemaOrArray{\n\t\t\tSchema:  ConvertSchema(v2Schema.Items.Schema),\n\t\t\tSchemas: ConvertSchemaList(v2Schema.Items.Schemas),\n\t\t}\n\t}\n\n\tif v2Schema.AdditionalProperties != nil {\n\t\tv3Schema.AdditionalProperties = &spec.SchemaOrBool{\n\t\t\tSchema: ConvertSchema(v2Schema.AdditionalProperties.Schema),\n\t\t\tAllows: v2Schema.AdditionalProperties.Allows,\n\t\t}\n\t}\n\tif v2Schema.AdditionalItems != nil {\n\t\tv3Schema.AdditionalItems = &spec.SchemaOrBool{\n\t\t\tSchema: ConvertSchema(v2Schema.AdditionalItems.Schema),\n\t\t\tAllows: v2Schema.AdditionalItems.Allows,\n\t\t}\n\t}\n\n\treturn builderutil.WrapRefs(&v3Schema)\n}\n\nfunc ConvertSchemaList(v2SchemaList []spec.Schema) []spec.Schema {\n\tif v2SchemaList == nil {\n\t\treturn nil\n\t}\n\tv3SchemaList := []spec.Schema{}\n\tfor _, s := range v2SchemaList {\n\t\tv3SchemaList = append(v3SchemaList, *ConvertSchema(&s))\n\t}\n\treturn v3SchemaList\n}\n\nfunc ConvertSecurityScheme(v2securityScheme *spec.SecurityScheme) *spec3.SecurityScheme {\n\tif v2securityScheme == nil {\n\t\treturn nil\n\t}\n\tsecurityScheme := &spec3.SecurityScheme{\n\t\tVendorExtensible: v2securityScheme.VendorExtensible,\n\t\tSecuritySchemeProps: spec3.SecuritySchemeProps{\n\t\t\tDescription: v2securityScheme.Description,\n\t\t\tType:        v2securityScheme.Type,\n\t\t\tName:        v2securityScheme.Name,\n\t\t\tIn:          v2securityScheme.In,\n\t\t},\n\t}\n\n\tif v2securityScheme.Flow != \"\" {\n\t\tsecurityScheme.Flows = make(map[string]*spec3.OAuthFlow)\n\t\tsecurityScheme.Flows[v2securityScheme.Flow] = &spec3.OAuthFlow{\n\t\t\tOAuthFlowProps: spec3.OAuthFlowProps{\n\t\t\t\tAuthorizationUrl: v2securityScheme.AuthorizationURL,\n\t\t\t\tTokenUrl:         v2securityScheme.TokenURL,\n\t\t\t\tScopes:           v2securityScheme.Scopes,\n\t\t\t},\n\t\t}\n\t}\n\treturn securityScheme\n}\n\nfunc ConvertPaths(v2Paths *spec.Paths) *spec3.Paths {\n\tif v2Paths == nil {\n\t\treturn nil\n\t}\n\tpaths := &spec3.Paths{\n\t\tVendorExtensible: v2Paths.VendorExtensible,\n\t}\n\n\tif v2Paths.Paths != nil {\n\t\tpaths.Paths = make(map[string]*spec3.Path)\n\t}\n\tfor k, v := range v2Paths.Paths {\n\t\tpaths.Paths[k] = ConvertPathItem(v)\n\t}\n\treturn paths\n}\n\nfunc ConvertPathItem(v2pathItem spec.PathItem) *spec3.Path {\n\tpath := &spec3.Path{\n\t\tRefable: v2pathItem.Refable,\n\t\tPathProps: spec3.PathProps{\n\t\t\tGet:     ConvertOperation(v2pathItem.Get),\n\t\t\tPut:     ConvertOperation(v2pathItem.Put),\n\t\t\tPost:    ConvertOperation(v2pathItem.Post),\n\t\t\tDelete:  ConvertOperation(v2pathItem.Delete),\n\t\t\tOptions: ConvertOperation(v2pathItem.Options),\n\t\t\tHead:    ConvertOperation(v2pathItem.Head),\n\t\t\tPatch:   ConvertOperation(v2pathItem.Patch),\n\t\t},\n\t\tVendorExtensible: v2pathItem.VendorExtensible,\n\t}\n\tfor _, param := range v2pathItem.Parameters {\n\t\tpath.Parameters = append(path.Parameters, ConvertParameter(param))\n\t}\n\treturn path\n}\n\nfunc ConvertOperation(v2Operation *spec.Operation) *spec3.Operation {\n\tif v2Operation == nil {\n\t\treturn nil\n\t}\n\toperation := &spec3.Operation{\n\t\tVendorExtensible: v2Operation.VendorExtensible,\n\t\tOperationProps: spec3.OperationProps{\n\t\t\tDescription:  v2Operation.Description,\n\t\t\tExternalDocs: ConvertExternalDocumentation(v2Operation.OperationProps.ExternalDocs),\n\t\t\tTags:         v2Operation.Tags,\n\t\t\tSummary:      v2Operation.Summary,\n\t\t\tDeprecated:   v2Operation.Deprecated,\n\t\t\tOperationId:  v2Operation.ID,\n\t\t},\n\t}\n\n\tfor _, param := range v2Operation.Parameters {\n\t\tif param.ParamProps.Name == \"body\" && param.ParamProps.Schema != nil {\n\t\t\toperation.OperationProps.RequestBody = &spec3.RequestBody{\n\t\t\t\tRequestBodyProps: spec3.RequestBodyProps{},\n\t\t\t}\n\t\t\tif v2Operation.Consumes != nil {\n\t\t\t\toperation.RequestBody.Content = make(map[string]*spec3.MediaType)\n\t\t\t}\n\t\t\tfor _, consumer := range v2Operation.Consumes {\n\t\t\t\toperation.RequestBody.Content[consumer] = &spec3.MediaType{\n\t\t\t\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\t\t\t\tSchema: ConvertSchema(param.ParamProps.Schema),\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\toperation.Parameters = append(operation.Parameters, ConvertParameter(param))\n\t\t}\n\t}\n\n\toperation.Responses = &spec3.Responses{ResponsesProps: spec3.ResponsesProps{\n\t\tDefault: ConvertResponse(v2Operation.Responses.Default, v2Operation.Produces),\n\t},\n\t\tVendorExtensible: v2Operation.Responses.VendorExtensible,\n\t}\n\n\tif v2Operation.Responses.StatusCodeResponses != nil {\n\t\toperation.Responses.StatusCodeResponses = make(map[int]*spec3.Response)\n\t}\n\tfor k, v := range v2Operation.Responses.StatusCodeResponses {\n\t\toperation.Responses.StatusCodeResponses[k] = ConvertResponse(&v, v2Operation.Produces)\n\t}\n\treturn operation\n}\n\nfunc ConvertResponse(v2Response *spec.Response, produces []string) *spec3.Response {\n\tif v2Response == nil {\n\t\treturn nil\n\t}\n\tresponse := &spec3.Response{\n\t\tRefable:          ConvertRefableResponse(v2Response.Refable),\n\t\tVendorExtensible: v2Response.VendorExtensible,\n\t\tResponseProps: spec3.ResponseProps{\n\t\t\tDescription: v2Response.Description,\n\t\t},\n\t}\n\n\tif v2Response.Schema != nil {\n\t\tif produces != nil {\n\t\t\tresponse.Content = make(map[string]*spec3.MediaType)\n\t\t}\n\t\tfor _, producer := range produces {\n\t\t\tresponse.ResponseProps.Content[producer] = &spec3.MediaType{\n\t\t\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\t\t\tSchema: ConvertSchema(v2Response.Schema),\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\treturn response\n}\n\nfunc ConvertParameter(v2Param spec.Parameter) *spec3.Parameter {\n\tparam := &spec3.Parameter{\n\t\tRefable:          ConvertRefableParameter(v2Param.Refable),\n\t\tVendorExtensible: v2Param.VendorExtensible,\n\t\tParameterProps: spec3.ParameterProps{\n\t\t\tName:            v2Param.Name,\n\t\t\tDescription:     v2Param.Description,\n\t\t\tIn:              v2Param.In,\n\t\t\tRequired:        v2Param.Required,\n\t\t\tSchema:          ConvertSchema(v2Param.Schema),\n\t\t\tAllowEmptyValue: v2Param.AllowEmptyValue,\n\t\t},\n\t}\n\t// Convert SimpleSchema into Schema\n\tif param.Schema == nil {\n\t\tparam.Schema = &spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType:        []string{v2Param.Type},\n\t\t\t\tFormat:      v2Param.Format,\n\t\t\t\tUniqueItems: v2Param.UniqueItems,\n\t\t\t},\n\t\t}\n\t}\n\n\treturn param\n}\n\nfunc ConvertRefableParameter(refable spec.Refable) spec.Refable {\n\tif refable.Ref.String() != \"\" {\n\t\treturn spec.Refable{Ref: spec.MustCreateRef(strings.Replace(refable.Ref.String(), \"#/parameters/\", \"#/components/parameters/\", 1))}\n\t}\n\treturn refable\n}\n\nfunc ConvertRefableResponse(refable spec.Refable) spec.Refable {\n\tif refable.Ref.String() != \"\" {\n\t\treturn spec.Refable{Ref: spec.MustCreateRef(strings.Replace(refable.Ref.String(), \"#/responses/\", \"#/components/responses/\", 1))}\n\t}\n\treturn refable\n}\n"
  },
  {
    "path": "pkg/openapiconv/convert_test.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage openapiconv\n\nimport (\n\t\"encoding/json\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\t\"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestConvert(t *testing.T) {\n\n\ttcs := []struct {\n\t\tgroupVersion string\n\t}{{\n\t\t\"batch.v1\",\n\t}, {\n\t\t\"api.v1\",\n\t}, {\n\t\t\"apiextensions.k8s.io.v1\",\n\t}}\n\n\tfor _, tc := range tcs {\n\n\t\tspec2JSON, err := os.ReadFile(filepath.Join(\"testdata_generated_from_k8s/v2_\" + tc.groupVersion + \".json\"))\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\t\tvar swaggerSpec spec.Swagger\n\t\terr = json.Unmarshal(spec2JSON, &swaggerSpec)\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\n\t\topenAPIV2JSONBeforeConversion, err := swaggerSpec.MarshalJSON()\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\n\t\tconvertedV3Spec := ConvertV2ToV3(&swaggerSpec)\n\n\t\topenAPIV2JSONAfterConversion, err := swaggerSpec.MarshalJSON()\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\t\tif err := jsontesting.JsonCompare(openAPIV2JSONBeforeConversion, openAPIV2JSONAfterConversion); err != nil {\n\t\t\tt.Errorf(\"Expected OpenAPI V2 to be untouched before and after conversion: %v\", err)\n\t\t}\n\n\t\tspec3JSON, err := os.ReadFile(filepath.Join(\"testdata_generated_from_k8s/v3_\" + tc.groupVersion + \".json\"))\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\n\t\tvar V3Spec spec3.OpenAPI\n\t\tjson.Unmarshal(spec3JSON, &V3Spec)\n\t\tif !reflect.DeepEqual(V3Spec, *convertedV3Spec) {\n\t\t\tt.Error(\"Expected specs to be equal\")\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/openapiconv/testdata_generated_from_k8s/README.md",
    "content": "Please do not edit these test files by hand. They were generated from running the OpenAPI v2 and v3 builders on select Kubernetes groups.\n"
  },
  {
    "path": "pkg/openapiconv/testdata_generated_from_k8s/v2_api.v1.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.24.0\"},\"paths\":{\"/api/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"getCoreV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/api/v1/componentstatuses\":{\"get\":{\"description\":\"list objects of kind ComponentStatus\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ComponentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatusList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ComponentStatus\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/componentstatuses/{name}\":{\"get\":{\"description\":\"read the specified ComponentStatus\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1ComponentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatus\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ComponentStatus\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ComponentStatus\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/configmaps\":{\"get\":{\"description\":\"list or watch objects of kind ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ConfigMapForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/endpoints\":{\"get\":{\"description\":\"list or watch objects of kind Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1EndpointsForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointsList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/events\":{\"get\":{\"description\":\"list or watch objects of kind Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1EventForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/limitranges\":{\"get\":{\"description\":\"list or watch objects of kind LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1LimitRangeForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/namespaces\":{\"get\":{\"description\":\"list or watch objects of kind Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1Namespace\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"post\":{\"description\":\"create a Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1Namespace\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/bindings\":{\"post\":{\"description\":\"create a Binding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Binding\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Binding\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/configmaps\":{\"get\":{\"description\":\"list or watch objects of kind ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedConfigMap\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"post\":{\"description\":\"create a ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"delete\":{\"description\":\"delete collection of ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/configmaps/{name}\":{\"get\":{\"description\":\"read the specified ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedConfigMap\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"put\":{\"description\":\"replace the specified ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"delete\":{\"description\":\"delete a ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"patch\":{\"description\":\"partially update the specified ConfigMap\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ConfigMap\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/endpoints\":{\"get\":{\"description\":\"list or watch objects of kind Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedEndpoints\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointsList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"post\":{\"description\":\"create Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"delete\":{\"description\":\"delete collection of Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/endpoints/{name}\":{\"get\":{\"description\":\"read the specified Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedEndpoints\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"put\":{\"description\":\"replace the specified Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"delete\":{\"description\":\"delete Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"patch\":{\"description\":\"partially update the specified Endpoints\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Endpoints\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/events\":{\"get\":{\"description\":\"list or watch objects of kind Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"post\":{\"description\":\"create an Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"delete\":{\"description\":\"delete collection of Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/events/{name}\":{\"get\":{\"description\":\"read the specified Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedEvent\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"put\":{\"description\":\"replace the specified Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"delete\":{\"description\":\"delete an Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"patch\":{\"description\":\"partially update the specified Event\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Event\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/limitranges\":{\"get\":{\"description\":\"list or watch objects of kind LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedLimitRange\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"post\":{\"description\":\"create a LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"delete\":{\"description\":\"delete collection of LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/limitranges/{name}\":{\"get\":{\"description\":\"read the specified LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedLimitRange\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"put\":{\"description\":\"replace the specified LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"delete\":{\"description\":\"delete a LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"patch\":{\"description\":\"partially update the specified LimitRange\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the LimitRange\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims\":{\"get\":{\"description\":\"list or watch objects of kind PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"post\":{\"description\":\"create a PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"delete\":{\"description\":\"delete collection of PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}\":{\"get\":{\"description\":\"read the specified PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPersistentVolumeClaim\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"put\":{\"description\":\"replace the specified PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"delete\":{\"description\":\"delete a PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"patch\":{\"description\":\"partially update the specified PersistentVolumeClaim\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolumeClaim\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status\":{\"get\":{\"description\":\"read status of the specified PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPersistentVolumeClaimStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"put\":{\"description\":\"replace status of the specified PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPersistentVolumeClaimStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"patch\":{\"description\":\"partially update status of the specified PersistentVolumeClaim\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPersistentVolumeClaimStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolumeClaim\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods\":{\"get\":{\"description\":\"list or watch objects of kind Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedPod\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"post\":{\"description\":\"create a Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"delete\":{\"description\":\"delete collection of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}\":{\"get\":{\"description\":\"read the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPod\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"put\":{\"description\":\"replace the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"delete\":{\"description\":\"delete a Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"patch\":{\"description\":\"partially update the specified Pod\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/attach\":{\"get\":{\"description\":\"connect GET requests to attach of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodAttach\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodAttachOptions\"}},\"post\":{\"description\":\"connect POST requests to attach of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodAttach\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodAttachOptions\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\"name\":\"container\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodAttachOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.\",\"name\":\"stderr\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.\",\"name\":\"stdin\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.\",\"name\":\"stdout\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"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.\",\"name\":\"tty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/binding\":{\"post\":{\"description\":\"create binding of a Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPodBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Binding\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Binding\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Binding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers\":{\"get\":{\"description\":\"read ephemeralcontainers of the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPodEphemeralcontainers\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"put\":{\"description\":\"replace ephemeralcontainers of the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPodEphemeralcontainers\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"patch\":{\"description\":\"partially update ephemeralcontainers of the specified Pod\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPodEphemeralcontainers\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/eviction\":{\"post\":{\"description\":\"create eviction of a Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPodEviction\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1.Eviction\"}}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1.Eviction\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1.Eviction\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1.Eviction\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"version\":\"v1\",\"kind\":\"Eviction\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Eviction\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/exec\":{\"get\":{\"description\":\"connect GET requests to exec of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodExec\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodExecOptions\"}},\"post\":{\"description\":\"connect POST requests to exec of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodExec\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodExecOptions\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Command is the remote command to execute. argv array. Not executed within a shell.\",\"name\":\"command\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\"name\":\"container\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodExecOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Redirect the standard error stream of the pod for this call.\",\"name\":\"stderr\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Redirect the standard input stream of the pod for this call. Defaults to false.\",\"name\":\"stdin\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Redirect the standard output stream of the pod for this call.\",\"name\":\"stdout\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.\",\"name\":\"tty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/log\":{\"get\":{\"description\":\"read log of the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"text/plain\",\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPodLog\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The container for which to stream logs. Defaults to only container if there is one container in the pod.\",\"name\":\"container\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Follow the log stream of the pod. Defaults to false.\",\"name\":\"follow\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"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).\",\"name\":\"insecureSkipTLSVerifyBackend\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"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.\",\"name\":\"limitBytes\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Return previous terminated container logs. Defaults to false.\",\"name\":\"previous\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"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.\",\"name\":\"sinceSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"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\",\"name\":\"tailLines\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.\",\"name\":\"timestamps\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/portforward\":{\"get\":{\"description\":\"connect GET requests to portforward of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodPortforward\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodPortForwardOptions\"}},\"post\":{\"description\":\"connect POST requests to portforward of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodPortforward\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodPortForwardOptions\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodPortForwardOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"List of ports to forward Required when using WebSockets\",\"name\":\"ports\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/proxy\":{\"get\":{\"description\":\"connect GET requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"post\":{\"description\":\"connect POST requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Path is the URL path to use for the current proxy request to pod.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}\":{\"get\":{\"description\":\"connect GET requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"post\":{\"description\":\"connect POST requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"path to the resource\",\"name\":\"path\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Path is the URL path to use for the current proxy request to pod.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/status\":{\"get\":{\"description\":\"read status of the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPodStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"put\":{\"description\":\"replace status of the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPodStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"patch\":{\"description\":\"partially update status of the specified Pod\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPodStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/podtemplates\":{\"get\":{\"description\":\"list or watch objects of kind PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedPodTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"post\":{\"description\":\"create a PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"delete\":{\"description\":\"delete collection of PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/podtemplates/{name}\":{\"get\":{\"description\":\"read the specified PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPodTemplate\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"put\":{\"description\":\"replace the specified PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"delete\":{\"description\":\"delete a PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"patch\":{\"description\":\"partially update the specified PodTemplate\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodTemplate\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers\":{\"get\":{\"description\":\"list or watch objects of kind ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedReplicationController\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"post\":{\"description\":\"create a ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"delete\":{\"description\":\"delete collection of ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}\":{\"get\":{\"description\":\"read the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedReplicationController\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"put\":{\"description\":\"replace the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"delete\":{\"description\":\"delete a ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"patch\":{\"description\":\"partially update the specified ReplicationController\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicationController\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedReplicationControllerScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"version\":\"v1\",\"kind\":\"Scale\"}},\"put\":{\"description\":\"replace scale of the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedReplicationControllerScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"version\":\"v1\",\"kind\":\"Scale\"}},\"patch\":{\"description\":\"partially update scale of the specified ReplicationController\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedReplicationControllerScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"version\":\"v1\",\"kind\":\"Scale\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status\":{\"get\":{\"description\":\"read status of the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedReplicationControllerStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"put\":{\"description\":\"replace status of the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedReplicationControllerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"patch\":{\"description\":\"partially update status of the specified ReplicationController\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedReplicationControllerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicationController\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/resourcequotas\":{\"get\":{\"description\":\"list or watch objects of kind ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedResourceQuota\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"post\":{\"description\":\"create a ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"delete\":{\"description\":\"delete collection of ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/resourcequotas/{name}\":{\"get\":{\"description\":\"read the specified ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedResourceQuota\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"put\":{\"description\":\"replace the specified ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"delete\":{\"description\":\"delete a ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"patch\":{\"description\":\"partially update the specified ResourceQuota\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ResourceQuota\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/resourcequotas/{name}/status\":{\"get\":{\"description\":\"read status of the specified ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedResourceQuotaStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"put\":{\"description\":\"replace status of the specified ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedResourceQuotaStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"patch\":{\"description\":\"partially update status of the specified ResourceQuota\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedResourceQuotaStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ResourceQuota\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/secrets\":{\"get\":{\"description\":\"list or watch objects of kind Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedSecret\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"post\":{\"description\":\"create a Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"delete\":{\"description\":\"delete collection of Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/secrets/{name}\":{\"get\":{\"description\":\"read the specified Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedSecret\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"put\":{\"description\":\"replace the specified Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"delete\":{\"description\":\"delete a Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"patch\":{\"description\":\"partially update the specified Secret\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Secret\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/serviceaccounts\":{\"get\":{\"description\":\"list or watch objects of kind ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedServiceAccount\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccountList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"post\":{\"description\":\"create a ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"delete\":{\"description\":\"delete collection of ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/serviceaccounts/{name}\":{\"get\":{\"description\":\"read the specified ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedServiceAccount\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"put\":{\"description\":\"replace the specified ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"delete\":{\"description\":\"delete a ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"patch\":{\"description\":\"partially update the specified ServiceAccount\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ServiceAccount\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/serviceaccounts/{name}/token\":{\"post\":{\"description\":\"create token of a ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedServiceAccountToken\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenRequest\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authentication.k8s.io\",\"version\":\"v1\",\"kind\":\"TokenRequest\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the TokenRequest\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services\":{\"get\":{\"description\":\"list or watch objects of kind Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"post\":{\"description\":\"create a Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"delete\":{\"description\":\"delete collection of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services/{name}\":{\"get\":{\"description\":\"read the specified Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedService\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"put\":{\"description\":\"replace the specified Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"delete\":{\"description\":\"delete a Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"patch\":{\"description\":\"partially update the specified Service\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Service\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services/{name}/proxy\":{\"get\":{\"description\":\"connect GET requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"post\":{\"description\":\"connect POST requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ServiceProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"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.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}\":{\"get\":{\"description\":\"connect GET requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"post\":{\"description\":\"connect POST requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ServiceProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"path to the resource\",\"name\":\"path\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"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.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services/{name}/status\":{\"get\":{\"description\":\"read status of the specified Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedServiceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"put\":{\"description\":\"replace status of the specified Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"patch\":{\"description\":\"partially update status of the specified Service\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Service\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{name}\":{\"get\":{\"description\":\"read the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1Namespace\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"put\":{\"description\":\"replace the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1Namespace\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"delete\":{\"description\":\"delete a Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1Namespace\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"patch\":{\"description\":\"partially update the specified Namespace\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1Namespace\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Namespace\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{name}/finalize\":{\"put\":{\"description\":\"replace finalize of the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespaceFinalize\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Namespace\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{name}/status\":{\"get\":{\"description\":\"read status of the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespaceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"put\":{\"description\":\"replace status of the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespaceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"patch\":{\"description\":\"partially update status of the specified Namespace\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespaceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Namespace\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/nodes\":{\"get\":{\"description\":\"list or watch objects of kind Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1Node\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"post\":{\"description\":\"create a Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1Node\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"delete\":{\"description\":\"delete collection of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNode\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/nodes/{name}\":{\"get\":{\"description\":\"read the specified Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1Node\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"put\":{\"description\":\"replace the specified Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1Node\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"delete\":{\"description\":\"delete a Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1Node\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"patch\":{\"description\":\"partially update the specified Node\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1Node\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Node\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/nodes/{name}/proxy\":{\"get\":{\"description\":\"connect GET requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"post\":{\"description\":\"connect POST requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NodeProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Path is the URL path to use for the current proxy request to node.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/nodes/{name}/proxy/{path}\":{\"get\":{\"description\":\"connect GET requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"post\":{\"description\":\"connect POST requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NodeProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"path to the resource\",\"name\":\"path\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Path is the URL path to use for the current proxy request to node.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/nodes/{name}/status\":{\"get\":{\"description\":\"read status of the specified Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NodeStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"put\":{\"description\":\"replace status of the specified Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NodeStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"patch\":{\"description\":\"partially update status of the specified Node\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NodeStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Node\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/persistentvolumeclaims\":{\"get\":{\"description\":\"list or watch objects of kind PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1PersistentVolumeClaimForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/persistentvolumes\":{\"get\":{\"description\":\"list or watch objects of kind PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1PersistentVolume\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"post\":{\"description\":\"create a PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"delete\":{\"description\":\"delete collection of PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionPersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/persistentvolumes/{name}\":{\"get\":{\"description\":\"read the specified PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1PersistentVolume\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"put\":{\"description\":\"replace the specified PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"delete\":{\"description\":\"delete a PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"patch\":{\"description\":\"partially update the specified PersistentVolume\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolume\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/persistentvolumes/{name}/status\":{\"get\":{\"description\":\"read status of the specified PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1PersistentVolumeStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"put\":{\"description\":\"replace status of the specified PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1PersistentVolumeStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"patch\":{\"description\":\"partially update status of the specified PersistentVolume\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1PersistentVolumeStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolume\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/pods\":{\"get\":{\"description\":\"list or watch objects of kind Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1PodForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/podtemplates\":{\"get\":{\"description\":\"list or watch objects of kind PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1PodTemplateForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/replicationcontrollers\":{\"get\":{\"description\":\"list or watch objects of kind ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ReplicationControllerForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/resourcequotas\":{\"get\":{\"description\":\"list or watch objects of kind ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ResourceQuotaForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/secrets\":{\"get\":{\"description\":\"list or watch objects of kind Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1SecretForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/serviceaccounts\":{\"get\":{\"description\":\"list or watch objects of kind ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ServiceAccountForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccountList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/services\":{\"get\":{\"description\":\"list or watch objects of kind Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ServiceForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/configmaps\":{\"get\":{\"description\":\"watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ConfigMapListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/endpoints\":{\"get\":{\"description\":\"watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1EndpointsListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/events\":{\"get\":{\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1EventListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/limitranges\":{\"get\":{\"description\":\"watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1LimitRangeListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces\":{\"get\":{\"description\":\"watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespaceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/configmaps\":{\"get\":{\"description\":\"watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedConfigMapList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/configmaps/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedConfigMap\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ConfigMap\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/endpoints\":{\"get\":{\"description\":\"watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedEndpointsList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/endpoints/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedEndpoints\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Endpoints\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/events\":{\"get\":{\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedEventList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/events/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedEvent\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Event\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/limitranges\":{\"get\":{\"description\":\"watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedLimitRangeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/limitranges/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedLimitRange\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the LimitRange\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims\":{\"get\":{\"description\":\"watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPersistentVolumeClaimList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPersistentVolumeClaim\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolumeClaim\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/pods\":{\"get\":{\"description\":\"watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPodList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/pods/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPod\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/podtemplates\":{\"get\":{\"description\":\"watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPodTemplateList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/podtemplates/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPodTemplate\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodTemplate\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/replicationcontrollers\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedReplicationControllerList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedReplicationController\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicationController\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/resourcequotas\":{\"get\":{\"description\":\"watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedResourceQuotaList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedResourceQuota\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ResourceQuota\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/secrets\":{\"get\":{\"description\":\"watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedSecretList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/secrets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedSecret\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Secret\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/serviceaccounts\":{\"get\":{\"description\":\"watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedServiceAccountList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedServiceAccount\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ServiceAccount\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/services\":{\"get\":{\"description\":\"watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedServiceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/services/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedService\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Service\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1Namespace\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Namespace\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/nodes\":{\"get\":{\"description\":\"watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NodeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/nodes/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1Node\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Node\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/persistentvolumeclaims\":{\"get\":{\"description\":\"watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PersistentVolumeClaimListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/persistentvolumes\":{\"get\":{\"description\":\"watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PersistentVolumeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/persistentvolumes/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PersistentVolume\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolume\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/pods\":{\"get\":{\"description\":\"watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PodListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/podtemplates\":{\"get\":{\"description\":\"watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PodTemplateListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/replicationcontrollers\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ReplicationControllerListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/resourcequotas\":{\"get\":{\"description\":\"watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ResourceQuotaListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/secrets\":{\"get\":{\"description\":\"watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1SecretListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/serviceaccounts\":{\"get\":{\"description\":\"watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ServiceAccountListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/services\":{\"get\":{\"description\":\"watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ServiceListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]}},\"definitions\":{\"io.k8s.api.authentication.v1.BoundObjectReference\":{\"description\":\"BoundObjectReference is a reference to an object that a token is bound to.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.authentication.v1.TokenRequest\":{\"description\":\"TokenRequest requests a token for a given service account.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenRequestSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the token can be authenticated.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenRequestStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"audiences\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"boundObjectRef\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.BoundObjectReference\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.authentication.v1.TokenRequestStatus\":{\"description\":\"TokenRequestStatus is the result of a token request.\",\"type\":\"object\",\"required\":[\"token\",\"expirationTimestamp\"],\"properties\":{\"expirationTimestamp\":{\"description\":\"ExpirationTimestamp is the time of expiration of the returned token.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"token\":{\"description\":\"Token is the opaque bearer token.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.autoscaling.v1.Scale\":{\"description\":\"Scale represents a scaling request for a resource.\",\"type\":\"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\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec\"},\"status\":{\"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.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus\"}},\"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.\",\"type\":\"object\",\"properties\":{\"replicas\":{\"description\":\"desired number of instances for the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.autoscaling.v1.ScaleStatus\":{\"description\":\"ScaleStatus represents the current status of a scale subresource.\",\"type\":\"object\",\"required\":[\"replicas\"],\"properties\":{\"replicas\":{\"description\":\"actual number of observed instances of the scaled object.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.Affinity\":{\"description\":\"Affinity is a group of affinity scheduling rules.\",\"type\":\"object\",\"properties\":{\"nodeAffinity\":{\"description\":\"Describes node affinity scheduling rules for the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeAffinity\"},\"podAffinity\":{\"description\":\"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinity\"},\"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)).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAntiAffinity\"}}},\"io.k8s.api.core.v1.AttachedVolume\":{\"description\":\"AttachedVolume describes a volume attached to a node\",\"type\":\"object\",\"required\":[\"name\",\"devicePath\"],\"properties\":{\"devicePath\":{\"description\":\"DevicePath represents the device path where the volume should be available\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the attached volume\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.AzureDiskVolumeSource\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"diskName\",\"diskURI\"],\"properties\":{\"cachingMode\":{\"description\":\"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\"type\":\"string\"},\"diskName\":{\"description\":\"diskName is the Name of the data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"diskURI\":{\"description\":\"diskURI is the URI of data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"kind\":{\"description\":\"kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.AzureFilePersistentVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the name of secret that contains Azure Storage Account Name and Key\",\"type\":\"string\",\"default\":\"\"},\"secretNamespace\":{\"description\":\"secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod\",\"type\":\"string\"},\"shareName\":{\"description\":\"shareName is the azure Share Name\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.AzureFileVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the  name of secret that contains Azure Storage Account Name and Key\",\"type\":\"string\",\"default\":\"\"},\"shareName\":{\"description\":\"shareName is the azure share Name\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"target\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"target\":{\"description\":\"The target object that you want to bind to the standard object.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"}},\"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)\",\"type\":\"object\",\"required\":[\"driver\",\"volumeHandle\"],\"properties\":{\"controllerExpandSecretRef\":{\"description\":\"controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This 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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"controllerPublishSecretRef\":{\"description\":\"controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"driver\":{\"description\":\"driver is the name of the driver to use for this volume. Required.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\",\"type\":\"string\"},\"nodePublishSecretRef\":{\"description\":\"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"nodeStageSecretRef\":{\"description\":\"nodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"readOnly\":{\"description\":\"readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"volumeAttributes of the volume to publish.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.CSIVolumeSource\":{\"description\":\"Represents a source location of a volume to mount, managed by an external CSI driver\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\"type\":\"string\"},\"nodePublishSecretRef\":{\"description\":\"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and  may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"readOnly\":{\"description\":\"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.Capabilities\":{\"description\":\"Adds and removes POSIX capabilities from running containers.\",\"type\":\"object\",\"properties\":{\"add\":{\"description\":\"Added capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"drop\":{\"description\":\"Removed capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"path\":{\"description\":\"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretFile\":{\"description\":\"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"user\":{\"description\":\"user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"path\":{\"description\":\"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretFile\":{\"description\":\"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"volumeID\":{\"description\":\"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeID\":{\"description\":\"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ClientIPConfig\":{\"description\":\"ClientIPConfig represents the configurations of Client IP based session affinity.\",\"type\":\"object\",\"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).\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ComponentCondition\":{\"description\":\"Information about the condition of a component.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of condition for a component. Valid value: \\\"Healthy\\\"\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ComponentStatus\":{\"description\":\"ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+\",\"type\":\"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\"},\"conditions\":{\"description\":\"List of component conditions observed\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentCondition\"},\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}},\"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+\",\"type\":\"object\",\"required\":[\"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 ComponentStatus objects.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatus\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"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\"},\"binaryData\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"format\":\"byte\"}},\"data\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ConfigMapKeySelector\":{\"description\":\"Selects a key from a ConfigMap.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key to select.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ConfigMapList\":{\"description\":\"ConfigMapList is a resource containing a list of ConfigMap objects.\",\"type\":\"object\",\"required\":[\"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 the list of ConfigMaps.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration\",\"type\":\"object\",\"required\":[\"namespace\",\"name\",\"kubeletConfigKey\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.Container\":{\"description\":\"A single application container that you want to run within a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvFromSource\"}},\"image\":{\"description\":\"Container 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\\n\\nPossible enum values:\\n - `\\\"Always\\\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\\n - `\\\"IfNotPresent\\\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\\n - `\\\"Never\\\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present\",\"type\":\"string\",\"enum\":[\"Always\",\"IfNotPresent\",\"Never\"]},\"lifecycle\":{\"description\":\"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"},\"securityContext\":{\"description\":\"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecurityContext\"},\"startupProbe\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"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.\\n\\nPossible enum values:\\n - `\\\"FallbackToLogsOnError\\\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\\n - `\\\"File\\\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.\",\"type\":\"string\",\"enum\":[\"FallbackToLogsOnError\",\"File\"]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeDevice\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.ContainerImage\":{\"description\":\"Describe a container image\",\"type\":\"object\",\"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\\\"]\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"sizeBytes\":{\"description\":\"The size of the image in bytes.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.core.v1.ContainerPort\":{\"description\":\"ContainerPort represents a network port in a single container.\",\"type\":\"object\",\"required\":[\"containerPort\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\\\".\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\"type\":\"string\",\"default\":\"TCP\",\"enum\":[\"SCTP\",\"TCP\",\"UDP\"]}}},\"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.\",\"type\":\"object\",\"properties\":{\"running\":{\"description\":\"Details about a running container\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateRunning\"},\"terminated\":{\"description\":\"Details about a terminated container\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateTerminated\"},\"waiting\":{\"description\":\"Details about a waiting container\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateWaiting\"}}},\"io.k8s.api.core.v1.ContainerStateRunning\":{\"description\":\"ContainerStateRunning is a running state of a container.\",\"type\":\"object\",\"properties\":{\"startedAt\":{\"description\":\"Time at which the container was last (re-)started\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.core.v1.ContainerStateTerminated\":{\"description\":\"ContainerStateTerminated is a terminated state of a container.\",\"type\":\"object\",\"required\":[\"exitCode\"],\"properties\":{\"containerID\":{\"description\":\"Container's ID in the format '\\u003ctype\\u003e://\\u003ccontainer_id\\u003e'\",\"type\":\"string\"},\"exitCode\":{\"description\":\"Exit status from the last termination of the container\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"finishedAt\":{\"description\":\"Time at which the container last terminated\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"Message regarding the last termination of the container\",\"type\":\"string\"},\"reason\":{\"description\":\"(brief) reason from the last termination of the container\",\"type\":\"string\"},\"signal\":{\"description\":\"Signal from the last termination of the container\",\"type\":\"integer\",\"format\":\"int32\"},\"startedAt\":{\"description\":\"Time at which previous execution of the container started\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.core.v1.ContainerStateWaiting\":{\"description\":\"ContainerStateWaiting is a waiting state of a container.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ContainerStatus\":{\"description\":\"ContainerStatus contains details for the current status of this container.\",\"type\":\"object\",\"required\":[\"name\",\"ready\",\"restartCount\",\"image\",\"imageID\"],\"properties\":{\"containerID\":{\"description\":\"Container's ID in the format '\\u003ctype\\u003e://\\u003ccontainer_id\\u003e'.\",\"type\":\"string\"},\"image\":{\"description\":\"The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images.\",\"type\":\"string\",\"default\":\"\"},\"imageID\":{\"description\":\"ImageID of the container's image.\",\"type\":\"string\",\"default\":\"\"},\"lastState\":{\"description\":\"Details about the container's last termination condition.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerState\"},\"name\":{\"description\":\"This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.\",\"type\":\"string\",\"default\":\"\"},\"ready\":{\"description\":\"Specifies whether the container has passed its readiness probe.\",\"type\":\"boolean\",\"default\":false},\"restartCount\":{\"description\":\"The number of times the container has been restarted.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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\":{\"description\":\"Details about the container's current condition.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerState\"}}},\"io.k8s.api.core.v1.DaemonEndpoint\":{\"description\":\"DaemonEndpoint contains information about a single Daemon endpoint.\",\"type\":\"object\",\"required\":[\"Port\"],\"properties\":{\"Port\":{\"description\":\"Port number of the given endpoint.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"Items is a list of DownwardAPIVolume file\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.DownwardAPIVolumeFile\":{\"description\":\"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"fieldRef\":{\"description\":\"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"},\"mode\":{\"description\":\"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\"type\":\"string\",\"default\":\"\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"}}},\"io.k8s.api.core.v1.DownwardAPIVolumeSource\":{\"description\":\"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"Items is a list of downward API volume file\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.EmptyDirVolumeSource\":{\"description\":\"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"medium\":{\"description\":\"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"type\":\"string\"},\"sizeLimit\":{\"description\":\"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"io.k8s.api.core.v1.EndpointAddress\":{\"description\":\"EndpointAddress is a tuple that describes single IP address.\",\"type\":\"object\",\"required\":[\"ip\"],\"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\",\"default\":\"\"},\"nodeName\":{\"description\":\"Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\",\"type\":\"string\"},\"targetRef\":{\"description\":\"Reference to object providing the endpoint.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.EndpointPort\":{\"description\":\"EndpointPort is a tuple that describes a single port.\",\"type\":\"object\",\"required\":[\"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 https://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.  This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.\",\"type\":\"string\"},\"port\":{\"description\":\"The port number of the endpoint.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"protocol\":{\"description\":\"The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\"type\":\"string\",\"enum\":[\"SCTP\",\"TCP\",\"UDP\"]}},\"x-kubernetes-map-type\":\"atomic\"},\"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 ]\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointAddress\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointAddress\"}},\"ports\":{\"description\":\"Port numbers available on the related IP addresses.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointPort\"}}}},\"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 ]\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointSubset\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.EndpointsList\":{\"description\":\"EndpointsList is a list of endpoints.\",\"type\":\"object\",\"required\":[\"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 endpoints.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"object\",\"properties\":{\"configMapRef\":{\"description\":\"The ConfigMap to select from\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource\"},\"prefix\":{\"description\":\"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\"type\":\"string\"},\"secretRef\":{\"description\":\"The Secret to select from\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretEnvSource\"}}},\"io.k8s.api.core.v1.EnvVar\":{\"description\":\"EnvVar represents an environment variable present in a Container.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name of the environment variable. Must be a C_IDENTIFIER.\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Variable references $(VAR_NAME) are expanded using the previously 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the environment variable's value. Cannot be used if value is not empty.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVarSource\"}}},\"io.k8s.api.core.v1.EnvVarSource\":{\"description\":\"EnvVarSource represents a source for the value of an EnvVar.\",\"type\":\"object\",\"properties\":{\"configMapKeyRef\":{\"description\":\"Selects a key of a ConfigMap.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector\"},\"fieldRef\":{\"description\":\"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"},\"secretKeyRef\":{\"description\":\"Selects a key of a secret in the pod's namespace\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretKeySelector\"}}},\"io.k8s.api.core.v1.EphemeralContainer\":{\"description\":\"An EphemeralContainer is a temporary container that you may add 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. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\\n\\nThis is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvFromSource\"}},\"image\":{\"description\":\"Container 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\\n\\nPossible enum values:\\n - `\\\"Always\\\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\\n - `\\\"IfNotPresent\\\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\\n - `\\\"Never\\\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present\",\"type\":\"string\",\"enum\":[\"Always\",\"IfNotPresent\",\"Never\"]},\"lifecycle\":{\"description\":\"Lifecycle is not allowed for ephemeral containers.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"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\",\"default\":\"\"},\"ports\":{\"description\":\"Ports are not allowed for ephemeral containers.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"},\"securityContext\":{\"description\":\"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecurityContext\"},\"startupProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"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 uses the namespaces configured in the Pod spec.\\n\\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\"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.\\n\\nPossible enum values:\\n - `\\\"FallbackToLogsOnError\\\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\\n - `\\\"File\\\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.\",\"type\":\"string\",\"enum\":[\"FallbackToLogsOnError\",\"File\"]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeDevice\"},\"x-kubernetes-patch-merge-key\":\"devicePath\",\"x-kubernetes-patch-strategy\":\"merge\"},\"volumeMounts\":{\"description\":\"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.EphemeralVolumeSource\":{\"description\":\"Represents an ephemeral volume that is handled by a normal storage driver.\",\"type\":\"object\",\"properties\":{\"volumeClaimTemplate\":{\"description\":\"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod.  The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\\n\\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\\n\\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\\n\\nRequired, must not be nil.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimTemplate\"}}},\"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.\",\"type\":\"object\",\"required\":[\"metadata\",\"involvedObject\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"eventTime\":{\"description\":\"Time when this Event was first observed.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"},\"firstTimestamp\":{\"description\":\"The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"involvedObject\":{\"description\":\"The object that this event is about.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"The time at which the most recent occurrence of this event was recorded.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"A human-readable description of the status of this operation.\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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\":{\"description\":\"Optional secondary object for more complex actions.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"reportingComponent\":{\"description\":\"Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\",\"type\":\"string\",\"default\":\"\"},\"reportingInstance\":{\"description\":\"ID of the controller instance, e.g. `kubelet-xyzf`.\",\"type\":\"string\",\"default\":\"\"},\"series\":{\"description\":\"Data about the Event series this event represents or nil if it's a singleton Event.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventSeries\"},\"source\":{\"description\":\"The component reporting this event. Should be a short machine understandable string.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventSource\"},\"type\":{\"description\":\"Type of this event (Normal, Warning), new types could be added in the future\",\"type\":\"string\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.EventList\":{\"description\":\"EventList is a list of events.\",\"type\":\"object\",\"required\":[\"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 events\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"properties\":{\"count\":{\"description\":\"Number of occurrences in this series up to the last heartbeat time\",\"type\":\"integer\",\"format\":\"int32\"},\"lastObservedTime\":{\"description\":\"Time of the last occurrence observed\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"}}},\"io.k8s.api.core.v1.EventSource\":{\"description\":\"EventSource contains information for an event.\",\"type\":\"object\",\"properties\":{\"component\":{\"description\":\"Component from which the event is generated.\",\"type\":\"string\"},\"host\":{\"description\":\"Node name on which the event is generated.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ExecAction\":{\"description\":\"ExecAction describes a \\\"run in container\\\" action.\",\"type\":\"object\",\"properties\":{\"command\":{\"description\":\"Command is the command line to execute inside the container, the working directory for the command  is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"lun\":{\"description\":\"lun is Optional: FC target lun number\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"targetWWNs\":{\"description\":\"targetWWNs is Optional: FC target worldwide names (WWNs)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"wwids\":{\"description\":\"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.FlexPersistentVolumeSource\":{\"description\":\"FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the driver to use for this volume.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"options is Optional: this field holds extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"}}},\"io.k8s.api.core.v1.FlexVolumeSource\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the driver to use for this volume.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"options is Optional: this field holds extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"datasetName\":{\"description\":\"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\"type\":\"string\"},\"datasetUUID\":{\"description\":\"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"pdName\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"integer\",\"format\":\"int32\"},\"pdName\":{\"description\":\"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.GRPCAction\":{\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"port\":{\"description\":\"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"service\":{\"description\":\"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"repository\"],\"properties\":{\"directory\":{\"description\":\"directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\"type\":\"string\"},\"repository\":{\"description\":\"repository is the URL\",\"type\":\"string\",\"default\":\"\"},\"revision\":{\"description\":\"revision is the commit hash for the specified revision.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"path\":{\"description\":\"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.HTTPGetAction\":{\"description\":\"HTTPGetAction describes an action based on HTTP Get requests.\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\"type\":\"string\"},\"httpHeaders\":{\"description\":\"Custom headers to set in the request. HTTP allows repeated headers.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPHeader\"}},\"path\":{\"description\":\"Path to access on the HTTP server.\",\"type\":\"string\"},\"port\":{\"description\":\"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"scheme\":{\"description\":\"Scheme to use for connecting to the host. Defaults to HTTP.\\n\\nPossible enum values:\\n - `\\\"HTTP\\\"` means that the scheme used will be http://\\n - `\\\"HTTPS\\\"` means that the scheme used will be https://\",\"type\":\"string\",\"enum\":[\"HTTP\",\"HTTPS\"]}}},\"io.k8s.api.core.v1.HTTPHeader\":{\"description\":\"HTTPHeader describes a custom header to be used in HTTP probes\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"The header field name\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"The header field value\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"hostnames\":{\"description\":\"Hostnames for the above IP address.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"ip\":{\"description\":\"IP address of the host file entry.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"path\":{\"description\":\"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"properties\":{\"chapAuthDiscovery\":{\"description\":\"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\"type\":\"boolean\"},\"chapAuthSession\":{\"description\":\"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\"type\":\"boolean\"},\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\"type\":\"string\"},\"initiatorName\":{\"description\":\"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\"type\":\"string\"},\"iqn\":{\"description\":\"iqn is Target iSCSI Qualified Name.\",\"type\":\"string\",\"default\":\"\"},\"iscsiInterface\":{\"description\":\"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\"type\":\"string\"},\"lun\":{\"description\":\"lun is iSCSI Target Lun number.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"portals\":{\"description\":\"portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"targetPortal\":{\"description\":\"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"properties\":{\"chapAuthDiscovery\":{\"description\":\"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\"type\":\"boolean\"},\"chapAuthSession\":{\"description\":\"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\"type\":\"boolean\"},\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\"type\":\"string\"},\"initiatorName\":{\"description\":\"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\"type\":\"string\"},\"iqn\":{\"description\":\"iqn is the target iSCSI Qualified Name.\",\"type\":\"string\",\"default\":\"\"},\"iscsiInterface\":{\"description\":\"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\"type\":\"string\"},\"lun\":{\"description\":\"lun represents iSCSI Target Lun number.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"portals\":{\"description\":\"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"targetPortal\":{\"description\":\"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.KeyToPath\":{\"description\":\"Maps a string key to a path within a volume.\",\"type\":\"object\",\"required\":[\"key\",\"path\"],\"properties\":{\"key\":{\"description\":\"key is the key to project.\",\"type\":\"string\",\"default\":\"\"},\"mode\":{\"description\":\"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"postStart\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LifecycleHandler\"},\"preStop\":{\"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 Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). 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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LifecycleHandler\"}}},\"io.k8s.api.core.v1.LifecycleHandler\":{\"description\":\"LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ExecAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"},\"tcpSocket\":{\"description\":\"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"}}},\"io.k8s.api.core.v1.LimitRange\":{\"description\":\"LimitRange sets resource usage limits for each kind of resource in a Namespace.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeSpec\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"default\":{\"description\":\"Default resource requirement limit value by resource name if resource limit is omitted.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"defaultRequest\":{\"description\":\"DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"max\":{\"description\":\"Max usage constraints on this kind by resource name.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"maxLimitRequestRatio\":{\"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\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"min\":{\"description\":\"Min usage constraints on this kind by resource name.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"type\":{\"description\":\"Type of resource that this limit applies to.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.LimitRangeList\":{\"description\":\"LimitRangeList is a list of LimitRange items.\",\"type\":\"object\",\"required\":[\"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-resources-containers/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"required\":[\"limits\"],\"properties\":{\"limits\":{\"description\":\"Limits is the list of LimitRangeItem objects that are enforced.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeItem\"}}}},\"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.\",\"type\":\"object\",\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PortStatus\"},\"x-kubernetes-list-type\":\"atomic\"}}},\"io.k8s.api.core.v1.LoadBalancerStatus\":{\"description\":\"LoadBalancerStatus represents the status of a load-balancer.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.LoadBalancerIngress\"}}}},\"io.k8s.api.core.v1.LocalObjectReference\":{\"description\":\"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.LocalVolumeSource\":{\"description\":\"Local represents directly-attached storage with node affinity (Beta feature)\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default value is to auto-select a filesystem if unspecified.\",\"type\":\"string\"},\"path\":{\"description\":\"path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"server\",\"path\"],\"properties\":{\"path\":{\"description\":\"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.Namespace\":{\"description\":\"Namespace provides a scope for Names. Use of multiple namespaces is optional.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.NamespaceCondition\":{\"description\":\"NamespaceCondition contains details about state of namespace.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"default\":{},\"$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\",\"default\":\"\"},\"type\":{\"description\":\"Type of namespace controller condition.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NamespaceList\":{\"description\":\"NamespaceList is a list of Namespaces.\",\"type\":\"object\",\"required\":[\"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 the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"NamespaceList\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.NamespaceSpec\":{\"description\":\"NamespaceSpec describes the attributes on a Namespace.\",\"type\":\"object\",\"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/\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.NamespaceStatus\":{\"description\":\"NamespaceStatus is information about the current status of a Namespace.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Represents the latest available observations of a namespace's current state.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceCondition\"},\"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/\\n\\nPossible enum values:\\n - `\\\"Active\\\"` means the namespace is available for use in the system\\n - `\\\"Terminating\\\"` means the namespace is undergoing graceful termination\",\"type\":\"string\",\"enum\":[\"Active\",\"Terminating\"]}}},\"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).\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"address\"],\"properties\":{\"address\":{\"description\":\"The node address.\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"Node address type, one of Hostname, ExternalIP or InternalIP.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NodeAffinity\":{\"description\":\"Node affinity is a group of node affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm\"}},\"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 an update), the system may or may not try to eventually evict the pod from its node.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelector\"}}},\"io.k8s.api.core.v1.NodeCondition\":{\"description\":\"NodeCondition contains condition information for a node.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastHeartbeatTime\":{\"description\":\"Last time we got an update on a given condition.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transit from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of node condition.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NodeConfigSource\":{\"description\":\"NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22\",\"type\":\"object\",\"properties\":{\"configMap\":{\"description\":\"ConfigMap is a reference to a Node's ConfigMap\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource\"}}},\"io.k8s.api.core.v1.NodeConfigStatus\":{\"description\":\"NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\",\"type\":\"object\",\"properties\":{\"active\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"},\"assigned\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"}}},\"io.k8s.api.core.v1.NodeDaemonEndpoints\":{\"description\":\"NodeDaemonEndpoints lists ports opened by daemons running on the Node.\",\"type\":\"object\",\"properties\":{\"kubeletEndpoint\":{\"description\":\"Endpoint on which Kubelet is listening.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.DaemonEndpoint\"}}},\"io.k8s.api.core.v1.NodeList\":{\"description\":\"NodeList is the whole list of all Nodes which have been registered with master.\",\"type\":\"object\",\"required\":[\"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 nodes\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"required\":[\"nodeSelectorTerms\"],\"properties\":{\"nodeSelectorTerms\":{\"description\":\"Required. A list of node selector terms. The terms are ORed.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"The label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\"},\"operator\":{\"description\":\"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\\n\\nPossible enum values:\\n - `\\\"DoesNotExist\\\"`\\n - `\\\"Exists\\\"`\\n - `\\\"Gt\\\"`\\n - `\\\"In\\\"`\\n - `\\\"Lt\\\"`\\n - `\\\"NotIn\\\"`\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"DoesNotExist\",\"Exists\",\"Gt\",\"In\",\"Lt\",\"NotIn\"]},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"A list of node selector requirements by node's labels.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"}},\"matchFields\":{\"description\":\"A list of node selector requirements by node's fields.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.NodeSpec\":{\"description\":\"NodeSpec describes the attributes that a node is created with.\",\"type\":\"object\",\"properties\":{\"configSource\":{\"description\":\"Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed from Kubelets as of 1.24 and will be fully removed in 1.26.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Taint\"}},\"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\"}}},\"io.k8s.api.core.v1.NodeStatus\":{\"description\":\"NodeStatus is information about the current status of a node.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeAddress\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"allocatable\":{\"description\":\"Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"capacity\":{\"description\":\"Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"conditions\":{\"description\":\"Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"config\":{\"description\":\"Status of the config assigned to the node via the dynamic Kubelet config feature.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigStatus\"},\"daemonEndpoints\":{\"description\":\"Endpoints of daemons running on the Node.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints\"},\"images\":{\"description\":\"List of container images on this node\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerImage\"}},\"nodeInfo\":{\"description\":\"Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSystemInfo\"},\"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.\\n\\nPossible enum values:\\n - `\\\"Pending\\\"` means the node has been created/added by the system, but not configured.\\n - `\\\"Running\\\"` means the node has been configured and has Kubernetes components running.\\n - `\\\"Terminated\\\"` means the node has been removed from the cluster.\",\"type\":\"string\",\"enum\":[\"Pending\",\"Running\",\"Terminated\"]},\"volumesAttached\":{\"description\":\"List of volumes that are attached to the node.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.AttachedVolume\"}},\"volumesInUse\":{\"description\":\"List of attachable volumes in use (mounted) by the node.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.NodeSystemInfo\":{\"description\":\"NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\",\"type\":\"object\",\"required\":[\"machineID\",\"systemUUID\",\"bootID\",\"kernelVersion\",\"osImage\",\"containerRuntimeVersion\",\"kubeletVersion\",\"kubeProxyVersion\",\"operatingSystem\",\"architecture\"],\"properties\":{\"architecture\":{\"description\":\"The Architecture reported by the node\",\"type\":\"string\",\"default\":\"\"},\"bootID\":{\"description\":\"Boot ID reported by the node.\",\"type\":\"string\",\"default\":\"\"},\"containerRuntimeVersion\":{\"description\":\"ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).\",\"type\":\"string\",\"default\":\"\"},\"kernelVersion\":{\"description\":\"Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).\",\"type\":\"string\",\"default\":\"\"},\"kubeProxyVersion\":{\"description\":\"KubeProxy Version reported by the node.\",\"type\":\"string\",\"default\":\"\"},\"kubeletVersion\":{\"description\":\"Kubelet Version reported by the node.\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"operatingSystem\":{\"description\":\"The Operating System reported by the node\",\"type\":\"string\",\"default\":\"\"},\"osImage\":{\"description\":\"OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ObjectFieldSelector\":{\"description\":\"ObjectFieldSelector selects an APIVersioned field of an object.\",\"type\":\"object\",\"required\":[\"fieldPath\"],\"properties\":{\"apiVersion\":{\"description\":\"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\"type\":\"string\"},\"fieldPath\":{\"description\":\"Path of the field to select in the specified API version.\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ObjectReference\":{\"description\":\"ObjectReference contains enough information to let you inspect or modify the referred object.\",\"type\":\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus\"}},\"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\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PersistentVolumeClaimCondition\":{\"description\":\"PersistentVolumeClaimCondition contails details about state of pvc\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"lastProbeTime is the time we probed the condition.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"lastTransitionTime is the time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"message is the human-readable message indicating details about last transition.\",\"type\":\"string\"},\"reason\":{\"description\":\"reason is a 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\",\"default\":\"\"},\"type\":{\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimList\":{\"description\":\"PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\",\"type\":\"object\",\"required\":[\"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 persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"object\",\"properties\":{\"accessModes\":{\"description\":\"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"dataSource\":{\"description\":\"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"dataSourceRef\":{\"description\":\"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef\\n  allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While DataSource ignores disallowed values (dropping them), DataSourceRef\\n  preserves all values, and generates an error if a disallowed value is\\n  specified.\\n(Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"resources\":{\"description\":\"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"},\"selector\":{\"description\":\"selector is a label query over volumes to consider for binding.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"storageClassName\":{\"description\":\"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\"type\":\"string\"},\"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\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimStatus\":{\"description\":\"PersistentVolumeClaimStatus is the current status of a persistent volume claim.\",\"type\":\"object\",\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"allocatedResources\":{\"description\":\"allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"capacity\":{\"description\":\"capacity represents the actual resources of the underlying volume.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"conditions\":{\"description\":\"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"phase\":{\"description\":\"phase represents the current phase of PersistentVolumeClaim.\\n\\nPossible enum values:\\n - `\\\"Bound\\\"` used for PersistentVolumeClaims that are bound\\n - `\\\"Lost\\\"` used for PersistentVolumeClaims that lost their underlying PersistentVolume. The claim was bound to a PersistentVolume and this volume does not exist any longer and all data on it was lost.\\n - `\\\"Pending\\\"` used for PersistentVolumeClaims that are not yet bound\",\"type\":\"string\",\"enum\":[\"Bound\",\"Lost\",\"Pending\"]},\"resizeStatus\":{\"description\":\"resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimTemplate\":{\"description\":\"PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"metadata\":{\"description\":\"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"}}},\"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).\",\"type\":\"object\",\"required\":[\"claimName\"],\"properties\":{\"claimName\":{\"description\":\"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"string\",\"default\":\"\"},\"readOnly\":{\"description\":\"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.PersistentVolumeList\":{\"description\":\"PersistentVolumeList is a list of PersistentVolume items.\",\"type\":\"object\",\"required\":[\"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 persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"properties\":{\"accessModes\":{\"description\":\"accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"awsElasticBlockStore\":{\"description\":\"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"azureDisk\":{\"description\":\"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"azureFile\":{\"description\":\"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource\"},\"capacity\":{\"description\":\"capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"cephfs\":{\"description\":\"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource\"},\"cinder\":{\"description\":\"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource\"},\"claimRef\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"csi\":{\"description\":\"csi represents storage that is handled by an external CSI driver (Beta feature).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource\"},\"fc\":{\"description\":\"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"},\"flexVolume\":{\"description\":\"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource\"},\"flocker\":{\"description\":\"flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"},\"gcePersistentDisk\":{\"description\":\"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"glusterfs\":{\"description\":\"glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\"},\"hostPath\":{\"description\":\"hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"},\"iscsi\":{\"description\":\"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource\"},\"local\":{\"description\":\"local represents directly-attached storage with node affinity\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalVolumeSource\"},\"mountOptions\":{\"description\":\"mountOptions is the 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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"nfs\":{\"description\":\"nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"},\"nodeAffinity\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity\"},\"persistentVolumeReclaimPolicy\":{\"description\":\"persistentVolumeReclaimPolicy defines 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\\n\\nPossible enum values:\\n - `\\\"Delete\\\"` means the volume will be deleted from Kubernetes on release from its claim. The volume plugin must support Deletion.\\n - `\\\"Recycle\\\"` means the volume will be recycled back into the pool of unbound persistent volumes on release from its claim. The volume plugin must support Recycling.\\n - `\\\"Retain\\\"` means the volume will be left in its current phase (Released) for manual reclamation by the administrator. The default policy is Retain.\",\"type\":\"string\",\"enum\":[\"Delete\",\"Recycle\",\"Retain\"]},\"photonPersistentDisk\":{\"description\":\"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"portworxVolume\":{\"description\":\"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"},\"quobyte\":{\"description\":\"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"rbd\":{\"description\":\"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource\"},\"scaleIO\":{\"description\":\"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\"},\"storageClassName\":{\"description\":\"storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.\",\"type\":\"string\"},\"storageos\":{\"description\":\"storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource\"},\"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\":{\"description\":\"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}}},\"io.k8s.api.core.v1.PersistentVolumeStatus\":{\"description\":\"PersistentVolumeStatus is the current status of a persistent volume.\",\"type\":\"object\",\"properties\":{\"message\":{\"description\":\"message is 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\\n\\nPossible enum values:\\n - `\\\"Available\\\"` used for PersistentVolumes that are not yet bound Available volumes are held by the binder and matched to PersistentVolumeClaims\\n - `\\\"Bound\\\"` used for PersistentVolumes that are bound\\n - `\\\"Failed\\\"` used for PersistentVolumes that failed to be correctly recycled or deleted after being released from a claim\\n - `\\\"Pending\\\"` used for PersistentVolumes that are not available\\n - `\\\"Released\\\"` used for PersistentVolumes where the bound PersistentVolumeClaim was deleted released volumes must be recycled before becoming available again this phase is used by the persistent volume claim binder to signal to another process to reclaim the resource\",\"type\":\"string\",\"enum\":[\"Available\",\"Bound\",\"Failed\",\"Pending\",\"Released\"]},\"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\"}}},\"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\":{\"description\":\"Represents a Photon Controller persistent disk resource.\",\"type\":\"object\",\"required\":[\"pdID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"pdID\":{\"description\":\"pdID is the ID that identifies Photon Controller persistent disk\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodStatus\"}},\"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.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"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\",\"type\":\"object\",\"required\":[\"topologyKey\"],\"properties\":{\"labelSelector\":{\"description\":\"A label query over a set of resources, in this case pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaceSelector\":{\"description\":\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaces\":{\"description\":\"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\\\".\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAntiAffinity\":{\"description\":\"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"io.k8s.api.core.v1.PodCondition\":{\"description\":\"PodCondition contains details for the current condition of this pod.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"Last time we probed the condition.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodDNSConfig\":{\"description\":\"PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodDNSConfigOption\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.PodDNSConfigOption\":{\"description\":\"PodDNSConfigOption defines DNS resolver options of a pod.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"ip\":{\"description\":\"ip is an IP address (IPv4 or IPv6) assigned to the pod\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.PodList\":{\"description\":\"PodList is a list of Pods.\",\"type\":\"object\",\"required\":[\"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 pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PodList\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PodOS\":{\"description\":\"PodOS defines the OS parameters of a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodReadinessGate\":{\"description\":\"PodReadinessGate contains the reference to a pod condition\",\"type\":\"object\",\"required\":[\"conditionType\"],\"properties\":{\"conditionType\":{\"description\":\"ConditionType refers to a condition in the pod's condition list with matching type.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"fsGroupChangePolicy\":{\"description\":\"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"},\"seccompProfile\":{\"description\":\"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SeccompProfile\"},\"supplementalGroups\":{\"description\":\"A list of groups applied to the first process run in each container, in addition to the container's primary GID.  If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\",\"default\":0}},\"sysctls\":{\"description\":\"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Sysctl\"}},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}}},\"io.k8s.api.core.v1.PodSpec\":{\"description\":\"PodSpec is a description of a pod.\",\"type\":\"object\",\"required\":[\"containers\"],\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"affinity\":{\"description\":\"If specified, the pod's scheduling constraints\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Affinity\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Container\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"dnsConfig\":{\"description\":\"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodDNSConfig\"},\"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'.\\n\\nPossible enum values:\\n - `\\\"ClusterFirst\\\"` indicates that the pod should use cluster DNS first unless hostNetwork is true, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\\n - `\\\"ClusterFirstWithHostNet\\\"` indicates that the pod should use cluster DNS first, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\\n - `\\\"Default\\\"` indicates that the pod should use the default (as determined by kubelet) DNS settings.\\n - `\\\"None\\\"` indicates that the pod should use empty DNS settings. DNS parameters such as nameservers and search paths should be defined via DNSConfig.\",\"type\":\"string\",\"enum\":[\"ClusterFirst\",\"ClusterFirstWithHostNet\",\"Default\",\"None\"]},\"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 beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EphemeralContainer\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostAlias\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Container\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"os\":{\"description\":\"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\\n\\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\\n\\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is a beta field and requires the IdentifyPodOS feature\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodOS\"},\"overhead\":{\"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/688-pod-overhead/README.md\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"preemptionPolicy\":{\"description\":\"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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/580-pod-readiness-gates\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodReadinessGate\"}},\"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\\n\\nPossible enum values:\\n - `\\\"Always\\\"`\\n - `\\\"Never\\\"`\\n - `\\\"OnFailure\\\"`\",\"type\":\"string\",\"enum\":[\"Always\",\"Never\",\"OnFailure\"]},\"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/585-runtime-class\",\"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\":{\"description\":\"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSecurityContext\"},\"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 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.\",\"type\":\"integer\",\"format\":\"int64\"},\"tolerations\":{\"description\":\"If specified, the pod's tolerations.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Toleration\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Volume\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge,retainKeys\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"containerStatuses\":{\"description\":\"The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStatus\"}},\"ephemeralContainerStatuses\":{\"description\":\"Status for any ephemeral containers that have run in this pod. This field is beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStatus\"}},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStatus\"}},\"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\\n\\nPossible enum values:\\n - `\\\"Failed\\\"` means that all containers in the pod have terminated, and at least one container has terminated in a failure (exited with a non-zero exit code or was stopped by the system).\\n - `\\\"Pending\\\"` means the pod has been accepted by the system, but one or more of the containers has not been started. This includes time before being bound to a node, as well as time spent pulling images onto the host.\\n - `\\\"Running\\\"` means the pod has been bound to a node and all of the containers have been started. At least one container is still running or is in the process of being restarted.\\n - `\\\"Succeeded\\\"` means that all containers in the pod have voluntarily terminated with a container exit code of 0, and the system is not going to restart any of these containers.\\n - `\\\"Unknown\\\"` means that 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. Deprecated: It isn't being set since 2015 (74da3b14b0c0f658b3bb8d2def5094686d0e9095)\",\"type\":\"string\",\"enum\":[\"Failed\",\"Pending\",\"Running\",\"Succeeded\",\"Unknown\"]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodIP\"},\"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\\n\\nPossible enum values:\\n - `\\\"BestEffort\\\"` is the BestEffort qos class.\\n - `\\\"Burstable\\\"` is the Burstable qos class.\\n - `\\\"Guaranteed\\\"` is the Guaranteed qos class.\",\"type\":\"string\",\"enum\":[\"BestEffort\",\"Burstable\",\"Guaranteed\"]},\"reason\":{\"description\":\"A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'\",\"type\":\"string\"},\"startTime\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.core.v1.PodTemplate\":{\"description\":\"PodTemplate describes a template for creating copies of a predefined pod.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"template\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PodTemplateList\":{\"description\":\"PodTemplateList is a list of PodTemplates.\",\"type\":\"object\",\"required\":[\"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 pod templates\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"object\",\"properties\":{\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSpec\"}}},\"io.k8s.api.core.v1.PortStatus\":{\"type\":\"object\",\"required\":[\"port\",\"protocol\"],\"properties\":{\"error\":{\"description\":\"Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\\n  CamelCase names\\n- cloud provider specific error values must have names that comply with the\\n  format foo.example.com/CamelCase.\",\"type\":\"string\"},\"port\":{\"description\":\"Port is the port number of the service port of which status is recorded here\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"protocol\":{\"description\":\"Protocol is the protocol of the service port of which status is recorded here The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"SCTP\",\"TCP\",\"UDP\"]}}},\"io.k8s.api.core.v1.PortworxVolumeSource\":{\"description\":\"PortworxVolumeSource represents a Portworx volume resource.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID uniquely identifies a Portworx volume\",\"type\":\"string\",\"default\":\"\"}}},\"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).\",\"type\":\"object\",\"required\":[\"weight\",\"preference\"],\"properties\":{\"preference\":{\"description\":\"A node selector term, associated with the corresponding weight.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"},\"weight\":{\"description\":\"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"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.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ExecAction\"},\"failureThreshold\":{\"description\":\"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"grpc\":{\"description\":\"GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GRPCAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"},\"initialDelaySeconds\":{\"description\":\"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"},\"periodSeconds\":{\"description\":\"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"successThreshold\":{\"description\":\"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies an action involving a TCP port.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"},\"terminationGracePeriodSeconds\":{\"description\":\"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\"type\":\"integer\",\"format\":\"int64\"},\"timeoutSeconds\":{\"description\":\"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ProjectedVolumeSource\":{\"description\":\"Represents a projected volume source\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"sources\":{\"description\":\"sources is the list of volume projections\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeProjection\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"registry\",\"volume\"],\"properties\":{\"group\":{\"description\":\"group to map volume access to Default is no group\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\"type\":\"boolean\"},\"registry\":{\"description\":\"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\",\"image\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\"type\":\"string\"},\"image\":{\"description\":\"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\",\"default\":\"\"},\"keyring\":{\"description\":\"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"pool\":{\"description\":\"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"user\":{\"description\":\"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\",\"image\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\"type\":\"string\"},\"image\":{\"description\":\"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\",\"default\":\"\"},\"keyring\":{\"description\":\"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"pool\":{\"description\":\"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ReplicationController\":{\"description\":\"ReplicationController represents the configuration of a replication controller.\",\"type\":\"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\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"The last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of replication controller condition.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ReplicationControllerList\":{\"description\":\"ReplicationControllerList is a collection of replication controllers.\",\"type\":\"object\",\"required\":[\"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 replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.core.v1.ReplicationControllerStatus\":{\"description\":\"ReplicationControllerStatus represents the current status of a replication controller.\",\"type\":\"object\",\"required\":[\"replicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"The number of available replicas (ready for at least minReadySeconds) for this replication controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a replication controller's current state.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"ObservedGeneration reflects the generation of the most recently observed replication controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"The number of ready replicas for this replication controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"io.k8s.api.core.v1.ResourceFieldSelector\":{\"description\":\"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\"type\":\"object\",\"required\":[\"resource\"],\"properties\":{\"containerName\":{\"description\":\"Container name: required for volumes, optional for env vars\",\"type\":\"string\"},\"divisor\":{\"description\":\"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"resource\":{\"description\":\"Required: resource to select\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ResourceQuota\":{\"description\":\"ResourceQuota sets aggregate quota restrictions enforced per namespace\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ResourceQuotaList\":{\"description\":\"ResourceQuotaList is a list of ResourceQuota items.\",\"type\":\"object\",\"required\":[\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"properties\":{\"hard\":{\"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\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScopeSelector\"},\"scopes\":{\"description\":\"A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.ResourceQuotaStatus\":{\"description\":\"ResourceQuotaStatus defines the enforced hard limits and observed use.\",\"type\":\"object\",\"properties\":{\"hard\":{\"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\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"used\":{\"description\":\"Used is the current observed total usage of the resource in the namespace.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}}},\"io.k8s.api.core.v1.ResourceRequirements\":{\"description\":\"ResourceRequirements describes the compute resource requirements.\",\"type\":\"object\",\"properties\":{\"limits\":{\"description\":\"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"requests\":{\"description\":\"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}}},\"io.k8s.api.core.v1.SELinuxOptions\":{\"description\":\"SELinuxOptions are the labels to be applied to the container\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\":{\"description\":\"ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\",\"type\":\"object\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\"\",\"type\":\"string\"},\"gateway\":{\"description\":\"gateway is the host address of the ScaleIO API Gateway.\",\"type\":\"string\",\"default\":\"\"},\"protectionDomain\":{\"description\":\"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"sslEnabled\":{\"description\":\"sslEnabled is the flag to enable/disable SSL communication with Gateway, default false\",\"type\":\"boolean\"},\"storageMode\":{\"description\":\"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\"type\":\"string\"},\"storagePool\":{\"description\":\"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\"type\":\"string\"},\"system\":{\"description\":\"system is the name of the storage system as configured in ScaleIO.\",\"type\":\"string\",\"default\":\"\"},\"volumeName\":{\"description\":\"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ScaleIOVolumeSource\":{\"description\":\"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\"type\":\"object\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\"type\":\"string\"},\"gateway\":{\"description\":\"gateway is the host address of the ScaleIO API Gateway.\",\"type\":\"string\",\"default\":\"\"},\"protectionDomain\":{\"description\":\"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"sslEnabled\":{\"description\":\"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\"type\":\"boolean\"},\"storageMode\":{\"description\":\"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\"type\":\"string\"},\"storagePool\":{\"description\":\"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\"type\":\"string\"},\"system\":{\"description\":\"system is the name of the storage system as configured in ScaleIO.\",\"type\":\"string\",\"default\":\"\"},\"volumeName\":{\"description\":\"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ScopeSelector\":{\"description\":\"A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"A list of scope selector requirements by scope of the resources.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"scopeName\",\"operator\"],\"properties\":{\"operator\":{\"description\":\"Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.\\n\\nPossible enum values:\\n - `\\\"DoesNotExist\\\"`\\n - `\\\"Exists\\\"`\\n - `\\\"In\\\"`\\n - `\\\"NotIn\\\"`\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"DoesNotExist\",\"Exists\",\"In\",\"NotIn\"]},\"scopeName\":{\"description\":\"The name of the scope that the selector applies to.\\n\\nPossible enum values:\\n - `\\\"BestEffort\\\"` Match all pod objects that have best effort quality of service\\n - `\\\"CrossNamespacePodAffinity\\\"` Match all pod objects that have cross-namespace pod (anti)affinity mentioned.\\n - `\\\"NotBestEffort\\\"` Match all pod objects that do not have best effort quality of service\\n - `\\\"NotTerminating\\\"` Match all pod objects where spec.activeDeadlineSeconds is nil\\n - `\\\"PriorityClass\\\"` Match all pod objects that have priority class mentioned\\n - `\\\"Terminating\\\"` Match all pod objects where spec.activeDeadlineSeconds \\u003e=0\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"BestEffort\",\"CrossNamespacePodAffinity\",\"NotBestEffort\",\"NotTerminating\",\"PriorityClass\",\"Terminating\"]},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.SeccompProfile\":{\"description\":\"SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"localhostProfile\":{\"description\":\"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must 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.\\n\\nPossible enum values:\\n - `\\\"Localhost\\\"` indicates a profile defined in a file on the node should be used. The file's location relative to \\u003ckubelet-root-dir\\u003e/seccomp.\\n - `\\\"RuntimeDefault\\\"` represents the default container runtime seccomp profile.\\n - `\\\"Unconfined\\\"` indicates no seccomp profile is applied (A.K.A. unconfined).\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"Localhost\",\"RuntimeDefault\",\"Unconfined\"]}},\"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.\",\"type\":\"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\"},\"data\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"format\":\"byte\"}},\"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.\",\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"stringData\":{\"description\":\"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\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"type\":{\"description\":\"Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\",\"type\":\"string\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.SecretKeySelector\":{\"description\":\"SecretKeySelector selects a key of a Secret.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key of the secret to select from.  Must be a valid secret key.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.SecretList\":{\"description\":\"SecretList is a list of Secret.\",\"type\":\"object\",\"required\":[\"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 secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional field specify whether the Secret or its key must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.SecretReference\":{\"description\":\"SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace\",\"type\":\"object\",\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"optional\":{\"description\":\"optional field specify whether the Secret or its keys must be defined\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"allowPrivilegeEscalation\":{\"description\":\"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"capabilities\":{\"description\":\"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Capabilities\"},\"privileged\":{\"description\":\"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"procMount\":{\"description\":\"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"readOnlyRootFilesystem\":{\"description\":\"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"},\"seccompProfile\":{\"description\":\"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SeccompProfile\"},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}}},\"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.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceStatus\"}},\"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\",\"type\":\"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\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"secrets\":{\"description\":\"Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a \\\"kubernetes.io/enforce-mountable-secrets\\\" annotation set to \\\"true\\\". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ServiceAccountList\":{\"description\":\"ServiceAccountList is a list of ServiceAccount objects\",\"type\":\"object\",\"required\":[\"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 ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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).\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"audience\":{\"description\":\"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\"type\":\"string\"},\"expirationSeconds\":{\"description\":\"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\"type\":\"integer\",\"format\":\"int64\"},\"path\":{\"description\":\"path is the path relative to the mount point of the file to project the token into.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ServiceList\":{\"description\":\"ServiceList holds a list of services.\",\"type\":\"object\",\"required\":[\"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 services\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ServiceList\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ServicePort\":{\"description\":\"ServicePort contains information on service's port.\",\"type\":\"object\",\"required\":[\"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 https://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 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\",\"type\":\"integer\",\"format\":\"int32\"},\"port\":{\"description\":\"The port that will be exposed by this service.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"protocol\":{\"description\":\"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\". Default is TCP.\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\"type\":\"string\",\"default\":\"TCP\",\"enum\":[\"SCTP\",\"TCP\",\"UDP\"]},\"targetPort\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.core.v1.ServiceSpec\":{\"description\":\"ServiceSpec describes the attributes that a user creates on a service.\",\"type\":\"object\",\"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.  If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.\",\"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\\nThis 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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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 \\\"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.\\n\\nPossible enum values:\\n - `\\\"Cluster\\\"` specifies node-global (legacy) behavior.\\n - `\\\"Local\\\"` specifies node-local endpoints behavior.\",\"type\":\"string\",\"enum\":[\"Cluster\",\"Local\"]},\"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).\",\"type\":\"integer\",\"format\":\"int32\"},\"internalTrafficPolicy\":{\"description\":\"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\\\".\",\"type\":\"string\"},\"ipFamilies\":{\"description\":\"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. 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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-list-type\":\"atomic\"},\"ipFamilyPolicy\":{\"description\":\"IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. 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\"},\"loadBalancerClass\":{\"description\":\"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.\",\"type\":\"string\"},\"loadBalancerIP\":{\"description\":\"Only applies to Service Type: LoadBalancer. 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. Deprecated: This field was under-specified and its meaning varies across implementations, and it cannot support dual-stack. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version.\",\"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/create-external-load-balancer/\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServicePort\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"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\\n\\nPossible enum values:\\n - `\\\"ClientIP\\\"` is the Client IP based.\\n - `\\\"None\\\"` - no session affinity.\",\"type\":\"string\",\"enum\":[\"ClientIP\",\"None\"]},\"sessionAffinityConfig\":{\"description\":\"sessionAffinityConfig contains the configurations of session affinity.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SessionAffinityConfig\"},\"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\\n\\nPossible enum values:\\n - `\\\"ClusterIP\\\"` means a service will only be accessible inside the cluster, via the cluster IP.\\n - `\\\"ExternalName\\\"` means a service consists of only a reference to an external name that kubedns or equivalent will return as a CNAME record, with no exposing or proxying of any pods involved.\\n - `\\\"LoadBalancer\\\"` means a service will be exposed via an external load balancer (if the cloud provider supports it), in addition to 'NodePort' type.\\n - `\\\"NodePort\\\"` means a service will be exposed on one port of every node, in addition to 'ClusterIP' type.\",\"type\":\"string\",\"enum\":[\"ClusterIP\",\"ExternalName\",\"LoadBalancer\",\"NodePort\"]}}},\"io.k8s.api.core.v1.ServiceStatus\":{\"description\":\"ServiceStatus represents the current status of a service.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Current service state\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"loadBalancer\":{\"description\":\"LoadBalancer contains the current status of the load-balancer, if one is present.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.LoadBalancerStatus\"}}},\"io.k8s.api.core.v1.SessionAffinityConfig\":{\"description\":\"SessionAffinityConfig represents the configurations of session affinity.\",\"type\":\"object\",\"properties\":{\"clientIP\":{\"description\":\"clientIP contains the configurations of Client IP based session affinity.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ClientIPConfig\"}}},\"io.k8s.api.core.v1.StorageOSPersistentVolumeSource\":{\"description\":\"Represents a StorageOS persistent volume resource.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"volumeName\":{\"description\":\"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.StorageOSVolumeSource\":{\"description\":\"Represents a StorageOS persistent volume resource.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeName\":{\"description\":\"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Sysctl\":{\"description\":\"Sysctl defines a kernel parameter to be set\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"Name of a property to set\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Value of a property to set\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.TCPSocketAction\":{\"description\":\"TCPSocketAction describes an action based on opening a socket\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Optional: Host name to connect to, defaults to the pod IP.\",\"type\":\"string\"},\"port\":{\"description\":\"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"effect\"],\"properties\":{\"effect\":{\"description\":\"Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\\n\\nPossible enum values:\\n - `\\\"NoExecute\\\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\\n - `\\\"NoSchedule\\\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\\n - `\\\"PreferNoSchedule\\\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"NoExecute\",\"NoSchedule\",\"PreferNoSchedule\"]},\"key\":{\"description\":\"Required. The taint key to be applied to a node.\",\"type\":\"string\",\"default\":\"\"},\"timeAdded\":{\"description\":\"TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"value\":{\"description\":\"The taint value corresponding to the taint key.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"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.\\n\\nPossible enum values:\\n - `\\\"NoExecute\\\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\\n - `\\\"NoSchedule\\\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\\n - `\\\"PreferNoSchedule\\\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.\",\"type\":\"string\",\"enum\":[\"NoExecute\",\"NoSchedule\",\"PreferNoSchedule\"]},\"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.\\n\\nPossible enum values:\\n - `\\\"Equal\\\"`\\n - `\\\"Exists\\\"`\",\"type\":\"string\",\"enum\":[\"Equal\",\"Exists\"]},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\"}}},\"io.k8s.api.core.v1.TopologySpreadConstraint\":{\"description\":\"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\"type\":\"object\",\"required\":[\"maxSkew\",\"topologyKey\",\"whenUnsatisfiable\"],\"properties\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | |  P P  |  P P  |   P   | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) 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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"minDomains\":{\"description\":\"MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | |  P P  |  P P  |  P P  | The number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.\\n\\nThis is an alpha field and requires enabling MinDomainsInPodTopologySpread feature gate.\",\"type\":\"integer\",\"format\":\"int32\"},\"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. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes match the node selector. e.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology. And, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology. It's a required field.\",\"type\":\"string\",\"default\":\"\"},\"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 assignment 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.\\n\\nPossible enum values:\\n - `\\\"DoNotSchedule\\\"` instructs the scheduler not to schedule the pod when constraints are not satisfied.\\n - `\\\"ScheduleAnyway\\\"` instructs the scheduler to schedule the pod even if constraints are not satisfied.\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"DoNotSchedule\",\"ScheduleAnyway\"]}}},\"io.k8s.api.core.v1.TypedLocalObjectReference\":{\"description\":\"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\"type\":\"object\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"awsElasticBlockStore\":{\"description\":\"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"azureDisk\":{\"description\":\"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"azureFile\":{\"description\":\"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource\"},\"cephfs\":{\"description\":\"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CephFSVolumeSource\"},\"cinder\":{\"description\":\"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CinderVolumeSource\"},\"configMap\":{\"description\":\"configMap represents a configMap that should populate this volume\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource\"},\"csi\":{\"description\":\"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CSIVolumeSource\"},\"downwardAPI\":{\"description\":\"downwardAPI represents downward API about the pod that should populate this volume\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource\"},\"emptyDir\":{\"description\":\"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource\"},\"ephemeral\":{\"description\":\"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\\n\\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\\n   tracking are needed,\\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n   information on the connection between this volume type\\n   and PersistentVolumeClaim).\\n\\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\\n\\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EphemeralVolumeSource\"},\"fc\":{\"description\":\"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"},\"flexVolume\":{\"description\":\"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlexVolumeSource\"},\"flocker\":{\"description\":\"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"},\"gcePersistentDisk\":{\"description\":\"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"gitRepo\":{\"description\":\"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource\"},\"glusterfs\":{\"description\":\"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource\"},\"hostPath\":{\"description\":\"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"},\"iscsi\":{\"description\":\"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource\"},\"name\":{\"description\":\"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\",\"default\":\"\"},\"nfs\":{\"description\":\"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"},\"persistentVolumeClaim\":{\"description\":\"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"},\"photonPersistentDisk\":{\"description\":\"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"portworxVolume\":{\"description\":\"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"},\"projected\":{\"description\":\"projected items for all in one resources secrets, configmaps, and downward API\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource\"},\"quobyte\":{\"description\":\"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"rbd\":{\"description\":\"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.RBDVolumeSource\"},\"scaleIO\":{\"description\":\"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource\"},\"secret\":{\"description\":\"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretVolumeSource\"},\"storageos\":{\"description\":\"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource\"},\"vsphereVolume\":{\"description\":\"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}}},\"io.k8s.api.core.v1.VolumeDevice\":{\"description\":\"volumeDevice describes a mapping of a raw block device within a container.\",\"type\":\"object\",\"required\":[\"name\",\"devicePath\"],\"properties\":{\"devicePath\":{\"description\":\"devicePath is the path inside of the container that the device will be mapped to.\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"name must match the name of a persistentVolumeClaim in the pod\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.VolumeMount\":{\"description\":\"VolumeMount describes a mounting of a Volume within a container.\",\"type\":\"object\",\"required\":[\"name\",\"mountPath\"],\"properties\":{\"mountPath\":{\"description\":\"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.VolumeNodeAffinity\":{\"description\":\"VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\",\"type\":\"object\",\"properties\":{\"required\":{\"description\":\"required specifies hard node constraints that must be met.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelector\"}}},\"io.k8s.api.core.v1.VolumeProjection\":{\"description\":\"Projection that may be projected along with other supported volume types\",\"type\":\"object\",\"properties\":{\"configMap\":{\"description\":\"configMap information about the configMap data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapProjection\"},\"downwardAPI\":{\"description\":\"downwardAPI information about the downwardAPI data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIProjection\"},\"secret\":{\"description\":\"secret information about the secret data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretProjection\"},\"serviceAccountToken\":{\"description\":\"serviceAccountToken is information about the serviceAccountToken data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection\"}}},\"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\":{\"description\":\"Represents a vSphere volume resource.\",\"type\":\"object\",\"required\":[\"volumePath\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"storagePolicyID\":{\"description\":\"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\"type\":\"string\"},\"storagePolicyName\":{\"description\":\"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\"type\":\"string\"},\"volumePath\":{\"description\":\"volumePath is the path that identifies vSphere volume vmdk\",\"type\":\"string\",\"default\":\"\"}}},\"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)\",\"type\":\"object\",\"required\":[\"weight\",\"podAffinityTerm\"],\"properties\":{\"podAffinityTerm\":{\"description\":\"Required. A pod affinity term, associated with the corresponding weight.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"},\"weight\":{\"description\":\"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"io.k8s.api.core.v1.WindowsSecurityContextOptions\":{\"description\":\"WindowsSecurityContextOptions contain Windows-specific options and credentials.\",\"type\":\"object\",\"properties\":{\"gmsaCredentialSpec\":{\"description\":\"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\"type\":\"string\"},\"gmsaCredentialSpecName\":{\"description\":\"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\"type\":\"string\"},\"hostProcess\":{\"description\":\"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).  In addition, if HostProcess is true then HostNetwork must also be set to true.\",\"type\":\"boolean\"},\"runAsUserName\":{\"description\":\"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"string\"}}},\"io.k8s.api.policy.v1.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.\",\"type\":\"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\"},\"deleteOptions\":{\"description\":\"DeleteOptions may be provided\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"ObjectMeta describes the pod that is being evicted.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"policy\",\"kind\":\"Eviction\",\"version\":\"v1\"}]},\"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.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"type\":\"object\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is the plural name of the resource.\",\"type\":\"string\",\"default\":\"\"},\"namespaced\":{\"description\":\"namespaced indicates if a resource is namespaced or not.\",\"type\":\"boolean\",\"default\":false},\"shortNames\":{\"description\":\"shortNames is a list of suggested short names of the resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest 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\",\"default\":\"\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIResourceList\",\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\",\"lastTransitionTime\",\"reason\",\"message\"],\"properties\":{\"lastTransitionTime\":{\"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.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"message is a human readable message indicating details about the transition. This may be an empty string.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\",\"default\":\"\"},\"status\":{\"description\":\"status of the condition, one of True, False, Unknown.\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"type of condition in CamelCase or in foo.example.com/CamelCase.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"}},\"matchLabels\":{\"description\":\"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"key is the label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\",\"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\",\"default\":\"\"},\"values\":{\"description\":\"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\":{\"description\":\"MicroTime is version of Time with microsecond level precision.\",\"type\":\"string\",\"format\":\"date-time\"},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"clusterName\":{\"description\":\"Deprecated: ClusterName is a legacy field that was always cleared by the system and never used; it will be removed completely in 1.25.\\n\\nThe name in the go struct is changed to help clients detect accidental use.\",\"type\":\"string\"},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"type\":\"object\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"type\":{\"type\":\"string\",\"default\":\"\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.\",\"type\":\"string\",\"format\":\"int-or-string\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}\n"
  },
  {
    "path": "pkg/openapiconv/testdata_generated_from_k8s/v2_apiextensions.k8s.io.v1.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.24.0\"},\"paths\":{\"/apis/apiextensions.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"getApiextensionsV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apiextensions.k8s.io/v1/customresourcedefinitions\":{\"get\":{\"description\":\"list or watch objects of kind CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"listApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"post\":{\"description\":\"create a CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"createApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"delete\":{\"description\":\"delete collection of CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"deleteApiextensionsV1CollectionCustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}\":{\"get\":{\"description\":\"read the specified CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"readApiextensionsV1CustomResourceDefinition\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"put\":{\"description\":\"replace the specified CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"replaceApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"delete\":{\"description\":\"delete a CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"deleteApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"patch\":{\"description\":\"partially update the specified CustomResourceDefinition\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"patchApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CustomResourceDefinition\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status\":{\"get\":{\"description\":\"read status of the specified CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"readApiextensionsV1CustomResourceDefinitionStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"put\":{\"description\":\"replace status of the specified CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"replaceApiextensionsV1CustomResourceDefinitionStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"patch\":{\"description\":\"partially update status of the specified CustomResourceDefinition\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"patchApiextensionsV1CustomResourceDefinitionStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CustomResourceDefinition\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions\":{\"get\":{\"description\":\"watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"watchApiextensionsV1CustomResourceDefinitionList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1\"],\"operationId\":\"watchApiextensionsV1CustomResourceDefinition\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CustomResourceDefinition\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]}},\"definitions\":{\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\":{\"description\":\"CustomResourceDefinitionList is a list of CustomResourceDefinition objects.\",\"type\":\"object\",\"required\":[\"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 list individual CustomResourceDefinition objects\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"},\"status\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"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\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"default\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}},\"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\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"type\":\"object\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is the plural name of the resource.\",\"type\":\"string\",\"default\":\"\"},\"namespaced\":{\"description\":\"namespaced indicates if a resource is namespaced or not.\",\"type\":\"boolean\",\"default\":false},\"shortNames\":{\"description\":\"shortNames is a list of suggested short names of the resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest 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\",\"default\":\"\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIResourceList\",\"version\":\"v1\"}]},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"clusterName\":{\"description\":\"Deprecated: ClusterName is a legacy field that was always cleared by the system and never used; it will be removed completely in 1.25.\\n\\nThe name in the go struct is changed to help clients detect accidental use.\",\"type\":\"string\"},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"type\":\"object\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"type\":{\"type\":\"string\",\"default\":\"\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}\n"
  },
  {
    "path": "pkg/openapiconv/testdata_generated_from_k8s/v2_batch.v1.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.24.0\"},\"paths\":{\"/apis/batch/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"getBatchV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/batch/v1/cronjobs\":{\"get\":{\"description\":\"list or watch objects of kind CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"listBatchV1CronJobForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/jobs\":{\"get\":{\"description\":\"list or watch objects of kind Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"listBatchV1JobForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/namespaces/{namespace}/cronjobs\":{\"get\":{\"description\":\"list or watch objects of kind CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"listBatchV1NamespacedCronJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"post\":{\"description\":\"create a CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"createBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"delete\":{\"description\":\"delete collection of CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"deleteBatchV1CollectionNamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1/namespaces/{namespace}/cronjobs/{name}\":{\"get\":{\"description\":\"read the specified CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"readBatchV1NamespacedCronJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"put\":{\"description\":\"replace the specified CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"replaceBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"delete\":{\"description\":\"delete a CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"deleteBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"patch\":{\"description\":\"partially update the specified CronJob\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"patchBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CronJob\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status\":{\"get\":{\"description\":\"read status of the specified CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"readBatchV1NamespacedCronJobStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"put\":{\"description\":\"replace status of the specified CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"replaceBatchV1NamespacedCronJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"patch\":{\"description\":\"partially update status of the specified CronJob\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"patchBatchV1NamespacedCronJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CronJob\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1/namespaces/{namespace}/jobs\":{\"get\":{\"description\":\"list or watch objects of kind Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"listBatchV1NamespacedJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"post\":{\"description\":\"create a Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"createBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"delete\":{\"description\":\"delete collection of Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"deleteBatchV1CollectionNamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1/namespaces/{namespace}/jobs/{name}\":{\"get\":{\"description\":\"read the specified Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"readBatchV1NamespacedJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"put\":{\"description\":\"replace the specified Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"replaceBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"delete\":{\"description\":\"delete a Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"deleteBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"patch\":{\"description\":\"partially update the specified Job\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"patchBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Job\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status\":{\"get\":{\"description\":\"read status of the specified Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"readBatchV1NamespacedJobStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"put\":{\"description\":\"replace status of the specified Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"replaceBatchV1NamespacedJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"patch\":{\"description\":\"partially update status of the specified Job\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"patchBatchV1NamespacedJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"name\":\"force\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Job\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1/watch/cronjobs\":{\"get\":{\"description\":\"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"watchBatchV1CronJobListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/watch/jobs\":{\"get\":{\"description\":\"watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"watchBatchV1JobListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/watch/namespaces/{namespace}/cronjobs\":{\"get\":{\"description\":\"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"watchBatchV1NamespacedCronJobList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/watch/namespaces/{namespace}/cronjobs/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"watchBatchV1NamespacedCronJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CronJob\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/watch/namespaces/{namespace}/jobs\":{\"get\":{\"description\":\"watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"watchBatchV1NamespacedJobList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"watchBatchV1NamespacedJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Job\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]}},\"definitions\":{\"io.k8s.api.batch.v1.CronJob\":{\"description\":\"CronJob represents the configuration of a single cron job.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJobSpec\"},\"status\":{\"description\":\"Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJobStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1\"}]},\"io.k8s.api.batch.v1.CronJobList\":{\"description\":\"CronJobList is a collection of cron jobs.\",\"type\":\"object\",\"required\":[\"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 the list of CronJobs.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.batch.v1.CronJob\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"batch\",\"kind\":\"CronJobList\",\"version\":\"v1\"}]},\"io.k8s.api.batch.v1.CronJobSpec\":{\"description\":\"CronJobSpec describes how the job execution will look like and when it will actually run.\",\"type\":\"object\",\"required\":[\"schedule\",\"jobTemplate\"],\"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\\n\\nPossible enum values:\\n - `\\\"Allow\\\"` allows CronJobs to run concurrently.\\n - `\\\"Forbid\\\"` forbids concurrent runs, skipping next run if previous hasn't finished yet.\\n - `\\\"Replace\\\"` cancels currently running job and replaces it with a new one.\",\"type\":\"string\",\"enum\":[\"Allow\",\"Forbid\",\"Replace\"]},\"failedJobsHistoryLimit\":{\"description\":\"The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"jobTemplate\":{\"description\":\"Specifies the job that will be created when executing a CronJob.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobTemplateSpec\"},\"schedule\":{\"description\":\"The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"successfulJobsHistoryLimit\":{\"description\":\"The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.\",\"type\":\"integer\",\"format\":\"int32\"},\"suspend\":{\"description\":\"This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.\",\"type\":\"boolean\"}}},\"io.k8s.api.batch.v1.CronJobStatus\":{\"description\":\"CronJobStatus represents the current state of a cron job.\",\"type\":\"object\",\"properties\":{\"active\":{\"description\":\"A list of pointers to currently running jobs.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"x-kubernetes-list-type\":\"atomic\"},\"lastScheduleTime\":{\"description\":\"Information when was the last time the job was successfully scheduled.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastSuccessfulTime\":{\"description\":\"Information when was the last time the job successfully completed.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.batch.v1.Job\":{\"description\":\"Job represents the configuration of a single job.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobSpec\"},\"status\":{\"description\":\"Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"Last time the condition was checked.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transit from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of job condition, Complete or Failed.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.batch.v1.JobList\":{\"description\":\"JobList is a collection of jobs.\",\"type\":\"object\",\"required\":[\"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 the list of Jobs.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"required\":[\"template\"],\"properties\":{\"activeDeadlineSeconds\":{\"description\":\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"backoffLimit\":{\"description\":\"Specifies the number of retries before marking this job failed. Defaults to 6\",\"type\":\"integer\",\"format\":\"int32\"},\"completionMode\":{\"description\":\"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. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`.\\n\\nMore completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller skips updates for the Job.\",\"type\":\"string\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"suspend\":{\"description\":\"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. Defaults to false.\",\"type\":\"boolean\"},\"template\":{\"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/\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.batch.v1.JobStatus\":{\"description\":\"JobStatus represents the current state of a Job.\",\"type\":\"object\",\"properties\":{\"active\":{\"description\":\"The number of pending and running pods.\",\"type\":\"integer\",\"format\":\"int32\"},\"completedIndexes\":{\"description\":\"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\\\".\",\"type\":\"string\"},\"completionTime\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"conditions\":{\"description\":\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobCondition\"},\"x-kubernetes-list-type\":\"atomic\",\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"failed\":{\"description\":\"The number of pods which reached phase Failed.\",\"type\":\"integer\",\"format\":\"int32\"},\"ready\":{\"description\":\"The number of pods which have a Ready condition.\\n\\nThis field is alpha-level. The job controller populates the field when the feature gate JobReadyPods is enabled (disabled by default).\",\"type\":\"integer\",\"format\":\"int32\"},\"startTime\":{\"description\":\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"succeeded\":{\"description\":\"The number of pods which reached phase Succeeded.\",\"type\":\"integer\",\"format\":\"int32\"},\"uncountedTerminatedPods\":{\"description\":\"UncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.\\n\\nThe job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status: (1) Add the pod UID to the arrays in this field. (2) Remove the pod finalizer. (3) Remove the pod UID from the arrays while increasing the corresponding\\n    counter.\\n\\nThis field is beta-level. The job controller only makes use of this field when the feature gate JobTrackingWithFinalizers is enabled (enabled by default). Old jobs might not be tracked using this field, in which case the field remains null.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.UncountedTerminatedPods\"}}},\"io.k8s.api.batch.v1.JobTemplateSpec\":{\"description\":\"JobTemplateSpec describes the data a Job should have when created from a template\",\"type\":\"object\",\"properties\":{\"metadata\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobSpec\"}}},\"io.k8s.api.batch.v1.UncountedTerminatedPods\":{\"description\":\"UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.\",\"type\":\"object\",\"properties\":{\"failed\":{\"description\":\"Failed holds UIDs of failed Pods.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-list-type\":\"set\"},\"succeeded\":{\"description\":\"Succeeded holds UIDs of succeeded Pods.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-list-type\":\"set\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.Affinity\":{\"description\":\"Affinity is a group of affinity scheduling rules.\",\"type\":\"object\",\"properties\":{\"nodeAffinity\":{\"description\":\"Describes node affinity scheduling rules for the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeAffinity\"},\"podAffinity\":{\"description\":\"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinity\"},\"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)).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAntiAffinity\"}}},\"io.k8s.api.core.v1.AzureDiskVolumeSource\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"diskName\",\"diskURI\"],\"properties\":{\"cachingMode\":{\"description\":\"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\"type\":\"string\"},\"diskName\":{\"description\":\"diskName is the Name of the data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"diskURI\":{\"description\":\"diskURI is the URI of data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"kind\":{\"description\":\"kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.AzureFileVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the  name of secret that contains Azure Storage Account Name and Key\",\"type\":\"string\",\"default\":\"\"},\"shareName\":{\"description\":\"shareName is the azure share Name\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.CSIVolumeSource\":{\"description\":\"Represents a source location of a volume to mount, managed by an external CSI driver\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\"type\":\"string\"},\"nodePublishSecretRef\":{\"description\":\"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and  may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"readOnly\":{\"description\":\"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.Capabilities\":{\"description\":\"Adds and removes POSIX capabilities from running containers.\",\"type\":\"object\",\"properties\":{\"add\":{\"description\":\"Added capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"drop\":{\"description\":\"Removed capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"path\":{\"description\":\"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretFile\":{\"description\":\"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeID\":{\"description\":\"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ConfigMapKeySelector\":{\"description\":\"Selects a key from a ConfigMap.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key to select.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.Container\":{\"description\":\"A single application container that you want to run within a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvFromSource\"}},\"image\":{\"description\":\"Container 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\\n\\nPossible enum values:\\n - `\\\"Always\\\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\\n - `\\\"IfNotPresent\\\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\\n - `\\\"Never\\\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present\",\"type\":\"string\",\"enum\":[\"Always\",\"IfNotPresent\",\"Never\"]},\"lifecycle\":{\"description\":\"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"},\"securityContext\":{\"description\":\"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecurityContext\"},\"startupProbe\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"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.\\n\\nPossible enum values:\\n - `\\\"FallbackToLogsOnError\\\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\\n - `\\\"File\\\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.\",\"type\":\"string\",\"enum\":[\"FallbackToLogsOnError\",\"File\"]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeDevice\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.ContainerPort\":{\"description\":\"ContainerPort represents a network port in a single container.\",\"type\":\"object\",\"required\":[\"containerPort\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\\\".\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\"type\":\"string\",\"default\":\"TCP\",\"enum\":[\"SCTP\",\"TCP\",\"UDP\"]}}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"Items is a list of DownwardAPIVolume file\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.DownwardAPIVolumeFile\":{\"description\":\"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"fieldRef\":{\"description\":\"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"},\"mode\":{\"description\":\"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\"type\":\"string\",\"default\":\"\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"}}},\"io.k8s.api.core.v1.DownwardAPIVolumeSource\":{\"description\":\"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"Items is a list of downward API volume file\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.EmptyDirVolumeSource\":{\"description\":\"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"medium\":{\"description\":\"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"type\":\"string\"},\"sizeLimit\":{\"description\":\"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"io.k8s.api.core.v1.EnvFromSource\":{\"description\":\"EnvFromSource represents the source of a set of ConfigMaps\",\"type\":\"object\",\"properties\":{\"configMapRef\":{\"description\":\"The ConfigMap to select from\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource\"},\"prefix\":{\"description\":\"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\"type\":\"string\"},\"secretRef\":{\"description\":\"The Secret to select from\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretEnvSource\"}}},\"io.k8s.api.core.v1.EnvVar\":{\"description\":\"EnvVar represents an environment variable present in a Container.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name of the environment variable. Must be a C_IDENTIFIER.\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Variable references $(VAR_NAME) are expanded using the previously 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the environment variable's value. Cannot be used if value is not empty.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVarSource\"}}},\"io.k8s.api.core.v1.EnvVarSource\":{\"description\":\"EnvVarSource represents a source for the value of an EnvVar.\",\"type\":\"object\",\"properties\":{\"configMapKeyRef\":{\"description\":\"Selects a key of a ConfigMap.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector\"},\"fieldRef\":{\"description\":\"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"},\"secretKeyRef\":{\"description\":\"Selects a key of a secret in the pod's namespace\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretKeySelector\"}}},\"io.k8s.api.core.v1.EphemeralContainer\":{\"description\":\"An EphemeralContainer is a temporary container that you may add 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. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\\n\\nThis is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvFromSource\"}},\"image\":{\"description\":\"Container 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\\n\\nPossible enum values:\\n - `\\\"Always\\\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\\n - `\\\"IfNotPresent\\\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\\n - `\\\"Never\\\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present\",\"type\":\"string\",\"enum\":[\"Always\",\"IfNotPresent\",\"Never\"]},\"lifecycle\":{\"description\":\"Lifecycle is not allowed for ephemeral containers.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"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\",\"default\":\"\"},\"ports\":{\"description\":\"Ports are not allowed for ephemeral containers.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"},\"securityContext\":{\"description\":\"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecurityContext\"},\"startupProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"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 uses the namespaces configured in the Pod spec.\\n\\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\"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.\\n\\nPossible enum values:\\n - `\\\"FallbackToLogsOnError\\\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\\n - `\\\"File\\\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.\",\"type\":\"string\",\"enum\":[\"FallbackToLogsOnError\",\"File\"]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeDevice\"},\"x-kubernetes-patch-merge-key\":\"devicePath\",\"x-kubernetes-patch-strategy\":\"merge\"},\"volumeMounts\":{\"description\":\"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.EphemeralVolumeSource\":{\"description\":\"Represents an ephemeral volume that is handled by a normal storage driver.\",\"type\":\"object\",\"properties\":{\"volumeClaimTemplate\":{\"description\":\"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod.  The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\\n\\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\\n\\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\\n\\nRequired, must not be nil.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimTemplate\"}}},\"io.k8s.api.core.v1.ExecAction\":{\"description\":\"ExecAction describes a \\\"run in container\\\" action.\",\"type\":\"object\",\"properties\":{\"command\":{\"description\":\"Command is the command line to execute inside the container, the working directory for the command  is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"lun\":{\"description\":\"lun is Optional: FC target lun number\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"targetWWNs\":{\"description\":\"targetWWNs is Optional: FC target worldwide names (WWNs)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"wwids\":{\"description\":\"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.FlexVolumeSource\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the driver to use for this volume.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"options is Optional: this field holds extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"datasetName\":{\"description\":\"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\"type\":\"string\"},\"datasetUUID\":{\"description\":\"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"pdName\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"integer\",\"format\":\"int32\"},\"pdName\":{\"description\":\"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.GRPCAction\":{\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"port\":{\"description\":\"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"service\":{\"description\":\"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"repository\"],\"properties\":{\"directory\":{\"description\":\"directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\"type\":\"string\"},\"repository\":{\"description\":\"repository is the URL\",\"type\":\"string\",\"default\":\"\"},\"revision\":{\"description\":\"revision is the commit hash for the specified revision.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"path\":{\"description\":\"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.HTTPGetAction\":{\"description\":\"HTTPGetAction describes an action based on HTTP Get requests.\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\"type\":\"string\"},\"httpHeaders\":{\"description\":\"Custom headers to set in the request. HTTP allows repeated headers.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPHeader\"}},\"path\":{\"description\":\"Path to access on the HTTP server.\",\"type\":\"string\"},\"port\":{\"description\":\"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"scheme\":{\"description\":\"Scheme to use for connecting to the host. Defaults to HTTP.\\n\\nPossible enum values:\\n - `\\\"HTTP\\\"` means that the scheme used will be http://\\n - `\\\"HTTPS\\\"` means that the scheme used will be https://\",\"type\":\"string\",\"enum\":[\"HTTP\",\"HTTPS\"]}}},\"io.k8s.api.core.v1.HTTPHeader\":{\"description\":\"HTTPHeader describes a custom header to be used in HTTP probes\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"The header field name\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"The header field value\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"hostnames\":{\"description\":\"Hostnames for the above IP address.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"ip\":{\"description\":\"IP address of the host file entry.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"path\":{\"description\":\"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"properties\":{\"chapAuthDiscovery\":{\"description\":\"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\"type\":\"boolean\"},\"chapAuthSession\":{\"description\":\"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\"type\":\"boolean\"},\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\"type\":\"string\"},\"initiatorName\":{\"description\":\"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\"type\":\"string\"},\"iqn\":{\"description\":\"iqn is the target iSCSI Qualified Name.\",\"type\":\"string\",\"default\":\"\"},\"iscsiInterface\":{\"description\":\"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\"type\":\"string\"},\"lun\":{\"description\":\"lun represents iSCSI Target Lun number.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"portals\":{\"description\":\"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"targetPortal\":{\"description\":\"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.KeyToPath\":{\"description\":\"Maps a string key to a path within a volume.\",\"type\":\"object\",\"required\":[\"key\",\"path\"],\"properties\":{\"key\":{\"description\":\"key is the key to project.\",\"type\":\"string\",\"default\":\"\"},\"mode\":{\"description\":\"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"postStart\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LifecycleHandler\"},\"preStop\":{\"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 Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). 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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LifecycleHandler\"}}},\"io.k8s.api.core.v1.LifecycleHandler\":{\"description\":\"LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ExecAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"},\"tcpSocket\":{\"description\":\"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"}}},\"io.k8s.api.core.v1.LocalObjectReference\":{\"description\":\"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"server\",\"path\"],\"properties\":{\"path\":{\"description\":\"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NodeAffinity\":{\"description\":\"Node affinity is a group of node affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm\"}},\"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 an update), the system may or may not try to eventually evict the pod from its node.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelector\"}}},\"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.\",\"type\":\"object\",\"required\":[\"nodeSelectorTerms\"],\"properties\":{\"nodeSelectorTerms\":{\"description\":\"Required. A list of node selector terms. The terms are ORed.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"The label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\"},\"operator\":{\"description\":\"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\\n\\nPossible enum values:\\n - `\\\"DoesNotExist\\\"`\\n - `\\\"Exists\\\"`\\n - `\\\"Gt\\\"`\\n - `\\\"In\\\"`\\n - `\\\"Lt\\\"`\\n - `\\\"NotIn\\\"`\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"DoesNotExist\",\"Exists\",\"Gt\",\"In\",\"Lt\",\"NotIn\"]},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"A list of node selector requirements by node's labels.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"}},\"matchFields\":{\"description\":\"A list of node selector requirements by node's fields.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ObjectFieldSelector\":{\"description\":\"ObjectFieldSelector selects an APIVersioned field of an object.\",\"type\":\"object\",\"required\":[\"fieldPath\"],\"properties\":{\"apiVersion\":{\"description\":\"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\"type\":\"string\"},\"fieldPath\":{\"description\":\"Path of the field to select in the specified API version.\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ObjectReference\":{\"description\":\"ObjectReference contains enough information to let you inspect or modify the referred object.\",\"type\":\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.PersistentVolumeClaimSpec\":{\"description\":\"PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes\",\"type\":\"object\",\"properties\":{\"accessModes\":{\"description\":\"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"dataSource\":{\"description\":\"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"dataSourceRef\":{\"description\":\"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef\\n  allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While DataSource ignores disallowed values (dropping them), DataSourceRef\\n  preserves all values, and generates an error if a disallowed value is\\n  specified.\\n(Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"resources\":{\"description\":\"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"},\"selector\":{\"description\":\"selector is a label query over volumes to consider for binding.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"storageClassName\":{\"description\":\"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\"type\":\"string\"},\"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\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimTemplate\":{\"description\":\"PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"metadata\":{\"description\":\"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"}}},\"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).\",\"type\":\"object\",\"required\":[\"claimName\"],\"properties\":{\"claimName\":{\"description\":\"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"string\",\"default\":\"\"},\"readOnly\":{\"description\":\"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\":{\"description\":\"Represents a Photon Controller persistent disk resource.\",\"type\":\"object\",\"required\":[\"pdID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"pdID\":{\"description\":\"pdID is the ID that identifies Photon Controller persistent disk\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAffinity\":{\"description\":\"Pod affinity is a group of inter pod affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"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\",\"type\":\"object\",\"required\":[\"topologyKey\"],\"properties\":{\"labelSelector\":{\"description\":\"A label query over a set of resources, in this case pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaceSelector\":{\"description\":\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaces\":{\"description\":\"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\\\".\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAntiAffinity\":{\"description\":\"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"io.k8s.api.core.v1.PodDNSConfig\":{\"description\":\"PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodDNSConfigOption\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.PodDNSConfigOption\":{\"description\":\"PodDNSConfigOption defines DNS resolver options of a pod.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"}}},\"io.k8s.api.core.v1.PodOS\":{\"description\":\"PodOS defines the OS parameters of a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodReadinessGate\":{\"description\":\"PodReadinessGate contains the reference to a pod condition\",\"type\":\"object\",\"required\":[\"conditionType\"],\"properties\":{\"conditionType\":{\"description\":\"ConditionType refers to a condition in the pod's condition list with matching type.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"fsGroupChangePolicy\":{\"description\":\"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"},\"seccompProfile\":{\"description\":\"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SeccompProfile\"},\"supplementalGroups\":{\"description\":\"A list of groups applied to the first process run in each container, in addition to the container's primary GID.  If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\",\"default\":0}},\"sysctls\":{\"description\":\"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Sysctl\"}},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}}},\"io.k8s.api.core.v1.PodSpec\":{\"description\":\"PodSpec is a description of a pod.\",\"type\":\"object\",\"required\":[\"containers\"],\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"affinity\":{\"description\":\"If specified, the pod's scheduling constraints\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Affinity\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Container\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"dnsConfig\":{\"description\":\"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodDNSConfig\"},\"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'.\\n\\nPossible enum values:\\n - `\\\"ClusterFirst\\\"` indicates that the pod should use cluster DNS first unless hostNetwork is true, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\\n - `\\\"ClusterFirstWithHostNet\\\"` indicates that the pod should use cluster DNS first, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\\n - `\\\"Default\\\"` indicates that the pod should use the default (as determined by kubelet) DNS settings.\\n - `\\\"None\\\"` indicates that the pod should use empty DNS settings. DNS parameters such as nameservers and search paths should be defined via DNSConfig.\",\"type\":\"string\",\"enum\":[\"ClusterFirst\",\"ClusterFirstWithHostNet\",\"Default\",\"None\"]},\"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 beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.EphemeralContainer\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostAlias\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Container\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"os\":{\"description\":\"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\\n\\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\\n\\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is a beta field and requires the IdentifyPodOS feature\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodOS\"},\"overhead\":{\"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/688-pod-overhead/README.md\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"preemptionPolicy\":{\"description\":\"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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/580-pod-readiness-gates\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodReadinessGate\"}},\"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\\n\\nPossible enum values:\\n - `\\\"Always\\\"`\\n - `\\\"Never\\\"`\\n - `\\\"OnFailure\\\"`\",\"type\":\"string\",\"enum\":[\"Always\",\"Never\",\"OnFailure\"]},\"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/585-runtime-class\",\"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\":{\"description\":\"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSecurityContext\"},\"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 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.\",\"type\":\"integer\",\"format\":\"int64\"},\"tolerations\":{\"description\":\"If specified, the pod's tolerations.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Toleration\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.Volume\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge,retainKeys\"}}},\"io.k8s.api.core.v1.PodTemplateSpec\":{\"description\":\"PodTemplateSpec describes the data a pod should have when created from a template\",\"type\":\"object\",\"properties\":{\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSpec\"}}},\"io.k8s.api.core.v1.PortworxVolumeSource\":{\"description\":\"PortworxVolumeSource represents a Portworx volume resource.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID uniquely identifies a Portworx volume\",\"type\":\"string\",\"default\":\"\"}}},\"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).\",\"type\":\"object\",\"required\":[\"weight\",\"preference\"],\"properties\":{\"preference\":{\"description\":\"A node selector term, associated with the corresponding weight.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"},\"weight\":{\"description\":\"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"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.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ExecAction\"},\"failureThreshold\":{\"description\":\"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"grpc\":{\"description\":\"GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GRPCAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"},\"initialDelaySeconds\":{\"description\":\"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"},\"periodSeconds\":{\"description\":\"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"successThreshold\":{\"description\":\"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies an action involving a TCP port.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"},\"terminationGracePeriodSeconds\":{\"description\":\"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\"type\":\"integer\",\"format\":\"int64\"},\"timeoutSeconds\":{\"description\":\"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ProjectedVolumeSource\":{\"description\":\"Represents a projected volume source\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"sources\":{\"description\":\"sources is the list of volume projections\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeProjection\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"registry\",\"volume\"],\"properties\":{\"group\":{\"description\":\"group to map volume access to Default is no group\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\"type\":\"boolean\"},\"registry\":{\"description\":\"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\",\"image\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\"type\":\"string\"},\"image\":{\"description\":\"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\",\"default\":\"\"},\"keyring\":{\"description\":\"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"pool\":{\"description\":\"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ResourceFieldSelector\":{\"description\":\"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\"type\":\"object\",\"required\":[\"resource\"],\"properties\":{\"containerName\":{\"description\":\"Container name: required for volumes, optional for env vars\",\"type\":\"string\"},\"divisor\":{\"description\":\"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"resource\":{\"description\":\"Required: resource to select\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ResourceRequirements\":{\"description\":\"ResourceRequirements describes the compute resource requirements.\",\"type\":\"object\",\"properties\":{\"limits\":{\"description\":\"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"requests\":{\"description\":\"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}}},\"io.k8s.api.core.v1.SELinuxOptions\":{\"description\":\"SELinuxOptions are the labels to be applied to the container\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ScaleIOVolumeSource\":{\"description\":\"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\"type\":\"object\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\"type\":\"string\"},\"gateway\":{\"description\":\"gateway is the host address of the ScaleIO API Gateway.\",\"type\":\"string\",\"default\":\"\"},\"protectionDomain\":{\"description\":\"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"sslEnabled\":{\"description\":\"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\"type\":\"boolean\"},\"storageMode\":{\"description\":\"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\"type\":\"string\"},\"storagePool\":{\"description\":\"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\"type\":\"string\"},\"system\":{\"description\":\"system is the name of the storage system as configured in ScaleIO.\",\"type\":\"string\",\"default\":\"\"},\"volumeName\":{\"description\":\"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.SeccompProfile\":{\"description\":\"SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"localhostProfile\":{\"description\":\"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must 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.\\n\\nPossible enum values:\\n - `\\\"Localhost\\\"` indicates a profile defined in a file on the node should be used. The file's location relative to \\u003ckubelet-root-dir\\u003e/seccomp.\\n - `\\\"RuntimeDefault\\\"` represents the default container runtime seccomp profile.\\n - `\\\"Unconfined\\\"` indicates no seccomp profile is applied (A.K.A. unconfined).\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"Localhost\",\"RuntimeDefault\",\"Unconfined\"]}},\"x-kubernetes-unions\":[{\"discriminator\":\"type\",\"fields-to-discriminateBy\":{\"localhostProfile\":\"LocalhostProfile\"}}]},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.SecretKeySelector\":{\"description\":\"SecretKeySelector selects a key of a Secret.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key of the secret to select from.  Must be a valid secret key.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional field specify whether the Secret or its key must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"optional\":{\"description\":\"optional field specify whether the Secret or its keys must be defined\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"allowPrivilegeEscalation\":{\"description\":\"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"capabilities\":{\"description\":\"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Capabilities\"},\"privileged\":{\"description\":\"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"procMount\":{\"description\":\"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"readOnlyRootFilesystem\":{\"description\":\"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"},\"seccompProfile\":{\"description\":\"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SeccompProfile\"},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}}},\"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).\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"audience\":{\"description\":\"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\"type\":\"string\"},\"expirationSeconds\":{\"description\":\"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\"type\":\"integer\",\"format\":\"int64\"},\"path\":{\"description\":\"path is the path relative to the mount point of the file to project the token into.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.StorageOSVolumeSource\":{\"description\":\"Represents a StorageOS persistent volume resource.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeName\":{\"description\":\"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Sysctl\":{\"description\":\"Sysctl defines a kernel parameter to be set\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"Name of a property to set\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Value of a property to set\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.TCPSocketAction\":{\"description\":\"TCPSocketAction describes an action based on opening a socket\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Optional: Host name to connect to, defaults to the pod IP.\",\"type\":\"string\"},\"port\":{\"description\":\"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"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.\",\"type\":\"object\",\"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.\\n\\nPossible enum values:\\n - `\\\"NoExecute\\\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\\n - `\\\"NoSchedule\\\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\\n - `\\\"PreferNoSchedule\\\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.\",\"type\":\"string\",\"enum\":[\"NoExecute\",\"NoSchedule\",\"PreferNoSchedule\"]},\"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.\\n\\nPossible enum values:\\n - `\\\"Equal\\\"`\\n - `\\\"Exists\\\"`\",\"type\":\"string\",\"enum\":[\"Equal\",\"Exists\"]},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\"}}},\"io.k8s.api.core.v1.TopologySpreadConstraint\":{\"description\":\"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\"type\":\"object\",\"required\":[\"maxSkew\",\"topologyKey\",\"whenUnsatisfiable\"],\"properties\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | |  P P  |  P P  |   P   | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) 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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"minDomains\":{\"description\":\"MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | |  P P  |  P P  |  P P  | The number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.\\n\\nThis is an alpha field and requires enabling MinDomainsInPodTopologySpread feature gate.\",\"type\":\"integer\",\"format\":\"int32\"},\"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. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes match the node selector. e.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology. And, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology. It's a required field.\",\"type\":\"string\",\"default\":\"\"},\"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 assignment 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.\\n\\nPossible enum values:\\n - `\\\"DoNotSchedule\\\"` instructs the scheduler not to schedule the pod when constraints are not satisfied.\\n - `\\\"ScheduleAnyway\\\"` instructs the scheduler to schedule the pod even if constraints are not satisfied.\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"DoNotSchedule\",\"ScheduleAnyway\"]}}},\"io.k8s.api.core.v1.TypedLocalObjectReference\":{\"description\":\"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\"type\":\"object\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"awsElasticBlockStore\":{\"description\":\"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"azureDisk\":{\"description\":\"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"azureFile\":{\"description\":\"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource\"},\"cephfs\":{\"description\":\"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CephFSVolumeSource\"},\"cinder\":{\"description\":\"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CinderVolumeSource\"},\"configMap\":{\"description\":\"configMap represents a configMap that should populate this volume\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource\"},\"csi\":{\"description\":\"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CSIVolumeSource\"},\"downwardAPI\":{\"description\":\"downwardAPI represents downward API about the pod that should populate this volume\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource\"},\"emptyDir\":{\"description\":\"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource\"},\"ephemeral\":{\"description\":\"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\\n\\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\\n   tracking are needed,\\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n   information on the connection between this volume type\\n   and PersistentVolumeClaim).\\n\\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\\n\\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EphemeralVolumeSource\"},\"fc\":{\"description\":\"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"},\"flexVolume\":{\"description\":\"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlexVolumeSource\"},\"flocker\":{\"description\":\"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"},\"gcePersistentDisk\":{\"description\":\"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"gitRepo\":{\"description\":\"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource\"},\"glusterfs\":{\"description\":\"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource\"},\"hostPath\":{\"description\":\"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"},\"iscsi\":{\"description\":\"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource\"},\"name\":{\"description\":\"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\",\"default\":\"\"},\"nfs\":{\"description\":\"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"},\"persistentVolumeClaim\":{\"description\":\"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"},\"photonPersistentDisk\":{\"description\":\"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"portworxVolume\":{\"description\":\"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"},\"projected\":{\"description\":\"projected items for all in one resources secrets, configmaps, and downward API\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource\"},\"quobyte\":{\"description\":\"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"rbd\":{\"description\":\"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.RBDVolumeSource\"},\"scaleIO\":{\"description\":\"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource\"},\"secret\":{\"description\":\"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretVolumeSource\"},\"storageos\":{\"description\":\"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource\"},\"vsphereVolume\":{\"description\":\"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}}},\"io.k8s.api.core.v1.VolumeDevice\":{\"description\":\"volumeDevice describes a mapping of a raw block device within a container.\",\"type\":\"object\",\"required\":[\"name\",\"devicePath\"],\"properties\":{\"devicePath\":{\"description\":\"devicePath is the path inside of the container that the device will be mapped to.\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"name must match the name of a persistentVolumeClaim in the pod\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.VolumeMount\":{\"description\":\"VolumeMount describes a mounting of a Volume within a container.\",\"type\":\"object\",\"required\":[\"name\",\"mountPath\"],\"properties\":{\"mountPath\":{\"description\":\"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.VolumeProjection\":{\"description\":\"Projection that may be projected along with other supported volume types\",\"type\":\"object\",\"properties\":{\"configMap\":{\"description\":\"configMap information about the configMap data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapProjection\"},\"downwardAPI\":{\"description\":\"downwardAPI information about the downwardAPI data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIProjection\"},\"secret\":{\"description\":\"secret information about the secret data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretProjection\"},\"serviceAccountToken\":{\"description\":\"serviceAccountToken is information about the serviceAccountToken data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection\"}}},\"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\":{\"description\":\"Represents a vSphere volume resource.\",\"type\":\"object\",\"required\":[\"volumePath\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"storagePolicyID\":{\"description\":\"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\"type\":\"string\"},\"storagePolicyName\":{\"description\":\"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\"type\":\"string\"},\"volumePath\":{\"description\":\"volumePath is the path that identifies vSphere volume vmdk\",\"type\":\"string\",\"default\":\"\"}}},\"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)\",\"type\":\"object\",\"required\":[\"weight\",\"podAffinityTerm\"],\"properties\":{\"podAffinityTerm\":{\"description\":\"Required. A pod affinity term, associated with the corresponding weight.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"},\"weight\":{\"description\":\"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"io.k8s.api.core.v1.WindowsSecurityContextOptions\":{\"description\":\"WindowsSecurityContextOptions contain Windows-specific options and credentials.\",\"type\":\"object\",\"properties\":{\"gmsaCredentialSpec\":{\"description\":\"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\"type\":\"string\"},\"gmsaCredentialSpecName\":{\"description\":\"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\"type\":\"string\"},\"hostProcess\":{\"description\":\"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).  In addition, if HostProcess is true then HostNetwork must also be set to true.\",\"type\":\"boolean\"},\"runAsUserName\":{\"description\":\"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"string\"}}},\"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.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"type\":\"object\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is the plural name of the resource.\",\"type\":\"string\",\"default\":\"\"},\"namespaced\":{\"description\":\"namespaced indicates if a resource is namespaced or not.\",\"type\":\"boolean\",\"default\":false},\"shortNames\":{\"description\":\"shortNames is a list of suggested short names of the resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest 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\",\"default\":\"\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIResourceList\",\"version\":\"v1\"}]},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"}},\"matchLabels\":{\"description\":\"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"key is the label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\",\"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\",\"default\":\"\"},\"values\":{\"description\":\"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"clusterName\":{\"description\":\"Deprecated: ClusterName is a legacy field that was always cleared by the system and never used; it will be removed completely in 1.25.\\n\\nThe name in the go struct is changed to help clients detect accidental use.\",\"type\":\"string\"},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"type\":\"object\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"type\":{\"type\":\"string\",\"default\":\"\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.\",\"type\":\"string\",\"format\":\"int-or-string\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}\n"
  },
  {
    "path": "pkg/openapiconv/testdata_generated_from_k8s/v3_api.v1.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.24.0\"},\"paths\":{\"/api/v1/\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"get available resources\",\"operationId\":\"getCoreV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}}}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/api/v1/componentstatuses\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list objects of kind ComponentStatus\",\"operationId\":\"listCoreV1ComponentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatusList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatusList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatusList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatusList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatusList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ComponentStatus\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/componentstatuses/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified ComponentStatus\",\"operationId\":\"readCoreV1ComponentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatus\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatus\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatus\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ComponentStatus\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ComponentStatus\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/configmaps\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ConfigMap\",\"operationId\":\"listCoreV1ConfigMapForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/endpoints\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Endpoints\",\"operationId\":\"listCoreV1EndpointsForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/events\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Event\",\"operationId\":\"listCoreV1EventForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/limitranges\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind LimitRange\",\"operationId\":\"listCoreV1LimitRangeForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/namespaces\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Namespace\",\"operationId\":\"listCoreV1Namespace\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a Namespace\",\"operationId\":\"createCoreV1Namespace\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"parameters\":[{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/bindings\":{\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a Binding\",\"operationId\":\"createCoreV1NamespacedBinding\",\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Binding\"}},\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/configmaps\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ConfigMap\",\"operationId\":\"listCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a ConfigMap\",\"operationId\":\"createCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of ConfigMap\",\"operationId\":\"deleteCoreV1CollectionNamespacedConfigMap\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/configmaps/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified ConfigMap\",\"operationId\":\"readCoreV1NamespacedConfigMap\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified ConfigMap\",\"operationId\":\"replaceCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a ConfigMap\",\"operationId\":\"deleteCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified ConfigMap\",\"operationId\":\"patchCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ConfigMap\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/endpoints\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Endpoints\",\"operationId\":\"listCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create Endpoints\",\"operationId\":\"createCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of Endpoints\",\"operationId\":\"deleteCoreV1CollectionNamespacedEndpoints\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/endpoints/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Endpoints\",\"operationId\":\"readCoreV1NamespacedEndpoints\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Endpoints\",\"operationId\":\"replaceCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete Endpoints\",\"operationId\":\"deleteCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Endpoints\",\"operationId\":\"patchCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Endpoints\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/events\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Event\",\"operationId\":\"listCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create an Event\",\"operationId\":\"createCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of Event\",\"operationId\":\"deleteCoreV1CollectionNamespacedEvent\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/events/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Event\",\"operationId\":\"readCoreV1NamespacedEvent\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Event\",\"operationId\":\"replaceCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete an Event\",\"operationId\":\"deleteCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Event\",\"operationId\":\"patchCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Event\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/limitranges\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind LimitRange\",\"operationId\":\"listCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a LimitRange\",\"operationId\":\"createCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of LimitRange\",\"operationId\":\"deleteCoreV1CollectionNamespacedLimitRange\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/limitranges/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified LimitRange\",\"operationId\":\"readCoreV1NamespacedLimitRange\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified LimitRange\",\"operationId\":\"replaceCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a LimitRange\",\"operationId\":\"deleteCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified LimitRange\",\"operationId\":\"patchCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the LimitRange\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind PersistentVolumeClaim\",\"operationId\":\"listCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a PersistentVolumeClaim\",\"operationId\":\"createCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of PersistentVolumeClaim\",\"operationId\":\"deleteCoreV1CollectionNamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified PersistentVolumeClaim\",\"operationId\":\"readCoreV1NamespacedPersistentVolumeClaim\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified PersistentVolumeClaim\",\"operationId\":\"replaceCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a PersistentVolumeClaim\",\"operationId\":\"deleteCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified PersistentVolumeClaim\",\"operationId\":\"patchCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PersistentVolumeClaim\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified PersistentVolumeClaim\",\"operationId\":\"readCoreV1NamespacedPersistentVolumeClaimStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified PersistentVolumeClaim\",\"operationId\":\"replaceCoreV1NamespacedPersistentVolumeClaimStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified PersistentVolumeClaim\",\"operationId\":\"patchCoreV1NamespacedPersistentVolumeClaimStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PersistentVolumeClaim\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Pod\",\"operationId\":\"listCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a Pod\",\"operationId\":\"createCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of Pod\",\"operationId\":\"deleteCoreV1CollectionNamespacedPod\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Pod\",\"operationId\":\"readCoreV1NamespacedPod\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Pod\",\"operationId\":\"replaceCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a Pod\",\"operationId\":\"deleteCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Pod\",\"operationId\":\"patchCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Pod\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/attach\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to attach of Pod\",\"operationId\":\"connectCoreV1GetNamespacedPodAttach\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodAttachOptions\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to attach of Pod\",\"operationId\":\"connectCoreV1PostNamespacedPodAttach\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodAttachOptions\"}},\"parameters\":[{\"name\":\"container\",\"in\":\"query\",\"description\":\"The container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodAttachOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"stderr\",\"in\":\"query\",\"description\":\"Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"stdin\",\"in\":\"query\",\"description\":\"Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"stdout\",\"in\":\"query\",\"description\":\"Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"tty\",\"in\":\"query\",\"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.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/binding\":{\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create binding of a Pod\",\"operationId\":\"createCoreV1NamespacedPodBinding\",\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Binding\"}},\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Binding\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read ephemeralcontainers of the specified Pod\",\"operationId\":\"readCoreV1NamespacedPodEphemeralcontainers\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace ephemeralcontainers of the specified Pod\",\"operationId\":\"replaceCoreV1NamespacedPodEphemeralcontainers\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update ephemeralcontainers of the specified Pod\",\"operationId\":\"patchCoreV1NamespacedPodEphemeralcontainers\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Pod\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/eviction\":{\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create eviction of a Pod\",\"operationId\":\"createCoreV1NamespacedPodEviction\",\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"version\":\"v1\",\"kind\":\"Eviction\"}},\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Eviction\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/exec\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to exec of Pod\",\"operationId\":\"connectCoreV1GetNamespacedPodExec\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodExecOptions\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to exec of Pod\",\"operationId\":\"connectCoreV1PostNamespacedPodExec\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodExecOptions\"}},\"parameters\":[{\"name\":\"command\",\"in\":\"query\",\"description\":\"Command is the remote command to execute. argv array. Not executed within a shell.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"container\",\"in\":\"query\",\"description\":\"Container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodExecOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"stderr\",\"in\":\"query\",\"description\":\"Redirect the standard error stream of the pod for this call.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"stdin\",\"in\":\"query\",\"description\":\"Redirect the standard input stream of the pod for this call. Defaults to false.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"stdout\",\"in\":\"query\",\"description\":\"Redirect the standard output stream of the pod for this call.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"tty\",\"in\":\"query\",\"description\":\"TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/log\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read log of the specified Pod\",\"operationId\":\"readCoreV1NamespacedPodLog\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"string\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"type\":\"string\"}},\"application/yaml\":{\"schema\":{\"type\":\"string\"}},\"text/plain\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"name\":\"container\",\"in\":\"query\",\"description\":\"The container for which to stream logs. Defaults to only container if there is one container in the pod.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"follow\",\"in\":\"query\",\"description\":\"Follow the log stream of the pod. Defaults to false.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"insecureSkipTLSVerifyBackend\",\"in\":\"query\",\"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).\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"limitBytes\",\"in\":\"query\",\"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.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Pod\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"previous\",\"in\":\"query\",\"description\":\"Return previous terminated container logs. Defaults to false.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"sinceSeconds\",\"in\":\"query\",\"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.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"tailLines\",\"in\":\"query\",\"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\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"timestamps\",\"in\":\"query\",\"description\":\"If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/portforward\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to portforward of Pod\",\"operationId\":\"connectCoreV1GetNamespacedPodPortforward\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodPortForwardOptions\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to portforward of Pod\",\"operationId\":\"connectCoreV1PostNamespacedPodPortforward\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodPortForwardOptions\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodPortForwardOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"ports\",\"in\":\"query\",\"description\":\"List of ports to forward Required when using WebSockets\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/proxy\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to proxy of Pod\",\"operationId\":\"connectCoreV1GetNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"connect PUT requests to proxy of Pod\",\"operationId\":\"connectCoreV1PutNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to proxy of Pod\",\"operationId\":\"connectCoreV1PostNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"connect DELETE requests to proxy of Pod\",\"operationId\":\"connectCoreV1DeleteNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"options\":{\"tags\":[\"core_v1\"],\"description\":\"connect OPTIONS requests to proxy of Pod\",\"operationId\":\"connectCoreV1OptionsNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"head\":{\"tags\":[\"core_v1\"],\"description\":\"connect HEAD requests to proxy of Pod\",\"operationId\":\"connectCoreV1HeadNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"connect PATCH requests to proxy of Pod\",\"operationId\":\"connectCoreV1PatchNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodProxyOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"query\",\"description\":\"Path is the URL path to use for the current proxy request to pod.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to proxy of Pod\",\"operationId\":\"connectCoreV1GetNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"connect PUT requests to proxy of Pod\",\"operationId\":\"connectCoreV1PutNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to proxy of Pod\",\"operationId\":\"connectCoreV1PostNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"connect DELETE requests to proxy of Pod\",\"operationId\":\"connectCoreV1DeleteNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"options\":{\"tags\":[\"core_v1\"],\"description\":\"connect OPTIONS requests to proxy of Pod\",\"operationId\":\"connectCoreV1OptionsNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"head\":{\"tags\":[\"core_v1\"],\"description\":\"connect HEAD requests to proxy of Pod\",\"operationId\":\"connectCoreV1HeadNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"connect PATCH requests to proxy of Pod\",\"operationId\":\"connectCoreV1PatchNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodProxyOptions\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodProxyOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"path\",\"description\":\"path to the resource\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"query\",\"description\":\"Path is the URL path to use for the current proxy request to pod.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified Pod\",\"operationId\":\"readCoreV1NamespacedPodStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified Pod\",\"operationId\":\"replaceCoreV1NamespacedPodStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified Pod\",\"operationId\":\"patchCoreV1NamespacedPodStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Pod\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/podtemplates\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind PodTemplate\",\"operationId\":\"listCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a PodTemplate\",\"operationId\":\"createCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of PodTemplate\",\"operationId\":\"deleteCoreV1CollectionNamespacedPodTemplate\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/podtemplates/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified PodTemplate\",\"operationId\":\"readCoreV1NamespacedPodTemplate\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified PodTemplate\",\"operationId\":\"replaceCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a PodTemplate\",\"operationId\":\"deleteCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified PodTemplate\",\"operationId\":\"patchCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodTemplate\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ReplicationController\",\"operationId\":\"listCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a ReplicationController\",\"operationId\":\"createCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of ReplicationController\",\"operationId\":\"deleteCoreV1CollectionNamespacedReplicationController\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified ReplicationController\",\"operationId\":\"readCoreV1NamespacedReplicationController\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified ReplicationController\",\"operationId\":\"replaceCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a ReplicationController\",\"operationId\":\"deleteCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified ReplicationController\",\"operationId\":\"patchCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ReplicationController\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read scale of the specified ReplicationController\",\"operationId\":\"readCoreV1NamespacedReplicationControllerScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"version\":\"v1\",\"kind\":\"Scale\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace scale of the specified ReplicationController\",\"operationId\":\"replaceCoreV1NamespacedReplicationControllerScale\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"version\":\"v1\",\"kind\":\"Scale\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update scale of the specified ReplicationController\",\"operationId\":\"patchCoreV1NamespacedReplicationControllerScale\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"version\":\"v1\",\"kind\":\"Scale\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Scale\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified ReplicationController\",\"operationId\":\"readCoreV1NamespacedReplicationControllerStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified ReplicationController\",\"operationId\":\"replaceCoreV1NamespacedReplicationControllerStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified ReplicationController\",\"operationId\":\"patchCoreV1NamespacedReplicationControllerStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ReplicationController\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/resourcequotas\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ResourceQuota\",\"operationId\":\"listCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a ResourceQuota\",\"operationId\":\"createCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of ResourceQuota\",\"operationId\":\"deleteCoreV1CollectionNamespacedResourceQuota\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/resourcequotas/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified ResourceQuota\",\"operationId\":\"readCoreV1NamespacedResourceQuota\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified ResourceQuota\",\"operationId\":\"replaceCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a ResourceQuota\",\"operationId\":\"deleteCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified ResourceQuota\",\"operationId\":\"patchCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ResourceQuota\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/resourcequotas/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified ResourceQuota\",\"operationId\":\"readCoreV1NamespacedResourceQuotaStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified ResourceQuota\",\"operationId\":\"replaceCoreV1NamespacedResourceQuotaStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified ResourceQuota\",\"operationId\":\"patchCoreV1NamespacedResourceQuotaStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ResourceQuota\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/secrets\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Secret\",\"operationId\":\"listCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a Secret\",\"operationId\":\"createCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of Secret\",\"operationId\":\"deleteCoreV1CollectionNamespacedSecret\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/secrets/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Secret\",\"operationId\":\"readCoreV1NamespacedSecret\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Secret\",\"operationId\":\"replaceCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a Secret\",\"operationId\":\"deleteCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Secret\",\"operationId\":\"patchCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Secret\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/serviceaccounts\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ServiceAccount\",\"operationId\":\"listCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a ServiceAccount\",\"operationId\":\"createCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of ServiceAccount\",\"operationId\":\"deleteCoreV1CollectionNamespacedServiceAccount\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/serviceaccounts/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified ServiceAccount\",\"operationId\":\"readCoreV1NamespacedServiceAccount\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified ServiceAccount\",\"operationId\":\"replaceCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a ServiceAccount\",\"operationId\":\"deleteCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified ServiceAccount\",\"operationId\":\"patchCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ServiceAccount\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/serviceaccounts/{name}/token\":{\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create token of a ServiceAccount\",\"operationId\":\"createCoreV1NamespacedServiceAccountToken\",\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authentication.k8s.io\",\"version\":\"v1\",\"kind\":\"TokenRequest\"}},\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the TokenRequest\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/services\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Service\",\"operationId\":\"listCoreV1NamespacedService\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a Service\",\"operationId\":\"createCoreV1NamespacedService\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of Service\",\"operationId\":\"deleteCoreV1CollectionNamespacedService\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/services/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Service\",\"operationId\":\"readCoreV1NamespacedService\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Service\",\"operationId\":\"replaceCoreV1NamespacedService\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a Service\",\"operationId\":\"deleteCoreV1NamespacedService\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Service\",\"operationId\":\"patchCoreV1NamespacedService\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Service\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/services/{name}/proxy\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to proxy of Service\",\"operationId\":\"connectCoreV1GetNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"connect PUT requests to proxy of Service\",\"operationId\":\"connectCoreV1PutNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to proxy of Service\",\"operationId\":\"connectCoreV1PostNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"connect DELETE requests to proxy of Service\",\"operationId\":\"connectCoreV1DeleteNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"options\":{\"tags\":[\"core_v1\"],\"description\":\"connect OPTIONS requests to proxy of Service\",\"operationId\":\"connectCoreV1OptionsNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"head\":{\"tags\":[\"core_v1\"],\"description\":\"connect HEAD requests to proxy of Service\",\"operationId\":\"connectCoreV1HeadNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"connect PATCH requests to proxy of Service\",\"operationId\":\"connectCoreV1PatchNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ServiceProxyOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"query\",\"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.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to proxy of Service\",\"operationId\":\"connectCoreV1GetNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"connect PUT requests to proxy of Service\",\"operationId\":\"connectCoreV1PutNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to proxy of Service\",\"operationId\":\"connectCoreV1PostNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"connect DELETE requests to proxy of Service\",\"operationId\":\"connectCoreV1DeleteNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"options\":{\"tags\":[\"core_v1\"],\"description\":\"connect OPTIONS requests to proxy of Service\",\"operationId\":\"connectCoreV1OptionsNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"head\":{\"tags\":[\"core_v1\"],\"description\":\"connect HEAD requests to proxy of Service\",\"operationId\":\"connectCoreV1HeadNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"connect PATCH requests to proxy of Service\",\"operationId\":\"connectCoreV1PatchNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceProxyOptions\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ServiceProxyOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"path\",\"description\":\"path to the resource\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"query\",\"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.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/services/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified Service\",\"operationId\":\"readCoreV1NamespacedServiceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified Service\",\"operationId\":\"replaceCoreV1NamespacedServiceStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified Service\",\"operationId\":\"patchCoreV1NamespacedServiceStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Service\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Namespace\",\"operationId\":\"readCoreV1Namespace\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Namespace\",\"operationId\":\"replaceCoreV1Namespace\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a Namespace\",\"operationId\":\"deleteCoreV1Namespace\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Namespace\",\"operationId\":\"patchCoreV1Namespace\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Namespace\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{name}/finalize\":{\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace finalize of the specified Namespace\",\"operationId\":\"replaceCoreV1NamespaceFinalize\",\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Namespace\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified Namespace\",\"operationId\":\"readCoreV1NamespaceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified Namespace\",\"operationId\":\"replaceCoreV1NamespaceStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified Namespace\",\"operationId\":\"patchCoreV1NamespaceStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Namespace\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/nodes\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Node\",\"operationId\":\"listCoreV1Node\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a Node\",\"operationId\":\"createCoreV1Node\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of Node\",\"operationId\":\"deleteCoreV1CollectionNode\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"parameters\":[{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/nodes/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Node\",\"operationId\":\"readCoreV1Node\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Node\",\"operationId\":\"replaceCoreV1Node\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a Node\",\"operationId\":\"deleteCoreV1Node\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Node\",\"operationId\":\"patchCoreV1Node\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Node\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/nodes/{name}/proxy\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to proxy of Node\",\"operationId\":\"connectCoreV1GetNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"connect PUT requests to proxy of Node\",\"operationId\":\"connectCoreV1PutNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to proxy of Node\",\"operationId\":\"connectCoreV1PostNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"connect DELETE requests to proxy of Node\",\"operationId\":\"connectCoreV1DeleteNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"options\":{\"tags\":[\"core_v1\"],\"description\":\"connect OPTIONS requests to proxy of Node\",\"operationId\":\"connectCoreV1OptionsNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"head\":{\"tags\":[\"core_v1\"],\"description\":\"connect HEAD requests to proxy of Node\",\"operationId\":\"connectCoreV1HeadNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"connect PATCH requests to proxy of Node\",\"operationId\":\"connectCoreV1PatchNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the NodeProxyOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"query\",\"description\":\"Path is the URL path to use for the current proxy request to node.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/nodes/{name}/proxy/{path}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to proxy of Node\",\"operationId\":\"connectCoreV1GetNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"connect PUT requests to proxy of Node\",\"operationId\":\"connectCoreV1PutNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to proxy of Node\",\"operationId\":\"connectCoreV1PostNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"connect DELETE requests to proxy of Node\",\"operationId\":\"connectCoreV1DeleteNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"options\":{\"tags\":[\"core_v1\"],\"description\":\"connect OPTIONS requests to proxy of Node\",\"operationId\":\"connectCoreV1OptionsNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"head\":{\"tags\":[\"core_v1\"],\"description\":\"connect HEAD requests to proxy of Node\",\"operationId\":\"connectCoreV1HeadNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"connect PATCH requests to proxy of Node\",\"operationId\":\"connectCoreV1PatchNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"NodeProxyOptions\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the NodeProxyOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"path\",\"description\":\"path to the resource\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"query\",\"description\":\"Path is the URL path to use for the current proxy request to node.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/nodes/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified Node\",\"operationId\":\"readCoreV1NodeStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified Node\",\"operationId\":\"replaceCoreV1NodeStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified Node\",\"operationId\":\"patchCoreV1NodeStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Node\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/persistentvolumeclaims\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind PersistentVolumeClaim\",\"operationId\":\"listCoreV1PersistentVolumeClaimForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/persistentvolumes\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind PersistentVolume\",\"operationId\":\"listCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a PersistentVolume\",\"operationId\":\"createCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of PersistentVolume\",\"operationId\":\"deleteCoreV1CollectionPersistentVolume\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"parameters\":[{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/persistentvolumes/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified PersistentVolume\",\"operationId\":\"readCoreV1PersistentVolume\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified PersistentVolume\",\"operationId\":\"replaceCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a PersistentVolume\",\"operationId\":\"deleteCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified PersistentVolume\",\"operationId\":\"patchCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PersistentVolume\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/persistentvolumes/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified PersistentVolume\",\"operationId\":\"readCoreV1PersistentVolumeStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified PersistentVolume\",\"operationId\":\"replaceCoreV1PersistentVolumeStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified PersistentVolume\",\"operationId\":\"patchCoreV1PersistentVolumeStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PersistentVolume\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/pods\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Pod\",\"operationId\":\"listCoreV1PodForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/podtemplates\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind PodTemplate\",\"operationId\":\"listCoreV1PodTemplateForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/replicationcontrollers\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ReplicationController\",\"operationId\":\"listCoreV1ReplicationControllerForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/resourcequotas\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ResourceQuota\",\"operationId\":\"listCoreV1ResourceQuotaForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/secrets\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Secret\",\"operationId\":\"listCoreV1SecretForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/serviceaccounts\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ServiceAccount\",\"operationId\":\"listCoreV1ServiceAccountForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/services\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Service\",\"operationId\":\"listCoreV1ServiceForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/configmaps\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1ConfigMapListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/endpoints\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1EndpointsListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/events\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1EventListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/limitranges\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1LimitRangeListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespaceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/configmaps\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedConfigMapList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/configmaps/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ConfigMap\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ConfigMap\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/endpoints\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedEndpointsList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/endpoints/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Endpoints\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Endpoints\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/events\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedEventList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/events/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Event\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Event\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/limitranges\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedLimitRangeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/limitranges/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"LimitRange\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the LimitRange\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedPersistentVolumeClaimList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PersistentVolumeClaim\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/pods\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedPodList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/pods/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Pod\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/podtemplates\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedPodTemplateList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/podtemplates/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodTemplate\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/replicationcontrollers\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedReplicationControllerList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ReplicationController\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/resourcequotas\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedResourceQuotaList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ResourceQuota\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/secrets\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedSecretList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/secrets/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Secret\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/serviceaccounts\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedServiceAccountList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ServiceAccount\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/services\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedServiceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/services/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Service\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Namespace\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Namespace\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/nodes\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NodeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/nodes/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Node\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Node\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/persistentvolumeclaims\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1PersistentVolumeClaimListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolumeClaim\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/persistentvolumes\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1PersistentVolumeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/persistentvolumes/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PersistentVolume\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PersistentVolume\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/pods\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1PodListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Pod\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/podtemplates\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1PodTemplateListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"PodTemplate\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/replicationcontrollers\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1ReplicationControllerListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ReplicationController\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/resourcequotas\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1ResourceQuotaListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ResourceQuota\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/secrets\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1SecretListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Secret\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/serviceaccounts\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1ServiceAccountListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"ServiceAccount\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/services\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1ServiceListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Service\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]}},\"components\":{\"schemas\":{\"io.k8s.api.authentication.v1.BoundObjectReference\":{\"description\":\"BoundObjectReference is a reference to an object that a token is bound to.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.authentication.v1.TokenRequest\":{\"description\":\"TokenRequest requests a token for a given service account.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"description\":\"Spec holds information about the request being evaluated\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequestSpec\"}]},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the token can be authenticated.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequestStatus\"}]}},\"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.\",\"type\":\"object\",\"required\":[\"audiences\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"boundObjectRef\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.BoundObjectReference\"}]},\"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.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.authentication.v1.TokenRequestStatus\":{\"description\":\"TokenRequestStatus is the result of a token request.\",\"type\":\"object\",\"required\":[\"token\",\"expirationTimestamp\"],\"properties\":{\"expirationTimestamp\":{\"description\":\"ExpirationTimestamp is the time of expiration of the returned token.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"token\":{\"description\":\"Token is the opaque bearer token.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.autoscaling.v1.Scale\":{\"description\":\"Scale represents a scaling request for a resource.\",\"type\":\"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\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"description\":\"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.ScaleSpec\"}]},\"status\":{\"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.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.ScaleStatus\"}]}},\"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.\",\"type\":\"object\",\"properties\":{\"replicas\":{\"description\":\"desired number of instances for the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.autoscaling.v1.ScaleStatus\":{\"description\":\"ScaleStatus represents the current status of a scale subresource.\",\"type\":\"object\",\"required\":[\"replicas\"],\"properties\":{\"replicas\":{\"description\":\"actual number of observed instances of the scaled object.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.Affinity\":{\"description\":\"Affinity is a group of affinity scheduling rules.\",\"type\":\"object\",\"properties\":{\"nodeAffinity\":{\"description\":\"Describes node affinity scheduling rules for the pod.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeAffinity\"}]},\"podAffinity\":{\"description\":\"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinity\"}]},\"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)).\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAntiAffinity\"}]}}},\"io.k8s.api.core.v1.AttachedVolume\":{\"description\":\"AttachedVolume describes a volume attached to a node\",\"type\":\"object\",\"required\":[\"name\",\"devicePath\"],\"properties\":{\"devicePath\":{\"description\":\"DevicePath represents the device path where the volume should be available\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the attached volume\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.AzureDiskVolumeSource\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"diskName\",\"diskURI\"],\"properties\":{\"cachingMode\":{\"description\":\"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\"type\":\"string\"},\"diskName\":{\"description\":\"diskName is the Name of the data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"diskURI\":{\"description\":\"diskURI is the URI of data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"kind\":{\"description\":\"kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.AzureFilePersistentVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the name of secret that contains Azure Storage Account Name and Key\",\"type\":\"string\",\"default\":\"\"},\"secretNamespace\":{\"description\":\"secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod\",\"type\":\"string\"},\"shareName\":{\"description\":\"shareName is the azure Share Name\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.AzureFileVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the  name of secret that contains Azure Storage Account Name and Key\",\"type\":\"string\",\"default\":\"\"},\"shareName\":{\"description\":\"shareName is the azure share Name\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"target\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"target\":{\"description\":\"The target object that you want to bind to the standard object.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"}]}},\"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)\",\"type\":\"object\",\"required\":[\"driver\",\"volumeHandle\"],\"properties\":{\"controllerExpandSecretRef\":{\"description\":\"controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This 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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"}]},\"controllerPublishSecretRef\":{\"description\":\"controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"}]},\"driver\":{\"description\":\"driver is the name of the driver to use for this volume. Required.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\",\"type\":\"string\"},\"nodePublishSecretRef\":{\"description\":\"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"}]},\"nodeStageSecretRef\":{\"description\":\"nodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"}]},\"readOnly\":{\"description\":\"readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"volumeAttributes of the volume to publish.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.CSIVolumeSource\":{\"description\":\"Represents a source location of a volume to mount, managed by an external CSI driver\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\"type\":\"string\"},\"nodePublishSecretRef\":{\"description\":\"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and  may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"readOnly\":{\"description\":\"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.Capabilities\":{\"description\":\"Adds and removes POSIX capabilities from running containers.\",\"type\":\"object\",\"properties\":{\"add\":{\"description\":\"Added capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"drop\":{\"description\":\"Removed capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"path\":{\"description\":\"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretFile\":{\"description\":\"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"}]},\"user\":{\"description\":\"user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"path\":{\"description\":\"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretFile\":{\"description\":\"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"user\":{\"description\":\"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"}]},\"volumeID\":{\"description\":\"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"volumeID\":{\"description\":\"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ClientIPConfig\":{\"description\":\"ClientIPConfig represents the configurations of Client IP based session affinity.\",\"type\":\"object\",\"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).\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ComponentCondition\":{\"description\":\"Information about the condition of a component.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of condition for a component. Valid value: \\\"Healthy\\\"\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ComponentStatus\":{\"description\":\"ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+\",\"type\":\"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\"},\"conditions\":{\"description\":\"List of component conditions observed\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentCondition\"}]},\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]}},\"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+\",\"type\":\"object\",\"required\":[\"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 ComponentStatus objects.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatus\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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.\",\"type\":\"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\"},\"binaryData\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"format\":\"byte\"}},\"data\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]}},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ConfigMapKeySelector\":{\"description\":\"Selects a key from a ConfigMap.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key to select.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ConfigMapList\":{\"description\":\"ConfigMapList is a resource containing a list of ConfigMap objects.\",\"type\":\"object\",\"required\":[\"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 the list of ConfigMaps.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration\",\"type\":\"object\",\"required\":[\"namespace\",\"name\",\"kubeletConfigKey\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}]}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}]}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.Container\":{\"description\":\"A single application container that you want to run within a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVar\"}]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"}]}},\"image\":{\"description\":\"Container 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\\n\\nPossible enum values:\\n - `\\\"Always\\\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\\n - `\\\"IfNotPresent\\\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\\n - `\\\"Never\\\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present\",\"type\":\"string\",\"enum\":[\"Always\",\"IfNotPresent\",\"Never\"]},\"lifecycle\":{\"description\":\"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"}]},\"livenessProbe\":{\"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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"}]},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"}]},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"}]},\"resources\":{\"description\":\"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"}]},\"securityContext\":{\"description\":\"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"}]},\"startupProbe\":{\"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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"}]},\"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.\\n\\nPossible enum values:\\n - `\\\"FallbackToLogsOnError\\\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\\n - `\\\"File\\\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.\",\"type\":\"string\",\"enum\":[\"FallbackToLogsOnError\",\"File\"]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"}]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"}]},\"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\"}}},\"io.k8s.api.core.v1.ContainerImage\":{\"description\":\"Describe a container image\",\"type\":\"object\",\"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\\\"]\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"sizeBytes\":{\"description\":\"The size of the image in bytes.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.core.v1.ContainerPort\":{\"description\":\"ContainerPort represents a network port in a single container.\",\"type\":\"object\",\"required\":[\"containerPort\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\\\".\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\"type\":\"string\",\"default\":\"TCP\",\"enum\":[\"SCTP\",\"TCP\",\"UDP\"]}}},\"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.\",\"type\":\"object\",\"properties\":{\"running\":{\"description\":\"Details about a running container\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerStateRunning\"}]},\"terminated\":{\"description\":\"Details about a terminated container\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerStateTerminated\"}]},\"waiting\":{\"description\":\"Details about a waiting container\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerStateWaiting\"}]}}},\"io.k8s.api.core.v1.ContainerStateRunning\":{\"description\":\"ContainerStateRunning is a running state of a container.\",\"type\":\"object\",\"properties\":{\"startedAt\":{\"description\":\"Time at which the container was last (re-)started\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"io.k8s.api.core.v1.ContainerStateTerminated\":{\"description\":\"ContainerStateTerminated is a terminated state of a container.\",\"type\":\"object\",\"required\":[\"exitCode\"],\"properties\":{\"containerID\":{\"description\":\"Container's ID in the format '\\u003ctype\\u003e://\\u003ccontainer_id\\u003e'\",\"type\":\"string\"},\"exitCode\":{\"description\":\"Exit status from the last termination of the container\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"finishedAt\":{\"description\":\"Time at which the container last terminated\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"message\":{\"description\":\"Message regarding the last termination of the container\",\"type\":\"string\"},\"reason\":{\"description\":\"(brief) reason from the last termination of the container\",\"type\":\"string\"},\"signal\":{\"description\":\"Signal from the last termination of the container\",\"type\":\"integer\",\"format\":\"int32\"},\"startedAt\":{\"description\":\"Time at which previous execution of the container started\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"io.k8s.api.core.v1.ContainerStateWaiting\":{\"description\":\"ContainerStateWaiting is a waiting state of a container.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ContainerStatus\":{\"description\":\"ContainerStatus contains details for the current status of this container.\",\"type\":\"object\",\"required\":[\"name\",\"ready\",\"restartCount\",\"image\",\"imageID\"],\"properties\":{\"containerID\":{\"description\":\"Container's ID in the format '\\u003ctype\\u003e://\\u003ccontainer_id\\u003e'.\",\"type\":\"string\"},\"image\":{\"description\":\"The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images.\",\"type\":\"string\",\"default\":\"\"},\"imageID\":{\"description\":\"ImageID of the container's image.\",\"type\":\"string\",\"default\":\"\"},\"lastState\":{\"description\":\"Details about the container's last termination condition.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerState\"}]},\"name\":{\"description\":\"This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.\",\"type\":\"string\",\"default\":\"\"},\"ready\":{\"description\":\"Specifies whether the container has passed its readiness probe.\",\"type\":\"boolean\",\"default\":false},\"restartCount\":{\"description\":\"The number of times the container has been restarted.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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\":{\"description\":\"Details about the container's current condition.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerState\"}]}}},\"io.k8s.api.core.v1.DaemonEndpoint\":{\"description\":\"DaemonEndpoint contains information about a single Daemon endpoint.\",\"type\":\"object\",\"required\":[\"Port\"],\"properties\":{\"Port\":{\"description\":\"Port number of the given endpoint.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"Items is a list of DownwardAPIVolume file\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}]}}}},\"io.k8s.api.core.v1.DownwardAPIVolumeFile\":{\"description\":\"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"fieldRef\":{\"description\":\"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"}]},\"mode\":{\"description\":\"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\"type\":\"string\",\"default\":\"\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"}]}}},\"io.k8s.api.core.v1.DownwardAPIVolumeSource\":{\"description\":\"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"Items is a list of downward API volume file\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}]}}}},\"io.k8s.api.core.v1.EmptyDirVolumeSource\":{\"description\":\"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"medium\":{\"description\":\"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"type\":\"string\"},\"sizeLimit\":{\"description\":\"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}}},\"io.k8s.api.core.v1.EndpointAddress\":{\"description\":\"EndpointAddress is a tuple that describes single IP address.\",\"type\":\"object\",\"required\":[\"ip\"],\"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\",\"default\":\"\"},\"nodeName\":{\"description\":\"Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\",\"type\":\"string\"},\"targetRef\":{\"description\":\"Reference to object providing the endpoint.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"}]}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.EndpointPort\":{\"description\":\"EndpointPort is a tuple that describes a single port.\",\"type\":\"object\",\"required\":[\"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 https://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.  This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.\",\"type\":\"string\"},\"port\":{\"description\":\"The port number of the endpoint.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"protocol\":{\"description\":\"The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\"type\":\"string\",\"enum\":[\"SCTP\",\"TCP\",\"UDP\"]}},\"x-kubernetes-map-type\":\"atomic\"},\"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 ]\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointAddress\"}]}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointAddress\"}]}},\"ports\":{\"description\":\"Port numbers available on the related IP addresses.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointPort\"}]}}}},\"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 ]\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointSubset\"}]}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.EndpointsList\":{\"description\":\"EndpointsList is a list of endpoints.\",\"type\":\"object\",\"required\":[\"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 endpoints.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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\",\"type\":\"object\",\"properties\":{\"configMapRef\":{\"description\":\"The ConfigMap to select from\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapEnvSource\"}]},\"prefix\":{\"description\":\"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\"type\":\"string\"},\"secretRef\":{\"description\":\"The Secret to select from\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretEnvSource\"}]}}},\"io.k8s.api.core.v1.EnvVar\":{\"description\":\"EnvVar represents an environment variable present in a Container.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name of the environment variable. Must be a C_IDENTIFIER.\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Variable references $(VAR_NAME) are expanded using the previously 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the environment variable's value. Cannot be used if value is not empty.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVarSource\"}]}}},\"io.k8s.api.core.v1.EnvVarSource\":{\"description\":\"EnvVarSource represents a source for the value of an EnvVar.\",\"type\":\"object\",\"properties\":{\"configMapKeyRef\":{\"description\":\"Selects a key of a ConfigMap.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapKeySelector\"}]},\"fieldRef\":{\"description\":\"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"}]},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"}]},\"secretKeyRef\":{\"description\":\"Selects a key of a secret in the pod's namespace\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretKeySelector\"}]}}},\"io.k8s.api.core.v1.EphemeralContainer\":{\"description\":\"An EphemeralContainer is a temporary container that you may add 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. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\\n\\nThis is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVar\"}]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"}]}},\"image\":{\"description\":\"Container 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\\n\\nPossible enum values:\\n - `\\\"Always\\\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\\n - `\\\"IfNotPresent\\\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\\n - `\\\"Never\\\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present\",\"type\":\"string\",\"enum\":[\"Always\",\"IfNotPresent\",\"Never\"]},\"lifecycle\":{\"description\":\"Lifecycle is not allowed for ephemeral containers.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"}]},\"livenessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"}]},\"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\",\"default\":\"\"},\"ports\":{\"description\":\"Ports are not allowed for ephemeral containers.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"}]},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"}]},\"resources\":{\"description\":\"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"}]},\"securityContext\":{\"description\":\"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"}]},\"startupProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"}]},\"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 uses the namespaces configured in the Pod spec.\\n\\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\"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.\\n\\nPossible enum values:\\n - `\\\"FallbackToLogsOnError\\\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\\n - `\\\"File\\\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.\",\"type\":\"string\",\"enum\":[\"FallbackToLogsOnError\",\"File\"]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"}]},\"x-kubernetes-patch-merge-key\":\"devicePath\",\"x-kubernetes-patch-strategy\":\"merge\"},\"volumeMounts\":{\"description\":\"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"}]},\"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\"}}},\"io.k8s.api.core.v1.EphemeralVolumeSource\":{\"description\":\"Represents an ephemeral volume that is handled by a normal storage driver.\",\"type\":\"object\",\"properties\":{\"volumeClaimTemplate\":{\"description\":\"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod.  The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\\n\\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\\n\\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\\n\\nRequired, must not be nil.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimTemplate\"}]}}},\"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.\",\"type\":\"object\",\"required\":[\"metadata\",\"involvedObject\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"eventTime\":{\"description\":\"Time when this Event was first observed.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"}]},\"firstTimestamp\":{\"description\":\"The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"involvedObject\":{\"description\":\"The object that this event is about.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"}]},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"The time at which the most recent occurrence of this event was recorded.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"message\":{\"description\":\"A human-readable description of the status of this operation.\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"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\":{\"description\":\"Optional secondary object for more complex actions.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"}]},\"reportingComponent\":{\"description\":\"Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\",\"type\":\"string\",\"default\":\"\"},\"reportingInstance\":{\"description\":\"ID of the controller instance, e.g. `kubelet-xyzf`.\",\"type\":\"string\",\"default\":\"\"},\"series\":{\"description\":\"Data about the Event series this event represents or nil if it's a singleton Event.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventSeries\"}]},\"source\":{\"description\":\"The component reporting this event. Should be a short machine understandable string.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventSource\"}]},\"type\":{\"description\":\"Type of this event (Normal, Warning), new types could be added in the future\",\"type\":\"string\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.EventList\":{\"description\":\"EventList is a list of events.\",\"type\":\"object\",\"required\":[\"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 events\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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.\",\"type\":\"object\",\"properties\":{\"count\":{\"description\":\"Number of occurrences in this series up to the last heartbeat time\",\"type\":\"integer\",\"format\":\"int32\"},\"lastObservedTime\":{\"description\":\"Time of the last occurrence observed\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"}]}}},\"io.k8s.api.core.v1.EventSource\":{\"description\":\"EventSource contains information for an event.\",\"type\":\"object\",\"properties\":{\"component\":{\"description\":\"Component from which the event is generated.\",\"type\":\"string\"},\"host\":{\"description\":\"Node name on which the event is generated.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ExecAction\":{\"description\":\"ExecAction describes a \\\"run in container\\\" action.\",\"type\":\"object\",\"properties\":{\"command\":{\"description\":\"Command is the command line to execute inside the container, the working directory for the command  is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"lun\":{\"description\":\"lun is Optional: FC target lun number\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"targetWWNs\":{\"description\":\"targetWWNs is Optional: FC target worldwide names (WWNs)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"wwids\":{\"description\":\"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.FlexPersistentVolumeSource\":{\"description\":\"FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the driver to use for this volume.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"options is Optional: this field holds extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"}]}}},\"io.k8s.api.core.v1.FlexVolumeSource\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the driver to use for this volume.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"options is Optional: this field holds extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"datasetName\":{\"description\":\"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\"type\":\"string\"},\"datasetUUID\":{\"description\":\"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"pdName\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"integer\",\"format\":\"int32\"},\"pdName\":{\"description\":\"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.GRPCAction\":{\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"port\":{\"description\":\"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"service\":{\"description\":\"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"repository\"],\"properties\":{\"directory\":{\"description\":\"directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\"type\":\"string\"},\"repository\":{\"description\":\"repository is the URL\",\"type\":\"string\",\"default\":\"\"},\"revision\":{\"description\":\"revision is the commit hash for the specified revision.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"path\":{\"description\":\"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.HTTPGetAction\":{\"description\":\"HTTPGetAction describes an action based on HTTP Get requests.\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\"type\":\"string\"},\"httpHeaders\":{\"description\":\"Custom headers to set in the request. HTTP allows repeated headers.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPHeader\"}]}},\"path\":{\"description\":\"Path to access on the HTTP server.\",\"type\":\"string\"},\"port\":{\"description\":\"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}]},\"scheme\":{\"description\":\"Scheme to use for connecting to the host. Defaults to HTTP.\\n\\nPossible enum values:\\n - `\\\"HTTP\\\"` means that the scheme used will be http://\\n - `\\\"HTTPS\\\"` means that the scheme used will be https://\",\"type\":\"string\",\"enum\":[\"HTTP\",\"HTTPS\"]}}},\"io.k8s.api.core.v1.HTTPHeader\":{\"description\":\"HTTPHeader describes a custom header to be used in HTTP probes\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"The header field name\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"The header field value\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"hostnames\":{\"description\":\"Hostnames for the above IP address.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"ip\":{\"description\":\"IP address of the host file entry.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"path\":{\"description\":\"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"properties\":{\"chapAuthDiscovery\":{\"description\":\"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\"type\":\"boolean\"},\"chapAuthSession\":{\"description\":\"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\"type\":\"boolean\"},\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\"type\":\"string\"},\"initiatorName\":{\"description\":\"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\"type\":\"string\"},\"iqn\":{\"description\":\"iqn is Target iSCSI Qualified Name.\",\"type\":\"string\",\"default\":\"\"},\"iscsiInterface\":{\"description\":\"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\"type\":\"string\"},\"lun\":{\"description\":\"lun is iSCSI Target Lun number.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"portals\":{\"description\":\"portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"}]},\"targetPortal\":{\"description\":\"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"properties\":{\"chapAuthDiscovery\":{\"description\":\"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\"type\":\"boolean\"},\"chapAuthSession\":{\"description\":\"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\"type\":\"boolean\"},\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\"type\":\"string\"},\"initiatorName\":{\"description\":\"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\"type\":\"string\"},\"iqn\":{\"description\":\"iqn is the target iSCSI Qualified Name.\",\"type\":\"string\",\"default\":\"\"},\"iscsiInterface\":{\"description\":\"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\"type\":\"string\"},\"lun\":{\"description\":\"lun represents iSCSI Target Lun number.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"portals\":{\"description\":\"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"targetPortal\":{\"description\":\"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.KeyToPath\":{\"description\":\"Maps a string key to a path within a volume.\",\"type\":\"object\",\"required\":[\"key\",\"path\"],\"properties\":{\"key\":{\"description\":\"key is the key to project.\",\"type\":\"string\",\"default\":\"\"},\"mode\":{\"description\":\"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"postStart\":{\"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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"}]},\"preStop\":{\"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 Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). 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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"}]}}},\"io.k8s.api.core.v1.LifecycleHandler\":{\"description\":\"LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ExecAction\"}]},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"}]},\"tcpSocket\":{\"description\":\"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"}]}}},\"io.k8s.api.core.v1.LimitRange\":{\"description\":\"LimitRange sets resource usage limits for each kind of resource in a Namespace.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"description\":\"Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeSpec\"}]}},\"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.\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"default\":{\"description\":\"Default resource requirement limit value by resource name if resource limit is omitted.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"defaultRequest\":{\"description\":\"DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"max\":{\"description\":\"Max usage constraints on this kind by resource name.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"maxLimitRequestRatio\":{\"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\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"min\":{\"description\":\"Min usage constraints on this kind by resource name.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"type\":{\"description\":\"Type of resource that this limit applies to.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.LimitRangeList\":{\"description\":\"LimitRangeList is a list of LimitRange items.\",\"type\":\"object\",\"required\":[\"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-resources-containers/\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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.\",\"type\":\"object\",\"required\":[\"limits\"],\"properties\":{\"limits\":{\"description\":\"Limits is the list of LimitRangeItem objects that are enforced.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeItem\"}]}}}},\"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.\",\"type\":\"object\",\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PortStatus\"}]},\"x-kubernetes-list-type\":\"atomic\"}}},\"io.k8s.api.core.v1.LoadBalancerStatus\":{\"description\":\"LoadBalancerStatus represents the status of a load-balancer.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LoadBalancerIngress\"}]}}}},\"io.k8s.api.core.v1.LocalObjectReference\":{\"description\":\"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.LocalVolumeSource\":{\"description\":\"Local represents directly-attached storage with node affinity (Beta feature)\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default value is to auto-select a filesystem if unspecified.\",\"type\":\"string\"},\"path\":{\"description\":\"path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"server\",\"path\"],\"properties\":{\"path\":{\"description\":\"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.Namespace\":{\"description\":\"Namespace provides a scope for Names. Use of multiple namespaces is optional.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceSpec\"}]},\"status\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceStatus\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.NamespaceCondition\":{\"description\":\"NamespaceCondition contains details about state of namespace.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/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\",\"default\":\"\"},\"type\":{\"description\":\"Type of namespace controller condition.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NamespaceList\":{\"description\":\"NamespaceList is a list of Namespaces.\",\"type\":\"object\",\"required\":[\"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 the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"NamespaceList\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.NamespaceSpec\":{\"description\":\"NamespaceSpec describes the attributes on a Namespace.\",\"type\":\"object\",\"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/\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.NamespaceStatus\":{\"description\":\"NamespaceStatus is information about the current status of a Namespace.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Represents the latest available observations of a namespace's current state.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceCondition\"}]},\"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/\\n\\nPossible enum values:\\n - `\\\"Active\\\"` means the namespace is available for use in the system\\n - `\\\"Terminating\\\"` means the namespace is undergoing graceful termination\",\"type\":\"string\",\"enum\":[\"Active\",\"Terminating\"]}}},\"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).\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"description\":\"Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSpec\"}]},\"status\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeStatus\"}]}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"address\"],\"properties\":{\"address\":{\"description\":\"The node address.\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"Node address type, one of Hostname, ExternalIP or InternalIP.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NodeAffinity\":{\"description\":\"Node affinity is a group of node affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PreferredSchedulingTerm\"}]}},\"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 an update), the system may or may not try to eventually evict the pod from its node.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelector\"}]}}},\"io.k8s.api.core.v1.NodeCondition\":{\"description\":\"NodeCondition contains condition information for a node.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastHeartbeatTime\":{\"description\":\"Last time we got an update on a given condition.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"lastTransitionTime\":{\"description\":\"Last time the condition transit from one status to another.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of node condition.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NodeConfigSource\":{\"description\":\"NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22\",\"type\":\"object\",\"properties\":{\"configMap\":{\"description\":\"ConfigMap is a reference to a Node's ConfigMap\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapNodeConfigSource\"}]}}},\"io.k8s.api.core.v1.NodeConfigStatus\":{\"description\":\"NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\",\"type\":\"object\",\"properties\":{\"active\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeConfigSource\"}]},\"assigned\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeConfigSource\"}]},\"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\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeConfigSource\"}]}}},\"io.k8s.api.core.v1.NodeDaemonEndpoints\":{\"description\":\"NodeDaemonEndpoints lists ports opened by daemons running on the Node.\",\"type\":\"object\",\"properties\":{\"kubeletEndpoint\":{\"description\":\"Endpoint on which Kubelet is listening.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DaemonEndpoint\"}]}}},\"io.k8s.api.core.v1.NodeList\":{\"description\":\"NodeList is the whole list of all Nodes which have been registered with master.\",\"type\":\"object\",\"required\":[\"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 nodes\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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.\",\"type\":\"object\",\"required\":[\"nodeSelectorTerms\"],\"properties\":{\"nodeSelectorTerms\":{\"description\":\"Required. A list of node selector terms. The terms are ORed.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"}]}}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"The label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\"},\"operator\":{\"description\":\"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\\n\\nPossible enum values:\\n - `\\\"DoesNotExist\\\"`\\n - `\\\"Exists\\\"`\\n - `\\\"Gt\\\"`\\n - `\\\"In\\\"`\\n - `\\\"Lt\\\"`\\n - `\\\"NotIn\\\"`\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"DoesNotExist\",\"Exists\",\"Gt\",\"In\",\"Lt\",\"NotIn\"]},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"A list of node selector requirements by node's labels.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"}]}},\"matchFields\":{\"description\":\"A list of node selector requirements by node's fields.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"}]}}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.NodeSpec\":{\"description\":\"NodeSpec describes the attributes that a node is created with.\",\"type\":\"object\",\"properties\":{\"configSource\":{\"description\":\"Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed from Kubelets as of 1.24 and will be fully removed in 1.26.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeConfigSource\"}]},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Taint\"}]}},\"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\"}}},\"io.k8s.api.core.v1.NodeStatus\":{\"description\":\"NodeStatus is information about the current status of a node.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeAddress\"}]},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"allocatable\":{\"description\":\"Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"capacity\":{\"description\":\"Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"conditions\":{\"description\":\"Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeCondition\"}]},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"config\":{\"description\":\"Status of the config assigned to the node via the dynamic Kubelet config feature.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeConfigStatus\"}]},\"daemonEndpoints\":{\"description\":\"Endpoints of daemons running on the Node.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeDaemonEndpoints\"}]},\"images\":{\"description\":\"List of container images on this node\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerImage\"}]}},\"nodeInfo\":{\"description\":\"Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSystemInfo\"}]},\"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.\\n\\nPossible enum values:\\n - `\\\"Pending\\\"` means the node has been created/added by the system, but not configured.\\n - `\\\"Running\\\"` means the node has been configured and has Kubernetes components running.\\n - `\\\"Terminated\\\"` means the node has been removed from the cluster.\",\"type\":\"string\",\"enum\":[\"Pending\",\"Running\",\"Terminated\"]},\"volumesAttached\":{\"description\":\"List of volumes that are attached to the node.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AttachedVolume\"}]}},\"volumesInUse\":{\"description\":\"List of attachable volumes in use (mounted) by the node.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.NodeSystemInfo\":{\"description\":\"NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\",\"type\":\"object\",\"required\":[\"machineID\",\"systemUUID\",\"bootID\",\"kernelVersion\",\"osImage\",\"containerRuntimeVersion\",\"kubeletVersion\",\"kubeProxyVersion\",\"operatingSystem\",\"architecture\"],\"properties\":{\"architecture\":{\"description\":\"The Architecture reported by the node\",\"type\":\"string\",\"default\":\"\"},\"bootID\":{\"description\":\"Boot ID reported by the node.\",\"type\":\"string\",\"default\":\"\"},\"containerRuntimeVersion\":{\"description\":\"ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).\",\"type\":\"string\",\"default\":\"\"},\"kernelVersion\":{\"description\":\"Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).\",\"type\":\"string\",\"default\":\"\"},\"kubeProxyVersion\":{\"description\":\"KubeProxy Version reported by the node.\",\"type\":\"string\",\"default\":\"\"},\"kubeletVersion\":{\"description\":\"Kubelet Version reported by the node.\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"operatingSystem\":{\"description\":\"The Operating System reported by the node\",\"type\":\"string\",\"default\":\"\"},\"osImage\":{\"description\":\"OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ObjectFieldSelector\":{\"description\":\"ObjectFieldSelector selects an APIVersioned field of an object.\",\"type\":\"object\",\"required\":[\"fieldPath\"],\"properties\":{\"apiVersion\":{\"description\":\"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\"type\":\"string\"},\"fieldPath\":{\"description\":\"Path of the field to select in the specified API version.\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ObjectReference\":{\"description\":\"ObjectReference contains enough information to let you inspect or modify the referred object.\",\"type\":\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeSpec\"}]},\"status\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeStatus\"}]}},\"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\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"}]},\"status\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimStatus\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PersistentVolumeClaimCondition\":{\"description\":\"PersistentVolumeClaimCondition contails details about state of pvc\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"lastProbeTime is the time we probed the condition.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"lastTransitionTime\":{\"description\":\"lastTransitionTime is the time the condition transitioned from one status to another.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"message\":{\"description\":\"message is the human-readable message indicating details about last transition.\",\"type\":\"string\"},\"reason\":{\"description\":\"reason is a 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\",\"default\":\"\"},\"type\":{\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimList\":{\"description\":\"PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\",\"type\":\"object\",\"required\":[\"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 persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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\",\"type\":\"object\",\"properties\":{\"accessModes\":{\"description\":\"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"dataSource\":{\"description\":\"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"}]},\"dataSourceRef\":{\"description\":\"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef\\n  allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While DataSource ignores disallowed values (dropping them), DataSourceRef\\n  preserves all values, and generates an error if a disallowed value is\\n  specified.\\n(Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"}]},\"resources\":{\"description\":\"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"}]},\"selector\":{\"description\":\"selector is a label query over volumes to consider for binding.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}]},\"storageClassName\":{\"description\":\"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\"type\":\"string\"},\"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\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimStatus\":{\"description\":\"PersistentVolumeClaimStatus is the current status of a persistent volume claim.\",\"type\":\"object\",\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"allocatedResources\":{\"description\":\"allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"capacity\":{\"description\":\"capacity represents the actual resources of the underlying volume.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"conditions\":{\"description\":\"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimCondition\"}]},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"phase\":{\"description\":\"phase represents the current phase of PersistentVolumeClaim.\\n\\nPossible enum values:\\n - `\\\"Bound\\\"` used for PersistentVolumeClaims that are bound\\n - `\\\"Lost\\\"` used for PersistentVolumeClaims that lost their underlying PersistentVolume. The claim was bound to a PersistentVolume and this volume does not exist any longer and all data on it was lost.\\n - `\\\"Pending\\\"` used for PersistentVolumeClaims that are not yet bound\",\"type\":\"string\",\"enum\":[\"Bound\",\"Lost\",\"Pending\"]},\"resizeStatus\":{\"description\":\"resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimTemplate\":{\"description\":\"PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"metadata\":{\"description\":\"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"description\":\"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"}]}}},\"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).\",\"type\":\"object\",\"required\":[\"claimName\"],\"properties\":{\"claimName\":{\"description\":\"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"string\",\"default\":\"\"},\"readOnly\":{\"description\":\"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.PersistentVolumeList\":{\"description\":\"PersistentVolumeList is a list of PersistentVolume items.\",\"type\":\"object\",\"required\":[\"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 persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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.\",\"type\":\"object\",\"properties\":{\"accessModes\":{\"description\":\"accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"awsElasticBlockStore\":{\"description\":\"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"}]},\"azureDisk\":{\"description\":\"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureDiskVolumeSource\"}]},\"azureFile\":{\"description\":\"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureFilePersistentVolumeSource\"}]},\"capacity\":{\"description\":\"capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"cephfs\":{\"description\":\"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CephFSPersistentVolumeSource\"}]},\"cinder\":{\"description\":\"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CinderPersistentVolumeSource\"}]},\"claimRef\":{\"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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"}]},\"csi\":{\"description\":\"csi represents storage that is handled by an external CSI driver (Beta feature).\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CSIPersistentVolumeSource\"}]},\"fc\":{\"description\":\"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FCVolumeSource\"}]},\"flexVolume\":{\"description\":\"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlexPersistentVolumeSource\"}]},\"flocker\":{\"description\":\"flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlockerVolumeSource\"}]},\"gcePersistentDisk\":{\"description\":\"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"}]},\"glusterfs\":{\"description\":\"glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\"}]},\"hostPath\":{\"description\":\"hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostPathVolumeSource\"}]},\"iscsi\":{\"description\":\"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ISCSIPersistentVolumeSource\"}]},\"local\":{\"description\":\"local represents directly-attached storage with node affinity\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalVolumeSource\"}]},\"mountOptions\":{\"description\":\"mountOptions is the 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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"nfs\":{\"description\":\"nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NFSVolumeSource\"}]},\"nodeAffinity\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeNodeAffinity\"}]},\"persistentVolumeReclaimPolicy\":{\"description\":\"persistentVolumeReclaimPolicy defines 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\\n\\nPossible enum values:\\n - `\\\"Delete\\\"` means the volume will be deleted from Kubernetes on release from its claim. The volume plugin must support Deletion.\\n - `\\\"Recycle\\\"` means the volume will be recycled back into the pool of unbound persistent volumes on release from its claim. The volume plugin must support Recycling.\\n - `\\\"Retain\\\"` means the volume will be left in its current phase (Released) for manual reclamation by the administrator. The default policy is Retain.\",\"type\":\"string\",\"enum\":[\"Delete\",\"Recycle\",\"Retain\"]},\"photonPersistentDisk\":{\"description\":\"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"}]},\"portworxVolume\":{\"description\":\"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource\"}]},\"quobyte\":{\"description\":\"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.QuobyteVolumeSource\"}]},\"rbd\":{\"description\":\"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.RBDPersistentVolumeSource\"}]},\"scaleIO\":{\"description\":\"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\"}]},\"storageClassName\":{\"description\":\"storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.\",\"type\":\"string\"},\"storageos\":{\"description\":\"storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.StorageOSPersistentVolumeSource\"}]},\"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\":{\"description\":\"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}]}}},\"io.k8s.api.core.v1.PersistentVolumeStatus\":{\"description\":\"PersistentVolumeStatus is the current status of a persistent volume.\",\"type\":\"object\",\"properties\":{\"message\":{\"description\":\"message is 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\\n\\nPossible enum values:\\n - `\\\"Available\\\"` used for PersistentVolumes that are not yet bound Available volumes are held by the binder and matched to PersistentVolumeClaims\\n - `\\\"Bound\\\"` used for PersistentVolumes that are bound\\n - `\\\"Failed\\\"` used for PersistentVolumes that failed to be correctly recycled or deleted after being released from a claim\\n - `\\\"Pending\\\"` used for PersistentVolumes that are not available\\n - `\\\"Released\\\"` used for PersistentVolumes where the bound PersistentVolumeClaim was deleted released volumes must be recycled before becoming available again this phase is used by the persistent volume claim binder to signal to another process to reclaim the resource\",\"type\":\"string\",\"enum\":[\"Available\",\"Bound\",\"Failed\",\"Pending\",\"Released\"]},\"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\"}}},\"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\":{\"description\":\"Represents a Photon Controller persistent disk resource.\",\"type\":\"object\",\"required\":[\"pdID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"pdID\":{\"description\":\"pdID is the ID that identifies Photon Controller persistent disk\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSpec\"}]},\"status\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodStatus\"}]}},\"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.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}]}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}]}}}},\"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\",\"type\":\"object\",\"required\":[\"topologyKey\"],\"properties\":{\"labelSelector\":{\"description\":\"A label query over a set of resources, in this case pods.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}]},\"namespaceSelector\":{\"description\":\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}]},\"namespaces\":{\"description\":\"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\\\".\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAntiAffinity\":{\"description\":\"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}]}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}]}}}},\"io.k8s.api.core.v1.PodCondition\":{\"description\":\"PodCondition contains details for the current condition of this pod.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"Last time we probed the condition.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodDNSConfig\":{\"description\":\"PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodDNSConfigOption\"}]}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.PodDNSConfigOption\":{\"description\":\"PodDNSConfigOption defines DNS resolver options of a pod.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"ip\":{\"description\":\"ip is an IP address (IPv4 or IPv6) assigned to the pod\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.PodList\":{\"description\":\"PodList is a list of Pods.\",\"type\":\"object\",\"required\":[\"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 pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PodList\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PodOS\":{\"description\":\"PodOS defines the OS parameters of a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodReadinessGate\":{\"description\":\"PodReadinessGate contains the reference to a pod condition\",\"type\":\"object\",\"required\":[\"conditionType\"],\"properties\":{\"conditionType\":{\"description\":\"ConditionType refers to a condition in the pod's condition list with matching type.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"fsGroupChangePolicy\":{\"description\":\"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"}]},\"seccompProfile\":{\"description\":\"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"}]},\"supplementalGroups\":{\"description\":\"A list of groups applied to the first process run in each container, in addition to the container's primary GID.  If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\",\"default\":0}},\"sysctls\":{\"description\":\"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Sysctl\"}]}},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}]}}},\"io.k8s.api.core.v1.PodSpec\":{\"description\":\"PodSpec is a description of a pod.\",\"type\":\"object\",\"required\":[\"containers\"],\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"affinity\":{\"description\":\"If specified, the pod's scheduling constraints\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Affinity\"}]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Container\"}]},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"dnsConfig\":{\"description\":\"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodDNSConfig\"}]},\"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'.\\n\\nPossible enum values:\\n - `\\\"ClusterFirst\\\"` indicates that the pod should use cluster DNS first unless hostNetwork is true, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\\n - `\\\"ClusterFirstWithHostNet\\\"` indicates that the pod should use cluster DNS first, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\\n - `\\\"Default\\\"` indicates that the pod should use the default (as determined by kubelet) DNS settings.\\n - `\\\"None\\\"` indicates that the pod should use empty DNS settings. DNS parameters such as nameservers and search paths should be defined via DNSConfig.\",\"type\":\"string\",\"enum\":[\"ClusterFirst\",\"ClusterFirstWithHostNet\",\"Default\",\"None\"]},\"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 beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EphemeralContainer\"}]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostAlias\"}]},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Container\"}]},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"os\":{\"description\":\"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\\n\\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\\n\\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is a beta field and requires the IdentifyPodOS feature\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodOS\"}]},\"overhead\":{\"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/688-pod-overhead/README.md\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"preemptionPolicy\":{\"description\":\"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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/580-pod-readiness-gates\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodReadinessGate\"}]}},\"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\\n\\nPossible enum values:\\n - `\\\"Always\\\"`\\n - `\\\"Never\\\"`\\n - `\\\"OnFailure\\\"`\",\"type\":\"string\",\"enum\":[\"Always\",\"Never\",\"OnFailure\"]},\"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/585-runtime-class\",\"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\":{\"description\":\"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSecurityContext\"}]},\"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 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.\",\"type\":\"integer\",\"format\":\"int64\"},\"tolerations\":{\"description\":\"If specified, the pod's tolerations.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Toleration\"}]}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TopologySpreadConstraint\"}]},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Volume\"}]},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge,retainKeys\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodCondition\"}]},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"containerStatuses\":{\"description\":\"The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerStatus\"}]}},\"ephemeralContainerStatuses\":{\"description\":\"Status for any ephemeral containers that have run in this pod. This field is beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerStatus\"}]}},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerStatus\"}]}},\"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\\n\\nPossible enum values:\\n - `\\\"Failed\\\"` means that all containers in the pod have terminated, and at least one container has terminated in a failure (exited with a non-zero exit code or was stopped by the system).\\n - `\\\"Pending\\\"` means the pod has been accepted by the system, but one or more of the containers has not been started. This includes time before being bound to a node, as well as time spent pulling images onto the host.\\n - `\\\"Running\\\"` means the pod has been bound to a node and all of the containers have been started. At least one container is still running or is in the process of being restarted.\\n - `\\\"Succeeded\\\"` means that all containers in the pod have voluntarily terminated with a container exit code of 0, and the system is not going to restart any of these containers.\\n - `\\\"Unknown\\\"` means that 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. Deprecated: It isn't being set since 2015 (74da3b14b0c0f658b3bb8d2def5094686d0e9095)\",\"type\":\"string\",\"enum\":[\"Failed\",\"Pending\",\"Running\",\"Succeeded\",\"Unknown\"]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodIP\"}]},\"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\\n\\nPossible enum values:\\n - `\\\"BestEffort\\\"` is the BestEffort qos class.\\n - `\\\"Burstable\\\"` is the Burstable qos class.\\n - `\\\"Guaranteed\\\"` is the Guaranteed qos class.\",\"type\":\"string\",\"enum\":[\"BestEffort\",\"Burstable\",\"Guaranteed\"]},\"reason\":{\"description\":\"A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'\",\"type\":\"string\"},\"startTime\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"io.k8s.api.core.v1.PodTemplate\":{\"description\":\"PodTemplate describes a template for creating copies of a predefined pod.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"template\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PodTemplateList\":{\"description\":\"PodTemplateList is a list of PodTemplates.\",\"type\":\"object\",\"required\":[\"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 pod templates\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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\",\"type\":\"object\",\"properties\":{\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSpec\"}]}}},\"io.k8s.api.core.v1.PortStatus\":{\"type\":\"object\",\"required\":[\"port\",\"protocol\"],\"properties\":{\"error\":{\"description\":\"Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\\n  CamelCase names\\n- cloud provider specific error values must have names that comply with the\\n  format foo.example.com/CamelCase.\",\"type\":\"string\"},\"port\":{\"description\":\"Port is the port number of the service port of which status is recorded here\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"protocol\":{\"description\":\"Protocol is the protocol of the service port of which status is recorded here The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"SCTP\",\"TCP\",\"UDP\"]}}},\"io.k8s.api.core.v1.PortworxVolumeSource\":{\"description\":\"PortworxVolumeSource represents a Portworx volume resource.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID uniquely identifies a Portworx volume\",\"type\":\"string\",\"default\":\"\"}}},\"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).\",\"type\":\"object\",\"required\":[\"weight\",\"preference\"],\"properties\":{\"preference\":{\"description\":\"A node selector term, associated with the corresponding weight.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"}]},\"weight\":{\"description\":\"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"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.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ExecAction\"}]},\"failureThreshold\":{\"description\":\"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"grpc\":{\"description\":\"GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GRPCAction\"}]},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"}]},\"initialDelaySeconds\":{\"description\":\"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"},\"periodSeconds\":{\"description\":\"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"successThreshold\":{\"description\":\"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies an action involving a TCP port.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"}]},\"terminationGracePeriodSeconds\":{\"description\":\"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\"type\":\"integer\",\"format\":\"int64\"},\"timeoutSeconds\":{\"description\":\"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ProjectedVolumeSource\":{\"description\":\"Represents a projected volume source\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"sources\":{\"description\":\"sources is the list of volume projections\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeProjection\"}]}}}},\"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.\",\"type\":\"object\",\"required\":[\"registry\",\"volume\"],\"properties\":{\"group\":{\"description\":\"group to map volume access to Default is no group\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\"type\":\"boolean\"},\"registry\":{\"description\":\"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\",\"image\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\"type\":\"string\"},\"image\":{\"description\":\"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\",\"default\":\"\"},\"keyring\":{\"description\":\"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"pool\":{\"description\":\"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"}]},\"user\":{\"description\":\"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\",\"image\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\"type\":\"string\"},\"image\":{\"description\":\"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\",\"default\":\"\"},\"keyring\":{\"description\":\"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"pool\":{\"description\":\"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"user\":{\"description\":\"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ReplicationController\":{\"description\":\"ReplicationController represents the configuration of a replication controller.\",\"type\":\"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\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerSpec\"}]},\"status\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerStatus\"}]}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"The last time the condition transitioned from one status to another.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of replication controller condition.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ReplicationControllerList\":{\"description\":\"ReplicationControllerList is a collection of replication controllers.\",\"type\":\"object\",\"required\":[\"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 replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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.\",\"type\":\"object\",\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"template\":{\"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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"}]}}},\"io.k8s.api.core.v1.ReplicationControllerStatus\":{\"description\":\"ReplicationControllerStatus represents the current status of a replication controller.\",\"type\":\"object\",\"required\":[\"replicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"The number of available replicas (ready for at least minReadySeconds) for this replication controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a replication controller's current state.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerCondition\"}]},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"ObservedGeneration reflects the generation of the most recently observed replication controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"The number of ready replicas for this replication controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"io.k8s.api.core.v1.ResourceFieldSelector\":{\"description\":\"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\"type\":\"object\",\"required\":[\"resource\"],\"properties\":{\"containerName\":{\"description\":\"Container name: required for volumes, optional for env vars\",\"type\":\"string\"},\"divisor\":{\"description\":\"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]},\"resource\":{\"description\":\"Required: resource to select\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ResourceQuota\":{\"description\":\"ResourceQuota sets aggregate quota restrictions enforced per namespace\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"description\":\"Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaSpec\"}]},\"status\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaStatus\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ResourceQuotaList\":{\"description\":\"ResourceQuotaList is a list of ResourceQuota items.\",\"type\":\"object\",\"required\":[\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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.\",\"type\":\"object\",\"properties\":{\"hard\":{\"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\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ScopeSelector\"}]},\"scopes\":{\"description\":\"A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.ResourceQuotaStatus\":{\"description\":\"ResourceQuotaStatus defines the enforced hard limits and observed use.\",\"type\":\"object\",\"properties\":{\"hard\":{\"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\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"used\":{\"description\":\"Used is the current observed total usage of the resource in the namespace.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}}}},\"io.k8s.api.core.v1.ResourceRequirements\":{\"description\":\"ResourceRequirements describes the compute resource requirements.\",\"type\":\"object\",\"properties\":{\"limits\":{\"description\":\"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"requests\":{\"description\":\"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}}}},\"io.k8s.api.core.v1.SELinuxOptions\":{\"description\":\"SELinuxOptions are the labels to be applied to the container\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\":{\"description\":\"ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\",\"type\":\"object\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\"\",\"type\":\"string\"},\"gateway\":{\"description\":\"gateway is the host address of the ScaleIO API Gateway.\",\"type\":\"string\",\"default\":\"\"},\"protectionDomain\":{\"description\":\"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"}]},\"sslEnabled\":{\"description\":\"sslEnabled is the flag to enable/disable SSL communication with Gateway, default false\",\"type\":\"boolean\"},\"storageMode\":{\"description\":\"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\"type\":\"string\"},\"storagePool\":{\"description\":\"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\"type\":\"string\"},\"system\":{\"description\":\"system is the name of the storage system as configured in ScaleIO.\",\"type\":\"string\",\"default\":\"\"},\"volumeName\":{\"description\":\"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ScaleIOVolumeSource\":{\"description\":\"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\"type\":\"object\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\"type\":\"string\"},\"gateway\":{\"description\":\"gateway is the host address of the ScaleIO API Gateway.\",\"type\":\"string\",\"default\":\"\"},\"protectionDomain\":{\"description\":\"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"sslEnabled\":{\"description\":\"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\"type\":\"boolean\"},\"storageMode\":{\"description\":\"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\"type\":\"string\"},\"storagePool\":{\"description\":\"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\"type\":\"string\"},\"system\":{\"description\":\"system is the name of the storage system as configured in ScaleIO.\",\"type\":\"string\",\"default\":\"\"},\"volumeName\":{\"description\":\"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ScopeSelector\":{\"description\":\"A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"A list of scope selector requirements by scope of the resources.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ScopedResourceSelectorRequirement\"}]}}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"scopeName\",\"operator\"],\"properties\":{\"operator\":{\"description\":\"Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.\\n\\nPossible enum values:\\n - `\\\"DoesNotExist\\\"`\\n - `\\\"Exists\\\"`\\n - `\\\"In\\\"`\\n - `\\\"NotIn\\\"`\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"DoesNotExist\",\"Exists\",\"In\",\"NotIn\"]},\"scopeName\":{\"description\":\"The name of the scope that the selector applies to.\\n\\nPossible enum values:\\n - `\\\"BestEffort\\\"` Match all pod objects that have best effort quality of service\\n - `\\\"CrossNamespacePodAffinity\\\"` Match all pod objects that have cross-namespace pod (anti)affinity mentioned.\\n - `\\\"NotBestEffort\\\"` Match all pod objects that do not have best effort quality of service\\n - `\\\"NotTerminating\\\"` Match all pod objects where spec.activeDeadlineSeconds is nil\\n - `\\\"PriorityClass\\\"` Match all pod objects that have priority class mentioned\\n - `\\\"Terminating\\\"` Match all pod objects where spec.activeDeadlineSeconds \\u003e=0\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"BestEffort\",\"CrossNamespacePodAffinity\",\"NotBestEffort\",\"NotTerminating\",\"PriorityClass\",\"Terminating\"]},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.SeccompProfile\":{\"description\":\"SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"localhostProfile\":{\"description\":\"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must 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.\\n\\nPossible enum values:\\n - `\\\"Localhost\\\"` indicates a profile defined in a file on the node should be used. The file's location relative to \\u003ckubelet-root-dir\\u003e/seccomp.\\n - `\\\"RuntimeDefault\\\"` represents the default container runtime seccomp profile.\\n - `\\\"Unconfined\\\"` indicates no seccomp profile is applied (A.K.A. unconfined).\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"Localhost\",\"RuntimeDefault\",\"Unconfined\"]}},\"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.\",\"type\":\"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\"},\"data\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"format\":\"byte\"}},\"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.\",\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"stringData\":{\"description\":\"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\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"type\":{\"description\":\"Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\",\"type\":\"string\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.SecretKeySelector\":{\"description\":\"SecretKeySelector selects a key of a Secret.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key of the secret to select from.  Must be a valid secret key.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.SecretList\":{\"description\":\"SecretList is a list of Secret.\",\"type\":\"object\",\"required\":[\"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 secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}]}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional field specify whether the Secret or its key must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.SecretReference\":{\"description\":\"SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace\",\"type\":\"object\",\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}]}},\"optional\":{\"description\":\"optional field specify whether the Secret or its keys must be defined\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"allowPrivilegeEscalation\":{\"description\":\"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"capabilities\":{\"description\":\"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Capabilities\"}]},\"privileged\":{\"description\":\"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"procMount\":{\"description\":\"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"readOnlyRootFilesystem\":{\"description\":\"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"}]},\"seccompProfile\":{\"description\":\"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"}]},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}]}}},\"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.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"description\":\"Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceSpec\"}]},\"status\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceStatus\"}]}},\"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\",\"type\":\"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\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"secrets\":{\"description\":\"Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a \\\"kubernetes.io/enforce-mountable-secrets\\\" annotation set to \\\"true\\\". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"}]},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ServiceAccountList\":{\"description\":\"ServiceAccountList is a list of ServiceAccount objects\",\"type\":\"object\",\"required\":[\"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 ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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).\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"audience\":{\"description\":\"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\"type\":\"string\"},\"expirationSeconds\":{\"description\":\"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\"type\":\"integer\",\"format\":\"int64\"},\"path\":{\"description\":\"path is the path relative to the mount point of the file to project the token into.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ServiceList\":{\"description\":\"ServiceList holds a list of services.\",\"type\":\"object\",\"required\":[\"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 services\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ServiceList\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ServicePort\":{\"description\":\"ServicePort contains information on service's port.\",\"type\":\"object\",\"required\":[\"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 https://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 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\",\"type\":\"integer\",\"format\":\"int32\"},\"port\":{\"description\":\"The port that will be exposed by this service.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"protocol\":{\"description\":\"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\". Default is TCP.\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\"type\":\"string\",\"default\":\"TCP\",\"enum\":[\"SCTP\",\"TCP\",\"UDP\"]},\"targetPort\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}]}}},\"io.k8s.api.core.v1.ServiceSpec\":{\"description\":\"ServiceSpec describes the attributes that a user creates on a service.\",\"type\":\"object\",\"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.  If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.\",\"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\\nThis 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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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 \\\"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.\\n\\nPossible enum values:\\n - `\\\"Cluster\\\"` specifies node-global (legacy) behavior.\\n - `\\\"Local\\\"` specifies node-local endpoints behavior.\",\"type\":\"string\",\"enum\":[\"Cluster\",\"Local\"]},\"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).\",\"type\":\"integer\",\"format\":\"int32\"},\"internalTrafficPolicy\":{\"description\":\"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\\\".\",\"type\":\"string\"},\"ipFamilies\":{\"description\":\"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. 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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-list-type\":\"atomic\"},\"ipFamilyPolicy\":{\"description\":\"IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. 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\"},\"loadBalancerClass\":{\"description\":\"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.\",\"type\":\"string\"},\"loadBalancerIP\":{\"description\":\"Only applies to Service Type: LoadBalancer. 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. Deprecated: This field was under-specified and its meaning varies across implementations, and it cannot support dual-stack. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version.\",\"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/create-external-load-balancer/\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServicePort\"}]},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"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\\n\\nPossible enum values:\\n - `\\\"ClientIP\\\"` is the Client IP based.\\n - `\\\"None\\\"` - no session affinity.\",\"type\":\"string\",\"enum\":[\"ClientIP\",\"None\"]},\"sessionAffinityConfig\":{\"description\":\"sessionAffinityConfig contains the configurations of session affinity.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SessionAffinityConfig\"}]},\"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\\n\\nPossible enum values:\\n - `\\\"ClusterIP\\\"` means a service will only be accessible inside the cluster, via the cluster IP.\\n - `\\\"ExternalName\\\"` means a service consists of only a reference to an external name that kubedns or equivalent will return as a CNAME record, with no exposing or proxying of any pods involved.\\n - `\\\"LoadBalancer\\\"` means a service will be exposed via an external load balancer (if the cloud provider supports it), in addition to 'NodePort' type.\\n - `\\\"NodePort\\\"` means a service will be exposed on one port of every node, in addition to 'ClusterIP' type.\",\"type\":\"string\",\"enum\":[\"ClusterIP\",\"ExternalName\",\"LoadBalancer\",\"NodePort\"]}}},\"io.k8s.api.core.v1.ServiceStatus\":{\"description\":\"ServiceStatus represents the current status of a service.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Current service state\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Condition\"}]},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"loadBalancer\":{\"description\":\"LoadBalancer contains the current status of the load-balancer, if one is present.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LoadBalancerStatus\"}]}}},\"io.k8s.api.core.v1.SessionAffinityConfig\":{\"description\":\"SessionAffinityConfig represents the configurations of session affinity.\",\"type\":\"object\",\"properties\":{\"clientIP\":{\"description\":\"clientIP contains the configurations of Client IP based session affinity.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ClientIPConfig\"}]}}},\"io.k8s.api.core.v1.StorageOSPersistentVolumeSource\":{\"description\":\"Represents a StorageOS persistent volume resource.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"}]},\"volumeName\":{\"description\":\"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.StorageOSVolumeSource\":{\"description\":\"Represents a StorageOS persistent volume resource.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"volumeName\":{\"description\":\"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Sysctl\":{\"description\":\"Sysctl defines a kernel parameter to be set\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"Name of a property to set\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Value of a property to set\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.TCPSocketAction\":{\"description\":\"TCPSocketAction describes an action based on opening a socket\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Optional: Host name to connect to, defaults to the pod IP.\",\"type\":\"string\"},\"port\":{\"description\":\"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}]}}},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"effect\"],\"properties\":{\"effect\":{\"description\":\"Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\\n\\nPossible enum values:\\n - `\\\"NoExecute\\\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\\n - `\\\"NoSchedule\\\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\\n - `\\\"PreferNoSchedule\\\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"NoExecute\",\"NoSchedule\",\"PreferNoSchedule\"]},\"key\":{\"description\":\"Required. The taint key to be applied to a node.\",\"type\":\"string\",\"default\":\"\"},\"timeAdded\":{\"description\":\"TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"value\":{\"description\":\"The taint value corresponding to the taint key.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"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.\\n\\nPossible enum values:\\n - `\\\"NoExecute\\\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\\n - `\\\"NoSchedule\\\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\\n - `\\\"PreferNoSchedule\\\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.\",\"type\":\"string\",\"enum\":[\"NoExecute\",\"NoSchedule\",\"PreferNoSchedule\"]},\"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.\\n\\nPossible enum values:\\n - `\\\"Equal\\\"`\\n - `\\\"Exists\\\"`\",\"type\":\"string\",\"enum\":[\"Equal\",\"Exists\"]},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\"}}},\"io.k8s.api.core.v1.TopologySpreadConstraint\":{\"description\":\"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\"type\":\"object\",\"required\":[\"maxSkew\",\"topologyKey\",\"whenUnsatisfiable\"],\"properties\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}]},\"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. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | |  P P  |  P P  |   P   | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) 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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"minDomains\":{\"description\":\"MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | |  P P  |  P P  |  P P  | The number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.\\n\\nThis is an alpha field and requires enabling MinDomainsInPodTopologySpread feature gate.\",\"type\":\"integer\",\"format\":\"int32\"},\"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. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes match the node selector. e.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology. And, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology. It's a required field.\",\"type\":\"string\",\"default\":\"\"},\"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 assignment 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.\\n\\nPossible enum values:\\n - `\\\"DoNotSchedule\\\"` instructs the scheduler not to schedule the pod when constraints are not satisfied.\\n - `\\\"ScheduleAnyway\\\"` instructs the scheduler to schedule the pod even if constraints are not satisfied.\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"DoNotSchedule\",\"ScheduleAnyway\"]}}},\"io.k8s.api.core.v1.TypedLocalObjectReference\":{\"description\":\"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\"type\":\"object\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"awsElasticBlockStore\":{\"description\":\"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"}]},\"azureDisk\":{\"description\":\"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureDiskVolumeSource\"}]},\"azureFile\":{\"description\":\"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureFileVolumeSource\"}]},\"cephfs\":{\"description\":\"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CephFSVolumeSource\"}]},\"cinder\":{\"description\":\"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CinderVolumeSource\"}]},\"configMap\":{\"description\":\"configMap represents a configMap that should populate this volume\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapVolumeSource\"}]},\"csi\":{\"description\":\"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CSIVolumeSource\"}]},\"downwardAPI\":{\"description\":\"downwardAPI represents downward API about the pod that should populate this volume\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeSource\"}]},\"emptyDir\":{\"description\":\"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EmptyDirVolumeSource\"}]},\"ephemeral\":{\"description\":\"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\\n\\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\\n   tracking are needed,\\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n   information on the connection between this volume type\\n   and PersistentVolumeClaim).\\n\\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\\n\\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EphemeralVolumeSource\"}]},\"fc\":{\"description\":\"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FCVolumeSource\"}]},\"flexVolume\":{\"description\":\"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlexVolumeSource\"}]},\"flocker\":{\"description\":\"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlockerVolumeSource\"}]},\"gcePersistentDisk\":{\"description\":\"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"}]},\"gitRepo\":{\"description\":\"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GitRepoVolumeSource\"}]},\"glusterfs\":{\"description\":\"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GlusterfsVolumeSource\"}]},\"hostPath\":{\"description\":\"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostPathVolumeSource\"}]},\"iscsi\":{\"description\":\"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ISCSIVolumeSource\"}]},\"name\":{\"description\":\"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\",\"default\":\"\"},\"nfs\":{\"description\":\"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NFSVolumeSource\"}]},\"persistentVolumeClaim\":{\"description\":\"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"}]},\"photonPersistentDisk\":{\"description\":\"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"}]},\"portworxVolume\":{\"description\":\"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource\"}]},\"projected\":{\"description\":\"projected items for all in one resources secrets, configmaps, and downward API\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ProjectedVolumeSource\"}]},\"quobyte\":{\"description\":\"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.QuobyteVolumeSource\"}]},\"rbd\":{\"description\":\"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.RBDVolumeSource\"}]},\"scaleIO\":{\"description\":\"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ScaleIOVolumeSource\"}]},\"secret\":{\"description\":\"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretVolumeSource\"}]},\"storageos\":{\"description\":\"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.StorageOSVolumeSource\"}]},\"vsphereVolume\":{\"description\":\"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}]}}},\"io.k8s.api.core.v1.VolumeDevice\":{\"description\":\"volumeDevice describes a mapping of a raw block device within a container.\",\"type\":\"object\",\"required\":[\"name\",\"devicePath\"],\"properties\":{\"devicePath\":{\"description\":\"devicePath is the path inside of the container that the device will be mapped to.\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"name must match the name of a persistentVolumeClaim in the pod\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.VolumeMount\":{\"description\":\"VolumeMount describes a mounting of a Volume within a container.\",\"type\":\"object\",\"required\":[\"name\",\"mountPath\"],\"properties\":{\"mountPath\":{\"description\":\"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.VolumeNodeAffinity\":{\"description\":\"VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\",\"type\":\"object\",\"properties\":{\"required\":{\"description\":\"required specifies hard node constraints that must be met.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelector\"}]}}},\"io.k8s.api.core.v1.VolumeProjection\":{\"description\":\"Projection that may be projected along with other supported volume types\",\"type\":\"object\",\"properties\":{\"configMap\":{\"description\":\"configMap information about the configMap data to project\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapProjection\"}]},\"downwardAPI\":{\"description\":\"downwardAPI information about the downwardAPI data to project\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIProjection\"}]},\"secret\":{\"description\":\"secret information about the secret data to project\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretProjection\"}]},\"serviceAccountToken\":{\"description\":\"serviceAccountToken is information about the serviceAccountToken data to project\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountTokenProjection\"}]}}},\"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\":{\"description\":\"Represents a vSphere volume resource.\",\"type\":\"object\",\"required\":[\"volumePath\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"storagePolicyID\":{\"description\":\"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\"type\":\"string\"},\"storagePolicyName\":{\"description\":\"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\"type\":\"string\"},\"volumePath\":{\"description\":\"volumePath is the path that identifies vSphere volume vmdk\",\"type\":\"string\",\"default\":\"\"}}},\"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)\",\"type\":\"object\",\"required\":[\"weight\",\"podAffinityTerm\"],\"properties\":{\"podAffinityTerm\":{\"description\":\"Required. A pod affinity term, associated with the corresponding weight.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}]},\"weight\":{\"description\":\"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"io.k8s.api.core.v1.WindowsSecurityContextOptions\":{\"description\":\"WindowsSecurityContextOptions contain Windows-specific options and credentials.\",\"type\":\"object\",\"properties\":{\"gmsaCredentialSpec\":{\"description\":\"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\"type\":\"string\"},\"gmsaCredentialSpecName\":{\"description\":\"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\"type\":\"string\"},\"hostProcess\":{\"description\":\"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).  In addition, if HostProcess is true then HostNetwork must also be set to true.\",\"type\":\"boolean\"},\"runAsUserName\":{\"description\":\"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"string\"}}},\"io.k8s.api.policy.v1.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.\",\"type\":\"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\"},\"deleteOptions\":{\"description\":\"DeleteOptions may be provided\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}]},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"ObjectMeta describes the pod that is being evicted.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"policy\",\"kind\":\"Eviction\",\"version\":\"v1\"}]},\"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.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"type\":\"object\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is the plural name of the resource.\",\"type\":\"string\",\"default\":\"\"},\"namespaced\":{\"description\":\"namespaced indicates if a resource is namespaced or not.\",\"type\":\"boolean\",\"default\":false},\"shortNames\":{\"description\":\"shortNames is a list of suggested short names of the resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest 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\",\"default\":\"\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}]}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIResourceList\",\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\",\"lastTransitionTime\",\"reason\",\"message\"],\"properties\":{\"lastTransitionTime\":{\"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.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"message\":{\"description\":\"message is a human readable message indicating details about the transition. This may be an empty string.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\",\"default\":\"\"},\"status\":{\"description\":\"status of the condition, one of True, False, Unknown.\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"type of condition in CamelCase or in foo.example.com/CamelCase.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"}]},\"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\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"}]}},\"matchLabels\":{\"description\":\"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"key is the label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\",\"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\",\"default\":\"\"},\"values\":{\"description\":\"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"}]},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\":{\"description\":\"MicroTime is version of Time with microsecond level precision.\",\"type\":\"string\",\"format\":\"date-time\"},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"clusterName\":{\"description\":\"Deprecated: ClusterName is a legacy field that was always cleared by the system and never used; it will be removed completely in 1.25.\\n\\nThe name in the go struct is changed to help clients detect accidental use.\",\"type\":\"string\"},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}]}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"}]},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"}]},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]},\"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\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}]}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"type\":\"object\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension\"}]},\"type\":{\"type\":\"string\",\"default\":\"\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.\",\"type\":\"string\",\"format\":\"int-or-string\"}},\"securitySchemes\":{\"BearerToken\":{\"type\":\"apiKey\",\"description\":\"Bearer Token authentication\",\"name\":\"authorization\",\"in\":\"header\"}}}}\n"
  },
  {
    "path": "pkg/openapiconv/testdata_generated_from_k8s/v3_apiextensions.k8s.io.v1.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.24.0\"},\"paths\":{\"/apis/apiextensions.k8s.io/v1/\":{\"get\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"get available resources\",\"operationId\":\"getApiextensionsV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}}}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apiextensions.k8s.io/v1/customresourcedefinitions\":{\"get\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"list or watch objects of kind CustomResourceDefinition\",\"operationId\":\"listApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"post\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"create a CustomResourceDefinition\",\"operationId\":\"createApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"delete\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"delete collection of CustomResourceDefinition\",\"operationId\":\"deleteApiextensionsV1CollectionCustomResourceDefinition\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"parameters\":[{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}\":{\"get\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"read the specified CustomResourceDefinition\",\"operationId\":\"readApiextensionsV1CustomResourceDefinition\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"put\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"replace the specified CustomResourceDefinition\",\"operationId\":\"replaceApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"delete\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"delete a CustomResourceDefinition\",\"operationId\":\"deleteApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"patch\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"partially update the specified CustomResourceDefinition\",\"operationId\":\"patchApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CustomResourceDefinition\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status\":{\"get\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"read status of the specified CustomResourceDefinition\",\"operationId\":\"readApiextensionsV1CustomResourceDefinitionStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"put\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"replace status of the specified CustomResourceDefinition\",\"operationId\":\"replaceApiextensionsV1CustomResourceDefinitionStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"patch\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"partially update status of the specified CustomResourceDefinition\",\"operationId\":\"patchApiextensionsV1CustomResourceDefinitionStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CustomResourceDefinition\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions\":{\"get\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchApiextensionsV1CustomResourceDefinitionList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}\":{\"get\":{\"tags\":[\"apiextensions_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1\",\"kind\":\"CustomResourceDefinition\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CustomResourceDefinition\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]}},\"components\":{\"schemas\":{\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}]}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"}]},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}]}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\":{\"description\":\"CustomResourceDefinitionList is a list of CustomResourceDefinition objects.\",\"type\":\"object\",\"required\":[\"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 list individual CustomResourceDefinition objects\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"}]},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"}]},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}]}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"}]},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"}]},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}]}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"}]},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}]}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"}]},\"status\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}]}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}]}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"properties\":{\"$ref\":{\"type\":\"string\"},\"$schema\":{\"type\":\"string\"},\"additionalItems\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\"},\"additionalProperties\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\"},\"allOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}]}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}]}},\"default\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}]},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}]}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}]}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}]}},\"example\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"exclusiveMaximum\":{\"type\":\"boolean\"},\"exclusiveMinimum\":{\"type\":\"boolean\"},\"externalDocs\":{\"$ref\":\"#/components/schemas/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\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray\"},\"maxItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}]}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}]}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}]}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"}]},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"}]},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"}]},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"type\":\"object\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is the plural name of the resource.\",\"type\":\"string\",\"default\":\"\"},\"namespaced\":{\"description\":\"namespaced indicates if a resource is namespaced or not.\",\"type\":\"boolean\",\"default\":false},\"shortNames\":{\"description\":\"shortNames is a list of suggested short names of the resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest 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\",\"default\":\"\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}]}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIResourceList\",\"version\":\"v1\"}]},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"}]},\"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\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"}]},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"clusterName\":{\"description\":\"Deprecated: ClusterName is a legacy field that was always cleared by the system and never used; it will be removed completely in 1.25.\\n\\nThe name in the go struct is changed to help clients detect accidental use.\",\"type\":\"string\"},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}]}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"}]},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"}]},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]},\"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\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}]}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"type\":\"object\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension\"}]},\"type\":{\"type\":\"string\",\"default\":\"\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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\"}},\"securitySchemes\":{\"BearerToken\":{\"type\":\"apiKey\",\"description\":\"Bearer Token authentication\",\"name\":\"authorization\",\"in\":\"header\"}}}}\n"
  },
  {
    "path": "pkg/openapiconv/testdata_generated_from_k8s/v3_batch.v1.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.24.0\"},\"paths\":{\"/apis/batch/v1/\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"get available resources\",\"operationId\":\"getBatchV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}}}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/batch/v1/cronjobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"list or watch objects of kind CronJob\",\"operationId\":\"listBatchV1CronJobForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/jobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"list or watch objects of kind Job\",\"operationId\":\"listBatchV1JobForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/namespaces/{namespace}/cronjobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"list or watch objects of kind CronJob\",\"operationId\":\"listBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"post\":{\"tags\":[\"batch_v1\"],\"description\":\"create a CronJob\",\"operationId\":\"createBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"delete\":{\"tags\":[\"batch_v1\"],\"description\":\"delete collection of CronJob\",\"operationId\":\"deleteBatchV1CollectionNamespacedCronJob\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1/namespaces/{namespace}/cronjobs/{name}\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"read the specified CronJob\",\"operationId\":\"readBatchV1NamespacedCronJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"put\":{\"tags\":[\"batch_v1\"],\"description\":\"replace the specified CronJob\",\"operationId\":\"replaceBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"delete\":{\"tags\":[\"batch_v1\"],\"description\":\"delete a CronJob\",\"operationId\":\"deleteBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"patch\":{\"tags\":[\"batch_v1\"],\"description\":\"partially update the specified CronJob\",\"operationId\":\"patchBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CronJob\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"read status of the specified CronJob\",\"operationId\":\"readBatchV1NamespacedCronJobStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"put\":{\"tags\":[\"batch_v1\"],\"description\":\"replace status of the specified CronJob\",\"operationId\":\"replaceBatchV1NamespacedCronJobStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"patch\":{\"tags\":[\"batch_v1\"],\"description\":\"partially update status of the specified CronJob\",\"operationId\":\"patchBatchV1NamespacedCronJobStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CronJob\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1/namespaces/{namespace}/jobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"list or watch objects of kind Job\",\"operationId\":\"listBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"post\":{\"tags\":[\"batch_v1\"],\"description\":\"create a Job\",\"operationId\":\"createBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"delete\":{\"tags\":[\"batch_v1\"],\"description\":\"delete collection of Job\",\"operationId\":\"deleteBatchV1CollectionNamespacedJob\",\"parameters\":[{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1/namespaces/{namespace}/jobs/{name}\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"read the specified Job\",\"operationId\":\"readBatchV1NamespacedJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"put\":{\"tags\":[\"batch_v1\"],\"description\":\"replace the specified Job\",\"operationId\":\"replaceBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"delete\":{\"tags\":[\"batch_v1\"],\"description\":\"delete a Job\",\"operationId\":\"deleteBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"patch\":{\"tags\":[\"batch_v1\"],\"description\":\"partially update the specified Job\",\"operationId\":\"patchBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Job\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"read status of the specified Job\",\"operationId\":\"readBatchV1NamespacedJobStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"put\":{\"tags\":[\"batch_v1\"],\"description\":\"replace status of the specified Job\",\"operationId\":\"replaceBatchV1NamespacedJobStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"*/*\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"patch\":{\"tags\":[\"batch_v1\"],\"description\":\"partially update status of the specified Job\",\"operationId\":\"patchBatchV1NamespacedJobStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/apply-patch+yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/json-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},\"application/strategic-merge-patch+json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Job\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1/watch/cronjobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchBatchV1CronJobListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/watch/jobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchBatchV1JobListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/watch/namespaces/{namespace}/cronjobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchBatchV1NamespacedCronJobList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/watch/namespaces/{namespace}/cronjobs/{name}\":{\"get\":{\"tags\":[\"batch_v1\"],\"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\":\"watchBatchV1NamespacedCronJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"CronJob\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CronJob\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/watch/namespaces/{namespace}/jobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchBatchV1NamespacedJobList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}\":{\"get\":{\"tags\":[\"batch_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"Job\"}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Job\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]}},\"components\":{\"schemas\":{\"io.k8s.api.batch.v1.CronJob\":{\"description\":\"CronJob represents the configuration of a single cron job.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobSpec\"}]},\"status\":{\"description\":\"Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobStatus\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1\"}]},\"io.k8s.api.batch.v1.CronJobList\":{\"description\":\"CronJobList is a collection of cron jobs.\",\"type\":\"object\",\"required\":[\"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 the list of CronJobs.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"batch\",\"kind\":\"CronJobList\",\"version\":\"v1\"}]},\"io.k8s.api.batch.v1.CronJobSpec\":{\"description\":\"CronJobSpec describes how the job execution will look like and when it will actually run.\",\"type\":\"object\",\"required\":[\"schedule\",\"jobTemplate\"],\"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\\n\\nPossible enum values:\\n - `\\\"Allow\\\"` allows CronJobs to run concurrently.\\n - `\\\"Forbid\\\"` forbids concurrent runs, skipping next run if previous hasn't finished yet.\\n - `\\\"Replace\\\"` cancels currently running job and replaces it with a new one.\",\"type\":\"string\",\"enum\":[\"Allow\",\"Forbid\",\"Replace\"]},\"failedJobsHistoryLimit\":{\"description\":\"The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"jobTemplate\":{\"description\":\"Specifies the job that will be created when executing a CronJob.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobTemplateSpec\"}]},\"schedule\":{\"description\":\"The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"successfulJobsHistoryLimit\":{\"description\":\"The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.\",\"type\":\"integer\",\"format\":\"int32\"},\"suspend\":{\"description\":\"This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.\",\"type\":\"boolean\"}}},\"io.k8s.api.batch.v1.CronJobStatus\":{\"description\":\"CronJobStatus represents the current state of a cron job.\",\"type\":\"object\",\"properties\":{\"active\":{\"description\":\"A list of pointers to currently running jobs.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"}]},\"x-kubernetes-list-type\":\"atomic\"},\"lastScheduleTime\":{\"description\":\"Information when was the last time the job was successfully scheduled.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"lastSuccessfulTime\":{\"description\":\"Information when was the last time the job successfully completed.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"io.k8s.api.batch.v1.Job\":{\"description\":\"Job represents the configuration of a single job.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobSpec\"}]},\"status\":{\"description\":\"Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobStatus\"}]}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"Last time the condition was checked.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"lastTransitionTime\":{\"description\":\"Last time the condition transit from one status to another.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of job condition, Complete or Failed.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.batch.v1.JobList\":{\"description\":\"JobList is a collection of jobs.\",\"type\":\"object\",\"required\":[\"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 the list of Jobs.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}]}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"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.\",\"type\":\"object\",\"required\":[\"template\"],\"properties\":{\"activeDeadlineSeconds\":{\"description\":\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"backoffLimit\":{\"description\":\"Specifies the number of retries before marking this job failed. Defaults to 6\",\"type\":\"integer\",\"format\":\"int32\"},\"completionMode\":{\"description\":\"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. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`.\\n\\nMore completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller skips updates for the Job.\",\"type\":\"string\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}]},\"suspend\":{\"description\":\"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. Defaults to false.\",\"type\":\"boolean\"},\"template\":{\"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/\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"}]},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.batch.v1.JobStatus\":{\"description\":\"JobStatus represents the current state of a Job.\",\"type\":\"object\",\"properties\":{\"active\":{\"description\":\"The number of pending and running pods.\",\"type\":\"integer\",\"format\":\"int32\"},\"completedIndexes\":{\"description\":\"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\\\".\",\"type\":\"string\"},\"completionTime\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"conditions\":{\"description\":\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobCondition\"}]},\"x-kubernetes-list-type\":\"atomic\",\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"failed\":{\"description\":\"The number of pods which reached phase Failed.\",\"type\":\"integer\",\"format\":\"int32\"},\"ready\":{\"description\":\"The number of pods which have a Ready condition.\\n\\nThis field is alpha-level. The job controller populates the field when the feature gate JobReadyPods is enabled (disabled by default).\",\"type\":\"integer\",\"format\":\"int32\"},\"startTime\":{\"description\":\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"succeeded\":{\"description\":\"The number of pods which reached phase Succeeded.\",\"type\":\"integer\",\"format\":\"int32\"},\"uncountedTerminatedPods\":{\"description\":\"UncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.\\n\\nThe job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status: (1) Add the pod UID to the arrays in this field. (2) Remove the pod finalizer. (3) Remove the pod UID from the arrays while increasing the corresponding\\n    counter.\\n\\nThis field is beta-level. The job controller only makes use of this field when the feature gate JobTrackingWithFinalizers is enabled (enabled by default). Old jobs might not be tracked using this field, in which case the field remains null.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.UncountedTerminatedPods\"}]}}},\"io.k8s.api.batch.v1.JobTemplateSpec\":{\"description\":\"JobTemplateSpec describes the data a Job should have when created from a template\",\"type\":\"object\",\"properties\":{\"metadata\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobSpec\"}]}}},\"io.k8s.api.batch.v1.UncountedTerminatedPods\":{\"description\":\"UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.\",\"type\":\"object\",\"properties\":{\"failed\":{\"description\":\"Failed holds UIDs of failed Pods.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-list-type\":\"set\"},\"succeeded\":{\"description\":\"Succeeded holds UIDs of succeeded Pods.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-list-type\":\"set\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.Affinity\":{\"description\":\"Affinity is a group of affinity scheduling rules.\",\"type\":\"object\",\"properties\":{\"nodeAffinity\":{\"description\":\"Describes node affinity scheduling rules for the pod.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeAffinity\"}]},\"podAffinity\":{\"description\":\"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinity\"}]},\"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)).\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAntiAffinity\"}]}}},\"io.k8s.api.core.v1.AzureDiskVolumeSource\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"diskName\",\"diskURI\"],\"properties\":{\"cachingMode\":{\"description\":\"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\"type\":\"string\"},\"diskName\":{\"description\":\"diskName is the Name of the data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"diskURI\":{\"description\":\"diskURI is the URI of data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"kind\":{\"description\":\"kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.AzureFileVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the  name of secret that contains Azure Storage Account Name and Key\",\"type\":\"string\",\"default\":\"\"},\"shareName\":{\"description\":\"shareName is the azure share Name\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.CSIVolumeSource\":{\"description\":\"Represents a source location of a volume to mount, managed by an external CSI driver\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\"type\":\"string\"},\"nodePublishSecretRef\":{\"description\":\"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and  may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"readOnly\":{\"description\":\"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.Capabilities\":{\"description\":\"Adds and removes POSIX capabilities from running containers.\",\"type\":\"object\",\"properties\":{\"add\":{\"description\":\"Added capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"drop\":{\"description\":\"Removed capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"path\":{\"description\":\"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretFile\":{\"description\":\"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"user\":{\"description\":\"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"volumeID\":{\"description\":\"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ConfigMapKeySelector\":{\"description\":\"Selects a key from a ConfigMap.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key to select.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}]}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}]}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.Container\":{\"description\":\"A single application container that you want to run within a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVar\"}]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"}]}},\"image\":{\"description\":\"Container 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\\n\\nPossible enum values:\\n - `\\\"Always\\\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\\n - `\\\"IfNotPresent\\\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\\n - `\\\"Never\\\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present\",\"type\":\"string\",\"enum\":[\"Always\",\"IfNotPresent\",\"Never\"]},\"lifecycle\":{\"description\":\"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"}]},\"livenessProbe\":{\"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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"}]},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"}]},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"}]},\"resources\":{\"description\":\"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"}]},\"securityContext\":{\"description\":\"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"}]},\"startupProbe\":{\"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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"}]},\"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.\\n\\nPossible enum values:\\n - `\\\"FallbackToLogsOnError\\\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\\n - `\\\"File\\\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.\",\"type\":\"string\",\"enum\":[\"FallbackToLogsOnError\",\"File\"]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"}]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"}]},\"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\"}}},\"io.k8s.api.core.v1.ContainerPort\":{\"description\":\"ContainerPort represents a network port in a single container.\",\"type\":\"object\",\"required\":[\"containerPort\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\\\".\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\"type\":\"string\",\"default\":\"TCP\",\"enum\":[\"SCTP\",\"TCP\",\"UDP\"]}}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"Items is a list of DownwardAPIVolume file\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}]}}}},\"io.k8s.api.core.v1.DownwardAPIVolumeFile\":{\"description\":\"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"fieldRef\":{\"description\":\"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"}]},\"mode\":{\"description\":\"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\"type\":\"string\",\"default\":\"\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"}]}}},\"io.k8s.api.core.v1.DownwardAPIVolumeSource\":{\"description\":\"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"Items is a list of downward API volume file\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}]}}}},\"io.k8s.api.core.v1.EmptyDirVolumeSource\":{\"description\":\"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"medium\":{\"description\":\"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"type\":\"string\"},\"sizeLimit\":{\"description\":\"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}}},\"io.k8s.api.core.v1.EnvFromSource\":{\"description\":\"EnvFromSource represents the source of a set of ConfigMaps\",\"type\":\"object\",\"properties\":{\"configMapRef\":{\"description\":\"The ConfigMap to select from\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapEnvSource\"}]},\"prefix\":{\"description\":\"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\"type\":\"string\"},\"secretRef\":{\"description\":\"The Secret to select from\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretEnvSource\"}]}}},\"io.k8s.api.core.v1.EnvVar\":{\"description\":\"EnvVar represents an environment variable present in a Container.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name of the environment variable. Must be a C_IDENTIFIER.\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Variable references $(VAR_NAME) are expanded using the previously 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the environment variable's value. Cannot be used if value is not empty.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVarSource\"}]}}},\"io.k8s.api.core.v1.EnvVarSource\":{\"description\":\"EnvVarSource represents a source for the value of an EnvVar.\",\"type\":\"object\",\"properties\":{\"configMapKeyRef\":{\"description\":\"Selects a key of a ConfigMap.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapKeySelector\"}]},\"fieldRef\":{\"description\":\"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"}]},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"}]},\"secretKeyRef\":{\"description\":\"Selects a key of a secret in the pod's namespace\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretKeySelector\"}]}}},\"io.k8s.api.core.v1.EphemeralContainer\":{\"description\":\"An EphemeralContainer is a temporary container that you may add 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. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\\n\\nThis is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVar\"}]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"}]}},\"image\":{\"description\":\"Container 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\\n\\nPossible enum values:\\n - `\\\"Always\\\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\\n - `\\\"IfNotPresent\\\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\\n - `\\\"Never\\\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present\",\"type\":\"string\",\"enum\":[\"Always\",\"IfNotPresent\",\"Never\"]},\"lifecycle\":{\"description\":\"Lifecycle is not allowed for ephemeral containers.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"}]},\"livenessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"}]},\"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\",\"default\":\"\"},\"ports\":{\"description\":\"Ports are not allowed for ephemeral containers.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"}]},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"}]},\"resources\":{\"description\":\"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"}]},\"securityContext\":{\"description\":\"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"}]},\"startupProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"}]},\"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 uses the namespaces configured in the Pod spec.\\n\\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\"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.\\n\\nPossible enum values:\\n - `\\\"FallbackToLogsOnError\\\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\\n - `\\\"File\\\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.\",\"type\":\"string\",\"enum\":[\"FallbackToLogsOnError\",\"File\"]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"}]},\"x-kubernetes-patch-merge-key\":\"devicePath\",\"x-kubernetes-patch-strategy\":\"merge\"},\"volumeMounts\":{\"description\":\"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"}]},\"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\"}}},\"io.k8s.api.core.v1.EphemeralVolumeSource\":{\"description\":\"Represents an ephemeral volume that is handled by a normal storage driver.\",\"type\":\"object\",\"properties\":{\"volumeClaimTemplate\":{\"description\":\"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod.  The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\\n\\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\\n\\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\\n\\nRequired, must not be nil.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimTemplate\"}]}}},\"io.k8s.api.core.v1.ExecAction\":{\"description\":\"ExecAction describes a \\\"run in container\\\" action.\",\"type\":\"object\",\"properties\":{\"command\":{\"description\":\"Command is the command line to execute inside the container, the working directory for the command  is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"lun\":{\"description\":\"lun is Optional: FC target lun number\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"targetWWNs\":{\"description\":\"targetWWNs is Optional: FC target worldwide names (WWNs)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"wwids\":{\"description\":\"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.FlexVolumeSource\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the driver to use for this volume.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"options is Optional: this field holds extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"datasetName\":{\"description\":\"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\"type\":\"string\"},\"datasetUUID\":{\"description\":\"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"pdName\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"integer\",\"format\":\"int32\"},\"pdName\":{\"description\":\"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.GRPCAction\":{\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"port\":{\"description\":\"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"service\":{\"description\":\"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"repository\"],\"properties\":{\"directory\":{\"description\":\"directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\"type\":\"string\"},\"repository\":{\"description\":\"repository is the URL\",\"type\":\"string\",\"default\":\"\"},\"revision\":{\"description\":\"revision is the commit hash for the specified revision.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"path\":{\"description\":\"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.HTTPGetAction\":{\"description\":\"HTTPGetAction describes an action based on HTTP Get requests.\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\"type\":\"string\"},\"httpHeaders\":{\"description\":\"Custom headers to set in the request. HTTP allows repeated headers.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPHeader\"}]}},\"path\":{\"description\":\"Path to access on the HTTP server.\",\"type\":\"string\"},\"port\":{\"description\":\"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}]},\"scheme\":{\"description\":\"Scheme to use for connecting to the host. Defaults to HTTP.\\n\\nPossible enum values:\\n - `\\\"HTTP\\\"` means that the scheme used will be http://\\n - `\\\"HTTPS\\\"` means that the scheme used will be https://\",\"type\":\"string\",\"enum\":[\"HTTP\",\"HTTPS\"]}}},\"io.k8s.api.core.v1.HTTPHeader\":{\"description\":\"HTTPHeader describes a custom header to be used in HTTP probes\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"The header field name\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"The header field value\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"hostnames\":{\"description\":\"Hostnames for the above IP address.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"ip\":{\"description\":\"IP address of the host file entry.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"path\":{\"description\":\"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"properties\":{\"chapAuthDiscovery\":{\"description\":\"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\"type\":\"boolean\"},\"chapAuthSession\":{\"description\":\"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\"type\":\"boolean\"},\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\"type\":\"string\"},\"initiatorName\":{\"description\":\"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\"type\":\"string\"},\"iqn\":{\"description\":\"iqn is the target iSCSI Qualified Name.\",\"type\":\"string\",\"default\":\"\"},\"iscsiInterface\":{\"description\":\"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\"type\":\"string\"},\"lun\":{\"description\":\"lun represents iSCSI Target Lun number.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"portals\":{\"description\":\"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"targetPortal\":{\"description\":\"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.KeyToPath\":{\"description\":\"Maps a string key to a path within a volume.\",\"type\":\"object\",\"required\":[\"key\",\"path\"],\"properties\":{\"key\":{\"description\":\"key is the key to project.\",\"type\":\"string\",\"default\":\"\"},\"mode\":{\"description\":\"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"postStart\":{\"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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"}]},\"preStop\":{\"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 Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). 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\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"}]}}},\"io.k8s.api.core.v1.LifecycleHandler\":{\"description\":\"LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ExecAction\"}]},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"}]},\"tcpSocket\":{\"description\":\"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"}]}}},\"io.k8s.api.core.v1.LocalObjectReference\":{\"description\":\"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"server\",\"path\"],\"properties\":{\"path\":{\"description\":\"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NodeAffinity\":{\"description\":\"Node affinity is a group of node affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PreferredSchedulingTerm\"}]}},\"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 an update), the system may or may not try to eventually evict the pod from its node.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelector\"}]}}},\"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.\",\"type\":\"object\",\"required\":[\"nodeSelectorTerms\"],\"properties\":{\"nodeSelectorTerms\":{\"description\":\"Required. A list of node selector terms. The terms are ORed.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"}]}}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"The label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\"},\"operator\":{\"description\":\"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\\n\\nPossible enum values:\\n - `\\\"DoesNotExist\\\"`\\n - `\\\"Exists\\\"`\\n - `\\\"Gt\\\"`\\n - `\\\"In\\\"`\\n - `\\\"Lt\\\"`\\n - `\\\"NotIn\\\"`\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"DoesNotExist\",\"Exists\",\"Gt\",\"In\",\"Lt\",\"NotIn\"]},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"A list of node selector requirements by node's labels.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"}]}},\"matchFields\":{\"description\":\"A list of node selector requirements by node's fields.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"}]}}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ObjectFieldSelector\":{\"description\":\"ObjectFieldSelector selects an APIVersioned field of an object.\",\"type\":\"object\",\"required\":[\"fieldPath\"],\"properties\":{\"apiVersion\":{\"description\":\"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\"type\":\"string\"},\"fieldPath\":{\"description\":\"Path of the field to select in the specified API version.\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ObjectReference\":{\"description\":\"ObjectReference contains enough information to let you inspect or modify the referred object.\",\"type\":\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.PersistentVolumeClaimSpec\":{\"description\":\"PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes\",\"type\":\"object\",\"properties\":{\"accessModes\":{\"description\":\"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"dataSource\":{\"description\":\"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"}]},\"dataSourceRef\":{\"description\":\"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef\\n  allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While DataSource ignores disallowed values (dropping them), DataSourceRef\\n  preserves all values, and generates an error if a disallowed value is\\n  specified.\\n(Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"}]},\"resources\":{\"description\":\"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"}]},\"selector\":{\"description\":\"selector is a label query over volumes to consider for binding.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}]},\"storageClassName\":{\"description\":\"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\"type\":\"string\"},\"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\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimTemplate\":{\"description\":\"PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"metadata\":{\"description\":\"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"description\":\"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"}]}}},\"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).\",\"type\":\"object\",\"required\":[\"claimName\"],\"properties\":{\"claimName\":{\"description\":\"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"string\",\"default\":\"\"},\"readOnly\":{\"description\":\"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\":{\"description\":\"Represents a Photon Controller persistent disk resource.\",\"type\":\"object\",\"required\":[\"pdID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"pdID\":{\"description\":\"pdID is the ID that identifies Photon Controller persistent disk\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAffinity\":{\"description\":\"Pod affinity is a group of inter pod affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}]}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}]}}}},\"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\",\"type\":\"object\",\"required\":[\"topologyKey\"],\"properties\":{\"labelSelector\":{\"description\":\"A label query over a set of resources, in this case pods.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}]},\"namespaceSelector\":{\"description\":\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}]},\"namespaces\":{\"description\":\"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\\\".\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAntiAffinity\":{\"description\":\"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}]}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}]}}}},\"io.k8s.api.core.v1.PodDNSConfig\":{\"description\":\"PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodDNSConfigOption\"}]}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.PodDNSConfigOption\":{\"description\":\"PodDNSConfigOption defines DNS resolver options of a pod.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"}}},\"io.k8s.api.core.v1.PodOS\":{\"description\":\"PodOS defines the OS parameters of a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodReadinessGate\":{\"description\":\"PodReadinessGate contains the reference to a pod condition\",\"type\":\"object\",\"required\":[\"conditionType\"],\"properties\":{\"conditionType\":{\"description\":\"ConditionType refers to a condition in the pod's condition list with matching type.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"fsGroupChangePolicy\":{\"description\":\"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"}]},\"seccompProfile\":{\"description\":\"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"}]},\"supplementalGroups\":{\"description\":\"A list of groups applied to the first process run in each container, in addition to the container's primary GID.  If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\",\"default\":0}},\"sysctls\":{\"description\":\"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Sysctl\"}]}},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}]}}},\"io.k8s.api.core.v1.PodSpec\":{\"description\":\"PodSpec is a description of a pod.\",\"type\":\"object\",\"required\":[\"containers\"],\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"affinity\":{\"description\":\"If specified, the pod's scheduling constraints\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Affinity\"}]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Container\"}]},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"dnsConfig\":{\"description\":\"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodDNSConfig\"}]},\"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'.\\n\\nPossible enum values:\\n - `\\\"ClusterFirst\\\"` indicates that the pod should use cluster DNS first unless hostNetwork is true, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\\n - `\\\"ClusterFirstWithHostNet\\\"` indicates that the pod should use cluster DNS first, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\\n - `\\\"Default\\\"` indicates that the pod should use the default (as determined by kubelet) DNS settings.\\n - `\\\"None\\\"` indicates that the pod should use empty DNS settings. DNS parameters such as nameservers and search paths should be defined via DNSConfig.\",\"type\":\"string\",\"enum\":[\"ClusterFirst\",\"ClusterFirstWithHostNet\",\"Default\",\"None\"]},\"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 beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EphemeralContainer\"}]},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostAlias\"}]},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Container\"}]},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"os\":{\"description\":\"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\\n\\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\\n\\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is a beta field and requires the IdentifyPodOS feature\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodOS\"}]},\"overhead\":{\"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/688-pod-overhead/README.md\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"preemptionPolicy\":{\"description\":\"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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/580-pod-readiness-gates\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodReadinessGate\"}]}},\"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\\n\\nPossible enum values:\\n - `\\\"Always\\\"`\\n - `\\\"Never\\\"`\\n - `\\\"OnFailure\\\"`\",\"type\":\"string\",\"enum\":[\"Always\",\"Never\",\"OnFailure\"]},\"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/585-runtime-class\",\"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\":{\"description\":\"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSecurityContext\"}]},\"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 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.\",\"type\":\"integer\",\"format\":\"int64\"},\"tolerations\":{\"description\":\"If specified, the pod's tolerations.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Toleration\"}]}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TopologySpreadConstraint\"}]},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Volume\"}]},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge,retainKeys\"}}},\"io.k8s.api.core.v1.PodTemplateSpec\":{\"description\":\"PodTemplateSpec describes the data a pod should have when created from a template\",\"type\":\"object\",\"properties\":{\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"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\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSpec\"}]}}},\"io.k8s.api.core.v1.PortworxVolumeSource\":{\"description\":\"PortworxVolumeSource represents a Portworx volume resource.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID uniquely identifies a Portworx volume\",\"type\":\"string\",\"default\":\"\"}}},\"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).\",\"type\":\"object\",\"required\":[\"weight\",\"preference\"],\"properties\":{\"preference\":{\"description\":\"A node selector term, associated with the corresponding weight.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"}]},\"weight\":{\"description\":\"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"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.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ExecAction\"}]},\"failureThreshold\":{\"description\":\"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"grpc\":{\"description\":\"GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GRPCAction\"}]},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"}]},\"initialDelaySeconds\":{\"description\":\"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"},\"periodSeconds\":{\"description\":\"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"successThreshold\":{\"description\":\"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies an action involving a TCP port.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"}]},\"terminationGracePeriodSeconds\":{\"description\":\"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\"type\":\"integer\",\"format\":\"int64\"},\"timeoutSeconds\":{\"description\":\"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ProjectedVolumeSource\":{\"description\":\"Represents a projected volume source\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"sources\":{\"description\":\"sources is the list of volume projections\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeProjection\"}]}}}},\"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.\",\"type\":\"object\",\"required\":[\"registry\",\"volume\"],\"properties\":{\"group\":{\"description\":\"group to map volume access to Default is no group\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\"type\":\"boolean\"},\"registry\":{\"description\":\"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\",\"image\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\"type\":\"string\"},\"image\":{\"description\":\"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\",\"default\":\"\"},\"keyring\":{\"description\":\"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"pool\":{\"description\":\"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"user\":{\"description\":\"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ResourceFieldSelector\":{\"description\":\"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\"type\":\"object\",\"required\":[\"resource\"],\"properties\":{\"containerName\":{\"description\":\"Container name: required for volumes, optional for env vars\",\"type\":\"string\"},\"divisor\":{\"description\":\"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]},\"resource\":{\"description\":\"Required: resource to select\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ResourceRequirements\":{\"description\":\"ResourceRequirements describes the compute resource requirements.\",\"type\":\"object\",\"properties\":{\"limits\":{\"description\":\"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}},\"requests\":{\"description\":\"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}]}}}},\"io.k8s.api.core.v1.SELinuxOptions\":{\"description\":\"SELinuxOptions are the labels to be applied to the container\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ScaleIOVolumeSource\":{\"description\":\"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\"type\":\"object\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\"type\":\"string\"},\"gateway\":{\"description\":\"gateway is the host address of the ScaleIO API Gateway.\",\"type\":\"string\",\"default\":\"\"},\"protectionDomain\":{\"description\":\"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"sslEnabled\":{\"description\":\"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\"type\":\"boolean\"},\"storageMode\":{\"description\":\"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\"type\":\"string\"},\"storagePool\":{\"description\":\"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\"type\":\"string\"},\"system\":{\"description\":\"system is the name of the storage system as configured in ScaleIO.\",\"type\":\"string\",\"default\":\"\"},\"volumeName\":{\"description\":\"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.SeccompProfile\":{\"description\":\"SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"localhostProfile\":{\"description\":\"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must 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.\\n\\nPossible enum values:\\n - `\\\"Localhost\\\"` indicates a profile defined in a file on the node should be used. The file's location relative to \\u003ckubelet-root-dir\\u003e/seccomp.\\n - `\\\"RuntimeDefault\\\"` represents the default container runtime seccomp profile.\\n - `\\\"Unconfined\\\"` indicates no seccomp profile is applied (A.K.A. unconfined).\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"Localhost\",\"RuntimeDefault\",\"Unconfined\"]}},\"x-kubernetes-unions\":[{\"discriminator\":\"type\",\"fields-to-discriminateBy\":{\"localhostProfile\":\"LocalhostProfile\"}}]},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.SecretKeySelector\":{\"description\":\"SecretKeySelector selects a key of a Secret.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key of the secret to select from.  Must be a valid secret key.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}]}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional field specify whether the Secret or its key must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}]}},\"optional\":{\"description\":\"optional field specify whether the Secret or its keys must be defined\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"allowPrivilegeEscalation\":{\"description\":\"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"capabilities\":{\"description\":\"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Capabilities\"}]},\"privileged\":{\"description\":\"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"procMount\":{\"description\":\"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"readOnlyRootFilesystem\":{\"description\":\"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"}]},\"seccompProfile\":{\"description\":\"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"}]},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}]}}},\"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).\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"audience\":{\"description\":\"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\"type\":\"string\"},\"expirationSeconds\":{\"description\":\"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\"type\":\"integer\",\"format\":\"int64\"},\"path\":{\"description\":\"path is the path relative to the mount point of the file to project the token into.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.StorageOSVolumeSource\":{\"description\":\"Represents a StorageOS persistent volume resource.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}]},\"volumeName\":{\"description\":\"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Sysctl\":{\"description\":\"Sysctl defines a kernel parameter to be set\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"Name of a property to set\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Value of a property to set\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.TCPSocketAction\":{\"description\":\"TCPSocketAction describes an action based on opening a socket\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Optional: Host name to connect to, defaults to the pod IP.\",\"type\":\"string\"},\"port\":{\"description\":\"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}]}}},\"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.\",\"type\":\"object\",\"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.\\n\\nPossible enum values:\\n - `\\\"NoExecute\\\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\\n - `\\\"NoSchedule\\\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\\n - `\\\"PreferNoSchedule\\\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.\",\"type\":\"string\",\"enum\":[\"NoExecute\",\"NoSchedule\",\"PreferNoSchedule\"]},\"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.\\n\\nPossible enum values:\\n - `\\\"Equal\\\"`\\n - `\\\"Exists\\\"`\",\"type\":\"string\",\"enum\":[\"Equal\",\"Exists\"]},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\"}}},\"io.k8s.api.core.v1.TopologySpreadConstraint\":{\"description\":\"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\"type\":\"object\",\"required\":[\"maxSkew\",\"topologyKey\",\"whenUnsatisfiable\"],\"properties\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}]},\"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. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | |  P P  |  P P  |   P   | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) 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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"minDomains\":{\"description\":\"MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | |  P P  |  P P  |  P P  | The number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.\\n\\nThis is an alpha field and requires enabling MinDomainsInPodTopologySpread feature gate.\",\"type\":\"integer\",\"format\":\"int32\"},\"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. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes match the node selector. e.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology. And, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology. It's a required field.\",\"type\":\"string\",\"default\":\"\"},\"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 assignment 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.\\n\\nPossible enum values:\\n - `\\\"DoNotSchedule\\\"` instructs the scheduler not to schedule the pod when constraints are not satisfied.\\n - `\\\"ScheduleAnyway\\\"` instructs the scheduler to schedule the pod even if constraints are not satisfied.\",\"type\":\"string\",\"default\":\"\",\"enum\":[\"DoNotSchedule\",\"ScheduleAnyway\"]}}},\"io.k8s.api.core.v1.TypedLocalObjectReference\":{\"description\":\"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\"type\":\"object\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"awsElasticBlockStore\":{\"description\":\"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"}]},\"azureDisk\":{\"description\":\"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureDiskVolumeSource\"}]},\"azureFile\":{\"description\":\"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureFileVolumeSource\"}]},\"cephfs\":{\"description\":\"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CephFSVolumeSource\"}]},\"cinder\":{\"description\":\"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CinderVolumeSource\"}]},\"configMap\":{\"description\":\"configMap represents a configMap that should populate this volume\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapVolumeSource\"}]},\"csi\":{\"description\":\"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CSIVolumeSource\"}]},\"downwardAPI\":{\"description\":\"downwardAPI represents downward API about the pod that should populate this volume\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeSource\"}]},\"emptyDir\":{\"description\":\"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EmptyDirVolumeSource\"}]},\"ephemeral\":{\"description\":\"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\\n\\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\\n   tracking are needed,\\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n   information on the connection between this volume type\\n   and PersistentVolumeClaim).\\n\\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\\n\\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EphemeralVolumeSource\"}]},\"fc\":{\"description\":\"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FCVolumeSource\"}]},\"flexVolume\":{\"description\":\"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlexVolumeSource\"}]},\"flocker\":{\"description\":\"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlockerVolumeSource\"}]},\"gcePersistentDisk\":{\"description\":\"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"}]},\"gitRepo\":{\"description\":\"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GitRepoVolumeSource\"}]},\"glusterfs\":{\"description\":\"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GlusterfsVolumeSource\"}]},\"hostPath\":{\"description\":\"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostPathVolumeSource\"}]},\"iscsi\":{\"description\":\"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ISCSIVolumeSource\"}]},\"name\":{\"description\":\"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\",\"default\":\"\"},\"nfs\":{\"description\":\"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NFSVolumeSource\"}]},\"persistentVolumeClaim\":{\"description\":\"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"}]},\"photonPersistentDisk\":{\"description\":\"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"}]},\"portworxVolume\":{\"description\":\"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource\"}]},\"projected\":{\"description\":\"projected items for all in one resources secrets, configmaps, and downward API\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ProjectedVolumeSource\"}]},\"quobyte\":{\"description\":\"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.QuobyteVolumeSource\"}]},\"rbd\":{\"description\":\"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.RBDVolumeSource\"}]},\"scaleIO\":{\"description\":\"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ScaleIOVolumeSource\"}]},\"secret\":{\"description\":\"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretVolumeSource\"}]},\"storageos\":{\"description\":\"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.StorageOSVolumeSource\"}]},\"vsphereVolume\":{\"description\":\"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}]}}},\"io.k8s.api.core.v1.VolumeDevice\":{\"description\":\"volumeDevice describes a mapping of a raw block device within a container.\",\"type\":\"object\",\"required\":[\"name\",\"devicePath\"],\"properties\":{\"devicePath\":{\"description\":\"devicePath is the path inside of the container that the device will be mapped to.\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"name must match the name of a persistentVolumeClaim in the pod\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.VolumeMount\":{\"description\":\"VolumeMount describes a mounting of a Volume within a container.\",\"type\":\"object\",\"required\":[\"name\",\"mountPath\"],\"properties\":{\"mountPath\":{\"description\":\"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.VolumeProjection\":{\"description\":\"Projection that may be projected along with other supported volume types\",\"type\":\"object\",\"properties\":{\"configMap\":{\"description\":\"configMap information about the configMap data to project\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapProjection\"}]},\"downwardAPI\":{\"description\":\"downwardAPI information about the downwardAPI data to project\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIProjection\"}]},\"secret\":{\"description\":\"secret information about the secret data to project\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretProjection\"}]},\"serviceAccountToken\":{\"description\":\"serviceAccountToken is information about the serviceAccountToken data to project\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountTokenProjection\"}]}}},\"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\":{\"description\":\"Represents a vSphere volume resource.\",\"type\":\"object\",\"required\":[\"volumePath\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"storagePolicyID\":{\"description\":\"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\"type\":\"string\"},\"storagePolicyName\":{\"description\":\"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\"type\":\"string\"},\"volumePath\":{\"description\":\"volumePath is the path that identifies vSphere volume vmdk\",\"type\":\"string\",\"default\":\"\"}}},\"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)\",\"type\":\"object\",\"required\":[\"weight\",\"podAffinityTerm\"],\"properties\":{\"podAffinityTerm\":{\"description\":\"Required. A pod affinity term, associated with the corresponding weight.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}]},\"weight\":{\"description\":\"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"io.k8s.api.core.v1.WindowsSecurityContextOptions\":{\"description\":\"WindowsSecurityContextOptions contain Windows-specific options and credentials.\",\"type\":\"object\",\"properties\":{\"gmsaCredentialSpec\":{\"description\":\"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\"type\":\"string\"},\"gmsaCredentialSpecName\":{\"description\":\"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\"type\":\"string\"},\"hostProcess\":{\"description\":\"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).  In addition, if HostProcess is true then HostNetwork must also be set to true.\",\"type\":\"boolean\"},\"runAsUserName\":{\"description\":\"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"string\"}}},\"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.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"type\":\"object\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is the plural name of the resource.\",\"type\":\"string\",\"default\":\"\"},\"namespaced\":{\"description\":\"namespaced indicates if a resource is namespaced or not.\",\"type\":\"boolean\",\"default\":false},\"shortNames\":{\"description\":\"shortNames is a list of suggested short names of the resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest 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\",\"default\":\"\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}]}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIResourceList\",\"version\":\"v1\"}]},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"}]},\"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\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"}]}},\"matchLabels\":{\"description\":\"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"key is the label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\",\"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\",\"default\":\"\"},\"values\":{\"description\":\"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"}]},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"clusterName\":{\"description\":\"Deprecated: ClusterName is a legacy field that was always cleared by the system and never used; it will be removed completely in 1.25.\\n\\nThe name in the go struct is changed to help clients detect accidental use.\",\"type\":\"string\"},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}]}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"}]},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"}]},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]},\"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\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}]}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"type\":\"object\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension\"}]},\"type\":{\"type\":\"string\",\"default\":\"\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.\",\"type\":\"string\",\"format\":\"int-or-string\"}},\"securitySchemes\":{\"BearerToken\":{\"type\":\"apiKey\",\"description\":\"Bearer Token authentication\",\"name\":\"authorization\",\"in\":\"header\"}}}}\n"
  },
  {
    "path": "pkg/schemaconv/openapi.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemaconv\n\nimport (\n\t\"errors\"\n\t\"path\"\n\t\"strings\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"sigs.k8s.io/structured-merge-diff/v6/schema\"\n)\n\n// ToSchemaFromOpenAPI converts a directory of OpenAPI schemas to an smd Schema.\n//   - models: a map from definition name to OpenAPI V3 structural schema for each definition.\n//     Key in map is used to resolve references in the schema.\n//   - preserveUnknownFields: flag indicating whether unknown fields in all schemas should be preserved.\n//   - returns: nil and an error if there is a parse error, or if schema does not satisfy a\n//     required structural schema invariant for conversion. If no error, returns\n//     a new smd schema.\n//\n// Schema should be validated as structural before using with this function, or\n// there may be information lost.\nfunc ToSchemaFromOpenAPI(models map[string]*spec.Schema, preserveUnknownFields bool) (*schema.Schema, error) {\n\tc := convert{\n\t\tpreserveUnknownFields: preserveUnknownFields,\n\t\toutput:                &schema.Schema{},\n\t}\n\n\tfor name, spec := range models {\n\t\t// Skip/Ignore top-level references\n\t\tif len(spec.Ref.String()) > 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar a schema.Atom\n\n\t\t// Hard-coded schemas for now as proto_models implementation functions.\n\t\t// https://github.com/kubernetes/kube-openapi/issues/364\n\t\tif name == quantityResource {\n\t\t\ta = schema.Atom{\n\t\t\t\tScalar: untypedDef.Atom.Scalar,\n\t\t\t}\n\t\t} else if name == rawExtensionResource {\n\t\t\ta = untypedDef.Atom\n\t\t} else {\n\t\t\tc2 := c.push(name, &a)\n\t\t\tc2.visitSpec(spec)\n\t\t\tc.pop(c2)\n\t\t}\n\n\t\tc.insertTypeDef(name, a)\n\t}\n\n\tif len(c.errorMessages) > 0 {\n\t\treturn nil, errors.New(strings.Join(c.errorMessages, \"\\n\"))\n\t}\n\n\tc.addCommonTypes()\n\treturn c.output, nil\n}\n\nfunc (c *convert) visitSpec(m *spec.Schema) {\n\t// Check if this schema opts its descendants into preserve-unknown-fields\n\tif p, ok := m.Extensions[\"x-kubernetes-preserve-unknown-fields\"]; ok && p == true {\n\t\tc.preserveUnknownFields = true\n\t}\n\ta := c.top()\n\t*a = c.parseSchema(m)\n}\n\nfunc (c *convert) parseSchema(m *spec.Schema) schema.Atom {\n\t// k8s-generated OpenAPI specs have historically used only one value for\n\t// type and starting with OpenAPIV3 it is only allowed to be\n\t// a single string.\n\ttyp := \"\"\n\tif len(m.Type) > 0 {\n\t\ttyp = m.Type[0]\n\t}\n\n\t// Structural Schemas produced by kubernetes follow very specific rules which\n\t// we can use to infer the SMD type:\n\tswitch typ {\n\tcase \"\":\n\t\t// According to Swagger docs:\n\t\t// https://swagger.io/docs/specification/data-models/data-types/#any\n\t\t//\n\t\t// If no type is specified, it is equivalent to accepting any type.\n\t\treturn schema.Atom{\n\t\t\tScalar: ptr(schema.Scalar(\"untyped\")),\n\t\t\tList:   c.parseList(m),\n\t\t\tMap:    c.parseObject(m),\n\t\t}\n\n\tcase \"object\":\n\t\treturn schema.Atom{\n\t\t\tMap: c.parseObject(m),\n\t\t}\n\tcase \"array\":\n\t\treturn schema.Atom{\n\t\t\tList: c.parseList(m),\n\t\t}\n\tcase \"integer\", \"boolean\", \"number\", \"string\":\n\t\treturn convertPrimitive(typ, m.Format)\n\tdefault:\n\t\tc.reportError(\"unrecognized type: '%v'\", typ)\n\t\treturn schema.Atom{\n\t\t\tScalar: ptr(schema.Scalar(\"untyped\")),\n\t\t}\n\t}\n}\n\nfunc (c *convert) makeOpenAPIRef(specSchema *spec.Schema) schema.TypeRef {\n\trefString := specSchema.Ref.String()\n\n\t// Special-case handling for $ref stored inside a single-element allOf\n\tif len(refString) == 0 && len(specSchema.AllOf) == 1 && len(specSchema.AllOf[0].Ref.String()) > 0 {\n\t\trefString = specSchema.AllOf[0].Ref.String()\n\t}\n\n\tif _, n := path.Split(refString); len(n) > 0 {\n\t\t//!TODO: Refactor the field ElementRelationship override\n\t\t// we can generate the types with overrides ahead of time rather than\n\t\t// requiring the hacky runtime support\n\t\t// (could just create a normalized key struct containing all customizations\n\t\t// \tto deduplicate)\n\t\tmapRelationship, err := getMapElementRelationship(specSchema.Extensions)\n\t\tif err != nil {\n\t\t\tc.reportError(err.Error())\n\t\t}\n\n\t\tif len(mapRelationship) > 0 {\n\t\t\treturn schema.TypeRef{\n\t\t\t\tNamedType:           &n,\n\t\t\t\tElementRelationship: &mapRelationship,\n\t\t\t}\n\t\t}\n\n\t\treturn schema.TypeRef{\n\t\t\tNamedType: &n,\n\t\t}\n\n\t}\n\tvar inlined schema.Atom\n\n\t// compute the type inline\n\tc2 := c.push(\"inlined in \"+c.currentName, &inlined)\n\tc2.preserveUnknownFields = c.preserveUnknownFields\n\tc2.visitSpec(specSchema)\n\tc.pop(c2)\n\n\treturn schema.TypeRef{\n\t\tInlined: inlined,\n\t}\n}\n\nfunc (c *convert) parseObject(s *spec.Schema) *schema.Map {\n\tvar fields []schema.StructField\n\tfor name, member := range s.Properties {\n\t\tfields = append(fields, schema.StructField{\n\t\t\tName:    name,\n\t\t\tType:    c.makeOpenAPIRef(&member),\n\t\t\tDefault: member.Default,\n\t\t})\n\t}\n\n\t// AdditionalProperties informs the schema of any \"unknown\" keys\n\t// Unknown keys are enforced by the ElementType field.\n\telementType := func() schema.TypeRef {\n\t\tif s.AdditionalProperties == nil {\n\t\t\t// According to openAPI spec, an object without properties and without\n\t\t\t// additionalProperties is assumed to be a free-form object.\n\t\t\tif c.preserveUnknownFields || len(s.Properties) == 0 {\n\t\t\t\treturn schema.TypeRef{\n\t\t\t\t\tNamedType: &deducedName,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If properties are specified, do not implicitly allow unknown\n\t\t\t// fields\n\t\t\treturn schema.TypeRef{}\n\t\t} else if s.AdditionalProperties.Schema != nil {\n\t\t\t// Unknown fields use the referred schema\n\t\t\treturn c.makeOpenAPIRef(s.AdditionalProperties.Schema)\n\n\t\t} else if s.AdditionalProperties.Allows {\n\t\t\t// A boolean instead of a schema was provided. Deduce the\n\t\t\t// type from the value provided at runtime.\n\t\t\treturn schema.TypeRef{\n\t\t\t\tNamedType: &deducedName,\n\t\t\t}\n\t\t} else {\n\t\t\t// Additional Properties are explicitly disallowed by the user.\n\t\t\t// Ensure element type is empty.\n\t\t\treturn schema.TypeRef{}\n\t\t}\n\t}()\n\n\trelationship, err := getMapElementRelationship(s.Extensions)\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n\n\treturn &schema.Map{\n\t\tFields:              fields,\n\t\tElementRelationship: relationship,\n\t\tElementType:         elementType,\n\t}\n}\n\nfunc (c *convert) parseList(s *spec.Schema) *schema.List {\n\trelationship, mapKeys, err := getListElementRelationship(s.Extensions)\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n\telementType := func() schema.TypeRef {\n\t\tif s.Items != nil {\n\t\t\tif s.Items.Schema == nil || s.Items.Len() != 1 {\n\t\t\t\tc.reportError(\"structural schema arrays must have exactly one member subtype\")\n\t\t\t\treturn schema.TypeRef{\n\t\t\t\t\tNamedType: &deducedName,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsubSchema := s.Items.Schema\n\t\t\tif subSchema == nil {\n\t\t\t\tsubSchema = &s.Items.Schemas[0]\n\t\t\t}\n\t\t\treturn c.makeOpenAPIRef(subSchema)\n\t\t} else if len(s.Type) > 0 && len(s.Type[0]) > 0 {\n\t\t\tc.reportError(\"`items` must be specified on arrays\")\n\t\t}\n\n\t\t// A list with no items specified is treated as \"untyped\".\n\t\treturn schema.TypeRef{\n\t\t\tNamedType: &untypedName,\n\t\t}\n\n\t}()\n\n\treturn &schema.List{\n\t\tElementRelationship: relationship,\n\t\tKeys:                mapKeys,\n\t\tElementType:         elementType,\n\t}\n}\n"
  },
  {
    "path": "pkg/schemaconv/openapi_test.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n\thttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemaconv_test\n\nimport (\n\t\"encoding/json\"\n\t\"os\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\t\"testing\"\n\n\topenapi_v2 \"github.com/google/gnostic-models/openapiv2\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"k8s.io/kube-openapi/pkg/schemaconv\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"sigs.k8s.io/structured-merge-diff/v6/schema\"\n)\n\nvar swaggerJSONPath = \"testdata/swagger.json\"\nvar testCRDPath = \"testdata/crds\"\n\nvar deducedName string = \"__untyped_deduced_\"\nvar untypedName string = \"__untyped_atomic_\"\n\nconst (\n\tquantityResource     = \"io.k8s.apimachinery.pkg.api.resource.Quantity\"\n\trawExtensionResource = \"io.k8s.apimachinery.pkg.runtime.RawExtension\"\n)\n\nfunc toPtrMap[T comparable, V any](m map[T]V) map[T]*V {\n\tif m == nil {\n\t\treturn nil\n\t}\n\n\tres := map[T]*V{}\n\tfor k, v := range m {\n\t\tvCopy := v\n\t\tres[k] = &vCopy\n\t}\n\treturn res\n}\n\nfunc normalizeTypeRef(tr *schema.TypeRef) {\n\tvar untypedScalar schema.Scalar = \"untyped\"\n\n\t// Deduplicate deducedDef\n\tif tr.Inlined.Equals(&schema.Atom{\n\t\tScalar: &untypedScalar,\n\t\tList: &schema.List{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Atomic,\n\t\t},\n\t\tMap: &schema.Map{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &deducedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Separable,\n\t\t},\n\t}) {\n\t\t*tr = schema.TypeRef{\n\t\t\tNamedType: &deducedName,\n\t\t}\n\t} else if tr.NamedType != nil && *tr.NamedType == rawExtensionResource {\n\t\t// In old conversion all references to rawExtension were\n\t\t// replaced with untyped. In new implementation we preserve\n\t\t// the references and instead change the raw extension type\n\t\t// to untyped.\n\t\t// For normalization, just convert rawextension references\n\t\t// to \"untyped\"\n\t\t*tr = schema.TypeRef{\n\t\t\tNamedType: &untypedName,\n\t\t}\n\t} else {\n\t\tnormalizeType(&tr.Inlined)\n\t}\n}\n\n// There are minor differences in new API that are semantically equivalent:\n//  1. old openapi would replace refs to RawExtensoin with \"untyped\" and leave\n//     RawExtension with a non-referenced/nonworking definition. New implemenatation\n//     makes RawExtensoin \"untyped\", and leaves references to RawExtension.\n//  2. old openapi would include \"separable\" relationship with\n//     arbitrary/deduced maps where the new implementation leaves it unset\n//     if it is unset by the user.\nfunc normalizeType(typ *schema.Atom) {\n\tif typ.List != nil {\n\t\tif typ.List.ElementType.Inlined != (schema.Atom{}) {\n\t\t\ttyp.List = &*typ.List\n\t\t\tnormalizeTypeRef(&typ.List.ElementType)\n\t\t}\n\t}\n\n\tif typ.Map != nil {\n\t\ttyp.Map = &*typ.Map\n\n\t\tfields := make([]schema.StructField, 0)\n\t\tcopy(typ.Fields, fields)\n\t\ttyp.Fields = fields\n\n\t\tfor i, f := range typ.Fields {\n\t\t\t// Known Difference: Old conversion parses \"{}\" as empty map[any]any.\n\t\t\t// \t\t\t\t\t New conversion parses it as empty map[string]any\n\t\t\tif reflect.DeepEqual(f.Default, map[any]any{}) {\n\t\t\t\tf.Default = map[string]any{}\n\t\t\t}\n\n\t\t\tnormalizeTypeRef(&f.Type)\n\t\t\ttyp.Fields[i] = f\n\t\t}\n\n\t\tsort.SliceStable(typ.Fields, func(i, j int) bool {\n\t\t\treturn strings.Compare(typ.Fields[i].Name, typ.Fields[j].Name) < 0\n\t\t})\n\n\t\t// Current unions implementation is busted and not supported in new\n\t\t// format. Do not include in comparison\n\t\ttyp.Unions = nil\n\n\t\tif typ.Map.ElementType.NamedType != nil {\n\t\t\tif len(typ.Map.ElementRelationship) == 0 && typ.Scalar != nil && typ.List != nil && *typ.Map.ElementType.NamedType == deducedName {\n\t\t\t\t// In old implementation arbitrary/deduced map would always also\n\t\t\t\t// include \"separable\".\n\t\t\t\t// New implementation has some code paths that dont follow that\n\t\t\t\t// (separable is default) so always attaach separable to deduced.\n\t\t\t\ttyp.Map.ElementRelationship = schema.Separable\n\t\t\t}\n\t\t}\n\n\t\tnormalizeTypeRef(&typ.Map.ElementType)\n\t}\n}\n\n// Can't directly proto models conversion to direct conversion due to subtle,\n// expected differences between the two conversion methods.\n// i.e. toProtoModels preserves sort order of fields. Direct conversion does not\n// (due to spec.Schema using map for fields vs gnostic's slice)\nfunc normalizeTypes(types []schema.TypeDef) map[string]schema.TypeDef {\n\tres := map[string]schema.TypeDef{}\n\tfor _, typ := range types {\n\t\tif _, exists := res[typ.Name]; !exists {\n\t\t\tnormalizeType(&typ.Atom)\n\t\t\tres[typ.Name] = typ\n\t\t}\n\t}\n\n\t// Old conversion would leave broken raw-extension definition, and just replace\n\t// references to it with an inlined __untyped_atomic_\n\t// The new conversion leaves references to rawextension in place, and instead\n\t// fixes the definition of RawExtension.\n\t//\n\t// This bit of code reverts the new conversion's fix, and puts in place the old\n\t// broken raw extension definition.\n\tres[\"io.k8s.apimachinery.pkg.runtime.RawExtension\"] = schema.TypeDef{\n\t\tName: \"io.k8s.apimachinery.pkg.runtime.RawExtension\",\n\t\tAtom: schema.Atom{\n\t\t\tMap: &schema.Map{\n\t\t\t\tElementType: schema.TypeRef{\n\t\t\t\t\tNamedType: &deducedName,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\t// v3 CRDs do not contain these orphaned, unnecessary definitions but v2 does\n\t//!TODO: either bring v3 to parity, or just remove these from v2 samples\n\tignoreList := []string{\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\",\n\t\t\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\",\n\t\t\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\",\n\t\t\"io.k8s.apimachinery.pkg.apis.meta.v1.Patch\",\n\t\t\"io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\",\n\t\t\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\",\n\t\t\"io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\",\n\t\t\"io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\",\n\t}\n\n\tfor _, k := range ignoreList {\n\t\tdelete(res, k)\n\t}\n\n\treturn res\n}\n\nfunc TestCRDOpenAPIConversion(t *testing.T) {\n\tfiles, err := os.ReadDir(\"testdata/crds/openapiv2\")\n\trequire.NoError(t, err)\n\tfor _, entry := range files {\n\t\tt.Run(entry.Name(), func(t *testing.T) {\n\t\t\tt.Parallel()\n\t\t\topenAPIV2Contents, err := os.ReadFile(\"testdata/crds/openapiv2/\" + entry.Name())\n\t\t\trequire.NoError(t, err)\n\n\t\t\topenAPIV3Contents, err := os.ReadFile(\"testdata/crds/openapiv3/\" + entry.Name())\n\t\t\trequire.NoError(t, err)\n\n\t\t\tvar v3 spec3.OpenAPI\n\n\t\t\terr = json.Unmarshal(openAPIV3Contents, &v3)\n\t\t\trequire.NoError(t, err)\n\n\t\t\tv2Types, err := specToSchemaViaProtoModels(openAPIV2Contents)\n\t\t\trequire.NoError(t, err)\n\t\t\tv3Types, err := schemaconv.ToSchemaFromOpenAPI(v3.Components.Schemas, false)\n\t\t\trequire.NoError(t, err)\n\n\t\t\trequire.Equal(t, normalizeTypes(v2Types.Types), normalizeTypes(v3Types.Types))\n\t\t})\n\t}\n}\n\n// Using all models defined in swagger.json\n// Convert to SMD using two methods:\n//  1. Spec -> SMD\n//  2. Spec -> JSON -> gnostic -> SMD\n//\n// Compare YAML forms. We have some allowed differences...\nfunc TestOpenAPIImplementation(t *testing.T) {\n\tswaggerJSON, err := os.ReadFile(swaggerJSONPath)\n\trequire.NoError(t, err)\n\n\tprotoModels, err := specToSchemaViaProtoModels(swaggerJSON)\n\trequire.NoError(t, err)\n\n\tvar swag spec.Swagger\n\terr = json.Unmarshal(swaggerJSON, &swag)\n\trequire.NoError(t, err)\n\n\tnewConversionTypes, err := schemaconv.ToSchemaFromOpenAPI(toPtrMap(swag.Definitions), false)\n\trequire.NoError(t, err)\n\n\trequire.Equal(t, normalizeTypes(protoModels.Types), normalizeTypes(newConversionTypes.Types))\n}\n\nfunc specToSchemaViaProtoModels(input []byte) (*schema.Schema, error) {\n\tdocument, err := openapi_v2.ParseDocument(input)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmodels, err := proto.NewOpenAPIData(document)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnewSchema, err := schemaconv.ToSchema(models)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn newSchema, nil\n}\n\nfunc BenchmarkOpenAPIConversion(b *testing.B) {\n\tswaggerJSON, err := os.ReadFile(swaggerJSONPath)\n\trequire.NoError(b, err)\n\n\tdoc := spec.Swagger{}\n\trequire.NoError(b, doc.UnmarshalJSON(swaggerJSON))\n\n\t// Beginning the benchmark from spec.Schema, since that is the format\n\t// stored by the kube-apiserver\n\tb.Run(\"spec.Schema->schema.Schema\", func(b *testing.B) {\n\t\tb.ReportAllocs()\n\t\tfor i := 0; i < b.N; i++ {\n\t\t\t_, err := schemaconv.ToSchemaFromOpenAPI(toPtrMap(doc.Definitions), false)\n\t\t\trequire.NoError(b, err)\n\t\t}\n\t})\n\n\tb.Run(\"spec.Schema->json->gnostic_v2->proto.Models->schema.Schema\", func(b *testing.B) {\n\t\tb.ReportAllocs()\n\t\tfor i := 0; i < b.N; i++ {\n\t\t\tjsonText, err := doc.MarshalJSON()\n\t\t\trequire.NoError(b, err)\n\n\t\t\t_, err = specToSchemaViaProtoModels(jsonText)\n\t\t\trequire.NoError(b, err)\n\t\t}\n\t})\n}\n\nfunc BenchmarkOpenAPICRDConversion(b *testing.B) {\n\tfiles, err := os.ReadDir(\"testdata/crds/openapiv2\")\n\trequire.NoError(b, err)\n\tfor _, entry := range files {\n\t\tb.Run(entry.Name(), func(b *testing.B) {\n\t\t\topenAPIV2Contents, err := os.ReadFile(\"testdata/crds/openapiv2/\" + entry.Name())\n\t\t\trequire.NoError(b, err)\n\n\t\t\topenAPIV3Contents, err := os.ReadFile(\"testdata/crds/openapiv3/\" + entry.Name())\n\t\t\trequire.NoError(b, err)\n\n\t\t\tvar v2 spec.Swagger\n\t\t\tvar v3 spec3.OpenAPI\n\n\t\t\terr = json.Unmarshal(openAPIV2Contents, &v2)\n\t\t\trequire.NoError(b, err)\n\n\t\t\terr = json.Unmarshal(openAPIV3Contents, &v3)\n\t\t\trequire.NoError(b, err)\n\n\t\t\t// Beginning the benchmark from spec.Schema, since that is the format\n\t\t\t// stored by the kube-apiserver\n\t\t\tb.Run(\"spec.Schema->schema.Schema\", func(b *testing.B) {\n\t\t\t\tb.ReportAllocs()\n\t\t\t\tfor i := 0; i < b.N; i++ {\n\t\t\t\t\t_, err := schemaconv.ToSchemaFromOpenAPI(v3.Components.Schemas, false)\n\t\t\t\t\trequire.NoError(b, err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tb.Run(\"spec.Schema->json->gnostic_v2->proto.Models->schema.Schema\", func(b *testing.B) {\n\t\t\t\tb.ReportAllocs()\n\t\t\t\tfor i := 0; i < b.N; i++ {\n\t\t\t\t\tjsonText, err := v2.MarshalJSON()\n\t\t\t\t\trequire.NoError(b, err)\n\n\t\t\t\t\t_, err = specToSchemaViaProtoModels(jsonText)\n\t\t\t\t\trequire.NoError(b, err)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/schemaconv/proto_models.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n\thttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemaconv\n\nimport (\n\t\"errors\"\n\t\"path\"\n\t\"strings\"\n\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n\t\"sigs.k8s.io/structured-merge-diff/v6/schema\"\n)\n\n// ToSchema converts openapi definitions into a schema suitable for structured\n// merge (i.e. kubectl apply v2).\nfunc ToSchema(models proto.Models) (*schema.Schema, error) {\n\treturn ToSchemaWithPreserveUnknownFields(models, false)\n}\n\n// ToSchemaWithPreserveUnknownFields converts openapi definitions into a schema suitable for structured\n// merge (i.e. kubectl apply v2), it will preserve unknown fields if specified.\nfunc ToSchemaWithPreserveUnknownFields(models proto.Models, preserveUnknownFields bool) (*schema.Schema, error) {\n\tc := convert{\n\t\tpreserveUnknownFields: preserveUnknownFields,\n\t\toutput:                &schema.Schema{},\n\t}\n\tfor _, name := range models.ListModels() {\n\t\tmodel := models.LookupModel(name)\n\n\t\tvar a schema.Atom\n\t\tc2 := c.push(name, &a)\n\t\tmodel.Accept(c2)\n\t\tc.pop(c2)\n\n\t\tc.insertTypeDef(name, a)\n\t}\n\n\tif len(c.errorMessages) > 0 {\n\t\treturn nil, errors.New(strings.Join(c.errorMessages, \"\\n\"))\n\t}\n\n\tc.addCommonTypes()\n\treturn c.output, nil\n}\n\nfunc (c *convert) makeRef(model proto.Schema, preserveUnknownFields bool) schema.TypeRef {\n\tvar tr schema.TypeRef\n\tif r, ok := model.(*proto.Ref); ok {\n\t\tif r.Reference() == \"io.k8s.apimachinery.pkg.runtime.RawExtension\" {\n\t\t\treturn schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t}\n\t\t}\n\t\t// reference a named type\n\t\t_, n := path.Split(r.Reference())\n\t\ttr.NamedType = &n\n\n\t\tmapRelationship, err := getMapElementRelationship(model.GetExtensions())\n\n\t\tif err != nil {\n\t\t\tc.reportError(err.Error())\n\t\t}\n\n\t\t// empty string means unset.\n\t\tif len(mapRelationship) > 0 {\n\t\t\ttr.ElementRelationship = &mapRelationship\n\t\t}\n\t} else {\n\t\t// compute the type inline\n\t\tc2 := c.push(\"inlined in \"+c.currentName, &tr.Inlined)\n\t\tc2.preserveUnknownFields = preserveUnknownFields\n\t\tmodel.Accept(c2)\n\t\tc.pop(c2)\n\n\t\tif tr == (schema.TypeRef{}) {\n\t\t\t// emit warning?\n\t\t\ttr.NamedType = &untypedName\n\t\t}\n\t}\n\treturn tr\n}\n\nfunc (c *convert) VisitKind(k *proto.Kind) {\n\tpreserveUnknownFields := c.preserveUnknownFields\n\tif p, ok := k.GetExtensions()[\"x-kubernetes-preserve-unknown-fields\"]; ok && p == true {\n\t\tpreserveUnknownFields = true\n\t}\n\n\ta := c.top()\n\ta.Map = &schema.Map{}\n\tfor _, name := range k.FieldOrder {\n\t\tmember := k.Fields[name]\n\t\ttr := c.makeRef(member, preserveUnknownFields)\n\t\ta.Map.Fields = append(a.Map.Fields, schema.StructField{\n\t\t\tName:    name,\n\t\t\tType:    tr,\n\t\t\tDefault: member.GetDefault(),\n\t\t})\n\t}\n\n\tunions, err := makeUnions(k.GetExtensions())\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t\treturn\n\t}\n\t// TODO: We should check that the fields and discriminator\n\t// specified in the union are actual fields in the struct.\n\ta.Map.Unions = unions\n\n\tif preserveUnknownFields {\n\t\ta.Map.ElementType = schema.TypeRef{\n\t\t\tNamedType: &deducedName,\n\t\t}\n\t}\n\n\ta.Map.ElementRelationship, err = getMapElementRelationship(k.GetExtensions())\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n}\n\nfunc (c *convert) VisitArray(a *proto.Array) {\n\trelationship, mapKeys, err := getListElementRelationship(a.GetExtensions())\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n\n\tatom := c.top()\n\tatom.List = &schema.List{\n\t\tElementType:         c.makeRef(a.SubType, c.preserveUnknownFields),\n\t\tElementRelationship: relationship,\n\t\tKeys:                mapKeys,\n\t}\n}\n\nfunc (c *convert) VisitMap(m *proto.Map) {\n\trelationship, err := getMapElementRelationship(m.GetExtensions())\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n\n\ta := c.top()\n\ta.Map = &schema.Map{\n\t\tElementType:         c.makeRef(m.SubType, c.preserveUnknownFields),\n\t\tElementRelationship: relationship,\n\t}\n}\n\nfunc (c *convert) VisitPrimitive(p *proto.Primitive) {\n\ta := c.top()\n\tif c.currentName == quantityResource {\n\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t} else {\n\t\t*a = convertPrimitive(p.Type, p.Format)\n\t}\n}\n\nfunc (c *convert) VisitArbitrary(a *proto.Arbitrary) {\n\t*c.top() = deducedDef.Atom\n}\n\nfunc (c *convert) VisitReference(proto.Reference) {\n\t// Do nothing, we handle references specially\n}\n"
  },
  {
    "path": "pkg/schemaconv/smd.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemaconv\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v6/schema\"\n)\n\nconst (\n\tquantityResource     = \"io.k8s.apimachinery.pkg.api.resource.Quantity\"\n\trawExtensionResource = \"io.k8s.apimachinery.pkg.runtime.RawExtension\"\n)\n\ntype convert struct {\n\tpreserveUnknownFields bool\n\toutput                *schema.Schema\n\n\tcurrentName   string\n\tcurrent       *schema.Atom\n\terrorMessages []string\n}\n\nfunc (c *convert) push(name string, a *schema.Atom) *convert {\n\treturn &convert{\n\t\tpreserveUnknownFields: c.preserveUnknownFields,\n\t\toutput:                c.output,\n\t\tcurrentName:           name,\n\t\tcurrent:               a,\n\t}\n}\n\nfunc (c *convert) top() *schema.Atom { return c.current }\n\nfunc (c *convert) pop(c2 *convert) {\n\tc.errorMessages = append(c.errorMessages, c2.errorMessages...)\n}\n\nfunc (c *convert) reportError(format string, args ...interface{}) {\n\tc.errorMessages = append(c.errorMessages,\n\t\tc.currentName+\": \"+fmt.Sprintf(format, args...),\n\t)\n}\n\nfunc (c *convert) insertTypeDef(name string, atom schema.Atom) {\n\tdef := schema.TypeDef{\n\t\tName: name,\n\t\tAtom: atom,\n\t}\n\tif def.Atom == (schema.Atom{}) {\n\t\t// This could happen if there were a top-level reference.\n\t\treturn\n\t}\n\tc.output.Types = append(c.output.Types, def)\n}\n\nfunc (c *convert) addCommonTypes() {\n\tc.output.Types = append(c.output.Types, untypedDef)\n\tc.output.Types = append(c.output.Types, deducedDef)\n}\n\nvar untypedName string = \"__untyped_atomic_\"\n\nvar untypedDef schema.TypeDef = schema.TypeDef{\n\tName: untypedName,\n\tAtom: schema.Atom{\n\t\tScalar: ptr(schema.Scalar(\"untyped\")),\n\t\tList: &schema.List{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Atomic,\n\t\t},\n\t\tMap: &schema.Map{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Atomic,\n\t\t},\n\t},\n}\n\nvar deducedName string = \"__untyped_deduced_\"\n\nvar deducedDef schema.TypeDef = schema.TypeDef{\n\tName: deducedName,\n\tAtom: schema.Atom{\n\t\tScalar: ptr(schema.Scalar(\"untyped\")),\n\t\tList: &schema.List{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Atomic,\n\t\t},\n\t\tMap: &schema.Map{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &deducedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Separable,\n\t\t},\n\t},\n}\n\nfunc makeUnions(extensions map[string]interface{}) ([]schema.Union, error) {\n\tschemaUnions := []schema.Union{}\n\tif iunions, ok := extensions[\"x-kubernetes-unions\"]; ok {\n\t\tunions, ok := iunions.([]interface{})\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(`\"x-kubernetes-unions\" should be a list, got %#v`, unions)\n\t\t}\n\t\tfor _, iunion := range unions {\n\t\t\tunion, ok := iunion.(map[interface{}]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn nil, fmt.Errorf(`\"x-kubernetes-unions\" items should be a map of string to unions, got %#v`, iunion)\n\t\t\t}\n\t\t\tunionMap := map[string]interface{}{}\n\t\t\tfor k, v := range union {\n\t\t\t\tkey, ok := k.(string)\n\t\t\t\tif !ok {\n\t\t\t\t\treturn nil, fmt.Errorf(`\"x-kubernetes-unions\" has non-string key: %#v`, k)\n\t\t\t\t}\n\t\t\t\tunionMap[key] = v\n\t\t\t}\n\t\t\tschemaUnion, err := makeUnion(unionMap)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tschemaUnions = append(schemaUnions, schemaUnion)\n\t\t}\n\t}\n\n\t// Make sure we have no overlap between unions\n\tfs := map[string]struct{}{}\n\tfor _, u := range schemaUnions {\n\t\tif u.Discriminator != nil {\n\t\t\tif _, ok := fs[*u.Discriminator]; ok {\n\t\t\t\treturn nil, fmt.Errorf(\"%v field appears multiple times in unions\", *u.Discriminator)\n\t\t\t}\n\t\t\tfs[*u.Discriminator] = struct{}{}\n\t\t}\n\t\tfor _, f := range u.Fields {\n\t\t\tif _, ok := fs[f.FieldName]; ok {\n\t\t\t\treturn nil, fmt.Errorf(\"%v field appears multiple times in unions\", f.FieldName)\n\t\t\t}\n\t\t\tfs[f.FieldName] = struct{}{}\n\t\t}\n\t}\n\n\treturn schemaUnions, nil\n}\n\nfunc makeUnion(extensions map[string]interface{}) (schema.Union, error) {\n\tunion := schema.Union{\n\t\tFields: []schema.UnionField{},\n\t}\n\n\tif idiscriminator, ok := extensions[\"discriminator\"]; ok {\n\t\tdiscriminator, ok := idiscriminator.(string)\n\t\tif !ok {\n\t\t\treturn schema.Union{}, fmt.Errorf(`\"discriminator\" must be a string, got: %#v`, idiscriminator)\n\t\t}\n\t\tunion.Discriminator = &discriminator\n\t}\n\n\tif ifields, ok := extensions[\"fields-to-discriminateBy\"]; ok {\n\t\tfields, ok := ifields.(map[interface{}]interface{})\n\t\tif !ok {\n\t\t\treturn schema.Union{}, fmt.Errorf(`\"fields-to-discriminateBy\" must be a map[string]string, got: %#v`, ifields)\n\t\t}\n\t\t// Needs sorted keys by field.\n\t\tkeys := []string{}\n\t\tfor ifield := range fields {\n\t\t\tfield, ok := ifield.(string)\n\t\t\tif !ok {\n\t\t\t\treturn schema.Union{}, fmt.Errorf(`\"fields-to-discriminateBy\": field must be a string, got: %#v`, ifield)\n\t\t\t}\n\t\t\tkeys = append(keys, field)\n\n\t\t}\n\t\tsort.Strings(keys)\n\t\treverseMap := map[string]struct{}{}\n\t\tfor _, field := range keys {\n\t\t\tvalue := fields[field]\n\t\t\tdiscriminated, ok := value.(string)\n\t\t\tif !ok {\n\t\t\t\treturn schema.Union{}, fmt.Errorf(`\"fields-to-discriminateBy\"/%v: value must be a string, got: %#v`, field, value)\n\t\t\t}\n\t\t\tunion.Fields = append(union.Fields, schema.UnionField{\n\t\t\t\tFieldName:          field,\n\t\t\t\tDiscriminatorValue: discriminated,\n\t\t\t})\n\n\t\t\t// Check that we don't have the same discriminateBy multiple times.\n\t\t\tif _, ok := reverseMap[discriminated]; ok {\n\t\t\t\treturn schema.Union{}, fmt.Errorf(\"Multiple fields have the same discriminated name: %v\", discriminated)\n\t\t\t}\n\t\t\treverseMap[discriminated] = struct{}{}\n\t\t}\n\t}\n\n\treturn union, nil\n}\n\nfunc toStringSlice(o interface{}) (out []string, ok bool) {\n\tswitch t := o.(type) {\n\tcase []interface{}:\n\t\tfor _, v := range t {\n\t\t\tswitch vt := v.(type) {\n\t\t\tcase string:\n\t\t\t\tout = append(out, vt)\n\t\t\t}\n\t\t}\n\t\treturn out, true\n\tcase []string:\n\t\treturn t, true\n\t}\n\treturn nil, false\n}\n\nfunc ptr(s schema.Scalar) *schema.Scalar { return &s }\n\n// Basic conversion functions to convert OpenAPI schema definitions to\n// SMD Schema atoms\nfunc convertPrimitive(typ string, format string) (a schema.Atom) {\n\tswitch typ {\n\tcase \"integer\":\n\t\ta.Scalar = ptr(schema.Numeric)\n\tcase \"number\":\n\t\ta.Scalar = ptr(schema.Numeric)\n\tcase \"string\":\n\t\tswitch format {\n\t\tcase \"\":\n\t\t\ta.Scalar = ptr(schema.String)\n\t\tcase \"byte\":\n\t\t\t// byte really means []byte and is encoded as a string.\n\t\t\ta.Scalar = ptr(schema.String)\n\t\tcase \"int-or-string\":\n\t\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t\tcase \"date-time\":\n\t\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t\tdefault:\n\t\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t\t}\n\tcase \"boolean\":\n\t\ta.Scalar = ptr(schema.Boolean)\n\tdefault:\n\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t}\n\n\treturn a\n}\n\nfunc getListElementRelationship(ext map[string]any) (schema.ElementRelationship, []string, error) {\n\tif val, ok := ext[\"x-kubernetes-list-type\"]; ok {\n\t\tswitch val {\n\t\tcase \"atomic\":\n\t\t\treturn schema.Atomic, nil, nil\n\t\tcase \"set\":\n\t\t\treturn schema.Associative, nil, nil\n\t\tcase \"map\":\n\t\t\tkeys, ok := ext[\"x-kubernetes-list-map-keys\"]\n\n\t\t\tif !ok {\n\t\t\t\treturn schema.Associative, nil, fmt.Errorf(\"missing map keys\")\n\t\t\t}\n\n\t\t\tkeyNames, ok := toStringSlice(keys)\n\t\t\tif !ok {\n\t\t\t\treturn schema.Associative, nil, fmt.Errorf(\"uninterpreted map keys: %#v\", keys)\n\t\t\t}\n\n\t\t\treturn schema.Associative, keyNames, nil\n\t\tdefault:\n\t\t\treturn schema.Atomic, nil, fmt.Errorf(\"unknown list type %v\", val)\n\t\t}\n\t} else if val, ok := ext[\"x-kubernetes-patch-strategy\"]; ok {\n\t\tswitch val {\n\t\tcase \"merge\", \"merge,retainKeys\":\n\t\t\tif key, ok := ext[\"x-kubernetes-patch-merge-key\"]; ok {\n\t\t\t\tkeyName, ok := key.(string)\n\n\t\t\t\tif !ok {\n\t\t\t\t\treturn schema.Associative, nil, fmt.Errorf(\"uninterpreted merge key: %#v\", key)\n\t\t\t\t}\n\n\t\t\t\treturn schema.Associative, []string{keyName}, nil\n\t\t\t}\n\t\t\t// It's not an error for x-kubernetes-patch-merge-key to be absent,\n\t\t\t// it means it's a set\n\t\t\treturn schema.Associative, nil, nil\n\t\tcase \"retainKeys\":\n\t\t\treturn schema.Atomic, nil, nil\n\t\tdefault:\n\t\t\treturn schema.Atomic, nil, fmt.Errorf(\"unknown patch strategy %v\", val)\n\t\t}\n\t}\n\n\t// Treat as atomic by default\n\treturn schema.Atomic, nil, nil\n}\n\n// Returns map element relationship if specified, or empty string if unspecified\nfunc getMapElementRelationship(ext map[string]any) (schema.ElementRelationship, error) {\n\tval, ok := ext[\"x-kubernetes-map-type\"]\n\tif !ok {\n\t\t// unset Map element relationship\n\t\treturn \"\", nil\n\t}\n\n\tswitch val {\n\tcase \"atomic\":\n\t\treturn schema.Atomic, nil\n\tcase \"granular\":\n\t\treturn schema.Separable, nil\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"unknown map type %v\", val)\n\t}\n}\n"
  },
  {
    "path": "pkg/schemaconv/smd_test.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemaconv\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\tyaml \"go.yaml.in/yaml/v2\"\n\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n\tprototesting \"k8s.io/kube-openapi/pkg/util/proto/testing\"\n)\n\nfunc TestToSchema(t *testing.T) {\n\ttests := []struct {\n\t\tname                   string\n\t\topenAPIFilename        string\n\t\texpectedSchemaFilename string\n\t}{\n\t\t{\n\t\t\tname:                   \"kubernetes\",\n\t\t\topenAPIFilename:        \"swagger.json\",\n\t\t\texpectedSchemaFilename: \"new-schema.yaml\",\n\t\t},\n\t\t{\n\t\t\tname:                   \"atomics\",\n\t\t\topenAPIFilename:        \"atomic-types.json\",\n\t\t\texpectedSchemaFilename: \"atomic-types.yaml\",\n\t\t},\n\t\t{\n\t\t\tname:                   \"defaults\",\n\t\t\topenAPIFilename:        \"defaults.json\",\n\t\t\texpectedSchemaFilename: \"defaults.yaml\",\n\t\t},\n\t\t{\n\t\t\tname:                   \"preserve-unknown\",\n\t\t\topenAPIFilename:        \"preserve-unknown.json\",\n\t\t\texpectedSchemaFilename: \"preserve-unknown.yaml\",\n\t\t},\n\t}\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\topenAPIPath := filepath.Join(\"testdata\", tc.openAPIFilename)\n\t\t\texpectedNewSchemaPath := filepath.Join(\"testdata\", tc.expectedSchemaFilename)\n\t\t\ttestToSchema(t, openAPIPath, expectedNewSchemaPath)\n\t\t})\n\t}\n}\n\nfunc testToSchema(t *testing.T, openAPIPath, expectedNewSchemaPath string) {\n\tfakeSchema := prototesting.Fake{Path: openAPIPath}\n\ts, err := fakeSchema.OpenAPISchema()\n\tif err != nil {\n\t\tt.Fatalf(\"failed to get schema for %s: %v\", openAPIPath, err)\n\t}\n\tmodels, err := proto.NewOpenAPIData(s)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tns, err := ToSchema(models)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tgot, err := yaml.Marshal(ns)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\texpect, err := os.ReadFile(expectedNewSchemaPath)\n\tif err != nil {\n\t\tt.Fatalf(\"Unable to read golden data file %q: %v\", expectedNewSchemaPath, err)\n\t}\n\n\tif string(expect) != string(got) {\n\t\tt.Errorf(\"Computed schema did not match %q.\", expectedNewSchemaPath)\n\t\tt.Logf(\"To recompute this file, run:\\n\\tgo run ./cmd/openapi2smd/openapi2smd.go < %q > %q\",\n\t\t\tfilepath.Join(\"pkg\", \"schemaconv\", openAPIPath),\n\t\t\tfilepath.Join(\"pkg\", \"schemaconv\", expectedNewSchemaPath),\n\t\t)\n\t\tt.Log(\"You can then use `git diff` to see the changes.\")\n\t\tt.Error(cmp.Diff(string(expect), string(got)))\n\t}\n}\n\nfunc TestFieldLevelAnnotation(t *testing.T) {\n\topenAPIPath := filepath.Join(\"testdata\", \"field-level-annotation.json\")\n\tfakeSchema := prototesting.Fake{Path: openAPIPath}\n\ts, err := fakeSchema.OpenAPISchema()\n\tif err != nil {\n\t\tt.Fatalf(\"failed to get schema for %s: %v\", openAPIPath, err)\n\t}\n\tmodels, err := proto.NewOpenAPIData(s)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tns, err := ToSchema(models)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\t_ = ns\n\n\t// Test to make sure that MapElementRelationship is populated correctly\n\t// after being converted from proto type\n\tendpointAddress, ok := ns.FindNamedType(\"io.k8s.api.core.v1.EndpointAddress\")\n\tif !ok {\n\t\tt.Fatalf(\"expected to find EndpointAddress\")\n\t}\n\n\ttargetRef, ok := endpointAddress.FindField(\"targetRef\")\n\tif !ok {\n\t\tt.Fatalf(\"expected to find EndpointAddress field 'targetRef'\")\n\t}\n\n\tif targetRef.Type.ElementRelationship == nil {\n\t\tt.Fatalf(\"expected targetRef MapElementRelationship to be atomic\")\n\t}\n\n\t// Test to make sure that schema.Resolve overrides the ElementRelationship\n\t// when asked to resolve a reference\n\tresolved, ok := ns.Resolve(targetRef.Type)\n\tif !ok {\n\t\tt.Fatalf(\"failed to resolve targetRef type\")\n\t}\n\n\tif resolved.Map == nil {\n\t\tt.Fatalf(\"expected to resolve to a Map\")\n\t}\n\n\tif resolved.Map.ElementRelationship != *targetRef.Type.ElementRelationship {\n\t\tt.Fatalf(\"resolved element relationship not converted\")\n\t}\n\n\t// Make sure our test is actually testing something by ensuring the original\n\t// relationship is different from what we are changing it to.\n\ttargetRefWithoutRelationship := targetRef\n\ttargetRefWithoutRelationship.Type.ElementRelationship = nil\n\n\toriginalResolved, ok := ns.Resolve(targetRefWithoutRelationship.Type)\n\tif !ok {\n\t\tt.Fatalf(\"failed to resolve targetRef type\")\n\t}\n\n\tif originalResolved.Map.ElementRelationship == *targetRef.Type.ElementRelationship {\n\t\tt.Fatalf(\"expected original element relationship to differ from field-level override for test\")\n\t}\n}\n"
  },
  {
    "path": "pkg/schemaconv/testdata/atomic-types.json",
    "content": "{\n  \"swagger\": \"2.0\",\n  \"info\": {\n    \"title\": \"Atomic Types\",\n    \"version\": \"v1.0.0\"\n  },\n  \"paths\": {\n  },\n  \"definitions\": {\n    \"io.k8s.testcase.AtomicMapField\": {\n      \"description\": \"\",\n      \"properties\": {\n        \"atomicField\": {\n          \"description\": \"\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          },\n          \"x-kubernetes-map-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.testcase.DeclaredAtomicMap\": {\n      \"description\": \"\",\n      \"properties\": {\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    }\n  }\n}"
  },
  {
    "path": "pkg/schemaconv/testdata/atomic-types.yaml",
    "content": "types:\n- name: io.k8s.testcase.AtomicMapField\n  map:\n    fields:\n    - name: atomicField\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.testcase.DeclaredAtomicMap\n  map:\n    elementRelationship: atomic\n- name: __untyped_atomic_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n- name: __untyped_deduced_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_deduced_\n    elementRelationship: separable\n"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv2/accesscontextmanager_v1beta1_accesscontextmanagerserviceperimeter.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.27.0\"},\"paths\":{\"/apis/accesscontextmanager.cnrm.cloud.google.com/v1beta1/accesscontextmanagerserviceperimeters\":{\"get\":{\"description\":\"list objects of kind AccessContextManagerServicePerimeter\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"accesscontextmanagerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listAccesscontextmanagerCnrmCloudGoogleComV1beta1AccessContextManagerServicePerimeterForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeterList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"AccessContextManagerServicePerimeter\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/accesscontextmanager.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/accesscontextmanagerserviceperimeters\":{\"get\":{\"description\":\"list objects of kind AccessContextManagerServicePerimeter\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"accesscontextmanagerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listAccesscontextmanagerCnrmCloudGoogleComV1beta1NamespacedAccessContextManagerServicePerimeter\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeterList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"AccessContextManagerServicePerimeter\"}},\"post\":{\"description\":\"create an AccessContextManagerServicePerimeter\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"accesscontextmanagerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"createAccesscontextmanagerCnrmCloudGoogleComV1beta1NamespacedAccessContextManagerServicePerimeter\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"AccessContextManagerServicePerimeter\"}},\"delete\":{\"description\":\"delete collection of AccessContextManagerServicePerimeter\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"accesscontextmanagerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteAccesscontextmanagerCnrmCloudGoogleComV1beta1CollectionNamespacedAccessContextManagerServicePerimeter\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"AccessContextManagerServicePerimeter\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/accesscontextmanager.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/accesscontextmanagerserviceperimeters/{name}\":{\"get\":{\"description\":\"read the specified AccessContextManagerServicePerimeter\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"accesscontextmanagerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readAccesscontextmanagerCnrmCloudGoogleComV1beta1NamespacedAccessContextManagerServicePerimeter\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"AccessContextManagerServicePerimeter\"}},\"put\":{\"description\":\"replace the specified AccessContextManagerServicePerimeter\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"accesscontextmanagerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceAccesscontextmanagerCnrmCloudGoogleComV1beta1NamespacedAccessContextManagerServicePerimeter\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"AccessContextManagerServicePerimeter\"}},\"delete\":{\"description\":\"delete an AccessContextManagerServicePerimeter\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"accesscontextmanagerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteAccesscontextmanagerCnrmCloudGoogleComV1beta1NamespacedAccessContextManagerServicePerimeter\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"AccessContextManagerServicePerimeter\"}},\"patch\":{\"description\":\"partially update the specified AccessContextManagerServicePerimeter\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"accesscontextmanagerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchAccesscontextmanagerCnrmCloudGoogleComV1beta1NamespacedAccessContextManagerServicePerimeter\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"AccessContextManagerServicePerimeter\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the AccessContextManagerServicePerimeter\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/accesscontextmanager.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/accesscontextmanagerserviceperimeters/{name}/status\":{\"get\":{\"description\":\"read status of the specified AccessContextManagerServicePerimeter\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"accesscontextmanagerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readAccesscontextmanagerCnrmCloudGoogleComV1beta1NamespacedAccessContextManagerServicePerimeterStatus\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"AccessContextManagerServicePerimeter\"}},\"put\":{\"description\":\"replace status of the specified AccessContextManagerServicePerimeter\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"accesscontextmanagerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceAccesscontextmanagerCnrmCloudGoogleComV1beta1NamespacedAccessContextManagerServicePerimeterStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"AccessContextManagerServicePerimeter\"}},\"patch\":{\"description\":\"partially update status of the specified AccessContextManagerServicePerimeter\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"accesscontextmanagerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchAccesscontextmanagerCnrmCloudGoogleComV1beta1NamespacedAccessContextManagerServicePerimeterStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"AccessContextManagerServicePerimeter\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the AccessContextManagerServicePerimeter\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]}},\"definitions\":{\"com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\":{\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"type\":\"object\",\"properties\":{\"accessPolicyRef\":{\"description\":\"The AccessContextManagerAccessPolicy this\\nAccessContextManagerServicePerimeter lives in.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `accessPolicies/{{value}}`, where {{value}} is the `name` field of an `AccessContextManagerAccessPolicy` resource.\",\"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\"}}},\"description\":{\"description\":\"Description of the ServicePerimeter and its use. Does not affect\\nbehavior.\",\"type\":\"string\"},\"perimeterType\":{\"description\":\"Immutable. Specifies the type of the Perimeter. There are two types: regular and\\nbridge. Regular Service Perimeter contains resources, access levels,\\nand restricted services. Every resource can be in at most\\nONE regular Service Perimeter.\\n\\nIn addition to being in a regular service perimeter, a resource can also\\nbe in zero or more perimeter bridges. A perimeter bridge only contains\\nresources. Cross project operations are permitted if all effected\\nresources share some perimeter (whether bridge or regular). Perimeter\\nBridge does not contain access levels or services: those are governed\\nentirely by the regular perimeter that resource is in.\\n\\nPerimeter Bridges are typically useful when building more complex\\ntopologies with many independent perimeters that need to share some data\\nwith a common perimeter, but should not be able to share data among\\nthemselves. Default value: \\\"PERIMETER_TYPE_REGULAR\\\" Possible values: [\\\"PERIMETER_TYPE_REGULAR\\\", \\\"PERIMETER_TYPE_BRIDGE\\\"].\",\"type\":\"string\"},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"},\"spec\":{\"description\":\"Proposed (or dry run) ServicePerimeter configuration.\\nThis configuration allows to specify and test ServicePerimeter configuration\\nwithout enforcing actual access restrictions. Only allowed to be set when\\nthe 'useExplicitDryRunSpec' flag is set.\",\"type\":\"object\",\"properties\":{\"accessLevels\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of AccessLevel resource names that allow resources within\\nthe ServicePerimeter to be accessed from the internet. AccessLevels listed\\nmust be in the same policy as this ServicePerimeter.\\nReferencing a nonexistent AccessLevel is a syntax error. If no\\nAccessLevel names are listed, resources within the perimeter can\\nonly be accessed via GCP calls with request origins within the\\nperimeter. For Service Perimeter Bridge, must be empty.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `{{parent}}/accessLevels/{{value}}`, where {{value}} is the `name` field of an `AccessContextManagerAccessLevel` resource.\",\"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\"}}}},\"egressPolicies\":{\"description\":\"List of EgressPolicies to apply to the perimeter. A perimeter may \\nhave multiple EgressPolicies, each of which is evaluated separately.\\nAccess is granted if any EgressPolicy grants it. Must be empty for \\na perimeter bridge.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"egressFrom\":{\"description\":\"Defines conditions on the source of a request causing this 'EgressPolicy' to apply.\",\"type\":\"object\",\"properties\":{\"identities\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of identities that are allowed access through this\\nEgressPolicy. Should be in the format of email address. The email\\naddress should represent individual user or service account only.\",\"type\":\"object\",\"properties\":{\"serviceAccountRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `serviceAccount:{{value}}`, where {{value}} is the `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"user\":{\"type\":\"string\"}}}},\"identityType\":{\"description\":\"Specifies the type of identities that are allowed access to outside the \\nperimeter. If left unspecified, then members of 'identities' field will \\nbe allowed access. Possible values: [\\\"IDENTITY_TYPE_UNSPECIFIED\\\", \\\"ANY_IDENTITY\\\", \\\"ANY_USER_ACCOUNT\\\", \\\"ANY_SERVICE_ACCOUNT\\\"].\",\"type\":\"string\"}}},\"egressTo\":{\"description\":\"Defines the conditions on the 'ApiOperation' and destination resources that \\ncause this 'EgressPolicy' to apply.\",\"type\":\"object\",\"properties\":{\"externalResources\":{\"description\":\"A list of external resources that are allowed to be accessed. A request\\nmatches if it contains an external resource in this list (Example:\\ns3://bucket/path). Currently '*' is not allowed.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"operations\":{\"description\":\"A list of 'ApiOperations' that this egress rule applies to. A request matches \\nif it contains an operation/service in this list.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"methodSelectors\":{\"description\":\"API methods or permissions to allow. Method or permission must belong \\nto the service specified by 'serviceName' field. A single MethodSelector \\nentry with '*' specified for the 'method' field will allow all methods \\nAND permissions for the service specified in 'serviceName'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"method\":{\"description\":\"Value for 'method' should be a valid method name for the corresponding \\n'serviceName' in 'ApiOperation'. If '*' used as value for method, \\nthen ALL methods and permissions are allowed.\",\"type\":\"string\"},\"permission\":{\"description\":\"Value for permission should be a valid Cloud IAM permission for the \\ncorresponding 'serviceName' in 'ApiOperation'.\",\"type\":\"string\"}}}},\"serviceName\":{\"description\":\"The name of the API whose methods or permissions the 'IngressPolicy' or \\n'EgressPolicy' want to allow. A single 'ApiOperation' with serviceName \\nfield set to '*' will allow all methods AND permissions for all services.\",\"type\":\"string\"}}}},\"resources\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of resources, currently only projects in the form\\n\\\"projects/{project_number}\\\". A request\\nmatches if it contains a resource in this list.\",\"type\":\"object\",\"properties\":{\"projectRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}}}}}}},\"ingressPolicies\":{\"description\":\"List of 'IngressPolicies' to apply to the perimeter. A perimeter may\\nhave multiple 'IngressPolicies', each of which is evaluated\\nseparately. Access is granted if any 'Ingress Policy' grants it.\\nMust be empty for a perimeter bridge.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"ingressFrom\":{\"description\":\"Defines the conditions on the source of a request causing this 'IngressPolicy'\\nto apply.\",\"type\":\"object\",\"properties\":{\"identities\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of identities that are allowed access through this\\ningress policy. Should be in the format of email address. The email\\naddress should represent individual user or service account only.\",\"type\":\"object\",\"properties\":{\"serviceAccountRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `serviceAccount:{{value}}`, where {{value}} is the `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"user\":{\"type\":\"string\"}}}},\"identityType\":{\"description\":\"Specifies the type of identities that are allowed access from outside the \\nperimeter. If left unspecified, then members of 'identities' field will be \\nallowed access. Possible values: [\\\"IDENTITY_TYPE_UNSPECIFIED\\\", \\\"ANY_IDENTITY\\\", \\\"ANY_USER_ACCOUNT\\\", \\\"ANY_SERVICE_ACCOUNT\\\"].\",\"type\":\"string\"},\"sources\":{\"description\":\"Sources that this 'IngressPolicy' authorizes access from.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"accessLevelRef\":{\"description\":\"An AccessLevel resource name that allow resources within the\\nServicePerimeters to be accessed from the internet. AccessLevels\\nlisted must be in the same policy as this ServicePerimeter.\\nReferencing a nonexistent AccessLevel will cause an error. If no\\nAccessLevel names are listed, resources within the perimeter can\\nonly be accessed via Google Cloud calls with request origins within\\nthe perimeter.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `{{parent}}/accessLevels/{{value}}`, where {{value}} is the `name` field of an `AccessContextManagerAccessLevel` resource.\",\"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\"}}},\"projectRef\":{\"description\":\"(Optional) A Google Cloud resource that is allowed to ingress the\\nperimeter. Requests from these resources will be allowed to access\\nperimeter data. Currently only projects are allowed. Format\\n\\\"projects/{project_number}\\\" The project may be in any Google Cloud\\norganization, not just the organization that the perimeter is defined in.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}}}},\"ingressTo\":{\"description\":\"Defines the conditions on the 'ApiOperation' and request destination that cause\\nthis 'IngressPolicy' to apply.\",\"type\":\"object\",\"properties\":{\"operations\":{\"description\":\"A list of 'ApiOperations' the sources specified in corresponding 'IngressFrom' \\nare allowed to perform in this 'ServicePerimeter'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"methodSelectors\":{\"description\":\"API methods or permissions to allow. Method or permission must belong to \\nthe service specified by serviceName field. A single 'MethodSelector' entry \\nwith '*' specified for the method field will allow all methods AND \\npermissions for the service specified in 'serviceName'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"method\":{\"description\":\"Value for method should be a valid method name for the corresponding \\nserviceName in 'ApiOperation'. If '*' used as value for 'method', then \\nALL methods and permissions are allowed.\",\"type\":\"string\"},\"permission\":{\"description\":\"Value for permission should be a valid Cloud IAM permission for the \\ncorresponding 'serviceName' in 'ApiOperation'.\",\"type\":\"string\"}}}},\"serviceName\":{\"description\":\"The name of the API whose methods or permissions the 'IngressPolicy' or \\n'EgressPolicy' want to allow. A single 'ApiOperation' with 'serviceName' \\nfield set to '*' will allow all methods AND permissions for all services.\",\"type\":\"string\"}}}},\"resources\":{\"type\":\"array\",\"items\":{\"description\":\"A list of resources, currently only projects in the form\\n\\\"projects/{project_number}\\\", protected by this ServicePerimeter\\nthat are allowed to be accessed by sources defined in the\\ncorresponding IngressFrom. A request matches if it contains a\\nresource in this list.\",\"type\":\"object\",\"properties\":{\"projectRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}}}}}}},\"resources\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of GCP resources that are inside of the service perimeter.\\nCurrently only projects are allowed.\",\"type\":\"object\",\"properties\":{\"projectRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}},\"restrictedServices\":{\"description\":\"GCP services that are subject to the Service Perimeter\\nrestrictions. Must contain a list of services. For example, if\\n'storage.googleapis.com' is specified, access to the storage\\nbuckets inside the perimeter must meet the perimeter's access\\nrestrictions.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"vpcAccessibleServices\":{\"description\":\"Specifies how APIs are allowed to communicate within the Service\\nPerimeter.\",\"type\":\"object\",\"properties\":{\"allowedServices\":{\"description\":\"The list of APIs usable within the Service Perimeter.\\nMust be empty unless 'enableRestriction' is True.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"enableRestriction\":{\"description\":\"Whether to restrict API calls within the Service Perimeter to the\\nlist of APIs specified in 'allowedServices'.\",\"type\":\"boolean\"}}}}},\"status\":{\"description\":\"ServicePerimeter configuration. Specifies sets of resources,\\nrestricted services and access levels that determine\\nperimeter content and boundaries.\",\"type\":\"object\",\"properties\":{\"accessLevels\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of AccessLevel resource names that allow resources within\\nthe ServicePerimeter to be accessed from the internet. AccessLevels listed\\nmust be in the same policy as this ServicePerimeter.\\nReferencing a nonexistent AccessLevel is a syntax error. If no\\nAccessLevel names are listed, resources within the perimeter can\\nonly be accessed via GCP calls with request origins within the\\nperimeter. For Service Perimeter Bridge, must be empty.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `{{parent}}/accessLevels/{{value}}`, where {{value}} is the `name` field of an `AccessContextManagerAccessLevel` resource.\",\"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\"}}}},\"egressPolicies\":{\"description\":\"List of EgressPolicies to apply to the perimeter. A perimeter may \\nhave multiple EgressPolicies, each of which is evaluated separately.\\nAccess is granted if any EgressPolicy grants it. Must be empty for \\na perimeter bridge.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"egressFrom\":{\"description\":\"Defines conditions on the source of a request causing this 'EgressPolicy' to apply.\",\"type\":\"object\",\"properties\":{\"identities\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of identities that are allowed access through this\\nEgressPolicy. Should be in the format of email address. The email\\naddress should represent individual user or service account only.\",\"type\":\"object\",\"properties\":{\"serviceAccountRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `serviceAccount:{{value}}`, where {{value}} is the `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"user\":{\"type\":\"string\"}}}},\"identityType\":{\"description\":\"Specifies the type of identities that are allowed access to outside the \\nperimeter. If left unspecified, then members of 'identities' field will \\nbe allowed access. Possible values: [\\\"IDENTITY_TYPE_UNSPECIFIED\\\", \\\"ANY_IDENTITY\\\", \\\"ANY_USER_ACCOUNT\\\", \\\"ANY_SERVICE_ACCOUNT\\\"].\",\"type\":\"string\"}}},\"egressTo\":{\"description\":\"Defines the conditions on the 'ApiOperation' and destination resources that \\ncause this 'EgressPolicy' to apply.\",\"type\":\"object\",\"properties\":{\"externalResources\":{\"description\":\"A list of external resources that are allowed to be accessed. A request\\nmatches if it contains an external resource in this list (Example:\\ns3://bucket/path). Currently '*' is not allowed.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"operations\":{\"description\":\"A list of 'ApiOperations' that this egress rule applies to. A request matches \\nif it contains an operation/service in this list.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"methodSelectors\":{\"description\":\"API methods or permissions to allow. Method or permission must belong \\nto the service specified by 'serviceName' field. A single MethodSelector \\nentry with '*' specified for the 'method' field will allow all methods \\nAND permissions for the service specified in 'serviceName'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"method\":{\"description\":\"Value for 'method' should be a valid method name for the corresponding \\n'serviceName' in 'ApiOperation'. If '*' used as value for method, \\nthen ALL methods and permissions are allowed.\",\"type\":\"string\"},\"permission\":{\"description\":\"Value for permission should be a valid Cloud IAM permission for the \\ncorresponding 'serviceName' in 'ApiOperation'.\",\"type\":\"string\"}}}},\"serviceName\":{\"description\":\"The name of the API whose methods or permissions the 'IngressPolicy' or \\n'EgressPolicy' want to allow. A single 'ApiOperation' with serviceName \\nfield set to '*' will allow all methods AND permissions for all services.\",\"type\":\"string\"}}}},\"resources\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of resources, currently only projects in the form\\n\\\"projects/{project_number}\\\". A request\\nmatches if it contains a resource in this list.\",\"type\":\"object\",\"properties\":{\"projectRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}}}}}}},\"ingressPolicies\":{\"description\":\"List of 'IngressPolicies' to apply to the perimeter. A perimeter may\\nhave multiple 'IngressPolicies', each of which is evaluated\\nseparately. Access is granted if any 'Ingress Policy' grants it.\\nMust be empty for a perimeter bridge.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"ingressFrom\":{\"description\":\"Defines the conditions on the source of a request causing this 'IngressPolicy'\\nto apply.\",\"type\":\"object\",\"properties\":{\"identities\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of identities that are allowed access through this\\nEgressPolicy. Should be in the format of email address. The email\\naddress should represent individual user or service account only.\",\"type\":\"object\",\"properties\":{\"serviceAccountRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `serviceAccount:{{value}}`, where {{value}} is the `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"user\":{\"type\":\"string\"}}}},\"identityType\":{\"description\":\"Specifies the type of identities that are allowed access from outside the \\nperimeter. If left unspecified, then members of 'identities' field will be \\nallowed access. Possible values: [\\\"IDENTITY_TYPE_UNSPECIFIED\\\", \\\"ANY_IDENTITY\\\", \\\"ANY_USER_ACCOUNT\\\", \\\"ANY_SERVICE_ACCOUNT\\\"].\",\"type\":\"string\"},\"sources\":{\"description\":\"Sources that this 'IngressPolicy' authorizes access from.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"accessLevelRef\":{\"description\":\"An AccessLevel resource name that allow resources within the\\nServicePerimeters to be accessed from the internet. AccessLevels\\nlisted must be in the same policy as this ServicePerimeter.\\nReferencing a nonexistent AccessLevel will cause an error. If no\\nAccessLevel names are listed, resources within the perimeter can\\nonly be accessed via Google Cloud calls with request origins within\\nthe perimeter.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `{{parent}}/accessLevels/{{value}}`, where {{value}} is the `name` field of an `AccessContextManagerAccessLevel` resource.\",\"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\"}}},\"projectRef\":{\"description\":\"(Optional) A Google Cloud resource that is allowed to ingress the\\nperimeter. Requests from these resources will be allowed to access\\nperimeter data. Currently only projects are allowed. Format\\n\\\"projects/{project_number}\\\" The project may be in any Google Cloud\\norganization, not just the organization that the perimeter is defined in.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}}}},\"ingressTo\":{\"description\":\"Defines the conditions on the 'ApiOperation' and request destination that cause\\nthis 'IngressPolicy' to apply.\",\"type\":\"object\",\"properties\":{\"operations\":{\"description\":\"A list of 'ApiOperations' the sources specified in corresponding 'IngressFrom' \\nare allowed to perform in this 'ServicePerimeter'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"methodSelectors\":{\"description\":\"API methods or permissions to allow. Method or permission must belong to \\nthe service specified by serviceName field. A single 'MethodSelector' entry \\nwith '*' specified for the method field will allow all methods AND \\npermissions for the service specified in 'serviceName'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"method\":{\"description\":\"Value for method should be a valid method name for the corresponding \\nserviceName in 'ApiOperation'. If '*' used as value for 'method', then \\nALL methods and permissions are allowed.\",\"type\":\"string\"},\"permission\":{\"description\":\"Value for permission should be a valid Cloud IAM permission for the \\ncorresponding 'serviceName' in 'ApiOperation'.\",\"type\":\"string\"}}}},\"serviceName\":{\"description\":\"The name of the API whose methods or permissions the 'IngressPolicy' or \\n'EgressPolicy' want to allow. A single 'ApiOperation' with 'serviceName' \\nfield set to '*' will allow all methods AND permissions for all services.\",\"type\":\"string\"}}}},\"resources\":{\"type\":\"array\",\"items\":{\"description\":\"A list of resources, currently only projects in the form\\n\\\"projects/{project_number}\\\", protected by this ServicePerimeter\\nthat are allowed to be accessed by sources defined in the\\ncorresponding IngressFrom. A request matches if it contains a\\nresource in this list.\",\"type\":\"object\",\"properties\":{\"projectRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}}}}}}},\"resources\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of GCP resources that are inside of the service perimeter.\\nCurrently only projects are allowed.\",\"type\":\"object\",\"properties\":{\"projectRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}},\"restrictedServices\":{\"description\":\"GCP services that are subject to the Service Perimeter\\nrestrictions. Must contain a list of services. For example, if\\n'storage.googleapis.com' is specified, access to the storage\\nbuckets inside the perimeter must meet the perimeter's access\\nrestrictions.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"vpcAccessibleServices\":{\"description\":\"Specifies how APIs are allowed to communicate within the Service\\nPerimeter.\",\"type\":\"object\",\"properties\":{\"allowedServices\":{\"description\":\"The list of APIs usable within the Service Perimeter.\\nMust be empty unless 'enableRestriction' is True.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"enableRestriction\":{\"description\":\"Whether to restrict API calls within the Service Perimeter to the\\nlist of APIs specified in 'allowedServices'.\",\"type\":\"boolean\"}}}}},\"title\":{\"description\":\"Human readable title. Must be unique within the Policy.\",\"type\":\"string\"},\"useExplicitDryRunSpec\":{\"description\":\"Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists\\nfor all Service Perimeters, and that spec is identical to the status for those\\nService Perimeters. When this flag is set, it inhibits the generation of the\\nimplicit spec, thereby allowing the user to explicitly provide a\\nconfiguration (\\\"spec\\\") to use in a dry-run version of the Service Perimeter.\\nThis allows the user to test changes to the enforced config (\\\"status\\\") without\\nactually enforcing them. This testing is done through analyzing the differences\\nbetween currently enforced and suggested restrictions. useExplicitDryRunSpec must\\nbet set to True if any of the fields in the spec are set to non-default values.\",\"type\":\"boolean\"}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"createTime\":{\"description\":\"Time the AccessPolicy was created in UTC.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"updateTime\":{\"description\":\"Time the AccessPolicy was updated in UTC.\",\"type\":\"string\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"kind\":\"AccessContextManagerServicePerimeter\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeterList\":{\"description\":\"AccessContextManagerServicePerimeterList is a list of AccessContextManagerServicePerimeter\",\"required\":[\"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 accesscontextmanagerserviceperimeters. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"kind\":\"AccessContextManagerServicePerimeterList\",\"version\":\"v1beta1\"}]},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\":{\"description\":\"CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"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/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning 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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"},\"status\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"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\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"default\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}},\"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\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}}},\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv2/container_v1beta1_containercluster.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.27.0\"},\"paths\":{\"/apis/container.cnrm.cloud.google.com/v1beta1/containerclusters\":{\"get\":{\"description\":\"list objects of kind ContainerCluster\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"containerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listContainerCnrmCloudGoogleComV1beta1ContainerClusterForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerClusterList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"container.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"ContainerCluster\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/container.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/containerclusters\":{\"get\":{\"description\":\"list objects of kind ContainerCluster\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"containerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listContainerCnrmCloudGoogleComV1beta1NamespacedContainerCluster\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerClusterList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"container.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"ContainerCluster\"}},\"post\":{\"description\":\"create a ContainerCluster\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"containerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"createContainerCnrmCloudGoogleComV1beta1NamespacedContainerCluster\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"container.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"ContainerCluster\"}},\"delete\":{\"description\":\"delete collection of ContainerCluster\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"containerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteContainerCnrmCloudGoogleComV1beta1CollectionNamespacedContainerCluster\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"container.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"ContainerCluster\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/container.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/containerclusters/{name}\":{\"get\":{\"description\":\"read the specified ContainerCluster\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"containerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readContainerCnrmCloudGoogleComV1beta1NamespacedContainerCluster\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"container.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"ContainerCluster\"}},\"put\":{\"description\":\"replace the specified ContainerCluster\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"containerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceContainerCnrmCloudGoogleComV1beta1NamespacedContainerCluster\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"container.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"ContainerCluster\"}},\"delete\":{\"description\":\"delete a ContainerCluster\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"containerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteContainerCnrmCloudGoogleComV1beta1NamespacedContainerCluster\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"container.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"ContainerCluster\"}},\"patch\":{\"description\":\"partially update the specified ContainerCluster\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"containerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchContainerCnrmCloudGoogleComV1beta1NamespacedContainerCluster\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"container.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"ContainerCluster\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ContainerCluster\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/container.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/containerclusters/{name}/status\":{\"get\":{\"description\":\"read status of the specified ContainerCluster\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"containerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readContainerCnrmCloudGoogleComV1beta1NamespacedContainerClusterStatus\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"container.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"ContainerCluster\"}},\"put\":{\"description\":\"replace status of the specified ContainerCluster\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"containerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceContainerCnrmCloudGoogleComV1beta1NamespacedContainerClusterStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"container.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"ContainerCluster\"}},\"patch\":{\"description\":\"partially update status of the specified ContainerCluster\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"containerCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchContainerCnrmCloudGoogleComV1beta1NamespacedContainerClusterStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"container.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"ContainerCluster\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ContainerCluster\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]}},\"definitions\":{\"com.google.cloud.cnrm.container.v1beta1.ContainerCluster\":{\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"type\":\"object\",\"properties\":{\"addonsConfig\":{\"description\":\"The configuration for addons supported by GKE.\",\"type\":\"object\",\"properties\":{\"cloudrunConfig\":{\"description\":\"The status of the CloudRun addon. It is disabled by default. Set disabled = false to enable.\",\"type\":\"object\",\"properties\":{\"disabled\":{\"type\":\"boolean\"},\"loadBalancerType\":{\"type\":\"string\"}}},\"configConnectorConfig\":{\"description\":\"The of the Config Connector addon.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"dnsCacheConfig\":{\"description\":\"The status of the NodeLocal DNSCache addon. It is disabled by default. Set enabled = true to enable.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"gcePersistentDiskCsiDriverConfig\":{\"description\":\"Whether this cluster should enable the Google Compute Engine Persistent Disk Container Storage Interface (CSI) Driver. Defaults to enabled; set disabled = true to disable.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"gcpFilestoreCsiDriverConfig\":{\"description\":\"The status of the Filestore CSI driver addon, which allows the usage of filestore instance as volumes. Defaults to disabled; set enabled = true to enable.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"gkeBackupAgentConfig\":{\"description\":\"The status of the Backup for GKE Agent addon. It is disabled by default. Set enabled = true to enable.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"horizontalPodAutoscaling\":{\"description\":\"The status of the Horizontal Pod Autoscaling addon, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. It ensures that a Heapster pod is running in the cluster, which is also used by the Cloud Monitoring service. It is enabled by default; set disabled = true to disable.\",\"type\":\"object\",\"properties\":{\"disabled\":{\"type\":\"boolean\"}}},\"httpLoadBalancing\":{\"description\":\"The status of the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. It is enabled by default; set disabled = true to disable.\",\"type\":\"object\",\"properties\":{\"disabled\":{\"type\":\"boolean\"}}},\"istioConfig\":{\"description\":\"The status of the Istio addon.\",\"type\":\"object\",\"properties\":{\"auth\":{\"description\":\"The authentication type between services in Istio. Available options include AUTH_MUTUAL_TLS.\",\"type\":\"string\"},\"disabled\":{\"description\":\"The status of the Istio addon, which makes it easy to set up Istio for services in a cluster. It is disabled by default. Set disabled = false to enable.\",\"type\":\"boolean\"}}},\"kalmConfig\":{\"description\":\"Configuration for the KALM addon, which manages the lifecycle of k8s. It is disabled by default; Set enabled = true to enable.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"networkPolicyConfig\":{\"description\":\"Whether we should enable the network policy addon for the master. This must be enabled in order to enable network policy for the nodes. To enable this, you must also define a network_policy block, otherwise nothing will happen. It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set disabled = false to enable.\",\"type\":\"object\",\"properties\":{\"disabled\":{\"type\":\"boolean\"}}}}},\"authenticatorGroupsConfig\":{\"description\":\"Configuration for the Google Groups for GKE feature.\",\"type\":\"object\",\"properties\":{\"securityGroup\":{\"description\":\"The name of the RBAC security group for use with Google security groups in Kubernetes RBAC. Group name must be in format gke-security-groups@yourdomain.com.\",\"type\":\"string\"}}},\"binaryAuthorization\":{\"description\":\"Configuration options for the Binary Authorization feature.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"DEPRECATED. Deprecated in favor of evaluation_mode. Enable Binary Authorization for this cluster.\",\"type\":\"boolean\"},\"evaluationMode\":{\"description\":\"Mode of operation for Binary Authorization policy evaluation.\",\"type\":\"string\"}}},\"clusterAutoscaling\":{\"description\":\"Per-cluster configuration of Node Auto-Provisioning with Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs of the cluster's workload. See the guide to using Node Auto-Provisioning for more details.\",\"type\":\"object\",\"properties\":{\"autoProvisioningDefaults\":{\"description\":\"Contains defaults for a node pool created by NAP.\",\"type\":\"object\",\"properties\":{\"bootDiskKMSKeyRef\":{\"description\":\"Immutable. The Customer Managed Encryption Key used to encrypt the\\nboot disk attached to each node in the node pool.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.\",\"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\"}}},\"diskSize\":{\"description\":\"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.\",\"type\":\"integer\"},\"imageType\":{\"description\":\"The default image type used by NAP once a new node pool is being created.\",\"type\":\"string\"},\"management\":{\"description\":\"NodeManagement configuration for this NodePool.\",\"type\":\"object\",\"properties\":{\"autoRepair\":{\"description\":\"Specifies whether the node auto-repair is enabled for the node pool. If enabled, the nodes in this node pool will be monitored and, if they fail health checks too many times, an automatic repair action will be triggered.\",\"type\":\"boolean\"},\"autoUpgrade\":{\"description\":\"Specifies whether node auto-upgrade is enabled for the node pool. If enabled, node auto-upgrade helps keep the nodes in your node pool up to date with the latest release version of Kubernetes.\",\"type\":\"boolean\"},\"upgradeOptions\":{\"description\":\"Specifies the Auto Upgrade knobs for the node pool.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"autoUpgradeStartTime\":{\"description\":\"This field is set when upgrades are about to commence with the approximate start time for the upgrades, in RFC3339 text format.\",\"type\":\"string\"},\"description\":{\"description\":\"This field is set when upgrades are about to commence with the description of the upgrade.\",\"type\":\"string\"}}}}}},\"minCpuPlatform\":{\"description\":\"Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell.\",\"type\":\"string\"},\"oauthScopes\":{\"description\":\"Scopes that are used by NAP when creating node pools.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"serviceAccountRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"shieldedInstanceConfig\":{\"description\":\"Shielded Instance options.\",\"type\":\"object\",\"properties\":{\"enableIntegrityMonitoring\":{\"description\":\"Defines whether the instance has integrity monitoring enabled.\",\"type\":\"boolean\"},\"enableSecureBoot\":{\"description\":\"Defines whether the instance has Secure Boot enabled.\",\"type\":\"boolean\"}}},\"upgradeSettings\":{\"description\":\"Specifies the upgrade settings for NAP created node pools.\",\"type\":\"object\",\"properties\":{\"blueGreenSettings\":{\"description\":\"Settings for blue-green upgrade strategy.\",\"type\":\"object\",\"properties\":{\"nodePoolSoakDuration\":{\"description\":\"Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tA duration in seconds with up to nine fractional digits, ending with 's'. Example: \\\"3.5s\\\".\",\"type\":\"string\"},\"standardRolloutPolicy\":{\"description\":\"Standard policy for the blue-green upgrade.\",\"type\":\"object\",\"properties\":{\"batchNodeCount\":{\"description\":\"Number of blue nodes to drain in a batch.\",\"type\":\"integer\"},\"batchPercentage\":{\"description\":\"Percentage of the bool pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].\",\"type\":\"number\"},\"batchSoakDuration\":{\"description\":\"Soak time after each batch gets drained.\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tA duration in seconds with up to nine fractional digits, ending with 's'. Example: \\\"3.5s\\\".\",\"type\":\"string\"}}}}},\"maxSurge\":{\"description\":\"The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.\",\"type\":\"integer\"},\"maxUnavailable\":{\"description\":\"The maximum number of nodes that can be simultaneously unavailable during the upgrade process.\",\"type\":\"integer\"},\"strategy\":{\"description\":\"Update strategy of the node pool.\",\"type\":\"string\"}}}}},\"autoscalingProfile\":{\"description\":\"Configuration options for the Autoscaling profile feature, which lets you choose whether the cluster autoscaler should optimize for resource utilization or resource availability when deciding to remove nodes from a cluster. Can be BALANCED or OPTIMIZE_UTILIZATION. Defaults to BALANCED.\",\"type\":\"string\"},\"enabled\":{\"description\":\"Whether node auto-provisioning is enabled. Resource limits for cpu and memory must be defined to enable node auto-provisioning.\",\"type\":\"boolean\"},\"resourceLimits\":{\"description\":\"Global constraints for machine resources in the cluster. Configuring the cpu and memory types is required if node auto-provisioning is enabled. These limits will apply to node pool autoscaling in addition to node auto-provisioning.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"maximum\":{\"description\":\"Maximum amount of the resource in the cluster.\",\"type\":\"integer\"},\"minimum\":{\"description\":\"Minimum amount of the resource in the cluster.\",\"type\":\"integer\"},\"resourceType\":{\"description\":\"The type of the resource. For example, cpu and memory. See the guide to using Node Auto-Provisioning for a list of types.\",\"type\":\"string\"}}}}}},\"clusterIpv4Cidr\":{\"description\":\"Immutable. The IP address range of the Kubernetes pods in this cluster in CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8. This field will only work for routes-based clusters, where ip_allocation_policy is not defined.\",\"type\":\"string\"},\"clusterTelemetry\":{\"description\":\"Telemetry integration for the cluster.\",\"type\":\"object\",\"properties\":{\"type\":{\"description\":\"Type of the integration.\",\"type\":\"string\"}}},\"confidentialNodes\":{\"description\":\"Immutable. Configuration for the confidential nodes feature, which makes nodes run on confidential VMs. Warning: This configuration can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Immutable. Whether Confidential Nodes feature is enabled for all nodes in this cluster.\",\"type\":\"boolean\"}}},\"costManagementConfig\":{\"description\":\"Cost management configuration for the cluster.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Whether to enable GKE cost allocation. When you enable GKE cost allocation, the cluster name and namespace of your GKE workloads appear in the labels field of the billing export to BigQuery. Defaults to false.\",\"type\":\"boolean\"}}},\"databaseEncryption\":{\"description\":\"Application-layer Secrets Encryption settings. The object format is {state = string, key_name = string}. Valid values of state are: \\\"ENCRYPTED\\\"; \\\"DECRYPTED\\\". key_name is the name of a CloudKMS key.\",\"type\":\"object\",\"properties\":{\"keyName\":{\"description\":\"The key to use to encrypt/decrypt secrets.\",\"type\":\"string\"},\"state\":{\"description\":\"ENCRYPTED or DECRYPTED.\",\"type\":\"string\"}}},\"datapathProvider\":{\"description\":\"Immutable. The desired datapath provider for this cluster. By default, uses the IPTables-based kube-proxy implementation.\",\"type\":\"string\"},\"defaultMaxPodsPerNode\":{\"description\":\"Immutable. The default maximum number of pods per node in this cluster. This doesn't work on \\\"routes-based\\\" clusters, clusters that don't have IP Aliasing enabled.\",\"type\":\"integer\"},\"defaultSnatStatus\":{\"description\":\"Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when defaultSnatStatus is disabled.\",\"type\":\"object\",\"properties\":{\"disabled\":{\"description\":\"When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic.\",\"type\":\"boolean\"}}},\"description\":{\"description\":\"Immutable.  Description of the cluster.\",\"type\":\"string\"},\"dnsConfig\":{\"description\":\"Immutable. Configuration for Cloud DNS for Kubernetes Engine.\",\"type\":\"object\",\"properties\":{\"clusterDns\":{\"description\":\"Which in-cluster DNS provider should be used.\",\"type\":\"string\"},\"clusterDnsDomain\":{\"description\":\"The suffix used for all cluster service records.\",\"type\":\"string\"},\"clusterDnsScope\":{\"description\":\"The scope of access to cluster DNS records.\",\"type\":\"string\"}}},\"enableAutopilot\":{\"description\":\"Immutable. Enable Autopilot for this cluster.\",\"type\":\"boolean\"},\"enableBinaryAuthorization\":{\"description\":\"DEPRECATED. Deprecated in favor of binary_authorization. Enable Binary Authorization for this cluster. If enabled, all container images will be validated by Google Binary Authorization.\",\"type\":\"boolean\"},\"enableIntranodeVisibility\":{\"description\":\"Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.\",\"type\":\"boolean\"},\"enableKubernetesAlpha\":{\"description\":\"Immutable. Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days.\",\"type\":\"boolean\"},\"enableL4IlbSubsetting\":{\"description\":\"Whether L4ILB Subsetting is enabled for this cluster.\",\"type\":\"boolean\"},\"enableLegacyAbac\":{\"description\":\"Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. Defaults to false.\",\"type\":\"boolean\"},\"enableShieldedNodes\":{\"description\":\"Enable Shielded Nodes features on all nodes in this cluster. Defaults to true.\",\"type\":\"boolean\"},\"enableTpu\":{\"description\":\"Immutable. Whether to enable Cloud TPU resources in this cluster.\",\"type\":\"boolean\"},\"gatewayApiConfig\":{\"description\":\"Configuration for GKE Gateway API controller.\",\"type\":\"object\",\"properties\":{\"channel\":{\"description\":\"The Gateway API release channel to use for Gateway API.\",\"type\":\"string\"}}},\"identityServiceConfig\":{\"description\":\"Configuration for Identity Service which allows customers to use external identity providers with the K8S API.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Whether to enable the Identity Service component.\",\"type\":\"boolean\"}}},\"initialNodeCount\":{\"description\":\"Immutable. The number of nodes to create in this cluster's default node pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Must be set if node_pool is not set. If you're using google_container_node_pool objects with no default node pool, you'll need to set this to a value of at least 1, alongside setting remove_default_node_pool to true.\",\"type\":\"integer\"},\"ipAllocationPolicy\":{\"description\":\"Immutable. Configuration of cluster IP allocation for VPC-native clusters. Adding this block enables IP aliasing, making the cluster VPC-native instead of routes-based.\",\"type\":\"object\",\"properties\":{\"clusterIpv4CidrBlock\":{\"description\":\"Immutable. The IP address range for the cluster pod IPs. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.\",\"type\":\"string\"},\"clusterSecondaryRangeName\":{\"description\":\"Immutable. The name of the existing secondary range in the cluster's subnetwork to use for pod IP addresses. Alternatively, cluster_ipv4_cidr_block can be used to automatically create a GKE-managed one.\",\"type\":\"string\"},\"servicesIpv4CidrBlock\":{\"description\":\"Immutable. The IP address range of the services IPs in this cluster. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.\",\"type\":\"string\"},\"servicesSecondaryRangeName\":{\"description\":\"Immutable. The name of the existing secondary range in the cluster's subnetwork to use for service ClusterIPs. Alternatively, services_ipv4_cidr_block can be used to automatically create a GKE-managed one.\",\"type\":\"string\"}}},\"location\":{\"description\":\"Immutable. The location (region or zone) in which the cluster master will be created, as well as the default node location. If you specify a zone (such as us-central1-a), the cluster will be a zonal cluster with a single cluster master. If you specify a region (such as us-west1), the cluster will be a regional cluster with multiple masters spread across zones in the region, and with default node locations in those zones as well.\",\"type\":\"string\"},\"loggingConfig\":{\"description\":\"Logging configuration for the cluster.\",\"type\":\"object\",\"properties\":{\"enableComponents\":{\"description\":\"GKE components exposing logs. Valid values include SYSTEM_COMPONENTS, APISERVER, CONTROLLER_MANAGER, SCHEDULER, and WORKLOADS.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"loggingService\":{\"description\":\"The logging service that the cluster should write logs to. Available options include logging.googleapis.com(Legacy Stackdriver), logging.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Logging), and none. Defaults to logging.googleapis.com/kubernetes.\",\"type\":\"string\"},\"maintenancePolicy\":{\"description\":\"The maintenance policy to use for the cluster.\",\"type\":\"object\",\"properties\":{\"dailyMaintenanceWindow\":{\"description\":\"Time window specified for daily maintenance operations. Specify start_time in RFC3339 format \\\"HH:MM”, where HH : [00-23] and MM : [00-59] GMT.\",\"type\":\"object\",\"properties\":{\"duration\":{\"type\":\"string\"},\"startTime\":{\"type\":\"string\"}}},\"maintenanceExclusion\":{\"description\":\"Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"endTime\":{\"type\":\"string\"},\"exclusionName\":{\"type\":\"string\"},\"exclusionOptions\":{\"description\":\"Maintenance exclusion related options.\",\"type\":\"object\",\"properties\":{\"scope\":{\"description\":\"The scope of automatic upgrades to restrict in the exclusion window.\",\"type\":\"string\"}}},\"startTime\":{\"type\":\"string\"}}}},\"recurringWindow\":{\"description\":\"Time window for recurring maintenance operations.\",\"type\":\"object\",\"properties\":{\"endTime\":{\"type\":\"string\"},\"recurrence\":{\"type\":\"string\"},\"startTime\":{\"type\":\"string\"}}}}},\"masterAuth\":{\"description\":\"DEPRECATED. Basic authentication was removed for GKE cluster versions \\u003e= 1.19. The authentication information for accessing the Kubernetes master. Some values in this block are only returned by the API if your service account has permission to get credentials for your GKE cluster. If you see an unexpected diff unsetting your client cert, ensure you have the container.clusters.getCredentials permission.\",\"type\":\"object\",\"properties\":{\"clientCertificate\":{\"description\":\"Base64 encoded public certificate used by clients to authenticate to the cluster endpoint.\",\"type\":\"string\"},\"clientCertificateConfig\":{\"description\":\"Immutable. Whether client certificate authorization is enabled for this cluster.\",\"type\":\"object\",\"properties\":{\"issueClientCertificate\":{\"description\":\"Immutable. Whether client certificate authorization is enabled for this cluster.\",\"type\":\"boolean\"}}},\"clientKey\":{\"description\":\"Base64 encoded private key used by clients to authenticate to the cluster endpoint.\",\"type\":\"string\"},\"clusterCaCertificate\":{\"description\":\"Base64 encoded public certificate that is the root of trust for the cluster.\",\"type\":\"string\"},\"password\":{\"description\":\"The password to use for HTTP basic authentication when accessing the Kubernetes master endpoint.\",\"type\":\"object\",\"properties\":{\"value\":{\"description\":\"Value of the field. Cannot be used if 'valueFrom' is specified.\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the field's value. Cannot be used if 'value' is specified.\",\"type\":\"object\",\"properties\":{\"secretKeyRef\":{\"description\":\"Reference to a value with the given key in the given Secret in the resource's namespace.\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Key that identifies the value to be extracted.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the Secret to extract a value from.\",\"type\":\"string\"}}}}}}},\"username\":{\"description\":\"The username to use for HTTP basic authentication when accessing the Kubernetes master endpoint. If not present basic auth will be disabled.\",\"type\":\"string\"}}},\"masterAuthorizedNetworksConfig\":{\"description\":\"The desired configuration options for master authorized networks. Omit the nested cidr_blocks attribute to disallow external access (except the cluster node IPs, which GKE automatically whitelists).\",\"type\":\"object\",\"properties\":{\"cidrBlocks\":{\"description\":\"External networks that can access the Kubernetes cluster master through HTTPS.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"cidrBlock\":{\"description\":\"External network that can access Kubernetes master through HTTPS. Must be specified in CIDR notation.\",\"type\":\"string\"},\"displayName\":{\"description\":\"Field for users to identify CIDR blocks.\",\"type\":\"string\"}}}},\"gcpPublicCidrsAccessEnabled\":{\"description\":\"Whether master is accessbile via Google Compute Engine Public IP addresses.\",\"type\":\"boolean\"}}},\"meshCertificates\":{\"description\":\"If set, and enable_certificates=true, the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster.\",\"type\":\"object\",\"properties\":{\"enableCertificates\":{\"description\":\"When enabled the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster.\",\"type\":\"boolean\"}}},\"minMasterVersion\":{\"description\":\"The minimum version of the master. GKE will auto-update the master to new versions, so this does not guarantee the current master version--use the read-only master_version field to obtain that. If unset, the cluster's version will be set by GKE to the version of the most recent official release (which is not necessarily the latest version).\",\"type\":\"string\"},\"monitoringConfig\":{\"description\":\"Monitoring configuration for the cluster.\",\"type\":\"object\",\"properties\":{\"enableComponents\":{\"description\":\"GKE components exposing metrics. Valid values include SYSTEM_COMPONENTS, APISERVER, CONTROLLER_MANAGER, SCHEDULER, and WORKLOADS.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"managedPrometheus\":{\"description\":\"Configuration for Google Cloud Managed Services for Prometheus.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Whether or not the managed collection is enabled.\",\"type\":\"boolean\"}}}}},\"monitoringService\":{\"description\":\"The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com(Legacy Stackdriver), monitoring.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Monitoring), and none. Defaults to monitoring.googleapis.com/kubernetes.\",\"type\":\"string\"},\"networkPolicy\":{\"description\":\"Configuration options for the NetworkPolicy feature.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Whether network policy is enabled on the cluster.\",\"type\":\"boolean\"},\"provider\":{\"description\":\"The selected network policy provider. Defaults to PROVIDER_UNSPECIFIED.\",\"type\":\"string\"}}},\"networkRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The `selfLink` field of a `ComputeNetwork` resource.\",\"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\"}}},\"networkingMode\":{\"description\":\"Immutable. Determines whether alias IPs or routes will be used for pod IPs in the cluster.\",\"type\":\"string\"},\"nodeConfig\":{\"description\":\"Immutable. The configuration of the nodepool.\",\"type\":\"object\",\"properties\":{\"bootDiskKMSCryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.\",\"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\"}}},\"diskSizeGb\":{\"description\":\"Immutable. Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.\",\"type\":\"integer\"},\"diskType\":{\"description\":\"Immutable. Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd.\",\"type\":\"string\"},\"ephemeralStorageConfig\":{\"description\":\"Immutable. Parameters for the ephemeral storage filesystem.\",\"type\":\"object\",\"properties\":{\"localSsdCount\":{\"description\":\"Immutable. Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD is 375 GB in size.\",\"type\":\"integer\"}}},\"gcfsConfig\":{\"description\":\"Immutable. GCFS configuration for this node.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Immutable. Whether or not GCFS is enabled.\",\"type\":\"boolean\"}}},\"guestAccelerator\":{\"description\":\"Immutable. List of the type and count of accelerator cards attached to the instance.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"count\":{\"description\":\"Immutable. The number of the accelerator cards exposed to an instance.\",\"type\":\"integer\"},\"gpuPartitionSize\":{\"description\":\"Immutable. Size of partitions to create on the GPU. Valid values are described in the NVIDIA mig user guide (https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).\",\"type\":\"string\"},\"gpuSharingConfig\":{\"description\":\"Immutable. Configuration for GPU sharing.\",\"type\":\"object\",\"properties\":{\"gpuSharingStrategy\":{\"description\":\"Immutable. The type of GPU sharing strategy to enable on the GPU node. Possible values are described in the API package (https://pkg.go.dev/google.golang.org/api/container/v1#GPUSharingConfig).\",\"type\":\"string\"},\"maxSharedClientsPerGpu\":{\"description\":\"Immutable. The maximum number of containers that can share a GPU.\",\"type\":\"integer\"}}},\"type\":{\"description\":\"Immutable. The accelerator type resource name.\",\"type\":\"string\"}}}},\"gvnic\":{\"description\":\"Immutable. Enable or disable gvnic in the node pool.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Immutable. Whether or not gvnic is enabled.\",\"type\":\"boolean\"}}},\"imageType\":{\"description\":\"The image type to use for this node. Note that for a given image type, the latest version of it will be used.\",\"type\":\"string\"},\"kubeletConfig\":{\"description\":\"Node kubelet configs.\",\"type\":\"object\",\"properties\":{\"cpuCfsQuota\":{\"description\":\"Enable CPU CFS quota enforcement for containers that specify CPU limits.\",\"type\":\"boolean\"},\"cpuCfsQuotaPeriod\":{\"description\":\"Set the CPU CFS quota period value 'cpu.cfs_period_us'.\",\"type\":\"string\"},\"cpuManagerPolicy\":{\"description\":\"Control the CPU management policy on the node.\",\"type\":\"string\"}}},\"labels\":{\"description\":\"Immutable. The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"linuxNodeConfig\":{\"description\":\"Parameters that can be configured on Linux nodes.\",\"type\":\"object\",\"properties\":{\"sysctls\":{\"description\":\"The Linux kernel parameters to be applied to the nodes and all pods running on the nodes.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"localSsdCount\":{\"description\":\"Immutable. The number of local SSD disks to be attached to the node.\",\"type\":\"integer\"},\"loggingVariant\":{\"description\":\"Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.\",\"type\":\"string\"},\"machineType\":{\"description\":\"Immutable. The name of a Google Compute Engine machine type.\",\"type\":\"string\"},\"metadata\":{\"description\":\"Immutable. The metadata key/value pairs assigned to instances in the cluster.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"minCpuPlatform\":{\"description\":\"Immutable. Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.\",\"type\":\"string\"},\"nodeGroupRef\":{\"description\":\"Immutable. Setting this field will assign instances\\nof this pool to run on the specified node group. This is useful\\nfor running workloads on sole tenant nodes.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The `name` field of a `ComputeNodeGroup` resource.\",\"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\"}}},\"oauthScopes\":{\"description\":\"Immutable. The set of Google API scopes to be made available on all of the node VMs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"preemptible\":{\"description\":\"Immutable. Whether the nodes are created as preemptible VM instances.\",\"type\":\"boolean\"},\"reservationAffinity\":{\"description\":\"Immutable. The reservation affinity configuration for the node pool.\",\"type\":\"object\",\"properties\":{\"consumeReservationType\":{\"description\":\"Immutable. Corresponds to the type of reservation consumption.\",\"type\":\"string\"},\"key\":{\"description\":\"Immutable. The label key of a reservation resource.\",\"type\":\"string\"},\"values\":{\"description\":\"Immutable. The label values of the reservation resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"resourceLabels\":{\"description\":\"The GCE resource labels (a map of key/value pairs) to be applied to the node pool.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"sandboxConfig\":{\"description\":\"Immutable. Sandbox configuration for this node.\",\"type\":\"object\",\"properties\":{\"sandboxType\":{\"description\":\"Type of the sandbox to use for the node (e.g. 'gvisor').\",\"type\":\"string\"}}},\"serviceAccountRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"shieldedInstanceConfig\":{\"description\":\"Immutable. Shielded Instance options.\",\"type\":\"object\",\"properties\":{\"enableIntegrityMonitoring\":{\"description\":\"Immutable. Defines whether the instance has integrity monitoring enabled.\",\"type\":\"boolean\"},\"enableSecureBoot\":{\"description\":\"Immutable. Defines whether the instance has Secure Boot enabled.\",\"type\":\"boolean\"}}},\"spot\":{\"description\":\"Immutable. Whether the nodes are created as spot VM instances.\",\"type\":\"boolean\"},\"tags\":{\"description\":\"The list of instance tags applied to all nodes.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"taint\":{\"description\":\"Immutable. List of Kubernetes taints to be applied to each node.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"effect\":{\"description\":\"Immutable. Effect for taint.\",\"type\":\"string\"},\"key\":{\"description\":\"Immutable. Key for taint.\",\"type\":\"string\"},\"value\":{\"description\":\"Immutable. Value for taint.\",\"type\":\"string\"}}}},\"workloadMetadataConfig\":{\"description\":\"Immutable. The workload metadata configuration for this node.\",\"type\":\"object\",\"properties\":{\"mode\":{\"description\":\"Mode is the configuration for how to expose metadata to workloads running on the node.\",\"type\":\"string\"},\"nodeMetadata\":{\"description\":\"DEPRECATED. Deprecated in favor of mode. NodeMetadata is the configuration for how to expose metadata to the workloads running on the node.\",\"type\":\"string\"}}}}},\"nodeLocations\":{\"description\":\"The list of zones in which the cluster's nodes are located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If this is specified for a zonal cluster, omit the cluster's zone.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"nodePoolAutoConfig\":{\"description\":\"Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.\",\"type\":\"object\",\"properties\":{\"networkTags\":{\"description\":\"Collection of Compute Engine network tags that can be applied to a node's underlying VM instance.\",\"type\":\"object\",\"properties\":{\"tags\":{\"description\":\"List of network tags applied to auto-provisioned node pools.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"nodePoolDefaults\":{\"description\":\"The default nodel pool settings for the entire cluster.\",\"type\":\"object\",\"properties\":{\"nodeConfigDefaults\":{\"description\":\"Subset of NodeConfig message that has defaults.\",\"type\":\"object\",\"properties\":{\"gcfsConfig\":{\"description\":\"GCFS configuration for this node.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Whether or not GCFS is enabled.\",\"type\":\"boolean\"}}},\"loggingVariant\":{\"description\":\"Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.\",\"type\":\"string\"}}}}},\"nodeVersion\":{\"type\":\"string\"},\"notificationConfig\":{\"description\":\"The notification config for sending cluster upgrade notifications.\",\"type\":\"object\",\"properties\":{\"pubsub\":{\"description\":\"Notification config for Cloud Pub/Sub.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Whether or not the notification config is enabled.\",\"type\":\"boolean\"},\"filter\":{\"description\":\"Allows filtering to one or more specific event types. If event types are present, those and only those event types will be transmitted to the cluster. Other types will be skipped. If no filter is specified, or no event types are present, all event types will be sent.\",\"type\":\"object\",\"properties\":{\"eventType\":{\"description\":\"Can be used to filter what notifications are sent. Valid values include include UPGRADE_AVAILABLE_EVENT, UPGRADE_EVENT and SECURITY_BULLETIN_EVENT.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"topicRef\":{\"description\":\"The PubSubTopic to send the notification to.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{project}}/topics/{{value}}`, where {{value}} is the `name` field of a `PubSubTopic` resource.\",\"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\"}}}}}}},\"podSecurityPolicyConfig\":{\"description\":\"Configuration for the PodSecurityPolicy feature.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Enable the PodSecurityPolicy controller for this cluster. If enabled, pods must be valid under a PodSecurityPolicy to be created.\",\"type\":\"boolean\"}}},\"privateClusterConfig\":{\"description\":\"Configuration for private clusters, clusters with private nodes.\",\"type\":\"object\",\"properties\":{\"enablePrivateEndpoint\":{\"description\":\"When true, the cluster's private endpoint is used as the cluster endpoint and access through the public endpoint is disabled. When false, either endpoint can be used. This field only applies to private clusters, when enable_private_nodes is true.\",\"type\":\"boolean\"},\"enablePrivateNodes\":{\"description\":\"Immutable. Enables the private cluster feature, creating a private endpoint on the cluster. In a private cluster, nodes only have RFC 1918 private addresses and communicate with the master's private endpoint via private networking.\",\"type\":\"boolean\"},\"masterGlobalAccessConfig\":{\"description\":\"Controls cluster master global access settings.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Whether the cluster master is accessible globally or not.\",\"type\":\"boolean\"}}},\"masterIpv4CidrBlock\":{\"description\":\"Immutable. The IP range in CIDR notation to use for the hosted master network. This range will be used for assigning private IP addresses to the cluster master(s) and the ILB VIP. This range must not overlap with any other ranges in use within the cluster's network, and it must be a /28 subnet. See Private Cluster Limitations for more details. This field only applies to private clusters, when enable_private_nodes is true.\",\"type\":\"string\"},\"peeringName\":{\"description\":\"The name of the peering between this cluster and the Google owned VPC.\",\"type\":\"string\"},\"privateEndpoint\":{\"description\":\"The internal IP address of this cluster's master endpoint.\",\"type\":\"string\"},\"privateEndpointSubnetworkRef\":{\"description\":\"Immutable. Subnetwork in cluster's network where master's endpoint\\nwill be provisioned.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The `selfLink` field of a `ComputeSubnetwork` resource.\",\"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\"}}},\"publicEndpoint\":{\"description\":\"The external IP address of this cluster's master endpoint.\",\"type\":\"string\"}}},\"privateIpv6GoogleAccess\":{\"description\":\"The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4).\",\"type\":\"string\"},\"releaseChannel\":{\"description\":\"Configuration options for the Release channel feature, which provide more control over automatic upgrades of your GKE clusters. Note that removing this field from your config will not unenroll it. Instead, use the \\\"UNSPECIFIED\\\" channel.\",\"type\":\"object\",\"properties\":{\"channel\":{\"description\":\"The selected release channel. Accepted values are:\\n* UNSPECIFIED: Not set.\\n* RAPID: Weekly upgrade cadence; Early testers and developers who requires new features.\\n* REGULAR: Multiple per month upgrade cadence; Production users who need features not yet offered in the Stable channel.\\n* STABLE: Every few months upgrade cadence; Production users who need stability above all else, and for whom frequent upgrades are too risky.\",\"type\":\"string\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"},\"resourceUsageExportConfig\":{\"description\":\"Configuration for the ResourceUsageExportConfig feature.\",\"type\":\"object\",\"properties\":{\"bigqueryDestination\":{\"description\":\"Parameters for using BigQuery as the destination of resource usage export.\",\"type\":\"object\",\"properties\":{\"datasetId\":{\"description\":\"The ID of a BigQuery Dataset.\",\"type\":\"string\"}}},\"enableNetworkEgressMetering\":{\"description\":\"Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic.\",\"type\":\"boolean\"},\"enableResourceConsumptionMetering\":{\"description\":\"Whether to enable resource consumption metering on this cluster. When enabled, a table will be created in the resource export BigQuery dataset to store resource consumption data. The resulting table can be joined with the resource usage table or with BigQuery billing export. Defaults to true.\",\"type\":\"boolean\"}}},\"serviceExternalIpsConfig\":{\"description\":\"If set, and enabled=true, services with external ips field will not be blocked.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"When enabled, services with exterenal ips specified will be allowed.\",\"type\":\"boolean\"}}},\"subnetworkRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The `selfLink` field of a `ComputeSubnetwork` resource.\",\"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\"}}},\"verticalPodAutoscaling\":{\"description\":\"Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Enables vertical pod autoscaling.\",\"type\":\"boolean\"}}},\"workloadIdentityConfig\":{\"description\":\"Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.\",\"type\":\"object\",\"properties\":{\"identityNamespace\":{\"description\":\"DEPRECATED. This field will be removed in a future major release as it has been deprecated in the API. Use `workloadPool` instead; `workloadPool` field will supersede this field.\\nEnables workload identity.\",\"type\":\"string\"},\"workloadPool\":{\"description\":\"The workload pool to attach all Kubernetes service accounts to.\",\"type\":\"string\"}}}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"endpoint\":{\"description\":\"The IP address of this cluster's Kubernetes master.\",\"type\":\"string\"},\"labelFingerprint\":{\"description\":\"The fingerprint of the set of labels for this cluster.\",\"type\":\"string\"},\"masterVersion\":{\"description\":\"The current version of the master in the cluster. This may be different than the min_master_version set in the config if the master has been updated by GKE.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"operation\":{\"type\":\"string\"},\"selfLink\":{\"description\":\"Server-defined URL for the resource.\",\"type\":\"string\"},\"servicesIpv4Cidr\":{\"description\":\"The IP address range of the Kubernetes services in this cluster, in CIDR notation (e.g. 1.2.3.4/29). Service addresses are typically put in the last /16 from the container CIDR.\",\"type\":\"string\"},\"tpuIpv4CidrBlock\":{\"description\":\"The IP address range of the Cloud TPUs in this cluster, in CIDR notation (e.g. 1.2.3.4/29).\",\"type\":\"string\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"container.cnrm.cloud.google.com\",\"kind\":\"ContainerCluster\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.container.v1beta1.ContainerClusterList\":{\"description\":\"ContainerClusterList is a list of ContainerCluster\",\"required\":[\"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 containerclusters. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"container.cnrm.cloud.google.com\",\"kind\":\"ContainerClusterList\",\"version\":\"v1beta1\"}]},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\":{\"description\":\"CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"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/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning 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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"},\"status\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"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\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"default\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}},\"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\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}}},\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv2/dataproc_v1beta1_dataprocworkflowtemplate.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.27.0\"},\"paths\":{\"/apis/dataproc.cnrm.cloud.google.com/v1beta1/dataprocworkflowtemplates\":{\"get\":{\"description\":\"list objects of kind DataprocWorkflowTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dataprocCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listDataprocCnrmCloudGoogleComV1beta1DataprocWorkflowTemplateForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplateList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"dataproc.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DataprocWorkflowTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/dataproc.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/dataprocworkflowtemplates\":{\"get\":{\"description\":\"list objects of kind DataprocWorkflowTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dataprocCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listDataprocCnrmCloudGoogleComV1beta1NamespacedDataprocWorkflowTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplateList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"dataproc.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DataprocWorkflowTemplate\"}},\"post\":{\"description\":\"create a DataprocWorkflowTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dataprocCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"createDataprocCnrmCloudGoogleComV1beta1NamespacedDataprocWorkflowTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"dataproc.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DataprocWorkflowTemplate\"}},\"delete\":{\"description\":\"delete collection of DataprocWorkflowTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dataprocCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteDataprocCnrmCloudGoogleComV1beta1CollectionNamespacedDataprocWorkflowTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"dataproc.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DataprocWorkflowTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/dataproc.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/dataprocworkflowtemplates/{name}\":{\"get\":{\"description\":\"read the specified DataprocWorkflowTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dataprocCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readDataprocCnrmCloudGoogleComV1beta1NamespacedDataprocWorkflowTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"dataproc.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DataprocWorkflowTemplate\"}},\"put\":{\"description\":\"replace the specified DataprocWorkflowTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dataprocCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceDataprocCnrmCloudGoogleComV1beta1NamespacedDataprocWorkflowTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"dataproc.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DataprocWorkflowTemplate\"}},\"delete\":{\"description\":\"delete a DataprocWorkflowTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dataprocCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteDataprocCnrmCloudGoogleComV1beta1NamespacedDataprocWorkflowTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"dataproc.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DataprocWorkflowTemplate\"}},\"patch\":{\"description\":\"partially update the specified DataprocWorkflowTemplate\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dataprocCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchDataprocCnrmCloudGoogleComV1beta1NamespacedDataprocWorkflowTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"dataproc.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DataprocWorkflowTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DataprocWorkflowTemplate\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/dataproc.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/dataprocworkflowtemplates/{name}/status\":{\"get\":{\"description\":\"read status of the specified DataprocWorkflowTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dataprocCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readDataprocCnrmCloudGoogleComV1beta1NamespacedDataprocWorkflowTemplateStatus\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"dataproc.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DataprocWorkflowTemplate\"}},\"put\":{\"description\":\"replace status of the specified DataprocWorkflowTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dataprocCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceDataprocCnrmCloudGoogleComV1beta1NamespacedDataprocWorkflowTemplateStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"dataproc.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DataprocWorkflowTemplate\"}},\"patch\":{\"description\":\"partially update status of the specified DataprocWorkflowTemplate\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dataprocCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchDataprocCnrmCloudGoogleComV1beta1NamespacedDataprocWorkflowTemplateStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"dataproc.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DataprocWorkflowTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DataprocWorkflowTemplate\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]}},\"definitions\":{\"com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\":{\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"type\":\"object\",\"properties\":{\"dagTimeout\":{\"description\":\"Immutable. Optional. Timeout duration for the DAG of jobs, expressed in seconds (see [JSON representation of duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). The timeout duration must be from 10 minutes (\\\"600s\\\") to 24 hours (\\\"86400s\\\"). The timer begins when the first job is submitted. If the workflow is running at the end of the timeout period, any remaining jobs are cancelled, the workflow is ended, and if the workflow was running on a [managed cluster](/dataproc/docs/concepts/workflows/using-workflows#configuring_or_selecting_a_cluster), the cluster is deleted.\",\"type\":\"string\"},\"jobs\":{\"description\":\"Immutable. Required. The Directed Acyclic Graph of Jobs to submit.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"hadoopJob\":{\"description\":\"Immutable. Optional. Job is a Hadoop job.\",\"type\":\"object\",\"properties\":{\"archiveUris\":{\"description\":\"Immutable. Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"args\":{\"description\":\"Immutable. Optional. The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"fileUris\":{\"description\":\"Immutable. Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"jarFileUris\":{\"description\":\"Immutable. Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"mainClass\":{\"description\":\"Immutable. The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.\",\"type\":\"string\"},\"mainJarFileUri\":{\"description\":\"Immutable. The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'\",\"type\":\"string\"},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"hiveJob\":{\"description\":\"Immutable. Optional. Job is a Hive job.\",\"type\":\"object\",\"properties\":{\"continueOnFailure\":{\"description\":\"Immutable. Optional. Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.\",\"type\":\"boolean\"},\"jarFileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"queryFileUri\":{\"description\":\"Immutable. The HCFS URI of the script that contains Hive queries.\",\"type\":\"string\"},\"queryList\":{\"description\":\"Immutable. A list of queries.\",\"type\":\"object\",\"properties\":{\"queries\":{\"description\":\"Immutable. Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \\\"hiveJob\\\": { \\\"queryList\\\": { \\\"queries\\\": [ \\\"query1\\\", \\\"query2\\\", \\\"query3;query4\\\", ] } }\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"scriptVariables\":{\"description\":\"Immutable. Optional. Mapping of query variable names to values (equivalent to the Hive command: `SET name=\\\"value\\\";`).\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"labels\":{\"description\":\"Immutable. Optional. The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: p{Ll}p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [p{Ll}p{Lo}p{N}_-]{0,63} No more than 32 labels can be associated with a given job.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"pigJob\":{\"description\":\"Immutable. Optional. Job is a Pig job.\",\"type\":\"object\",\"properties\":{\"continueOnFailure\":{\"description\":\"Immutable. Optional. Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.\",\"type\":\"boolean\"},\"jarFileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"queryFileUri\":{\"description\":\"Immutable. The HCFS URI of the script that contains the Pig queries.\",\"type\":\"string\"},\"queryList\":{\"description\":\"Immutable. A list of queries.\",\"type\":\"object\",\"properties\":{\"queries\":{\"description\":\"Immutable. Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \\\"hiveJob\\\": { \\\"queryList\\\": { \\\"queries\\\": [ \\\"query1\\\", \\\"query2\\\", \\\"query3;query4\\\", ] } }\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"scriptVariables\":{\"description\":\"Immutable. Optional. Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"prerequisiteStepIds\":{\"description\":\"Immutable. Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"prestoJob\":{\"description\":\"Immutable. Optional. Job is a Presto job.\",\"type\":\"object\",\"properties\":{\"clientTags\":{\"description\":\"Immutable. Optional. Presto client tags to attach to this query\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"continueOnFailure\":{\"description\":\"Immutable. Optional. Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.\",\"type\":\"boolean\"},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"outputFormat\":{\"description\":\"Immutable. Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats\",\"type\":\"string\"},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values. Used to set Presto [session properties](https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"queryFileUri\":{\"description\":\"Immutable. The HCFS URI of the script that contains SQL queries.\",\"type\":\"string\"},\"queryList\":{\"description\":\"Immutable. A list of queries.\",\"type\":\"object\",\"properties\":{\"queries\":{\"description\":\"Immutable. Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \\\"hiveJob\\\": { \\\"queryList\\\": { \\\"queries\\\": [ \\\"query1\\\", \\\"query2\\\", \\\"query3;query4\\\", ] } }\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"pysparkJob\":{\"description\":\"Immutable. Optional. Job is a PySpark job.\",\"type\":\"object\",\"properties\":{\"archiveUris\":{\"description\":\"Immutable. Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"args\":{\"description\":\"Immutable. Optional. The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"fileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"jarFileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"mainPythonFileUri\":{\"description\":\"Immutable. Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.\",\"type\":\"string\"},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"pythonFileUris\":{\"description\":\"Immutable. Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"scheduling\":{\"description\":\"Immutable. Optional. Job scheduling configuration.\",\"type\":\"object\",\"properties\":{\"maxFailuresPerHour\":{\"description\":\"Immutable. Optional. Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window. Maximum value is 10.\",\"type\":\"integer\"},\"maxFailuresTotal\":{\"description\":\"Immutable. Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240.\",\"type\":\"integer\"}}},\"sparkJob\":{\"description\":\"Immutable. Optional. Job is a Spark job.\",\"type\":\"object\",\"properties\":{\"archiveUris\":{\"description\":\"Immutable. Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"args\":{\"description\":\"Immutable. Optional. The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"fileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"jarFileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"mainClass\":{\"description\":\"Immutable. The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.\",\"type\":\"string\"},\"mainJarFileUri\":{\"description\":\"Immutable. The HCFS URI of the jar file that contains the main class.\",\"type\":\"string\"},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"sparkRJob\":{\"description\":\"Immutable. Optional. Job is a SparkR job.\",\"type\":\"object\",\"properties\":{\"archiveUris\":{\"description\":\"Immutable. Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"args\":{\"description\":\"Immutable. Optional. The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"fileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"mainRFileUri\":{\"description\":\"Immutable. Required. The HCFS URI of the main R file to use as the driver. Must be a .R file.\",\"type\":\"string\"},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"sparkSqlJob\":{\"description\":\"Immutable. Optional. Job is a SparkSql job.\",\"type\":\"object\",\"properties\":{\"jarFileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"queryFileUri\":{\"description\":\"Immutable. The HCFS URI of the script that contains SQL queries.\",\"type\":\"string\"},\"queryList\":{\"description\":\"Immutable. A list of queries.\",\"type\":\"object\",\"properties\":{\"queries\":{\"description\":\"Immutable. Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \\\"hiveJob\\\": { \\\"queryList\\\": { \\\"queries\\\": [ \\\"query1\\\", \\\"query2\\\", \\\"query3;query4\\\", ] } }\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"scriptVariables\":{\"description\":\"Immutable. Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name=\\\"value\\\";`).\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"stepId\":{\"description\":\"Immutable. Required. The step id. The id must be unique among all jobs within the template. The step id is used as prefix for job id, as job `goog-dataproc-workflow-step-id` label, and in prerequisiteStepIds field from other steps. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of between 3 and 50 characters.\",\"type\":\"string\"}}}},\"location\":{\"description\":\"Immutable. The location for the resource\",\"type\":\"string\"},\"parameters\":{\"description\":\"Immutable. Optional. Template parameters whose values are substituted into the template. Values for parameters must be provided when the template is instantiated.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"description\":{\"description\":\"Immutable. Optional. Brief description of the parameter. Must not exceed 1024 characters.\",\"type\":\"string\"},\"fields\":{\"description\":\"Immutable. Required. Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter's list of field paths. A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template's cluster selector would be specified as `placement.clusterSelector.zone`. Also, field paths can reference fields using the following syntax: * Values in maps can be referenced by key: * labels['key'] * placement.clusterSelector.clusterLabels['key'] * placement.managedCluster.labels['key'] * placement.clusterSelector.clusterLabels['key'] * jobs['step-id'].labels['key'] * Jobs in the jobs list can be referenced by step-id: * jobs['step-id'].hadoopJob.mainJarFileUri * jobs['step-id'].hiveJob.queryFileUri * jobs['step-id'].pySparkJob.mainPythonFileUri * jobs['step-id'].hadoopJob.jarFileUris[0] * jobs['step-id'].hadoopJob.archiveUris[0] * jobs['step-id'].hadoopJob.fileUris[0] * jobs['step-id'].pySparkJob.pythonFileUris[0] * Items in repeated fields can be referenced by a zero-based index: * jobs['step-id'].sparkJob.args[0] * Other examples: * jobs['step-id'].hadoopJob.properties['key'] * jobs['step-id'].hadoopJob.args[0] * jobs['step-id'].hiveJob.scriptVariables['key'] * jobs['step-id'].hadoopJob.mainJarFileUri * placement.clusterSelector.zone It may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: - placement.clusterSelector.clusterLabels - jobs['step-id'].sparkJob.args\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"name\":{\"description\":\"Immutable. Required. Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters.\",\"type\":\"string\"},\"validation\":{\"description\":\"Immutable. Optional. Validation rules to be applied to this parameter's value.\",\"type\":\"object\",\"properties\":{\"regex\":{\"description\":\"Immutable. Validation based on regular expressions.\",\"type\":\"object\",\"properties\":{\"regexes\":{\"description\":\"Immutable. Required. RE2 regular expressions used to validate the parameter's value. The value must match the regex in its entirety (substring matches are not sufficient).\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"values\":{\"description\":\"Immutable. Validation based on a list of allowed values.\",\"type\":\"object\",\"properties\":{\"values\":{\"description\":\"Immutable. Required. List of allowed values for the parameter.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}}}}},\"placement\":{\"description\":\"Immutable. Required. WorkflowTemplate scheduling information.\",\"type\":\"object\",\"properties\":{\"clusterSelector\":{\"description\":\"Immutable. Optional. A selector that chooses target cluster for jobs based on metadata. The selector is evaluated at the time each job is submitted.\",\"type\":\"object\",\"properties\":{\"clusterLabels\":{\"description\":\"Immutable. Required. The cluster labels. Cluster must have all labels to match.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"zone\":{\"description\":\"Immutable. Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster. If unspecified, the zone of the first cluster matching the selector is used.\",\"type\":\"string\"}}},\"managedCluster\":{\"description\":\"Immutable. A cluster that is managed by the workflow.\",\"type\":\"object\",\"properties\":{\"clusterName\":{\"description\":\"Immutable. Required. The cluster name prefix. A unique cluster name will be formed by appending a random suffix. The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters.\",\"type\":\"string\"},\"config\":{\"description\":\"Immutable. Required. The cluster configuration.\",\"type\":\"object\",\"properties\":{\"autoscalingConfig\":{\"description\":\"Immutable. Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset.\",\"type\":\"object\",\"properties\":{\"policyRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Optional. The autoscaling policy used by the cluster. Only resource names including projectid and location (region) are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]` * `projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]` Note that the policy must be in the same project and Dataproc region.\\n\\nAllowed value: The Google Cloud resource name of a `DataprocAutoscalingPolicy` resource (format: `projects/{{project}}/locations/{{location}}/autoscalingPolicies/{{name}}`).\",\"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\"}}}}},\"encryptionConfig\":{\"description\":\"Immutable. Optional. Encryption settings for the cluster.\",\"type\":\"object\",\"properties\":{\"gcePdKmsKeyRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.\\n\\nAllowed value: The `selfLink` field of a `KMSCryptoKey` resource.\",\"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\"}}}}},\"endpointConfig\":{\"description\":\"Immutable. Optional. Port/endpoint configuration for this cluster\",\"type\":\"object\",\"properties\":{\"enableHttpPortAccess\":{\"description\":\"Immutable. Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false.\",\"type\":\"boolean\"}}},\"gceClusterConfig\":{\"description\":\"Immutable. Optional. The shared Compute Engine config settings for all instances in a cluster.\",\"type\":\"object\",\"properties\":{\"internalIPOnly\":{\"description\":\"Immutable. Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This `internal_ip_only` restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.\",\"type\":\"boolean\"},\"metadata\":{\"description\":\"Immutable. The Compute Engine metadata entries to add to all instances (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"networkRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither `network_uri` nor `subnetwork_uri` is specified, the \\\"default\\\" network of the project is used, if it exists. Cannot be a \\\"Custom Subnet Network\\\" (see [Using Subnetworks](https://cloud.google.com/compute/docs/subnetworks) for more information). A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default` * `projects/[project_id]/regions/global/default` * `default`\\n\\nAllowed value: The `selfLink` field of a `ComputeNetwork` resource.\",\"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\"}}},\"nodeGroupAffinity\":{\"description\":\"Immutable. Optional. Node Group Affinity for sole-tenant clusters.\",\"type\":\"object\",\"properties\":{\"nodeGroupRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The URI of a sole-tenant [node group resource](https://cloud.google.com/compute/docs/reference/rest/v1/nodeGroups) that the cluster will be created on. A full URL, partial URI, or node group name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1` * `projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1` * `node-group-1`\\n\\nAllowed value: The `selfLink` field of a `ComputeNodeGroup` resource.\",\"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\"}}}}},\"privateIPv6GoogleAccess\":{\"description\":\"Immutable. Optional. The type of IPv6 access for a cluster. Possible values: PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED, INHERIT_FROM_SUBNETWORK, OUTBOUND, BIDIRECTIONAL\",\"type\":\"string\"},\"reservationAffinity\":{\"description\":\"Immutable. Optional. Reservation Affinity for consuming Zonal reservation.\",\"type\":\"object\",\"properties\":{\"consumeReservationType\":{\"description\":\"Immutable. Optional. Type of reservation to consume Possible values: TYPE_UNSPECIFIED, NO_RESERVATION, ANY_RESERVATION, SPECIFIC_RESERVATION\",\"type\":\"string\"},\"key\":{\"description\":\"Immutable. Optional. Corresponds to the label key of reservation resource.\",\"type\":\"string\"},\"values\":{\"description\":\"Immutable. Optional. Corresponds to the label values of reservation resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"serviceAccountRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Optional. The [Dataproc service account](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/service-accounts#service_accounts_in_dataproc) (also see [VM Data Plane identity](https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-principals#vm_service_account_data_plane_identity)) used by Dataproc cluster VM instances to access Google Cloud Platform services. If not specified, the [Compute Engine default service account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) is used.\\n\\nAllowed value: The `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"serviceAccountScopes\":{\"description\":\"Immutable. Optional. The URIs of service account scopes to be included in Compute Engine instances. The following base set of scopes is always included: * https://www.googleapis.com/auth/cloud.useraccounts.readonly * https://www.googleapis.com/auth/devstorage.read_write * https://www.googleapis.com/auth/logging.write If no scopes are specified, the following defaults are also provided: * https://www.googleapis.com/auth/bigquery * https://www.googleapis.com/auth/bigtable.admin.table * https://www.googleapis.com/auth/bigtable.data * https://www.googleapis.com/auth/devstorage.full_control\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"shieldedInstanceConfig\":{\"description\":\"Immutable. Optional. Shielded Instance Config for clusters using Compute Engine Shielded VMs.\",\"type\":\"object\",\"properties\":{\"enableIntegrityMonitoring\":{\"description\":\"Immutable. Optional. Defines whether instances have integrity monitoring enabled. Integrity monitoring compares the most recent boot measurements to the integrity policy baseline and returns a pair of pass/fail results depending on whether they match or not.\",\"type\":\"boolean\"},\"enableSecureBoot\":{\"description\":\"Immutable. Optional. Defines whether the instances have Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails.\",\"type\":\"boolean\"},\"enableVtpm\":{\"description\":\"Immutable. Optional. Defines whether the instance have the vTPM enabled. Virtual Trusted Platform Module protects objects like keys, certificates and enables Measured Boot by performing the measurements needed to create a known good boot baseline, called the integrity policy baseline.\",\"type\":\"boolean\"}}},\"subnetworkRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0` * `projects/[project_id]/regions/us-east1/subnetworks/sub0` * `sub0`\\n\\nAllowed value: The `selfLink` field of a `ComputeSubnetwork` resource.\",\"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\"}}},\"tags\":{\"description\":\"Immutable. The Compute Engine tags to add to all instances (see [Tagging instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"zone\":{\"description\":\"Immutable. Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the \\\"global\\\" region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding Compute Engine region. On a get request, zone will always be present. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]` * `projects/[project_id]/zones/[zone]` * `us-central1-f`\",\"type\":\"string\"}}},\"initializationActions\":{\"description\":\"Immutable. Optional. Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's `role` metadata to run an executable on a master or worker node, as shown below using `curl` (you can also use `wget`): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role) if [[ \\\"${ROLE}\\\" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"executableFile\":{\"description\":\"Immutable. Required. Cloud Storage URI of executable file.\",\"type\":\"string\"},\"executionTimeout\":{\"description\":\"Immutable. Optional. Amount of time executable has to complete. Default is 10 minutes (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.\",\"type\":\"string\"}}}},\"lifecycleConfig\":{\"description\":\"Immutable. Optional. Lifecycle setting for the cluster.\",\"type\":\"object\",\"properties\":{\"autoDeleteTime\":{\"description\":\"Immutable. Optional. The time when cluster will be auto-deleted (see JSON representation of [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).\",\"type\":\"string\"},\"autoDeleteTtl\":{\"description\":\"Immutable. Optional. The lifetime duration of cluster. The cluster will be auto-deleted at the end of this period. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).\",\"type\":\"string\"},\"idleDeleteTtl\":{\"description\":\"Immutable. Optional. The duration to keep the cluster alive while idling (when no jobs are running). Passing this threshold will cause the cluster to be deleted. Minimum value is 5 minutes; maximum value is 14 days (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).\",\"type\":\"string\"}}},\"masterConfig\":{\"description\":\"Immutable. Optional. The Compute Engine config settings for the master instance in a cluster.\",\"type\":\"object\",\"properties\":{\"accelerators\":{\"description\":\"Immutable. Optional. The Compute Engine accelerator configuration for these instances.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"acceleratorCount\":{\"description\":\"Immutable. The number of the accelerator cards of this type exposed to this instance.\",\"type\":\"integer\"},\"acceleratorType\":{\"description\":\"Immutable. Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `nvidia-tesla-k80` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.\",\"type\":\"string\"}}}},\"diskConfig\":{\"description\":\"Immutable. Optional. Disk option config settings.\",\"type\":\"object\",\"properties\":{\"bootDiskSizeGb\":{\"description\":\"Immutable. Optional. Size in GB of the boot disk (default is 500GB).\",\"type\":\"integer\"},\"bootDiskType\":{\"description\":\"Immutable. Optional. Type of the boot disk (default is \\\"pd-standard\\\"). Valid values: \\\"pd-balanced\\\" (Persistent Disk Balanced Solid State Drive), \\\"pd-ssd\\\" (Persistent Disk Solid State Drive), or \\\"pd-standard\\\" (Persistent Disk Hard Disk Drive). See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).\",\"type\":\"string\"},\"numLocalSsds\":{\"description\":\"Immutable. Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.\",\"type\":\"integer\"}}},\"imageRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id]` * `projects/[project_id]/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name]` * `projects/[project_id]/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.\\n\\nAllowed value: The `selfLink` field of a `ComputeImage` resource.\",\"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\"}}},\"machineType\":{\"description\":\"Immutable. Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.\",\"type\":\"string\"},\"minCpuPlatform\":{\"description\":\"Immutable. Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc -\\u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).\",\"type\":\"string\"},\"numInstances\":{\"description\":\"Immutable. Optional. The number of VM instances in the instance group. For [HA cluster](/dataproc/docs/concepts/configuring-clusters/high-availability) [master_config](#FIELDS.master_config) groups, **must be set to 3**. For standard cluster [master_config](#FIELDS.master_config) groups, **must be set to 1**.\",\"type\":\"integer\"},\"preemptibility\":{\"description\":\"Immutable. Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE\",\"type\":\"string\"}}},\"secondaryWorkerConfig\":{\"description\":\"Immutable. Optional. The Compute Engine config settings for additional worker instances in a cluster.\",\"type\":\"object\",\"properties\":{\"accelerators\":{\"description\":\"Immutable. Optional. The Compute Engine accelerator configuration for these instances.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"acceleratorCount\":{\"description\":\"Immutable. The number of the accelerator cards of this type exposed to this instance.\",\"type\":\"integer\"},\"acceleratorType\":{\"description\":\"Immutable. Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `nvidia-tesla-k80` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.\",\"type\":\"string\"}}}},\"diskConfig\":{\"description\":\"Immutable. Optional. Disk option config settings.\",\"type\":\"object\",\"properties\":{\"bootDiskSizeGb\":{\"description\":\"Immutable. Optional. Size in GB of the boot disk (default is 500GB).\",\"type\":\"integer\"},\"bootDiskType\":{\"description\":\"Immutable. Optional. Type of the boot disk (default is \\\"pd-standard\\\"). Valid values: \\\"pd-balanced\\\" (Persistent Disk Balanced Solid State Drive), \\\"pd-ssd\\\" (Persistent Disk Solid State Drive), or \\\"pd-standard\\\" (Persistent Disk Hard Disk Drive). See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).\",\"type\":\"string\"},\"numLocalSsds\":{\"description\":\"Immutable. Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.\",\"type\":\"integer\"}}},\"imageRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id]` * `projects/[project_id]/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name]` * `projects/[project_id]/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.\\n\\nAllowed value: The `selfLink` field of a `ComputeImage` resource.\",\"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\"}}},\"machineType\":{\"description\":\"Immutable. Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.\",\"type\":\"string\"},\"minCpuPlatform\":{\"description\":\"Immutable. Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc -\\u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).\",\"type\":\"string\"},\"numInstances\":{\"description\":\"Immutable. Optional. The number of VM instances in the instance group. For [HA cluster](/dataproc/docs/concepts/configuring-clusters/high-availability) [master_config](#FIELDS.master_config) groups, **must be set to 3**. For standard cluster [master_config](#FIELDS.master_config) groups, **must be set to 1**.\",\"type\":\"integer\"},\"preemptibility\":{\"description\":\"Immutable. Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE\",\"type\":\"string\"}}},\"securityConfig\":{\"description\":\"Immutable. Optional. Security settings for the cluster.\",\"type\":\"object\",\"properties\":{\"kerberosConfig\":{\"description\":\"Immutable. Optional. Kerberos related configuration.\",\"type\":\"object\",\"properties\":{\"crossRealmTrustAdminServer\":{\"description\":\"Immutable. Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.\",\"type\":\"string\"},\"crossRealmTrustKdc\":{\"description\":\"Immutable. Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.\",\"type\":\"string\"},\"crossRealmTrustRealm\":{\"description\":\"Immutable. Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.\",\"type\":\"string\"},\"crossRealmTrustSharedPassword\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of a KMS encrypted file containing the shared password between the on-cluster Kerberos realm and the remote trusted realm, in a cross realm trust relationship.\",\"type\":\"string\"},\"enableKerberos\":{\"description\":\"Immutable. Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster.\",\"type\":\"boolean\"},\"kdcDbKey\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.\",\"type\":\"string\"},\"keyPassword\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided key. For the self-signed certificate, this password is generated by Dataproc.\",\"type\":\"string\"},\"keystore\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.\",\"type\":\"string\"},\"keystorePassword\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided keystore. For the self-signed certificate, this password is generated by Dataproc.\",\"type\":\"string\"},\"kmsKeyRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Optional. The uri of the KMS key used to encrypt various sensitive files.\\n\\nAllowed value: The `selfLink` field of a `KMSCryptoKey` resource.\",\"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\"}}},\"realm\":{\"description\":\"Immutable. Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.\",\"type\":\"string\"},\"rootPrincipalPassword\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password.\",\"type\":\"string\"},\"tgtLifetimeHours\":{\"description\":\"Immutable. Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used.\",\"type\":\"integer\"},\"truststore\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.\",\"type\":\"string\"},\"truststorePassword\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided truststore. For the self-signed certificate, this password is generated by Dataproc.\",\"type\":\"string\"}}}}},\"softwareConfig\":{\"description\":\"Immutable. Optional. The config settings for software inside the cluster.\",\"type\":\"object\",\"properties\":{\"imageVersion\":{\"description\":\"Immutable. Optional. The version of software inside the cluster. It must be one of the supported [Dataproc Versions](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as \\\"1.2\\\" (including a subminor version, such as \\\"1.2.29\\\"), or the [\\\"preview\\\" version](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version.\",\"type\":\"string\"},\"optionalComponents\":{\"description\":\"Immutable. Optional. The set of components to activate on the cluster.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"properties\":{\"description\":\"Immutable. Optional. The properties to set on daemon config files. Property keys are specified in `prefix:property` format, for example `core:hadoop.tmp.dir`. The following are supported prefixes and their mappings: * capacity-scheduler: `capacity-scheduler.xml` * core: `core-site.xml` * distcp: `distcp-default.xml` * hdfs: `hdfs-site.xml` * hive: `hive-site.xml` * mapred: `mapred-site.xml` * pig: `pig.properties` * spark: `spark-defaults.conf` * yarn: `yarn-site.xml` For more information, see [Cluster properties](https://cloud.google.com/dataproc/docs/concepts/cluster-properties).\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"stagingBucketRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Optional. A Cloud Storage bucket used to stage job dependencies, config files, and job driver console output. If you do not specify a staging bucket, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket (see [Dataproc staging bucket](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). **This field requires a Cloud Storage bucket name, not a URI to a Cloud Storage bucket.**\\n\\nAllowed value: The Google Cloud resource name of a `StorageBucket` resource (format: `{{name}}`).\",\"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\"}}},\"tempBucketRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Optional. A Cloud Storage bucket used to store ephemeral cluster and jobs data, such as Spark and MapReduce history files. If you do not specify a temp bucket, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's temp bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket. The default bucket has a TTL of 90 days, but you can use any TTL (or none) if you specify a bucket. **This field requires a Cloud Storage bucket name, not a URI to a Cloud Storage bucket.**\\n\\nAllowed value: The Google Cloud resource name of a `StorageBucket` resource (format: `{{name}}`).\",\"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\"}}},\"workerConfig\":{\"description\":\"Immutable. Optional. The Compute Engine config settings for worker instances in a cluster.\",\"type\":\"object\",\"properties\":{\"accelerators\":{\"description\":\"Immutable. Optional. The Compute Engine accelerator configuration for these instances.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"acceleratorCount\":{\"description\":\"Immutable. The number of the accelerator cards of this type exposed to this instance.\",\"type\":\"integer\"},\"acceleratorType\":{\"description\":\"Immutable. Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `nvidia-tesla-k80` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.\",\"type\":\"string\"}}}},\"diskConfig\":{\"description\":\"Immutable. Optional. Disk option config settings.\",\"type\":\"object\",\"properties\":{\"bootDiskSizeGb\":{\"description\":\"Immutable. Optional. Size in GB of the boot disk (default is 500GB).\",\"type\":\"integer\"},\"bootDiskType\":{\"description\":\"Immutable. Optional. Type of the boot disk (default is \\\"pd-standard\\\"). Valid values: \\\"pd-balanced\\\" (Persistent Disk Balanced Solid State Drive), \\\"pd-ssd\\\" (Persistent Disk Solid State Drive), or \\\"pd-standard\\\" (Persistent Disk Hard Disk Drive). See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).\",\"type\":\"string\"},\"numLocalSsds\":{\"description\":\"Immutable. Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.\",\"type\":\"integer\"}}},\"imageRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id]` * `projects/[project_id]/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name]` * `projects/[project_id]/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.\\n\\nAllowed value: The `selfLink` field of a `ComputeImage` resource.\",\"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\"}}},\"machineType\":{\"description\":\"Immutable. Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.\",\"type\":\"string\"},\"minCpuPlatform\":{\"description\":\"Immutable. Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc -\\u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).\",\"type\":\"string\"},\"numInstances\":{\"description\":\"Immutable. Optional. The number of VM instances in the instance group. For [HA cluster](/dataproc/docs/concepts/configuring-clusters/high-availability) [master_config](#FIELDS.master_config) groups, **must be set to 3**. For standard cluster [master_config](#FIELDS.master_config) groups, **must be set to 1**.\",\"type\":\"integer\"},\"preemptibility\":{\"description\":\"Immutable. Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE\",\"type\":\"string\"}}}}},\"labels\":{\"description\":\"Immutable. Optional. The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: p{Ll}p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: [p{Ll}p{Lo}p{N}_-]{0,63} No more than 32 labels can be associated with a given cluster.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}}}},\"projectRef\":{\"description\":\"Immutable. The Project that this resource belongs to.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"The project for the resource\\n\\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"createTime\":{\"description\":\"Output only. The time template was created.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"placement\":{\"type\":\"object\",\"properties\":{\"managedCluster\":{\"type\":\"object\",\"properties\":{\"config\":{\"type\":\"object\",\"properties\":{\"endpointConfig\":{\"type\":\"object\",\"properties\":{\"httpPorts\":{\"description\":\"Output only. The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"lifecycleConfig\":{\"type\":\"object\",\"properties\":{\"idleStartTime\":{\"description\":\"Output only. The time when cluster became idle (most recent job finished) and became eligible for deletion due to idleness (see JSON representation of [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).\",\"type\":\"string\"}}},\"masterConfig\":{\"type\":\"object\",\"properties\":{\"instanceNames\":{\"description\":\"Output only. The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"isPreemptible\":{\"description\":\"Output only. Specifies that this instance group contains preemptible instances.\",\"type\":\"boolean\"},\"managedGroupConfig\":{\"description\":\"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.\",\"type\":\"object\",\"properties\":{\"instanceGroupManagerName\":{\"description\":\"Output only. The name of the Instance Group Manager for this group.\",\"type\":\"string\"},\"instanceTemplateName\":{\"description\":\"Output only. The name of the Instance Template used for the Managed Instance Group.\",\"type\":\"string\"}}}}},\"secondaryWorkerConfig\":{\"type\":\"object\",\"properties\":{\"instanceNames\":{\"description\":\"Output only. The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"isPreemptible\":{\"description\":\"Output only. Specifies that this instance group contains preemptible instances.\",\"type\":\"boolean\"},\"managedGroupConfig\":{\"description\":\"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.\",\"type\":\"object\",\"properties\":{\"instanceGroupManagerName\":{\"description\":\"Output only. The name of the Instance Group Manager for this group.\",\"type\":\"string\"},\"instanceTemplateName\":{\"description\":\"Output only. The name of the Instance Template used for the Managed Instance Group.\",\"type\":\"string\"}}}}},\"workerConfig\":{\"type\":\"object\",\"properties\":{\"instanceNames\":{\"description\":\"Output only. The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"isPreemptible\":{\"description\":\"Output only. Specifies that this instance group contains preemptible instances.\",\"type\":\"boolean\"},\"managedGroupConfig\":{\"description\":\"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.\",\"type\":\"object\",\"properties\":{\"instanceGroupManagerName\":{\"description\":\"Output only. The name of the Instance Group Manager for this group.\",\"type\":\"string\"},\"instanceTemplateName\":{\"description\":\"Output only. The name of the Instance Template used for the Managed Instance Group.\",\"type\":\"string\"}}}}}}}}}}},\"updateTime\":{\"description\":\"Output only. The time template was last updated.\",\"type\":\"string\"},\"version\":{\"description\":\"Output only. The current version of this workflow template.\",\"type\":\"integer\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"dataproc.cnrm.cloud.google.com\",\"kind\":\"DataprocWorkflowTemplate\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplateList\":{\"description\":\"DataprocWorkflowTemplateList is a list of DataprocWorkflowTemplate\",\"required\":[\"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 dataprocworkflowtemplates. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"dataproc.cnrm.cloud.google.com\",\"kind\":\"DataprocWorkflowTemplateList\",\"version\":\"v1beta1\"}]},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\":{\"description\":\"CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"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/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning 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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"},\"status\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"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\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"default\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}},\"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\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}}},\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv2/dlp_v1beta1_dlpdeidentifytemplate.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.27.0\"},\"paths\":{\"/apis/dlp.cnrm.cloud.google.com/v1beta1/dlpdeidentifytemplates\":{\"get\":{\"description\":\"list objects of kind DLPDeidentifyTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dlpCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listDlpCnrmCloudGoogleComV1beta1DLPDeidentifyTemplateForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplateList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"dlp.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DLPDeidentifyTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/dlp.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/dlpdeidentifytemplates\":{\"get\":{\"description\":\"list objects of kind DLPDeidentifyTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dlpCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listDlpCnrmCloudGoogleComV1beta1NamespacedDLPDeidentifyTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplateList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"dlp.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DLPDeidentifyTemplate\"}},\"post\":{\"description\":\"create a DLPDeidentifyTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dlpCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"createDlpCnrmCloudGoogleComV1beta1NamespacedDLPDeidentifyTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"dlp.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DLPDeidentifyTemplate\"}},\"delete\":{\"description\":\"delete collection of DLPDeidentifyTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dlpCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteDlpCnrmCloudGoogleComV1beta1CollectionNamespacedDLPDeidentifyTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"dlp.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DLPDeidentifyTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/dlp.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/dlpdeidentifytemplates/{name}\":{\"get\":{\"description\":\"read the specified DLPDeidentifyTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dlpCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readDlpCnrmCloudGoogleComV1beta1NamespacedDLPDeidentifyTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"dlp.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DLPDeidentifyTemplate\"}},\"put\":{\"description\":\"replace the specified DLPDeidentifyTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dlpCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceDlpCnrmCloudGoogleComV1beta1NamespacedDLPDeidentifyTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"dlp.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DLPDeidentifyTemplate\"}},\"delete\":{\"description\":\"delete a DLPDeidentifyTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dlpCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteDlpCnrmCloudGoogleComV1beta1NamespacedDLPDeidentifyTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"dlp.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DLPDeidentifyTemplate\"}},\"patch\":{\"description\":\"partially update the specified DLPDeidentifyTemplate\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dlpCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchDlpCnrmCloudGoogleComV1beta1NamespacedDLPDeidentifyTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"dlp.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DLPDeidentifyTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DLPDeidentifyTemplate\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/dlp.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/dlpdeidentifytemplates/{name}/status\":{\"get\":{\"description\":\"read status of the specified DLPDeidentifyTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dlpCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readDlpCnrmCloudGoogleComV1beta1NamespacedDLPDeidentifyTemplateStatus\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"dlp.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DLPDeidentifyTemplate\"}},\"put\":{\"description\":\"replace status of the specified DLPDeidentifyTemplate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dlpCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceDlpCnrmCloudGoogleComV1beta1NamespacedDLPDeidentifyTemplateStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"dlp.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DLPDeidentifyTemplate\"}},\"patch\":{\"description\":\"partially update status of the specified DLPDeidentifyTemplate\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"dlpCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchDlpCnrmCloudGoogleComV1beta1NamespacedDLPDeidentifyTemplateStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"dlp.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"DLPDeidentifyTemplate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DLPDeidentifyTemplate\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]}},\"definitions\":{\"com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\":{\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"type\":\"object\",\"properties\":{\"deidentifyConfig\":{\"description\":\"The core content of the template.\",\"type\":\"object\",\"properties\":{\"infoTypeTransformations\":{\"description\":\"Treat the dataset as free-form text and apply the same free text transformation everywhere.\",\"type\":\"object\",\"properties\":{\"transformations\":{\"description\":\"Required. Transformation for each infoType. Cannot specify more than one for a given infoType.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"infoTypes\":{\"description\":\"InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}},\"primitiveTransformation\":{\"description\":\"Required. Primitive transformation to apply to the infoType.\",\"type\":\"object\",\"properties\":{\"bucketingConfig\":{\"description\":\"Bucketing\",\"type\":\"object\",\"properties\":{\"buckets\":{\"description\":\"Set of buckets. Ranges must be non-overlapping.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"max\":{\"description\":\"Upper bound of the range, exclusive; type must match min.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}},\"min\":{\"description\":\"Lower bound of the range, inclusive. Type should be the same as max if used.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}},\"replacementValue\":{\"description\":\"Required. Replacement value for this bucket.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}}}}}}},\"characterMaskConfig\":{\"description\":\"Mask\",\"type\":\"object\",\"properties\":{\"charactersToIgnore\":{\"description\":\"When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"charactersToSkip\":{\"description\":\"Characters to not transform when masking.\",\"type\":\"string\"},\"commonCharactersToIgnore\":{\"description\":\"Common characters to not transform when masking. Useful to avoid removing punctuation. Possible values: COMMON_CHARS_TO_IGNORE_UNSPECIFIED, NUMERIC, ALPHA_UPPER_CASE, ALPHA_LOWER_CASE, PUNCTUATION, WHITESPACE\",\"type\":\"string\"}}}},\"maskingCharacter\":{\"description\":\"Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.\",\"type\":\"string\"},\"numberToMask\":{\"description\":\"Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.\",\"type\":\"integer\"},\"reverseOrder\":{\"description\":\"Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.\",\"type\":\"boolean\"}}},\"cryptoDeterministicConfig\":{\"description\":\"Deterministic Crypto\",\"type\":\"object\",\"properties\":{\"context\":{\"description\":\"A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"surrogateInfoType\":{\"description\":\"The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}}},\"cryptoHashConfig\":{\"description\":\"Crypto\",\"type\":\"object\",\"properties\":{\"cryptoKey\":{\"description\":\"The key used by the hash function.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}}}},\"cryptoReplaceFfxFpeConfig\":{\"description\":\"Ffx-Fpe\",\"type\":\"object\",\"properties\":{\"commonAlphabet\":{\"description\":\"Common alphabets. Possible values: FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED, NUMERIC, HEXADECIMAL, UPPER_CASE_ALPHA_NUMERIC, ALPHA_NUMERIC\",\"type\":\"string\"},\"context\":{\"description\":\"The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"Required. The key used by the encryption algorithm.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"customAlphabet\":{\"description\":\"This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: ``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^\\u0026*()_-+={[}]|:;\\\"'\\u003c,\\u003e.?/``\",\"type\":\"string\"},\"radix\":{\"description\":\"The native way to select the alphabet. Must be in the range [2, 95].\",\"type\":\"integer\"},\"surrogateInfoType\":{\"description\":\"The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}}},\"dateShiftConfig\":{\"description\":\"Date Shift\",\"type\":\"object\",\"properties\":{\"context\":{\"description\":\"Points to the field that contains the context, for example, an entity id. If set, must also set cryptoKey. If set, shift will be consistent for the given context.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"lowerBoundDays\":{\"description\":\"Required. For example, -5 means shift date to at most 5 days back in the past.\",\"type\":\"integer\"},\"upperBoundDays\":{\"description\":\"Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.\",\"type\":\"integer\"}}},\"fixedSizeBucketingConfig\":{\"description\":\"Fixed size bucketing\",\"type\":\"object\",\"properties\":{\"bucketSize\":{\"description\":\"Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.\",\"type\":\"number\"},\"lowerBound\":{\"description\":\"Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value \\\"-10\\\".\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}},\"upperBound\":{\"description\":\"Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value \\\"89+\\\".\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}}}},\"redactConfig\":{\"description\":\"Redact\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"replaceConfig\":{\"description\":\"Replace with a specified value.\",\"type\":\"object\",\"properties\":{\"newValue\":{\"description\":\"Value to replace it with.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}}}},\"replaceWithInfoTypeConfig\":{\"description\":\"Replace with infotype\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"timePartConfig\":{\"description\":\"Time extraction\",\"type\":\"object\",\"properties\":{\"partToExtract\":{\"description\":\"The part of the time to keep. Possible values: TIME_PART_UNSPECIFIED, YEAR, MONTH, DAY_OF_MONTH, DAY_OF_WEEK, WEEK_OF_YEAR, HOUR_OF_DAY\",\"type\":\"string\"}}}}}}}}}},\"recordTransformations\":{\"description\":\"Treat the dataset as structured. Transformations can be applied to specific locations within structured datasets, such as transforming a column within a table.\",\"type\":\"object\",\"properties\":{\"fieldTransformations\":{\"description\":\"Transform the record by applying various field transformations.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"condition\":{\"description\":\"Only apply the transformation if the condition evaluates to true for the given `RecordCondition`. The conditions are allowed to reference fields that are not used in the actual transformation. Example Use Cases: - Apply a different bucket transformation to an age column if the zip code column for the same record is within a specific range. - Redact a field if the date of birth field is greater than 85.\",\"type\":\"object\",\"properties\":{\"expressions\":{\"description\":\"An expression.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions to apply to the expression.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"A collection of conditions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"description\":\"Required. Field within the record this condition is evaluated against.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"operator\":{\"description\":\"Required. Operator used to compare the field or infoType to the value. Possible values: LOGICAL_OPERATOR_UNSPECIFIED, AND\",\"type\":\"string\"},\"value\":{\"description\":\"Value to compare against. [Mandatory, except for `EXISTS` tests.]\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}}}}}}},\"logicalOperator\":{\"description\":\"The operator to apply to the result of conditions. Default and currently only supported value is `AND`. Possible values: LOGICAL_OPERATOR_UNSPECIFIED, AND\",\"type\":\"string\"}}}}},\"fields\":{\"description\":\"Required. Input field(s) to apply the transformation to. When you have columns that reference their position within a list, omit the index from the FieldId. FieldId name matching ignores the index. For example, instead of \\\"contact.nums[0].type\\\", use \\\"contact.nums.type\\\".\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}}},\"infoTypeTransformations\":{\"description\":\"Treat the contents of the field as free text, and selectively transform content that matches an `InfoType`.\",\"type\":\"object\",\"properties\":{\"transformations\":{\"description\":\"Required. Transformation for each infoType. Cannot specify more than one for a given infoType.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"infoTypes\":{\"description\":\"InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}},\"primitiveTransformation\":{\"description\":\"Required. Primitive transformation to apply to the infoType.\",\"type\":\"object\",\"properties\":{\"bucketingConfig\":{\"description\":\"Bucketing\",\"type\":\"object\",\"properties\":{\"buckets\":{\"description\":\"Set of buckets. Ranges must be non-overlapping.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"max\":{\"description\":\"Upper bound of the range, exclusive; type must match min.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}},\"min\":{\"description\":\"Lower bound of the range, inclusive. Type should be the same as max if used.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}},\"replacementValue\":{\"description\":\"Required. Replacement value for this bucket.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}}}}}}},\"characterMaskConfig\":{\"description\":\"Mask\",\"type\":\"object\",\"properties\":{\"charactersToIgnore\":{\"description\":\"When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"charactersToSkip\":{\"description\":\"Characters to not transform when masking.\",\"type\":\"string\"},\"commonCharactersToIgnore\":{\"description\":\"Common characters to not transform when masking. Useful to avoid removing punctuation. Possible values: COMMON_CHARS_TO_IGNORE_UNSPECIFIED, NUMERIC, ALPHA_UPPER_CASE, ALPHA_LOWER_CASE, PUNCTUATION, WHITESPACE\",\"type\":\"string\"}}}},\"maskingCharacter\":{\"description\":\"Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.\",\"type\":\"string\"},\"numberToMask\":{\"description\":\"Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.\",\"type\":\"integer\"},\"reverseOrder\":{\"description\":\"Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.\",\"type\":\"boolean\"}}},\"cryptoDeterministicConfig\":{\"description\":\"Deterministic Crypto\",\"type\":\"object\",\"properties\":{\"context\":{\"description\":\"A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"surrogateInfoType\":{\"description\":\"The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}}},\"cryptoHashConfig\":{\"description\":\"Crypto\",\"type\":\"object\",\"properties\":{\"cryptoKey\":{\"description\":\"The key used by the hash function.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}}}},\"cryptoReplaceFfxFpeConfig\":{\"description\":\"Ffx-Fpe\",\"type\":\"object\",\"properties\":{\"commonAlphabet\":{\"description\":\"Common alphabets. Possible values: FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED, NUMERIC, HEXADECIMAL, UPPER_CASE_ALPHA_NUMERIC, ALPHA_NUMERIC\",\"type\":\"string\"},\"context\":{\"description\":\"The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"Required. The key used by the encryption algorithm.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"customAlphabet\":{\"description\":\"This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: ``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^\\u0026*()_-+={[}]|:;\\\"'\\u003c,\\u003e.?/``\",\"type\":\"string\"},\"radix\":{\"description\":\"The native way to select the alphabet. Must be in the range [2, 95].\",\"type\":\"integer\"},\"surrogateInfoType\":{\"description\":\"The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}}},\"dateShiftConfig\":{\"description\":\"Date Shift\",\"type\":\"object\",\"properties\":{\"context\":{\"description\":\"Points to the field that contains the context, for example, an entity id. If set, must also set cryptoKey. If set, shift will be consistent for the given context.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"lowerBoundDays\":{\"description\":\"Required. For example, -5 means shift date to at most 5 days back in the past.\",\"type\":\"integer\"},\"upperBoundDays\":{\"description\":\"Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.\",\"type\":\"integer\"}}},\"fixedSizeBucketingConfig\":{\"description\":\"Fixed size bucketing\",\"type\":\"object\",\"properties\":{\"bucketSize\":{\"description\":\"Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.\",\"type\":\"number\"},\"lowerBound\":{\"description\":\"Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value \\\"-10\\\".\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}},\"upperBound\":{\"description\":\"Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value \\\"89+\\\".\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}}}},\"redactConfig\":{\"description\":\"Redact\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"replaceConfig\":{\"description\":\"Replace with a specified value.\",\"type\":\"object\",\"properties\":{\"newValue\":{\"description\":\"Value to replace it with.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}}}},\"replaceWithInfoTypeConfig\":{\"description\":\"Replace with infotype\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"timePartConfig\":{\"description\":\"Time extraction\",\"type\":\"object\",\"properties\":{\"partToExtract\":{\"description\":\"The part of the time to keep. Possible values: TIME_PART_UNSPECIFIED, YEAR, MONTH, DAY_OF_MONTH, DAY_OF_WEEK, WEEK_OF_YEAR, HOUR_OF_DAY\",\"type\":\"string\"}}}}}}}}}},\"primitiveTransformation\":{\"description\":\"Apply the transformation to the entire field.\",\"type\":\"object\",\"properties\":{\"bucketingConfig\":{\"description\":\"Bucketing\",\"type\":\"object\",\"properties\":{\"buckets\":{\"description\":\"Set of buckets. Ranges must be non-overlapping.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"max\":{\"description\":\"Upper bound of the range, exclusive; type must match min.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}},\"min\":{\"description\":\"Lower bound of the range, inclusive. Type should be the same as max if used.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}},\"replacementValue\":{\"description\":\"Required. Replacement value for this bucket.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}}}}}}},\"characterMaskConfig\":{\"description\":\"Mask\",\"type\":\"object\",\"properties\":{\"charactersToIgnore\":{\"description\":\"When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"charactersToSkip\":{\"description\":\"Characters to not transform when masking.\",\"type\":\"string\"},\"commonCharactersToIgnore\":{\"description\":\"Common characters to not transform when masking. Useful to avoid removing punctuation. Possible values: COMMON_CHARS_TO_IGNORE_UNSPECIFIED, NUMERIC, ALPHA_UPPER_CASE, ALPHA_LOWER_CASE, PUNCTUATION, WHITESPACE\",\"type\":\"string\"}}}},\"maskingCharacter\":{\"description\":\"Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.\",\"type\":\"string\"},\"numberToMask\":{\"description\":\"Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.\",\"type\":\"integer\"},\"reverseOrder\":{\"description\":\"Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.\",\"type\":\"boolean\"}}},\"cryptoDeterministicConfig\":{\"description\":\"Deterministic Crypto\",\"type\":\"object\",\"properties\":{\"context\":{\"description\":\"A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"surrogateInfoType\":{\"description\":\"The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}}},\"cryptoHashConfig\":{\"description\":\"Crypto\",\"type\":\"object\",\"properties\":{\"cryptoKey\":{\"description\":\"The key used by the hash function.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}}}},\"cryptoReplaceFfxFpeConfig\":{\"description\":\"Ffx-Fpe\",\"type\":\"object\",\"properties\":{\"commonAlphabet\":{\"description\":\"Common alphabets. Possible values: FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED, NUMERIC, HEXADECIMAL, UPPER_CASE_ALPHA_NUMERIC, ALPHA_NUMERIC\",\"type\":\"string\"},\"context\":{\"description\":\"The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"Required. The key used by the encryption algorithm.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"customAlphabet\":{\"description\":\"This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: ``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^\\u0026*()_-+={[}]|:;\\\"'\\u003c,\\u003e.?/``\",\"type\":\"string\"},\"radix\":{\"description\":\"The native way to select the alphabet. Must be in the range [2, 95].\",\"type\":\"integer\"},\"surrogateInfoType\":{\"description\":\"The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}}},\"dateShiftConfig\":{\"description\":\"Date Shift\",\"type\":\"object\",\"properties\":{\"context\":{\"description\":\"Points to the field that contains the context, for example, an entity id. If set, must also set cryptoKey. If set, shift will be consistent for the given context.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"lowerBoundDays\":{\"description\":\"Required. For example, -5 means shift date to at most 5 days back in the past.\",\"type\":\"integer\"},\"upperBoundDays\":{\"description\":\"Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.\",\"type\":\"integer\"}}},\"fixedSizeBucketingConfig\":{\"description\":\"Fixed size bucketing\",\"type\":\"object\",\"properties\":{\"bucketSize\":{\"description\":\"Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.\",\"type\":\"number\"},\"lowerBound\":{\"description\":\"Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value \\\"-10\\\".\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}},\"upperBound\":{\"description\":\"Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value \\\"89+\\\".\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}}}},\"redactConfig\":{\"description\":\"Redact\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"replaceConfig\":{\"description\":\"Replace with a specified value.\",\"type\":\"object\",\"properties\":{\"newValue\":{\"description\":\"Value to replace it with.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}}}},\"replaceWithInfoTypeConfig\":{\"description\":\"Replace with infotype\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"timePartConfig\":{\"description\":\"Time extraction\",\"type\":\"object\",\"properties\":{\"partToExtract\":{\"description\":\"The part of the time to keep. Possible values: TIME_PART_UNSPECIFIED, YEAR, MONTH, DAY_OF_MONTH, DAY_OF_WEEK, WEEK_OF_YEAR, HOUR_OF_DAY\",\"type\":\"string\"}}}}}}}},\"recordSuppressions\":{\"description\":\"Configuration defining which records get suppressed entirely. Records that match any suppression rule are omitted from the output.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"condition\":{\"description\":\"A condition that when it evaluates to true will result in the record being evaluated to be suppressed from the transformed content.\",\"type\":\"object\",\"properties\":{\"expressions\":{\"description\":\"An expression.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions to apply to the expression.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"A collection of conditions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"field\":{\"description\":\"Required. Field within the record this condition is evaluated against.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"operator\":{\"description\":\"Required. Operator used to compare the field or infoType to the value. Possible values: LOGICAL_OPERATOR_UNSPECIFIED, AND\",\"type\":\"string\"},\"value\":{\"description\":\"Value to compare against. [Mandatory, except for `EXISTS` tests.]\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\"}}}}}}}},\"logicalOperator\":{\"description\":\"The operator to apply to the result of conditions. Default and currently only supported value is `AND`. Possible values: LOGICAL_OPERATOR_UNSPECIFIED, AND\",\"type\":\"string\"}}}}}}}}}},\"transformationErrorHandling\":{\"description\":\"Mode for handling transformation errors. If left unspecified, the default mode is `TransformationErrorHandling.ThrowError`.\",\"type\":\"object\",\"properties\":{\"leaveUntransformed\":{\"description\":\"Ignore errors\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"throwError\":{\"description\":\"Throw an error\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true}}}}},\"description\":{\"description\":\"Short description (max 256 chars).\",\"type\":\"string\"},\"displayName\":{\"description\":\"Display name (max 256 chars).\",\"type\":\"string\"},\"location\":{\"description\":\"Immutable. The location of the resource\",\"type\":\"string\"},\"organizationRef\":{\"description\":\"Immutable. The Organization that this resource belongs to. Only one of [organizationRef, projectRef] may be specified.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The Google Cloud resource name of a Google Cloud Organization (format: `organizations/{{name}}`).\",\"type\":\"string\"},\"name\":{\"description\":\"[WARNING] Organization not yet supported in Config Connector, use 'external' field to reference existing resources.\\nName 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\"}}},\"projectRef\":{\"description\":\"Immutable. The Project that this resource belongs to. Only one of [organizationRef, projectRef] may be specified.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The service-generated name of the resource. Used for acquisition only. Leave unset to create a new resource.\",\"type\":\"string\"}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"createTime\":{\"description\":\"Output only. The creation timestamp of an inspectTemplate.\",\"type\":\"string\"},\"locationId\":{\"description\":\"Output only. The geographic location where this resource is stored.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"updateTime\":{\"description\":\"Output only. The last update timestamp of an inspectTemplate.\",\"type\":\"string\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"dlp.cnrm.cloud.google.com\",\"kind\":\"DLPDeidentifyTemplate\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplateList\":{\"description\":\"DLPDeidentifyTemplateList is a list of DLPDeidentifyTemplate\",\"required\":[\"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 dlpdeidentifytemplates. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"dlp.cnrm.cloud.google.com\",\"kind\":\"DLPDeidentifyTemplateList\",\"version\":\"v1beta1\"}]},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\":{\"description\":\"CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"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/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning 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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"},\"status\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"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\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"default\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}},\"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\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}}},\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv2/monitoring_v1beta1_monitoringalertpolicy.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.27.0\"},\"paths\":{\"/apis/monitoring.cnrm.cloud.google.com/v1beta1/monitoringalertpolicies\":{\"get\":{\"description\":\"list objects of kind MonitoringAlertPolicy\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listMonitoringCnrmCloudGoogleComV1beta1MonitoringAlertPolicyForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringAlertPolicy\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/monitoring.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/monitoringalertpolicies\":{\"get\":{\"description\":\"list objects of kind MonitoringAlertPolicy\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringAlertPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringAlertPolicy\"}},\"post\":{\"description\":\"create a MonitoringAlertPolicy\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"createMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringAlertPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringAlertPolicy\"}},\"delete\":{\"description\":\"delete collection of MonitoringAlertPolicy\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteMonitoringCnrmCloudGoogleComV1beta1CollectionNamespacedMonitoringAlertPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringAlertPolicy\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/monitoring.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/monitoringalertpolicies/{name}\":{\"get\":{\"description\":\"read the specified MonitoringAlertPolicy\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringAlertPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringAlertPolicy\"}},\"put\":{\"description\":\"replace the specified MonitoringAlertPolicy\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringAlertPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringAlertPolicy\"}},\"delete\":{\"description\":\"delete a MonitoringAlertPolicy\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringAlertPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringAlertPolicy\"}},\"patch\":{\"description\":\"partially update the specified MonitoringAlertPolicy\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringAlertPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringAlertPolicy\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the MonitoringAlertPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/monitoring.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/monitoringalertpolicies/{name}/status\":{\"get\":{\"description\":\"read status of the specified MonitoringAlertPolicy\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringAlertPolicyStatus\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringAlertPolicy\"}},\"put\":{\"description\":\"replace status of the specified MonitoringAlertPolicy\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringAlertPolicyStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringAlertPolicy\"}},\"patch\":{\"description\":\"partially update status of the specified MonitoringAlertPolicy\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringAlertPolicyStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringAlertPolicy\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the MonitoringAlertPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]}},\"definitions\":{\"com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\":{\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"type\":\"object\",\"properties\":{\"alertStrategy\":{\"description\":\"Control over how this alert policy's notification channels are notified.\",\"type\":\"object\",\"properties\":{\"autoClose\":{\"description\":\"If an alert policy that was active has no data for this long, any open incidents will close.\",\"type\":\"string\"},\"notificationRateLimit\":{\"description\":\"Required for alert policies with a LogMatch condition.\\nThis limit is not implemented for alert policies that are not log-based.\",\"type\":\"object\",\"properties\":{\"period\":{\"description\":\"Not more than one notification per period.\",\"type\":\"string\"}}}}},\"combiner\":{\"description\":\"How to combine the results of multiple conditions to\\ndetermine if an incident should be opened. Possible values: [\\\"AND\\\", \\\"OR\\\", \\\"AND_WITH_MATCHING_RESOURCE\\\"].\",\"type\":\"string\"},\"conditions\":{\"description\":\"A list of conditions for the policy. The conditions are combined by\\nAND or OR according to the combiner field. If the combined conditions\\nevaluate to true, then an incident is created. A policy can have from\\none to six conditions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"conditionAbsent\":{\"description\":\"A condition that checks that a time series\\ncontinues to receive new data points.\",\"type\":\"object\",\"properties\":{\"aggregations\":{\"description\":\"Specifies the alignment of data points in\\nindividual time series as well as how to\\ncombine the retrieved time series together\\n(such as when aggregating multiple streams\\non each resource to a single stream for each\\nresource or when aggregating streams across\\nall members of a group of resources).\\nMultiple aggregations are applied in the\\norder specified.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The alignment period for per-time\\nseries alignment. If present,\\nalignmentPeriod must be at least\\n60 seconds. After per-time series\\nalignment, each time series will\\ncontain data points only on the\\nperiod boundaries. If\\nperSeriesAligner is not specified\\nor equals ALIGN_NONE, then this\\nfield is ignored. If\\nperSeriesAligner is specified and\\ndoes not equal ALIGN_NONE, then\\nthis field must be defined;\\notherwise an error is returned.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The approach to be used to combine\\ntime series. Not all reducer\\nfunctions may be applied to all\\ntime series, depending on the\\nmetric type and the value type of\\nthe original time series.\\nReduction may change the metric\\ntype of value type of the time\\nseries.Time series data must be\\naligned in order to perform cross-\\ntime series reduction. If\\ncrossSeriesReducer is specified,\\nthen perSeriesAligner must be\\nspecified and not equal ALIGN_NONE\\nand alignmentPeriod must be\\nspecified; otherwise, an error is\\nreturned. Possible values: [\\\"REDUCE_NONE\\\", \\\"REDUCE_MEAN\\\", \\\"REDUCE_MIN\\\", \\\"REDUCE_MAX\\\", \\\"REDUCE_SUM\\\", \\\"REDUCE_STDDEV\\\", \\\"REDUCE_COUNT\\\", \\\"REDUCE_COUNT_TRUE\\\", \\\"REDUCE_COUNT_FALSE\\\", \\\"REDUCE_FRACTION_TRUE\\\", \\\"REDUCE_PERCENTILE_99\\\", \\\"REDUCE_PERCENTILE_95\\\", \\\"REDUCE_PERCENTILE_50\\\", \\\"REDUCE_PERCENTILE_05\\\"].\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when\\ncrossSeriesReducer is specified.\\nThe groupByFields determine how\\nthe time series are partitioned\\ninto subsets prior to applying the\\naggregation function. Each subset\\ncontains time series that have the\\nsame value for each of the\\ngrouping fields. Each individual\\ntime series is a member of exactly\\none subset. The crossSeriesReducer\\nis applied to each subset of time\\nseries. It is not possible to\\nreduce across different resource\\ntypes, so this field implicitly\\ncontains resource.type. Fields not\\nspecified in groupByFields are\\naggregated away. If groupByFields\\nis not specified and all the time\\nseries have the same resource\\ntype, then the time series are\\naggregated into a single output\\ntime series. If crossSeriesReducer\\nis not defined, this field is\\nignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"The approach to be used to align\\nindividual time series. Not all\\nalignment functions may be applied\\nto all time series, depending on\\nthe metric type and value type of\\nthe original time series.\\nAlignment may change the metric\\ntype or the value type of the time\\nseries.Time series data must be\\naligned in order to perform cross-\\ntime series reduction. If\\ncrossSeriesReducer is specified,\\nthen perSeriesAligner must be\\nspecified and not equal ALIGN_NONE\\nand alignmentPeriod must be\\nspecified; otherwise, an error is\\nreturned. Possible values: [\\\"ALIGN_NONE\\\", \\\"ALIGN_DELTA\\\", \\\"ALIGN_RATE\\\", \\\"ALIGN_INTERPOLATE\\\", \\\"ALIGN_NEXT_OLDER\\\", \\\"ALIGN_MIN\\\", \\\"ALIGN_MAX\\\", \\\"ALIGN_MEAN\\\", \\\"ALIGN_COUNT\\\", \\\"ALIGN_SUM\\\", \\\"ALIGN_STDDEV\\\", \\\"ALIGN_COUNT_TRUE\\\", \\\"ALIGN_COUNT_FALSE\\\", \\\"ALIGN_FRACTION_TRUE\\\", \\\"ALIGN_PERCENTILE_99\\\", \\\"ALIGN_PERCENTILE_95\\\", \\\"ALIGN_PERCENTILE_50\\\", \\\"ALIGN_PERCENTILE_05\\\", \\\"ALIGN_PERCENT_CHANGE\\\"].\",\"type\":\"string\"}}}},\"duration\":{\"description\":\"The amount of time that a time series must\\nfail to report new data to be considered\\nfailing. Currently, only values that are a\\nmultiple of a minute--e.g. 60s, 120s, or 300s\\n--are supported.\",\"type\":\"string\"},\"filter\":{\"description\":\"A filter that identifies which time series\\nshould be compared with the threshold.The\\nfilter is similar to the one that is\\nspecified in the\\nMetricService.ListTimeSeries request (that\\ncall is useful to verify the time series\\nthat will be retrieved / processed) and must\\nspecify the metric type and optionally may\\ncontain restrictions on resource type,\\nresource labels, and metric labels. This\\nfield may not exceed 2048 Unicode characters\\nin length.\",\"type\":\"string\"},\"trigger\":{\"description\":\"The number/percent of time series for which\\nthe comparison must hold in order for the\\ncondition to trigger. If unspecified, then\\nthe condition will trigger if the comparison\\nis true for any of the time series that have\\nbeen identified by filter and aggregations.\",\"type\":\"object\",\"properties\":{\"count\":{\"description\":\"The absolute number of time series\\nthat must fail the predicate for the\\ncondition to be triggered.\",\"type\":\"integer\"},\"percent\":{\"description\":\"The percentage of time series that\\nmust fail the predicate for the\\ncondition to be triggered.\",\"type\":\"number\"}}}}},\"conditionMatchedLog\":{\"description\":\"A condition that checks for log messages matching given constraints.\\nIf set, no other conditions can be present.\",\"type\":\"object\",\"properties\":{\"filter\":{\"description\":\"A logs-based filter.\",\"type\":\"string\"},\"labelExtractors\":{\"description\":\"A map from a label key to an extractor expression, which is used to\\nextract the value for this label key. Each entry in this map is\\na specification for how data should be extracted from log entries that\\nmatch filter. Each combination of extracted values is treated as\\na separate rule for the purposes of triggering notifications.\\nLabel keys and corresponding values can be used in notifications\\ngenerated by this condition.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"conditionMonitoringQueryLanguage\":{\"description\":\"A Monitoring Query Language query that outputs a boolean stream.\",\"type\":\"object\",\"properties\":{\"duration\":{\"description\":\"The amount of time that a time series must\\nviolate the threshold to be considered\\nfailing. Currently, only values that are a\\nmultiple of a minute--e.g., 0, 60, 120, or\\n300 seconds--are supported. If an invalid\\nvalue is given, an error will be returned.\\nWhen choosing a duration, it is useful to\\nkeep in mind the frequency of the underlying\\ntime series data (which may also be affected\\nby any alignments specified in the\\naggregations field); a good duration is long\\nenough so that a single outlier does not\\ngenerate spurious alerts, but short enough\\nthat unhealthy states are detected and\\nalerted on quickly.\",\"type\":\"string\"},\"evaluationMissingData\":{\"description\":\"A condition control that determines how\\nmetric-threshold conditions are evaluated when\\ndata stops arriving. Possible values: [\\\"EVALUATION_MISSING_DATA_INACTIVE\\\", \\\"EVALUATION_MISSING_DATA_ACTIVE\\\", \\\"EVALUATION_MISSING_DATA_NO_OP\\\"].\",\"type\":\"string\"},\"query\":{\"description\":\"Monitoring Query Language query that outputs a boolean stream.\",\"type\":\"string\"},\"trigger\":{\"description\":\"The number/percent of time series for which\\nthe comparison must hold in order for the\\ncondition to trigger. If unspecified, then\\nthe condition will trigger if the comparison\\nis true for any of the time series that have\\nbeen identified by filter and aggregations,\\nor by the ratio, if denominator_filter and\\ndenominator_aggregations are specified.\",\"type\":\"object\",\"properties\":{\"count\":{\"description\":\"The absolute number of time series\\nthat must fail the predicate for the\\ncondition to be triggered.\",\"type\":\"integer\"},\"percent\":{\"description\":\"The percentage of time series that\\nmust fail the predicate for the\\ncondition to be triggered.\",\"type\":\"number\"}}}}},\"conditionThreshold\":{\"description\":\"A condition that compares a time series against a\\nthreshold.\",\"type\":\"object\",\"properties\":{\"aggregations\":{\"description\":\"Specifies the alignment of data points in\\nindividual time series as well as how to\\ncombine the retrieved time series together\\n(such as when aggregating multiple streams\\non each resource to a single stream for each\\nresource or when aggregating streams across\\nall members of a group of resources).\\nMultiple aggregations are applied in the\\norder specified.This field is similar to the\\none in the MetricService.ListTimeSeries\\nrequest. It is advisable to use the\\nListTimeSeries method when debugging this\\nfield.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The alignment period for per-time\\nseries alignment. If present,\\nalignmentPeriod must be at least\\n60 seconds. After per-time series\\nalignment, each time series will\\ncontain data points only on the\\nperiod boundaries. If\\nperSeriesAligner is not specified\\nor equals ALIGN_NONE, then this\\nfield is ignored. If\\nperSeriesAligner is specified and\\ndoes not equal ALIGN_NONE, then\\nthis field must be defined;\\notherwise an error is returned.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The approach to be used to combine\\ntime series. Not all reducer\\nfunctions may be applied to all\\ntime series, depending on the\\nmetric type and the value type of\\nthe original time series.\\nReduction may change the metric\\ntype of value type of the time\\nseries.Time series data must be\\naligned in order to perform cross-\\ntime series reduction. If\\ncrossSeriesReducer is specified,\\nthen perSeriesAligner must be\\nspecified and not equal ALIGN_NONE\\nand alignmentPeriod must be\\nspecified; otherwise, an error is\\nreturned. Possible values: [\\\"REDUCE_NONE\\\", \\\"REDUCE_MEAN\\\", \\\"REDUCE_MIN\\\", \\\"REDUCE_MAX\\\", \\\"REDUCE_SUM\\\", \\\"REDUCE_STDDEV\\\", \\\"REDUCE_COUNT\\\", \\\"REDUCE_COUNT_TRUE\\\", \\\"REDUCE_COUNT_FALSE\\\", \\\"REDUCE_FRACTION_TRUE\\\", \\\"REDUCE_PERCENTILE_99\\\", \\\"REDUCE_PERCENTILE_95\\\", \\\"REDUCE_PERCENTILE_50\\\", \\\"REDUCE_PERCENTILE_05\\\"].\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when\\ncrossSeriesReducer is specified.\\nThe groupByFields determine how\\nthe time series are partitioned\\ninto subsets prior to applying the\\naggregation function. Each subset\\ncontains time series that have the\\nsame value for each of the\\ngrouping fields. Each individual\\ntime series is a member of exactly\\none subset. The crossSeriesReducer\\nis applied to each subset of time\\nseries. It is not possible to\\nreduce across different resource\\ntypes, so this field implicitly\\ncontains resource.type. Fields not\\nspecified in groupByFields are\\naggregated away. If groupByFields\\nis not specified and all the time\\nseries have the same resource\\ntype, then the time series are\\naggregated into a single output\\ntime series. If crossSeriesReducer\\nis not defined, this field is\\nignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"The approach to be used to align\\nindividual time series. Not all\\nalignment functions may be applied\\nto all time series, depending on\\nthe metric type and value type of\\nthe original time series.\\nAlignment may change the metric\\ntype or the value type of the time\\nseries.Time series data must be\\naligned in order to perform cross-\\ntime series reduction. If\\ncrossSeriesReducer is specified,\\nthen perSeriesAligner must be\\nspecified and not equal ALIGN_NONE\\nand alignmentPeriod must be\\nspecified; otherwise, an error is\\nreturned. Possible values: [\\\"ALIGN_NONE\\\", \\\"ALIGN_DELTA\\\", \\\"ALIGN_RATE\\\", \\\"ALIGN_INTERPOLATE\\\", \\\"ALIGN_NEXT_OLDER\\\", \\\"ALIGN_MIN\\\", \\\"ALIGN_MAX\\\", \\\"ALIGN_MEAN\\\", \\\"ALIGN_COUNT\\\", \\\"ALIGN_SUM\\\", \\\"ALIGN_STDDEV\\\", \\\"ALIGN_COUNT_TRUE\\\", \\\"ALIGN_COUNT_FALSE\\\", \\\"ALIGN_FRACTION_TRUE\\\", \\\"ALIGN_PERCENTILE_99\\\", \\\"ALIGN_PERCENTILE_95\\\", \\\"ALIGN_PERCENTILE_50\\\", \\\"ALIGN_PERCENTILE_05\\\", \\\"ALIGN_PERCENT_CHANGE\\\"].\",\"type\":\"string\"}}}},\"comparison\":{\"description\":\"The comparison to apply between the time\\nseries (indicated by filter and aggregation)\\nand the threshold (indicated by\\nthreshold_value). The comparison is applied\\non each time series, with the time series on\\nthe left-hand side and the threshold on the\\nright-hand side. Only COMPARISON_LT and\\nCOMPARISON_GT are supported currently. Possible values: [\\\"COMPARISON_GT\\\", \\\"COMPARISON_GE\\\", \\\"COMPARISON_LT\\\", \\\"COMPARISON_LE\\\", \\\"COMPARISON_EQ\\\", \\\"COMPARISON_NE\\\"].\",\"type\":\"string\"},\"denominatorAggregations\":{\"description\":\"Specifies the alignment of data points in\\nindividual time series selected by\\ndenominatorFilter as well as how to combine\\nthe retrieved time series together (such as\\nwhen aggregating multiple streams on each\\nresource to a single stream for each\\nresource or when aggregating streams across\\nall members of a group of resources).When\\ncomputing ratios, the aggregations and\\ndenominator_aggregations fields must use the\\nsame alignment period and produce time\\nseries that have the same periodicity and\\nlabels.This field is similar to the one in\\nthe MetricService.ListTimeSeries request. It\\nis advisable to use the ListTimeSeries\\nmethod when debugging this field.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The alignment period for per-time\\nseries alignment. If present,\\nalignmentPeriod must be at least\\n60 seconds. After per-time series\\nalignment, each time series will\\ncontain data points only on the\\nperiod boundaries. If\\nperSeriesAligner is not specified\\nor equals ALIGN_NONE, then this\\nfield is ignored. If\\nperSeriesAligner is specified and\\ndoes not equal ALIGN_NONE, then\\nthis field must be defined;\\notherwise an error is returned.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The approach to be used to combine\\ntime series. Not all reducer\\nfunctions may be applied to all\\ntime series, depending on the\\nmetric type and the value type of\\nthe original time series.\\nReduction may change the metric\\ntype of value type of the time\\nseries.Time series data must be\\naligned in order to perform cross-\\ntime series reduction. If\\ncrossSeriesReducer is specified,\\nthen perSeriesAligner must be\\nspecified and not equal ALIGN_NONE\\nand alignmentPeriod must be\\nspecified; otherwise, an error is\\nreturned. Possible values: [\\\"REDUCE_NONE\\\", \\\"REDUCE_MEAN\\\", \\\"REDUCE_MIN\\\", \\\"REDUCE_MAX\\\", \\\"REDUCE_SUM\\\", \\\"REDUCE_STDDEV\\\", \\\"REDUCE_COUNT\\\", \\\"REDUCE_COUNT_TRUE\\\", \\\"REDUCE_COUNT_FALSE\\\", \\\"REDUCE_FRACTION_TRUE\\\", \\\"REDUCE_PERCENTILE_99\\\", \\\"REDUCE_PERCENTILE_95\\\", \\\"REDUCE_PERCENTILE_50\\\", \\\"REDUCE_PERCENTILE_05\\\"].\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when\\ncrossSeriesReducer is specified.\\nThe groupByFields determine how\\nthe time series are partitioned\\ninto subsets prior to applying the\\naggregation function. Each subset\\ncontains time series that have the\\nsame value for each of the\\ngrouping fields. Each individual\\ntime series is a member of exactly\\none subset. The crossSeriesReducer\\nis applied to each subset of time\\nseries. It is not possible to\\nreduce across different resource\\ntypes, so this field implicitly\\ncontains resource.type. Fields not\\nspecified in groupByFields are\\naggregated away. If groupByFields\\nis not specified and all the time\\nseries have the same resource\\ntype, then the time series are\\naggregated into a single output\\ntime series. If crossSeriesReducer\\nis not defined, this field is\\nignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"The approach to be used to align\\nindividual time series. Not all\\nalignment functions may be applied\\nto all time series, depending on\\nthe metric type and value type of\\nthe original time series.\\nAlignment may change the metric\\ntype or the value type of the time\\nseries.Time series data must be\\naligned in order to perform cross-\\ntime series reduction. If\\ncrossSeriesReducer is specified,\\nthen perSeriesAligner must be\\nspecified and not equal ALIGN_NONE\\nand alignmentPeriod must be\\nspecified; otherwise, an error is\\nreturned. Possible values: [\\\"ALIGN_NONE\\\", \\\"ALIGN_DELTA\\\", \\\"ALIGN_RATE\\\", \\\"ALIGN_INTERPOLATE\\\", \\\"ALIGN_NEXT_OLDER\\\", \\\"ALIGN_MIN\\\", \\\"ALIGN_MAX\\\", \\\"ALIGN_MEAN\\\", \\\"ALIGN_COUNT\\\", \\\"ALIGN_SUM\\\", \\\"ALIGN_STDDEV\\\", \\\"ALIGN_COUNT_TRUE\\\", \\\"ALIGN_COUNT_FALSE\\\", \\\"ALIGN_FRACTION_TRUE\\\", \\\"ALIGN_PERCENTILE_99\\\", \\\"ALIGN_PERCENTILE_95\\\", \\\"ALIGN_PERCENTILE_50\\\", \\\"ALIGN_PERCENTILE_05\\\", \\\"ALIGN_PERCENT_CHANGE\\\"].\",\"type\":\"string\"}}}},\"denominatorFilter\":{\"description\":\"A filter that identifies a time series that\\nshould be used as the denominator of a ratio\\nthat will be compared with the threshold. If\\na denominator_filter is specified, the time\\nseries specified by the filter field will be\\nused as the numerator.The filter is similar\\nto the one that is specified in the\\nMetricService.ListTimeSeries request (that\\ncall is useful to verify the time series\\nthat will be retrieved / processed) and must\\nspecify the metric type and optionally may\\ncontain restrictions on resource type,\\nresource labels, and metric labels. This\\nfield may not exceed 2048 Unicode characters\\nin length.\",\"type\":\"string\"},\"duration\":{\"description\":\"The amount of time that a time series must\\nviolate the threshold to be considered\\nfailing. Currently, only values that are a\\nmultiple of a minute--e.g., 0, 60, 120, or\\n300 seconds--are supported. If an invalid\\nvalue is given, an error will be returned.\\nWhen choosing a duration, it is useful to\\nkeep in mind the frequency of the underlying\\ntime series data (which may also be affected\\nby any alignments specified in the\\naggregations field); a good duration is long\\nenough so that a single outlier does not\\ngenerate spurious alerts, but short enough\\nthat unhealthy states are detected and\\nalerted on quickly.\",\"type\":\"string\"},\"evaluationMissingData\":{\"description\":\"A condition control that determines how\\nmetric-threshold conditions are evaluated when\\ndata stops arriving. Possible values: [\\\"EVALUATION_MISSING_DATA_INACTIVE\\\", \\\"EVALUATION_MISSING_DATA_ACTIVE\\\", \\\"EVALUATION_MISSING_DATA_NO_OP\\\"].\",\"type\":\"string\"},\"filter\":{\"description\":\"A filter that identifies which time series\\nshould be compared with the threshold.The\\nfilter is similar to the one that is\\nspecified in the\\nMetricService.ListTimeSeries request (that\\ncall is useful to verify the time series\\nthat will be retrieved / processed) and must\\nspecify the metric type and optionally may\\ncontain restrictions on resource type,\\nresource labels, and metric labels. This\\nfield may not exceed 2048 Unicode characters\\nin length.\",\"type\":\"string\"},\"thresholdValue\":{\"description\":\"A value against which to compare the time\\nseries.\",\"type\":\"number\"},\"trigger\":{\"description\":\"The number/percent of time series for which\\nthe comparison must hold in order for the\\ncondition to trigger. If unspecified, then\\nthe condition will trigger if the comparison\\nis true for any of the time series that have\\nbeen identified by filter and aggregations,\\nor by the ratio, if denominator_filter and\\ndenominator_aggregations are specified.\",\"type\":\"object\",\"properties\":{\"count\":{\"description\":\"The absolute number of time series\\nthat must fail the predicate for the\\ncondition to be triggered.\",\"type\":\"integer\"},\"percent\":{\"description\":\"The percentage of time series that\\nmust fail the predicate for the\\ncondition to be triggered.\",\"type\":\"number\"}}}}},\"displayName\":{\"description\":\"A short name or phrase used to identify the\\ncondition in dashboards, notifications, and\\nincidents. To avoid confusion, don't use the same\\ndisplay name for multiple conditions in the same\\npolicy.\",\"type\":\"string\"},\"name\":{\"description\":\"The unique resource name for this condition.\\nIts syntax is:\\nprojects/[PROJECT_ID]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID]\\n[CONDITION_ID] is assigned by Stackdriver Monitoring when\\nthe condition is created as part of a new or updated alerting\\npolicy.\",\"type\":\"string\"}}}},\"displayName\":{\"description\":\"A short name or phrase used to identify the policy in\\ndashboards, notifications, and incidents. To avoid confusion, don't use\\nthe same display name for multiple policies in the same project. The\\nname is limited to 512 Unicode characters.\",\"type\":\"string\"},\"documentation\":{\"description\":\"Documentation that is included with notifications and incidents related\\nto this policy. Best practice is for the documentation to include information\\nto help responders understand, mitigate, escalate, and correct the underlying\\nproblems detected by the alerting policy. Notification channels that have\\nlimited capacity might not show this documentation.\",\"type\":\"object\",\"properties\":{\"content\":{\"description\":\"The text of the documentation, interpreted according to mimeType.\\nThe content may not exceed 8,192 Unicode characters and may not\\nexceed more than 10,240 bytes when encoded in UTF-8 format,\\nwhichever is smaller.\",\"type\":\"string\"},\"mimeType\":{\"description\":\"The format of the content field. Presently, only the value\\n\\\"text/markdown\\\" is supported.\",\"type\":\"string\"}}},\"enabled\":{\"description\":\"Whether or not the policy is enabled. The default is true.\",\"type\":\"boolean\"},\"notificationChannels\":{\"type\":\"array\",\"items\":{\"description\":\"Identifies the notification channels to which notifications should be sent when incidents are opened or closed or when new violations occur on an already opened incident.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The `name` field of a `MonitoringNotificationChannel` resource.\",\"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\"}}}},\"resourceID\":{\"description\":\"Immutable. Optional. The service-generated name of the resource. Used for acquisition only. Leave unset to create a new resource.\",\"type\":\"string\"}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"creationRecord\":{\"description\":\"A read-only record of the creation of the alerting policy.\\nIf provided in a call to create or update, this field will\\nbe ignored.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"mutateTime\":{\"description\":\"When the change occurred.\",\"type\":\"string\"},\"mutatedBy\":{\"description\":\"The email address of the user making the change.\",\"type\":\"string\"}}}},\"name\":{\"description\":\"The unique resource name for this policy.\\nIts syntax is: projects/[PROJECT_ID]/alertPolicies/[ALERT_POLICY_ID].\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"monitoring.cnrm.cloud.google.com\",\"kind\":\"MonitoringAlertPolicy\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicyList\":{\"description\":\"MonitoringAlertPolicyList is a list of MonitoringAlertPolicy\",\"required\":[\"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 monitoringalertpolicies. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"monitoring.cnrm.cloud.google.com\",\"kind\":\"MonitoringAlertPolicyList\",\"version\":\"v1beta1\"}]},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\":{\"description\":\"CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"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/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning 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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"},\"status\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"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\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"default\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}},\"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\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}}},\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv2/monitoring_v1beta1_monitoringdashboard.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.27.0\"},\"paths\":{\"/apis/monitoring.cnrm.cloud.google.com/v1beta1/monitoringdashboards\":{\"get\":{\"description\":\"list objects of kind MonitoringDashboard\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listMonitoringCnrmCloudGoogleComV1beta1MonitoringDashboardForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboardList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringDashboard\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/monitoring.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/monitoringdashboards\":{\"get\":{\"description\":\"list objects of kind MonitoringDashboard\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringDashboard\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboardList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringDashboard\"}},\"post\":{\"description\":\"create a MonitoringDashboard\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"createMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringDashboard\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringDashboard\"}},\"delete\":{\"description\":\"delete collection of MonitoringDashboard\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteMonitoringCnrmCloudGoogleComV1beta1CollectionNamespacedMonitoringDashboard\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringDashboard\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/monitoring.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/monitoringdashboards/{name}\":{\"get\":{\"description\":\"read the specified MonitoringDashboard\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringDashboard\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringDashboard\"}},\"put\":{\"description\":\"replace the specified MonitoringDashboard\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringDashboard\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringDashboard\"}},\"delete\":{\"description\":\"delete a MonitoringDashboard\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringDashboard\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringDashboard\"}},\"patch\":{\"description\":\"partially update the specified MonitoringDashboard\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringDashboard\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringDashboard\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the MonitoringDashboard\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/monitoring.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/monitoringdashboards/{name}/status\":{\"get\":{\"description\":\"read status of the specified MonitoringDashboard\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringDashboardStatus\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringDashboard\"}},\"put\":{\"description\":\"replace status of the specified MonitoringDashboard\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringDashboardStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringDashboard\"}},\"patch\":{\"description\":\"partially update status of the specified MonitoringDashboard\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"monitoringCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchMonitoringCnrmCloudGoogleComV1beta1NamespacedMonitoringDashboardStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"monitoring.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"MonitoringDashboard\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the MonitoringDashboard\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]}},\"definitions\":{\"com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\":{\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"type\":\"object\",\"properties\":{\"columnLayout\":{\"description\":\"The content is divided into equally spaced columns and the widgets are arranged vertically.\",\"type\":\"object\",\"properties\":{\"columns\":{\"description\":\"The columns of content to display.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"weight\":{\"description\":\"The relative weight of this column. The column weight is used to adjust the width of columns on the screen (relative to peers). Greater the weight, greater the width of the column on the screen. If omitted, a value of 1 is used while rendering.\",\"type\":\"integer\"},\"widgets\":{\"description\":\"The display widgets arranged vertically in this column.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blank\":{\"description\":\"A blank space.\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"logsPanel\":{\"type\":\"object\",\"properties\":{\"filter\":{\"description\":\"A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). Only log entries that match the filter are returned. An empty filter matches all log entries.\",\"type\":\"string\"},\"resourceNames\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}}}}},\"scorecard\":{\"description\":\"A scorecard summarizing time series data.\",\"type\":\"object\",\"properties\":{\"gaugeView\":{\"description\":\"Will cause the scorecard to show a gauge chart.\",\"type\":\"object\",\"properties\":{\"lowerBound\":{\"description\":\"The lower bound for this gauge chart. The value of the chart should always be greater than or equal to this.\",\"type\":\"number\"},\"upperBound\":{\"description\":\"The upper bound for this gauge chart. The value of the chart should always be less than or equal to this.\",\"type\":\"number\"}}},\"sparkChartView\":{\"description\":\"Will cause the scorecard to show a spark chart.\",\"type\":\"object\",\"properties\":{\"minAlignmentPeriod\":{\"description\":\"The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.\",\"type\":\"string\"},\"sparkChartType\":{\"description\":\"Required. The type of sparkchart to show in this chartView. Possible values: SPARK_CHART_TYPE_UNSPECIFIED, SPARK_LINE, SPARK_BAR\",\"type\":\"string\"}}},\"thresholds\":{\"description\":\"The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.)  As an example, consider a scorecard with the following four thresholds: {   value: 90,   category: 'DANGER',   trigger: 'ABOVE', },: {   value: 70,   category: 'WARNING',   trigger: 'ABOVE', }, {   value: 10,   category: 'DANGER',   trigger: 'BELOW', }, {   value: 20,   category: 'WARNING',   trigger: 'BELOW', }  Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\"}}}},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}},\"text\":{\"description\":\"A raw string or markdown displaying textual content.\",\"type\":\"object\",\"properties\":{\"content\":{\"description\":\"The text content to be displayed.\",\"type\":\"string\"},\"format\":{\"description\":\"How the text content is formatted. Possible values: FORMAT_UNSPECIFIED, MARKDOWN, RAW\",\"type\":\"string\"}}},\"title\":{\"description\":\"Optional. The title of the widget.\",\"type\":\"string\"},\"xyChart\":{\"description\":\"A chart of time series data.\",\"type\":\"object\",\"properties\":{\"chartOptions\":{\"description\":\"Display options for the chart.\",\"type\":\"object\",\"properties\":{\"mode\":{\"description\":\"The chart mode. Possible values: MODE_UNSPECIFIED, COLOR, X_RAY, STATS\",\"type\":\"string\"}}},\"dataSets\":{\"description\":\"Required. The data displayed in this chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"legendTemplate\":{\"description\":\"A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value. \",\"type\":\"string\"},\"minAlignmentPeriod\":{\"description\":\"Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.\",\"type\":\"string\"},\"plotType\":{\"description\":\"How this data should be plotted on the chart. Possible values: PLOT_TYPE_UNSPECIFIED, LINE, STACKED_AREA, STACKED_BAR, HEATMAP\",\"type\":\"string\"},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}}},\"thresholds\":{\"description\":\"Threshold lines drawn horizontally across the chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\"}}}},\"timeshiftDuration\":{\"description\":\"The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.\",\"type\":\"string\"},\"xAxis\":{\"description\":\"The properties applied to the X axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}},\"yAxis\":{\"description\":\"The properties applied to the Y axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}}}}}}}}}}}},\"displayName\":{\"description\":\"Required. The mutable, human-readable name.\",\"type\":\"string\"},\"gridLayout\":{\"description\":\"Content is arranged with a basic layout that re-flows a simple list of informational elements like widgets or tiles.\",\"type\":\"object\",\"properties\":{\"columns\":{\"description\":\"The number of columns into which the view's width is divided. If omitted or set to zero, a system default will be used while rendering.\",\"type\":\"integer\"},\"widgets\":{\"description\":\"The informational elements that are arranged into the columns row-first.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blank\":{\"description\":\"A blank space.\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"logsPanel\":{\"type\":\"object\",\"properties\":{\"filter\":{\"description\":\"A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). Only log entries that match the filter are returned. An empty filter matches all log entries.\",\"type\":\"string\"},\"resourceNames\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}}}}},\"scorecard\":{\"description\":\"A scorecard summarizing time series data.\",\"type\":\"object\",\"properties\":{\"gaugeView\":{\"description\":\"Will cause the scorecard to show a gauge chart.\",\"type\":\"object\",\"properties\":{\"lowerBound\":{\"description\":\"The lower bound for this gauge chart. The value of the chart should always be greater than or equal to this.\",\"type\":\"number\"},\"upperBound\":{\"description\":\"The upper bound for this gauge chart. The value of the chart should always be less than or equal to this.\",\"type\":\"number\"}}},\"sparkChartView\":{\"description\":\"Will cause the scorecard to show a spark chart.\",\"type\":\"object\",\"properties\":{\"minAlignmentPeriod\":{\"description\":\"The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.\",\"type\":\"string\"},\"sparkChartType\":{\"description\":\"Required. The type of sparkchart to show in this chartView. Possible values: SPARK_CHART_TYPE_UNSPECIFIED, SPARK_LINE, SPARK_BAR\",\"type\":\"string\"}}},\"thresholds\":{\"description\":\"The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.)  As an example, consider a scorecard with the following four thresholds: {   value: 90,   category: 'DANGER',   trigger: 'ABOVE', },: {   value: 70,   category: 'WARNING',   trigger: 'ABOVE', }, {   value: 10,   category: 'DANGER',   trigger: 'BELOW', }, {   value: 20,   category: 'WARNING',   trigger: 'BELOW', }  Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\"}}}},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}},\"text\":{\"description\":\"A raw string or markdown displaying textual content.\",\"type\":\"object\",\"properties\":{\"content\":{\"description\":\"The text content to be displayed.\",\"type\":\"string\"},\"format\":{\"description\":\"How the text content is formatted. Possible values: FORMAT_UNSPECIFIED, MARKDOWN, RAW\",\"type\":\"string\"}}},\"title\":{\"description\":\"Optional. The title of the widget.\",\"type\":\"string\"},\"xyChart\":{\"description\":\"A chart of time series data.\",\"type\":\"object\",\"properties\":{\"chartOptions\":{\"description\":\"Display options for the chart.\",\"type\":\"object\",\"properties\":{\"mode\":{\"description\":\"The chart mode. Possible values: MODE_UNSPECIFIED, COLOR, X_RAY, STATS\",\"type\":\"string\"}}},\"dataSets\":{\"description\":\"Required. The data displayed in this chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"legendTemplate\":{\"description\":\"A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value. \",\"type\":\"string\"},\"minAlignmentPeriod\":{\"description\":\"Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.\",\"type\":\"string\"},\"plotType\":{\"description\":\"How this data should be plotted on the chart. Possible values: PLOT_TYPE_UNSPECIFIED, LINE, STACKED_AREA, STACKED_BAR, HEATMAP\",\"type\":\"string\"},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}}},\"thresholds\":{\"description\":\"Threshold lines drawn horizontally across the chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\"}}}},\"timeshiftDuration\":{\"description\":\"The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.\",\"type\":\"string\"},\"xAxis\":{\"description\":\"The properties applied to the X axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}},\"yAxis\":{\"description\":\"The properties applied to the Y axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}}}}}}}}},\"mosaicLayout\":{\"description\":\"The content is arranged as a grid of tiles, with each content widget occupying one or more tiles.\",\"type\":\"object\",\"properties\":{\"columns\":{\"description\":\"The number of columns in the mosaic grid.\",\"type\":\"integer\"},\"tiles\":{\"description\":\"The tiles to display.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"height\":{\"description\":\"The height of the tile, measured in grid squares.\",\"type\":\"integer\"},\"widget\":{\"description\":\"The informational widget contained in the tile.\",\"type\":\"object\",\"properties\":{\"blank\":{\"description\":\"A blank space.\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"logsPanel\":{\"type\":\"object\",\"properties\":{\"filter\":{\"description\":\"A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). Only log entries that match the filter are returned. An empty filter matches all log entries.\",\"type\":\"string\"},\"resourceNames\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}}}}},\"scorecard\":{\"description\":\"A scorecard summarizing time series data.\",\"type\":\"object\",\"properties\":{\"gaugeView\":{\"description\":\"Will cause the scorecard to show a gauge chart.\",\"type\":\"object\",\"properties\":{\"lowerBound\":{\"description\":\"The lower bound for this gauge chart. The value of the chart should always be greater than or equal to this.\",\"type\":\"number\"},\"upperBound\":{\"description\":\"The upper bound for this gauge chart. The value of the chart should always be less than or equal to this.\",\"type\":\"number\"}}},\"sparkChartView\":{\"description\":\"Will cause the scorecard to show a spark chart.\",\"type\":\"object\",\"properties\":{\"minAlignmentPeriod\":{\"description\":\"The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.\",\"type\":\"string\"},\"sparkChartType\":{\"description\":\"Required. The type of sparkchart to show in this chartView. Possible values: SPARK_CHART_TYPE_UNSPECIFIED, SPARK_LINE, SPARK_BAR\",\"type\":\"string\"}}},\"thresholds\":{\"description\":\"The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.)  As an example, consider a scorecard with the following four thresholds: {   value: 90,   category: 'DANGER',   trigger: 'ABOVE', },: {   value: 70,   category: 'WARNING',   trigger: 'ABOVE', }, {   value: 10,   category: 'DANGER',   trigger: 'BELOW', }, {   value: 20,   category: 'WARNING',   trigger: 'BELOW', }  Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\"}}}},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}},\"text\":{\"description\":\"A raw string or markdown displaying textual content.\",\"type\":\"object\",\"properties\":{\"content\":{\"description\":\"The text content to be displayed.\",\"type\":\"string\"},\"format\":{\"description\":\"How the text content is formatted. Possible values: FORMAT_UNSPECIFIED, MARKDOWN, RAW\",\"type\":\"string\"}}},\"title\":{\"description\":\"Optional. The title of the widget.\",\"type\":\"string\"},\"xyChart\":{\"description\":\"A chart of time series data.\",\"type\":\"object\",\"properties\":{\"chartOptions\":{\"description\":\"Display options for the chart.\",\"type\":\"object\",\"properties\":{\"mode\":{\"description\":\"The chart mode. Possible values: MODE_UNSPECIFIED, COLOR, X_RAY, STATS\",\"type\":\"string\"}}},\"dataSets\":{\"description\":\"Required. The data displayed in this chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"legendTemplate\":{\"description\":\"A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value. \",\"type\":\"string\"},\"minAlignmentPeriod\":{\"description\":\"Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.\",\"type\":\"string\"},\"plotType\":{\"description\":\"How this data should be plotted on the chart. Possible values: PLOT_TYPE_UNSPECIFIED, LINE, STACKED_AREA, STACKED_BAR, HEATMAP\",\"type\":\"string\"},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}}},\"thresholds\":{\"description\":\"Threshold lines drawn horizontally across the chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\"}}}},\"timeshiftDuration\":{\"description\":\"The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.\",\"type\":\"string\"},\"xAxis\":{\"description\":\"The properties applied to the X axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}},\"yAxis\":{\"description\":\"The properties applied to the Y axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}}}}}},\"width\":{\"description\":\"The width of the tile, measured in grid squares.\",\"type\":\"integer\"},\"xPos\":{\"description\":\"The zero-indexed position of the tile in grid squares relative to the left edge of the grid.\",\"type\":\"integer\"},\"yPos\":{\"description\":\"The zero-indexed position of the tile in grid squares relative to the top edge of the grid.\",\"type\":\"integer\"}}}}}},\"projectRef\":{\"description\":\"Immutable. The Project that this resource belongs to.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"The project id of the resource.\\n\\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"},\"rowLayout\":{\"description\":\"The content is divided into equally spaced rows and the widgets are arranged horizontally.\",\"type\":\"object\",\"properties\":{\"rows\":{\"description\":\"The rows of content to display.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"weight\":{\"description\":\"The relative weight of this row. The row weight is used to adjust the height of rows on the screen (relative to peers). Greater the weight, greater the height of the row on the screen. If omitted, a value of 1 is used while rendering.\",\"type\":\"integer\"},\"widgets\":{\"description\":\"The display widgets arranged horizontally in this row.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blank\":{\"description\":\"A blank space.\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"logsPanel\":{\"type\":\"object\",\"properties\":{\"filter\":{\"description\":\"A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). Only log entries that match the filter are returned. An empty filter matches all log entries.\",\"type\":\"string\"},\"resourceNames\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}}}}},\"scorecard\":{\"description\":\"A scorecard summarizing time series data.\",\"type\":\"object\",\"properties\":{\"gaugeView\":{\"description\":\"Will cause the scorecard to show a gauge chart.\",\"type\":\"object\",\"properties\":{\"lowerBound\":{\"description\":\"The lower bound for this gauge chart. The value of the chart should always be greater than or equal to this.\",\"type\":\"number\"},\"upperBound\":{\"description\":\"The upper bound for this gauge chart. The value of the chart should always be less than or equal to this.\",\"type\":\"number\"}}},\"sparkChartView\":{\"description\":\"Will cause the scorecard to show a spark chart.\",\"type\":\"object\",\"properties\":{\"minAlignmentPeriod\":{\"description\":\"The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.\",\"type\":\"string\"},\"sparkChartType\":{\"description\":\"Required. The type of sparkchart to show in this chartView. Possible values: SPARK_CHART_TYPE_UNSPECIFIED, SPARK_LINE, SPARK_BAR\",\"type\":\"string\"}}},\"thresholds\":{\"description\":\"The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.)  As an example, consider a scorecard with the following four thresholds: {   value: 90,   category: 'DANGER',   trigger: 'ABOVE', },: {   value: 70,   category: 'WARNING',   trigger: 'ABOVE', }, {   value: 10,   category: 'DANGER',   trigger: 'BELOW', }, {   value: 20,   category: 'WARNING',   trigger: 'BELOW', }  Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\"}}}},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}},\"text\":{\"description\":\"A raw string or markdown displaying textual content.\",\"type\":\"object\",\"properties\":{\"content\":{\"description\":\"The text content to be displayed.\",\"type\":\"string\"},\"format\":{\"description\":\"How the text content is formatted. Possible values: FORMAT_UNSPECIFIED, MARKDOWN, RAW\",\"type\":\"string\"}}},\"title\":{\"description\":\"Optional. The title of the widget.\",\"type\":\"string\"},\"xyChart\":{\"description\":\"A chart of time series data.\",\"type\":\"object\",\"properties\":{\"chartOptions\":{\"description\":\"Display options for the chart.\",\"type\":\"object\",\"properties\":{\"mode\":{\"description\":\"The chart mode. Possible values: MODE_UNSPECIFIED, COLOR, X_RAY, STATS\",\"type\":\"string\"}}},\"dataSets\":{\"description\":\"Required. The data displayed in this chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"legendTemplate\":{\"description\":\"A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value. \",\"type\":\"string\"},\"minAlignmentPeriod\":{\"description\":\"Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.\",\"type\":\"string\"},\"plotType\":{\"description\":\"How this data should be plotted on the chart. Possible values: PLOT_TYPE_UNSPECIFIED, LINE, STACKED_AREA, STACKED_BAR, HEATMAP\",\"type\":\"string\"},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}}},\"thresholds\":{\"description\":\"Threshold lines drawn horizontally across the chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\"}}}},\"timeshiftDuration\":{\"description\":\"The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.\",\"type\":\"string\"},\"xAxis\":{\"description\":\"The properties applied to the X axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}},\"yAxis\":{\"description\":\"The properties applied to the Y axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}}}}}}}}}}}}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"etag\":{\"description\":\"\\\\`etag\\\\` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. An \\\\`etag\\\\` is returned in the response to \\\\`GetDashboard\\\\`, and users are expected to put that etag in the request to \\\\`UpdateDashboard\\\\` to ensure that their change will be applied to the same version of the Dashboard configuration. The field should not be passed during dashboard creation.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"monitoring.cnrm.cloud.google.com\",\"kind\":\"MonitoringDashboard\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboardList\":{\"description\":\"MonitoringDashboardList is a list of MonitoringDashboard\",\"required\":[\"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 monitoringdashboards. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"monitoring.cnrm.cloud.google.com\",\"kind\":\"MonitoringDashboardList\",\"version\":\"v1beta1\"}]},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\":{\"description\":\"CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"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/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning 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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"},\"status\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"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\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"default\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}},\"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\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}}},\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv2/privateca_v1beta1_privatecacertificate.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.27.0\"},\"paths\":{\"/apis/privateca.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/privatecacertificates\":{\"get\":{\"description\":\"list objects of kind PrivateCACertificate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listPrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificate\"}},\"post\":{\"description\":\"create a PrivateCACertificate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"createPrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificate\"}},\"delete\":{\"description\":\"delete collection of PrivateCACertificate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deletePrivatecaCnrmCloudGoogleComV1beta1CollectionNamespacedPrivateCACertificate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/privateca.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/privatecacertificates/{name}\":{\"get\":{\"description\":\"read the specified PrivateCACertificate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readPrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificate\"}},\"put\":{\"description\":\"replace the specified PrivateCACertificate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replacePrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificate\"}},\"delete\":{\"description\":\"delete a PrivateCACertificate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deletePrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificate\"}},\"patch\":{\"description\":\"partially update the specified PrivateCACertificate\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchPrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PrivateCACertificate\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/privateca.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/privatecacertificates/{name}/status\":{\"get\":{\"description\":\"read status of the specified PrivateCACertificate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readPrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificateStatus\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificate\"}},\"put\":{\"description\":\"replace status of the specified PrivateCACertificate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replacePrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificateStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificate\"}},\"patch\":{\"description\":\"partially update status of the specified PrivateCACertificate\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchPrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificateStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PrivateCACertificate\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/privateca.cnrm.cloud.google.com/v1beta1/privatecacertificates\":{\"get\":{\"description\":\"list objects of kind PrivateCACertificate\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listPrivatecaCnrmCloudGoogleComV1beta1PrivateCACertificateForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificate\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]}},\"definitions\":{\"com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\":{\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"type\":\"object\",\"properties\":{\"caPoolRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"The ca_pool for the resource\\n\\nAllowed value: The Google Cloud resource name of a `PrivateCACAPool` resource (format: `projects/{{project}}/locations/{{location}}/caPools/{{name}}`).\",\"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\"}}},\"certificateAuthorityRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"The certificate authority for the resource\\n\\nAllowed value: The Google Cloud resource name of a `PrivateCACertificateAuthority` resource (format: `projects/{{project}}/locations/{{location}}/caPools/{{ca_pool}}/certificateAuthorities/{{name}}`).\",\"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\"}}},\"certificateTemplateRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Immutable. The resource name for a CertificateTemplate used to issue this certificate, in the format `projects/*/locations/*/certificateTemplates/*`. If this is specified, the caller must have the necessary permission to use this template. If this is omitted, no template will be used. This template must be in the same location as the Certificate.\\n\\nAllowed value: The `selfLink` field of a `PrivateCACertificateTemplate` resource.\",\"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\"}}},\"config\":{\"description\":\"Immutable. Immutable. A description of the certificate and key that does not require X.509 or ASN.1.\",\"type\":\"object\",\"properties\":{\"publicKey\":{\"description\":\"Immutable. Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR.\",\"type\":\"object\",\"properties\":{\"format\":{\"description\":\"Immutable. Required. The format of the public key. Possible values: KEY_FORMAT_UNSPECIFIED, PEM\",\"type\":\"string\"},\"key\":{\"description\":\"Immutable. Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.\",\"type\":\"string\"}}},\"subjectConfig\":{\"description\":\"Immutable. Required. Specifies some of the values in a certificate that are related to the subject.\",\"type\":\"object\",\"properties\":{\"subject\":{\"description\":\"Immutable. Required. Contains distinguished name fields such as the common name, location and organization.\",\"type\":\"object\",\"properties\":{\"commonName\":{\"description\":\"Immutable. The \\\"common name\\\" of the subject.\",\"type\":\"string\"},\"countryCode\":{\"description\":\"Immutable. The country code of the subject.\",\"type\":\"string\"},\"locality\":{\"description\":\"Immutable. The locality or city of the subject.\",\"type\":\"string\"},\"organization\":{\"description\":\"Immutable. The organization of the subject.\",\"type\":\"string\"},\"organizationalUnit\":{\"description\":\"Immutable. The organizational_unit of the subject.\",\"type\":\"string\"},\"postalCode\":{\"description\":\"Immutable. The postal code of the subject.\",\"type\":\"string\"},\"province\":{\"description\":\"Immutable. The province, territory, or regional state of the subject.\",\"type\":\"string\"},\"streetAddress\":{\"description\":\"Immutable. The street address of the subject.\",\"type\":\"string\"}}},\"subjectAltName\":{\"description\":\"Immutable. Optional. The subject alternative name fields.\",\"type\":\"object\",\"properties\":{\"dnsNames\":{\"description\":\"Immutable. Contains only valid, fully-qualified host names.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"emailAddresses\":{\"description\":\"Immutable. Contains only valid RFC 2822 E-mail addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ipAddresses\":{\"description\":\"Immutable. Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"uris\":{\"description\":\"Immutable. Contains only valid RFC 3986 URIs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"x509Config\":{\"description\":\"Immutable. Required. Describes how some of the technical X.509 fields in a certificate should be populated.\",\"type\":\"object\",\"properties\":{\"additionalExtensions\":{\"description\":\"Immutable. Optional. Describes custom X.509 extensions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"critical\":{\"description\":\"Immutable. Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Immutable. Required. The OID for this X.509 extension.\",\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}},\"value\":{\"description\":\"Immutable. Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"aiaOcspServers\":{\"description\":\"Immutable. Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \\\"Authority Information Access\\\" extension in the certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"caOptions\":{\"description\":\"Immutable. Optional. Describes options in this X509Parameters that are relevant in a CA certificate.\",\"type\":\"object\",\"properties\":{\"isCa\":{\"description\":\"Immutable. Optional. When true, the \\\"CA\\\" in Basic Constraints extension will be set to true.\",\"type\":\"boolean\"},\"maxIssuerPathLength\":{\"description\":\"Immutable. Optional. Refers to the \\\"path length constraint\\\" in Basic Constraints extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail.\",\"type\":\"integer\"},\"nonCa\":{\"description\":\"Immutable. Optional. When true, the \\\"CA\\\" in Basic Constraints extension will be set to false. If both `is_ca` and `non_ca` are unset, the extension will be omitted from the CA certificate.\",\"type\":\"boolean\"},\"zeroMaxIssuerPathLength\":{\"description\":\"Immutable. Optional. When true, the \\\"path length constraint\\\" in Basic Constraints extension will be set to 0. if both max_issuer_path_length and zero_max_issuer_path_length are unset, the max path length will be omitted from the CA certificate.\",\"type\":\"boolean\"}}},\"keyUsage\":{\"description\":\"Immutable. Optional. Indicates the intended use for keys that correspond to a certificate.\",\"type\":\"object\",\"properties\":{\"baseKeyUsage\":{\"description\":\"Immutable. Describes high-level ways in which a key may be used.\",\"type\":\"object\",\"properties\":{\"certSign\":{\"description\":\"Immutable. The key may be used to sign certificates.\",\"type\":\"boolean\"},\"contentCommitment\":{\"description\":\"Immutable. The key may be used for cryptographic commitments. Note that this may also be referred to as \\\"non-repudiation\\\".\",\"type\":\"boolean\"},\"crlSign\":{\"description\":\"Immutable. The key may be used sign certificate revocation lists.\",\"type\":\"boolean\"},\"dataEncipherment\":{\"description\":\"Immutable. The key may be used to encipher data.\",\"type\":\"boolean\"},\"decipherOnly\":{\"description\":\"Immutable. The key may be used to decipher only.\",\"type\":\"boolean\"},\"digitalSignature\":{\"description\":\"Immutable. The key may be used for digital signatures.\",\"type\":\"boolean\"},\"encipherOnly\":{\"description\":\"Immutable. The key may be used to encipher only.\",\"type\":\"boolean\"},\"keyAgreement\":{\"description\":\"Immutable. The key may be used in a key agreement protocol.\",\"type\":\"boolean\"},\"keyEncipherment\":{\"description\":\"Immutable. The key may be used to encipher other keys.\",\"type\":\"boolean\"}}},\"extendedKeyUsage\":{\"description\":\"Immutable. Detailed scenarios in which a key may be used.\",\"type\":\"object\",\"properties\":{\"clientAuth\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \\\"TLS WWW client authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"codeSigning\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \\\"Signing of downloadable executable code client authentication\\\".\",\"type\":\"boolean\"},\"emailProtection\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \\\"Email protection\\\".\",\"type\":\"boolean\"},\"ocspSigning\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \\\"Signing OCSP responses\\\".\",\"type\":\"boolean\"},\"serverAuth\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \\\"TLS WWW server authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"timeStamping\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \\\"Binding the hash of an object to a time\\\".\",\"type\":\"boolean\"}}},\"unknownExtendedKeyUsages\":{\"description\":\"Immutable. Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}}}}},\"policyIds\":{\"description\":\"Immutable. Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}}}}}}},\"lifetime\":{\"description\":\"Immutable. Required. Immutable. The desired lifetime of a certificate. Used to create the \\\"not_before_time\\\" and \\\"not_after_time\\\" fields inside an X.509 certificate. Note that the lifetime may be truncated if it would extend past the life of any certificate authority in the issuing chain.\",\"type\":\"string\"},\"location\":{\"description\":\"Immutable. The location for the resource\",\"type\":\"string\"},\"pemCsr\":{\"description\":\"Immutable. Immutable. A pem-encoded X.509 certificate signing request (CSR).\",\"type\":\"string\"},\"projectRef\":{\"description\":\"Immutable. The Project that this resource belongs to.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"The project for the resource\\n\\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"},\"subjectMode\":{\"description\":\"Immutable. Immutable. Specifies how the Certificate's identity fields are to be decided. If this is omitted, the `DEFAULT` subject mode will be used. Possible values: SUBJECT_REQUEST_MODE_UNSPECIFIED, DEFAULT, REFLECTED_SPIFFE\",\"type\":\"string\"}}},\"status\":{\"type\":\"object\",\"properties\":{\"certificateDescription\":{\"description\":\"Output only. A structured description of the issued X.509 certificate.\",\"type\":\"object\",\"properties\":{\"aiaIssuingCertificateUrls\":{\"description\":\"Describes lists of issuer CA certificate URLs that appear in the \\\"Authority Information Access\\\" extension in the certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"authorityKeyId\":{\"description\":\"Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1\",\"type\":\"object\",\"properties\":{\"keyId\":{\"description\":\"Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.\",\"type\":\"string\"}}},\"certFingerprint\":{\"description\":\"The hash of the x.509 certificate.\",\"type\":\"object\",\"properties\":{\"sha256Hash\":{\"description\":\"The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.\",\"type\":\"string\"}}},\"crlDistributionPoints\":{\"description\":\"Describes a list of locations to obtain CRL information, i.e. the DistributionPoint.fullName described by https://tools.ietf.org/html/rfc5280#section-4.2.1.13\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"publicKey\":{\"description\":\"The public key that corresponds to an issued certificate.\",\"type\":\"object\",\"properties\":{\"format\":{\"description\":\"Required. The format of the public key. Possible values: KEY_FORMAT_UNSPECIFIED, PEM\",\"type\":\"string\"},\"key\":{\"description\":\"Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.\",\"type\":\"string\"}}},\"subjectDescription\":{\"description\":\"Describes some of the values in a certificate that are related to the subject and lifetime.\",\"type\":\"object\",\"properties\":{\"hexSerialNumber\":{\"description\":\"The serial number encoded in lowercase hexadecimal.\",\"type\":\"string\"},\"lifetime\":{\"description\":\"For convenience, the actual lifetime of an issued certificate.\",\"type\":\"string\"},\"notAfterTime\":{\"description\":\"The time after which the certificate is expired. Per RFC 5280, the validity period for a certificate is the period of time from not_before_time through not_after_time, inclusive. Corresponds to 'not_before_time' + 'lifetime' - 1 second.\",\"type\":\"string\"},\"notBeforeTime\":{\"description\":\"The time at which the certificate becomes valid.\",\"type\":\"string\"},\"subject\":{\"description\":\"Contains distinguished name fields such as the common name, location and / organization.\",\"type\":\"object\",\"properties\":{\"commonName\":{\"description\":\"The \\\"common name\\\" of the subject.\",\"type\":\"string\"},\"countryCode\":{\"description\":\"The country code of the subject.\",\"type\":\"string\"},\"locality\":{\"description\":\"The locality or city of the subject.\",\"type\":\"string\"},\"organization\":{\"description\":\"The organization of the subject.\",\"type\":\"string\"},\"organizationalUnit\":{\"description\":\"The organizational_unit of the subject.\",\"type\":\"string\"},\"postalCode\":{\"description\":\"The postal code of the subject.\",\"type\":\"string\"},\"province\":{\"description\":\"The province, territory, or regional state of the subject.\",\"type\":\"string\"},\"streetAddress\":{\"description\":\"The street address of the subject.\",\"type\":\"string\"}}},\"subjectAltName\":{\"description\":\"The subject alternative name fields.\",\"type\":\"object\",\"properties\":{\"customSans\":{\"description\":\"Contains additional subject alternative name values.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"critical\":{\"description\":\"Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Required. The OID for this X.509 extension.\",\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}},\"value\":{\"description\":\"Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"dnsNames\":{\"description\":\"Contains only valid, fully-qualified host names.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"emailAddresses\":{\"description\":\"Contains only valid RFC 2822 E-mail addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ipAddresses\":{\"description\":\"Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"uris\":{\"description\":\"Contains only valid RFC 3986 URIs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"subjectKeyId\":{\"description\":\"Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.\",\"type\":\"object\",\"properties\":{\"keyId\":{\"description\":\"Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.\",\"type\":\"string\"}}},\"x509Description\":{\"description\":\"Describes some of the technical X.509 fields in a certificate.\",\"type\":\"object\",\"properties\":{\"additionalExtensions\":{\"description\":\"Optional. Describes custom X.509 extensions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"critical\":{\"description\":\"Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Required. The OID for this X.509 extension.\",\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}},\"value\":{\"description\":\"Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"aiaOcspServers\":{\"description\":\"Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \\\"Authority Information Access\\\" extension in the certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"caOptions\":{\"description\":\"Optional. Describes options in this X509Parameters that are relevant in a CA certificate.\",\"type\":\"object\",\"properties\":{\"isCa\":{\"description\":\"Optional. Refers to the \\\"CA\\\" X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.\",\"type\":\"boolean\"},\"maxIssuerPathLength\":{\"description\":\"Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.\",\"type\":\"integer\"}}},\"keyUsage\":{\"description\":\"Optional. Indicates the intended use for keys that correspond to a certificate.\",\"type\":\"object\",\"properties\":{\"baseKeyUsage\":{\"description\":\"Describes high-level ways in which a key may be used.\",\"type\":\"object\",\"properties\":{\"certSign\":{\"description\":\"The key may be used to sign certificates.\",\"type\":\"boolean\"},\"contentCommitment\":{\"description\":\"The key may be used for cryptographic commitments. Note that this may also be referred to as \\\"non-repudiation\\\".\",\"type\":\"boolean\"},\"crlSign\":{\"description\":\"The key may be used sign certificate revocation lists.\",\"type\":\"boolean\"},\"dataEncipherment\":{\"description\":\"The key may be used to encipher data.\",\"type\":\"boolean\"},\"decipherOnly\":{\"description\":\"The key may be used to decipher only.\",\"type\":\"boolean\"},\"digitalSignature\":{\"description\":\"The key may be used for digital signatures.\",\"type\":\"boolean\"},\"encipherOnly\":{\"description\":\"The key may be used to encipher only.\",\"type\":\"boolean\"},\"keyAgreement\":{\"description\":\"The key may be used in a key agreement protocol.\",\"type\":\"boolean\"},\"keyEncipherment\":{\"description\":\"The key may be used to encipher other keys.\",\"type\":\"boolean\"}}},\"extendedKeyUsage\":{\"description\":\"Detailed scenarios in which a key may be used.\",\"type\":\"object\",\"properties\":{\"clientAuth\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \\\"TLS WWW client authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"codeSigning\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \\\"Signing of downloadable executable code client authentication\\\".\",\"type\":\"boolean\"},\"emailProtection\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \\\"Email protection\\\".\",\"type\":\"boolean\"},\"ocspSigning\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \\\"Signing OCSP responses\\\".\",\"type\":\"boolean\"},\"serverAuth\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \\\"TLS WWW server authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"timeStamping\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \\\"Binding the hash of an object to a time\\\".\",\"type\":\"boolean\"}}},\"unknownExtendedKeyUsages\":{\"description\":\"Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}}}}},\"policyIds\":{\"description\":\"Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}}}}}}},\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"createTime\":{\"description\":\"Output only. The time at which this Certificate was created.\",\"type\":\"string\"},\"issuerCertificateAuthority\":{\"description\":\"Output only. The resource name of the issuing CertificateAuthority in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"pemCertificate\":{\"description\":\"Output only. The pem-encoded, signed X.509 certificate.\",\"type\":\"string\"},\"pemCertificateChain\":{\"description\":\"Output only. The chain that may be used to verify the X.509 certificate. Expected to be in issuer-to-root order according to RFC 5246.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"revocationDetails\":{\"description\":\"Output only. Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present.\",\"type\":\"object\",\"properties\":{\"revocationState\":{\"description\":\"Indicates why a Certificate was revoked. Possible values: REVOCATION_REASON_UNSPECIFIED, KEY_COMPROMISE, CERTIFICATE_AUTHORITY_COMPROMISE, AFFILIATION_CHANGED, SUPERSEDED, CESSATION_OF_OPERATION, CERTIFICATE_HOLD, PRIVILEGE_WITHDRAWN, ATTRIBUTE_AUTHORITY_COMPROMISE\",\"type\":\"string\"},\"revocationTime\":{\"description\":\"The time at which this Certificate was revoked.\",\"type\":\"string\"}}},\"updateTime\":{\"description\":\"Output only. The time at which this Certificate was updated.\",\"type\":\"string\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"privateca.cnrm.cloud.google.com\",\"kind\":\"PrivateCACertificate\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateList\":{\"description\":\"PrivateCACertificateList is a list of PrivateCACertificate\",\"required\":[\"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 privatecacertificates. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"privateca.cnrm.cloud.google.com\",\"kind\":\"PrivateCACertificateList\",\"version\":\"v1beta1\"}]},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\":{\"description\":\"CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"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/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning 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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"},\"status\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"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\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"default\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}},\"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\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}}},\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv2/privateca_v1beta1_privatecacertificateauthority.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.27.0\"},\"paths\":{\"/apis/privateca.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/privatecacertificateauthorities\":{\"get\":{\"description\":\"list objects of kind PrivateCACertificateAuthority\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listPrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificateAuthority\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthorityList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificateAuthority\"}},\"post\":{\"description\":\"create a PrivateCACertificateAuthority\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"createPrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificateAuthority\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificateAuthority\"}},\"delete\":{\"description\":\"delete collection of PrivateCACertificateAuthority\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deletePrivatecaCnrmCloudGoogleComV1beta1CollectionNamespacedPrivateCACertificateAuthority\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificateAuthority\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/privateca.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/privatecacertificateauthorities/{name}\":{\"get\":{\"description\":\"read the specified PrivateCACertificateAuthority\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readPrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificateAuthority\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificateAuthority\"}},\"put\":{\"description\":\"replace the specified PrivateCACertificateAuthority\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replacePrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificateAuthority\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificateAuthority\"}},\"delete\":{\"description\":\"delete a PrivateCACertificateAuthority\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deletePrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificateAuthority\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificateAuthority\"}},\"patch\":{\"description\":\"partially update the specified PrivateCACertificateAuthority\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchPrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificateAuthority\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificateAuthority\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PrivateCACertificateAuthority\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/privateca.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/privatecacertificateauthorities/{name}/status\":{\"get\":{\"description\":\"read status of the specified PrivateCACertificateAuthority\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readPrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificateAuthorityStatus\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificateAuthority\"}},\"put\":{\"description\":\"replace status of the specified PrivateCACertificateAuthority\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replacePrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificateAuthorityStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificateAuthority\"}},\"patch\":{\"description\":\"partially update status of the specified PrivateCACertificateAuthority\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchPrivatecaCnrmCloudGoogleComV1beta1NamespacedPrivateCACertificateAuthorityStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificateAuthority\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PrivateCACertificateAuthority\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/privateca.cnrm.cloud.google.com/v1beta1/privatecacertificateauthorities\":{\"get\":{\"description\":\"list objects of kind PrivateCACertificateAuthority\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"privatecaCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listPrivatecaCnrmCloudGoogleComV1beta1PrivateCACertificateAuthorityForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthorityList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"privateca.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"PrivateCACertificateAuthority\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]}},\"definitions\":{\"com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\":{\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"type\":\"object\",\"properties\":{\"caPoolRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"The caPool for the resource\\n\\nAllowed value: The Google Cloud resource name of a `PrivateCACAPool` resource (format: `projects/{{project}}/locations/{{location}}/caPools/{{name}}`).\",\"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\"}}},\"config\":{\"description\":\"Immutable. Required. Immutable. The config used to create a self-signed X.509 certificate or CSR.\",\"type\":\"object\",\"properties\":{\"subjectConfig\":{\"description\":\"Immutable. Required. Specifies some of the values in a certificate that are related to the subject.\",\"type\":\"object\",\"properties\":{\"subject\":{\"description\":\"Immutable. Required. Contains distinguished name fields such as the common name, location and organization.\",\"type\":\"object\",\"properties\":{\"commonName\":{\"description\":\"Immutable. The \\\"common name\\\" of the subject.\",\"type\":\"string\"},\"countryCode\":{\"description\":\"Immutable. The country code of the subject.\",\"type\":\"string\"},\"locality\":{\"description\":\"Immutable. The locality or city of the subject.\",\"type\":\"string\"},\"organization\":{\"description\":\"Immutable. The organization of the subject.\",\"type\":\"string\"},\"organizationalUnit\":{\"description\":\"Immutable. The organizational_unit of the subject.\",\"type\":\"string\"},\"postalCode\":{\"description\":\"Immutable. The postal code of the subject.\",\"type\":\"string\"},\"province\":{\"description\":\"Immutable. The province, territory, or regional state of the subject.\",\"type\":\"string\"},\"streetAddress\":{\"description\":\"Immutable. The street address of the subject.\",\"type\":\"string\"}}},\"subjectAltName\":{\"description\":\"Immutable. Optional. The subject alternative name fields.\",\"type\":\"object\",\"properties\":{\"customSans\":{\"description\":\"Immutable. Contains additional subject alternative name values.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"critical\":{\"description\":\"Immutable. Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Immutable. Required. The OID for this X.509 extension.\",\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}},\"value\":{\"description\":\"Immutable. Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"dnsNames\":{\"description\":\"Immutable. Contains only valid, fully-qualified host names.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"emailAddresses\":{\"description\":\"Immutable. Contains only valid RFC 2822 E-mail addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ipAddresses\":{\"description\":\"Immutable. Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"uris\":{\"description\":\"Immutable. Contains only valid RFC 3986 URIs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"x509Config\":{\"description\":\"Immutable. Required. Describes how some of the technical X.509 fields in a certificate should be populated.\",\"type\":\"object\",\"properties\":{\"additionalExtensions\":{\"description\":\"Immutable. Optional. Describes custom X.509 extensions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"critical\":{\"description\":\"Immutable. Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Immutable. Required. The OID for this X.509 extension.\",\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}},\"value\":{\"description\":\"Immutable. Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"caOptions\":{\"description\":\"Immutable. Optional. Describes options in this X509Parameters that are relevant in a CA certificate.\",\"type\":\"object\",\"properties\":{\"isCa\":{\"description\":\"Immutable. Optional. Refers to the \\\"CA\\\" X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.\",\"type\":\"boolean\"},\"maxIssuerPathLength\":{\"description\":\"Immutable. Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.\",\"type\":\"integer\"}}},\"keyUsage\":{\"description\":\"Immutable. Optional. Indicates the intended use for keys that correspond to a certificate.\",\"type\":\"object\",\"properties\":{\"baseKeyUsage\":{\"description\":\"Immutable. Describes high-level ways in which a key may be used.\",\"type\":\"object\",\"properties\":{\"certSign\":{\"description\":\"Immutable. The key may be used to sign certificates.\",\"type\":\"boolean\"},\"contentCommitment\":{\"description\":\"Immutable. The key may be used for cryptographic commitments. Note that this may also be referred to as \\\"non-repudiation\\\".\",\"type\":\"boolean\"},\"crlSign\":{\"description\":\"Immutable. The key may be used sign certificate revocation lists.\",\"type\":\"boolean\"},\"dataEncipherment\":{\"description\":\"Immutable. The key may be used to encipher data.\",\"type\":\"boolean\"},\"decipherOnly\":{\"description\":\"Immutable. The key may be used to decipher only.\",\"type\":\"boolean\"},\"digitalSignature\":{\"description\":\"Immutable. The key may be used for digital signatures.\",\"type\":\"boolean\"},\"encipherOnly\":{\"description\":\"Immutable. The key may be used to encipher only.\",\"type\":\"boolean\"},\"keyAgreement\":{\"description\":\"Immutable. The key may be used in a key agreement protocol.\",\"type\":\"boolean\"},\"keyEncipherment\":{\"description\":\"Immutable. The key may be used to encipher other keys.\",\"type\":\"boolean\"}}},\"extendedKeyUsage\":{\"description\":\"Immutable. Detailed scenarios in which a key may be used.\",\"type\":\"object\",\"properties\":{\"clientAuth\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \\\"TLS WWW client authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"codeSigning\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \\\"Signing of downloadable executable code client authentication\\\".\",\"type\":\"boolean\"},\"emailProtection\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \\\"Email protection\\\".\",\"type\":\"boolean\"},\"ocspSigning\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \\\"Signing OCSP responses\\\".\",\"type\":\"boolean\"},\"serverAuth\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \\\"TLS WWW server authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"timeStamping\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \\\"Binding the hash of an object to a time\\\".\",\"type\":\"boolean\"}}},\"unknownExtendedKeyUsages\":{\"description\":\"Immutable. Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}}}}},\"policyIds\":{\"description\":\"Immutable. Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}}}}}}},\"gcsBucketRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Immutable. The name of a Cloud Storage bucket where this CertificateAuthority will publish content, such as the CA certificate and CRLs. This must be a bucket name, without any prefixes (such as `gs://`) or suffixes (such as `.googleapis.com`). For example, to use a bucket named `my-bucket`, you would simply specify `my-bucket`. If not specified, a managed bucket will be created.\\n\\nAllowed value: The Google Cloud resource name of a `StorageBucket` resource (format: `{{name}}`).\",\"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\"}}},\"keySpec\":{\"description\":\"Immutable. Required. Immutable. Used when issuing certificates for this CertificateAuthority. If this CertificateAuthority is a self-signed CertificateAuthority, this key is also used to sign the self-signed CA certificate. Otherwise, it is used to sign a CSR.\",\"type\":\"object\",\"properties\":{\"algorithm\":{\"description\":\"Immutable. The algorithm to use for creating a managed Cloud KMS key for a for a simplified experience. All managed keys will be have their ProtectionLevel as `HSM`. Possible values: RSA_PSS_2048_SHA256, RSA_PSS_3072_SHA256, RSA_PSS_4096_SHA256, RSA_PKCS1_2048_SHA256, RSA_PKCS1_3072_SHA256, RSA_PKCS1_4096_SHA256, EC_P256_SHA256, EC_P384_SHA384\",\"type\":\"string\"},\"cloudKmsKeyVersionRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"The resource name for an existing Cloud KMS CryptoKeyVersion in the format `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. This option enables full flexibility in the key's capabilities and properties.\",\"type\":\"string\"},\"name\":{\"description\":\"[WARNING] KMSCryptoKeyVersion not yet supported in Config Connector, use 'external' field to reference existing resources.\\nName 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\"}}}}},\"lifetime\":{\"description\":\"Immutable. Required. The desired lifetime of the CA certificate. Used to create the \\\"not_before_time\\\" and \\\"not_after_time\\\" fields inside an X.509 certificate.\",\"type\":\"string\"},\"location\":{\"description\":\"Immutable. The location for the resource\",\"type\":\"string\"},\"projectRef\":{\"description\":\"Immutable. The Project that this resource belongs to.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"The project for the resource\\n\\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"},\"type\":{\"description\":\"Immutable. Required. Immutable. The Type of this CertificateAuthority. Possible values: SELF_SIGNED, SUBORDINATE\",\"type\":\"string\"}}},\"status\":{\"type\":\"object\",\"properties\":{\"accessUrls\":{\"description\":\"Output only. URLs for accessing content published by this CA, such as the CA certificate and CRLs.\",\"type\":\"object\",\"properties\":{\"caCertificateAccessUrl\":{\"description\":\"The URL where this CertificateAuthority's CA certificate is published. This will only be set for CAs that have been activated.\",\"type\":\"string\"},\"crlAccessUrls\":{\"description\":\"The URLs where this CertificateAuthority's CRLs are published. This will only be set for CAs that have been activated.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"caCertificateDescriptions\":{\"description\":\"Output only. A structured description of this CertificateAuthority's CA certificate and its issuers. Ordered as self-to-root.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"aiaIssuingCertificateUrls\":{\"description\":\"Describes lists of issuer CA certificate URLs that appear in the \\\"Authority Information Access\\\" extension in the certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"authorityKeyId\":{\"description\":\"Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1\",\"type\":\"object\",\"properties\":{\"keyId\":{\"description\":\"Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.\",\"type\":\"string\"}}},\"certFingerprint\":{\"description\":\"The hash of the x.509 certificate.\",\"type\":\"object\",\"properties\":{\"sha256Hash\":{\"description\":\"The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.\",\"type\":\"string\"}}},\"crlDistributionPoints\":{\"description\":\"Describes a list of locations to obtain CRL information, i.e. the DistributionPoint.fullName described by https://tools.ietf.org/html/rfc5280#section-4.2.1.13\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"publicKey\":{\"description\":\"The public key that corresponds to an issued certificate.\",\"type\":\"object\",\"properties\":{\"format\":{\"description\":\"Required. The format of the public key. Possible values: PEM\",\"type\":\"string\"},\"key\":{\"description\":\"Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.\",\"type\":\"string\"}}},\"subjectDescription\":{\"description\":\"Describes some of the values in a certificate that are related to the subject and lifetime.\",\"type\":\"object\",\"properties\":{\"hexSerialNumber\":{\"description\":\"The serial number encoded in lowercase hexadecimal.\",\"type\":\"string\"},\"lifetime\":{\"description\":\"For convenience, the actual lifetime of an issued certificate.\",\"type\":\"string\"},\"notAfterTime\":{\"description\":\"The time after which the certificate is expired. Per RFC 5280, the validity period for a certificate is the period of time from not_before_time through not_after_time, inclusive. Corresponds to 'not_before_time' + 'lifetime' - 1 second.\",\"type\":\"string\"},\"notBeforeTime\":{\"description\":\"The time at which the certificate becomes valid.\",\"type\":\"string\"},\"subject\":{\"description\":\"Contains distinguished name fields such as the common name, location and organization.\",\"type\":\"object\",\"properties\":{\"commonName\":{\"description\":\"The \\\"common name\\\" of the subject.\",\"type\":\"string\"},\"countryCode\":{\"description\":\"The country code of the subject.\",\"type\":\"string\"},\"locality\":{\"description\":\"The locality or city of the subject.\",\"type\":\"string\"},\"organization\":{\"description\":\"The organization of the subject.\",\"type\":\"string\"},\"organizationalUnit\":{\"description\":\"The organizational_unit of the subject.\",\"type\":\"string\"},\"postalCode\":{\"description\":\"The postal code of the subject.\",\"type\":\"string\"},\"province\":{\"description\":\"The province, territory, or regional state of the subject.\",\"type\":\"string\"},\"streetAddress\":{\"description\":\"The street address of the subject.\",\"type\":\"string\"}}},\"subjectAltName\":{\"description\":\"The subject alternative name fields.\",\"type\":\"object\",\"properties\":{\"customSans\":{\"description\":\"Contains additional subject alternative name values.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"critical\":{\"description\":\"Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Required. The OID for this X.509 extension.\",\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}},\"value\":{\"description\":\"Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"dnsNames\":{\"description\":\"Contains only valid, fully-qualified host names.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"emailAddresses\":{\"description\":\"Contains only valid RFC 2822 E-mail addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ipAddresses\":{\"description\":\"Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"uris\":{\"description\":\"Contains only valid RFC 3986 URIs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"subjectKeyId\":{\"description\":\"Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.\",\"type\":\"object\",\"properties\":{\"keyId\":{\"description\":\"Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.\",\"type\":\"string\"}}},\"x509Description\":{\"description\":\"Describes some of the technical X.509 fields in a certificate.\",\"type\":\"object\",\"properties\":{\"additionalExtensions\":{\"description\":\"Optional. Describes custom X.509 extensions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"critical\":{\"description\":\"Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Required. The OID for this X.509 extension.\",\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}},\"value\":{\"description\":\"Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"aiaOcspServers\":{\"description\":\"Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \\\"Authority Information Access\\\" extension in the certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"caOptions\":{\"description\":\"Optional. Describes options in this X509Parameters that are relevant in a CA certificate.\",\"type\":\"object\",\"properties\":{\"isCa\":{\"description\":\"Optional. Refers to the \\\"CA\\\" X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.\",\"type\":\"boolean\"},\"maxIssuerPathLength\":{\"description\":\"Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.\",\"type\":\"integer\"}}},\"keyUsage\":{\"description\":\"Optional. Indicates the intended use for keys that correspond to a certificate.\",\"type\":\"object\",\"properties\":{\"baseKeyUsage\":{\"description\":\"Describes high-level ways in which a key may be used.\",\"type\":\"object\",\"properties\":{\"certSign\":{\"description\":\"The key may be used to sign certificates.\",\"type\":\"boolean\"},\"contentCommitment\":{\"description\":\"The key may be used for cryptographic commitments. Note that this may also be referred to as \\\"non-repudiation\\\".\",\"type\":\"boolean\"},\"crlSign\":{\"description\":\"The key may be used sign certificate revocation lists.\",\"type\":\"boolean\"},\"dataEncipherment\":{\"description\":\"The key may be used to encipher data.\",\"type\":\"boolean\"},\"decipherOnly\":{\"description\":\"The key may be used to decipher only.\",\"type\":\"boolean\"},\"digitalSignature\":{\"description\":\"The key may be used for digital signatures.\",\"type\":\"boolean\"},\"encipherOnly\":{\"description\":\"The key may be used to encipher only.\",\"type\":\"boolean\"},\"keyAgreement\":{\"description\":\"The key may be used in a key agreement protocol.\",\"type\":\"boolean\"},\"keyEncipherment\":{\"description\":\"The key may be used to encipher other keys.\",\"type\":\"boolean\"}}},\"extendedKeyUsage\":{\"description\":\"Detailed scenarios in which a key may be used.\",\"type\":\"object\",\"properties\":{\"clientAuth\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \\\"TLS WWW client authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"codeSigning\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \\\"Signing of downloadable executable code client authentication\\\".\",\"type\":\"boolean\"},\"emailProtection\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \\\"Email protection\\\".\",\"type\":\"boolean\"},\"ocspSigning\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \\\"Signing OCSP responses\\\".\",\"type\":\"boolean\"},\"serverAuth\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \\\"TLS WWW server authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"timeStamping\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \\\"Binding the hash of an object to a time\\\".\",\"type\":\"boolean\"}}},\"unknownExtendedKeyUsages\":{\"description\":\"Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}}}}},\"policyIds\":{\"description\":\"Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\"}}}}}}}}}},\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"config\":{\"type\":\"object\",\"properties\":{\"publicKey\":{\"description\":\"Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR.\",\"type\":\"object\",\"properties\":{\"format\":{\"description\":\"Required. The format of the public key. Possible values: PEM\",\"type\":\"string\"},\"key\":{\"description\":\"Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.\",\"type\":\"string\"}}},\"x509Config\":{\"type\":\"object\",\"properties\":{\"aiaOcspServers\":{\"description\":\"Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \\\"Authority Information Access\\\" extension in the certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"createTime\":{\"description\":\"Output only. The time at which this CertificateAuthority was created.\",\"type\":\"string\"},\"deleteTime\":{\"description\":\"Output only. The time at which this CertificateAuthority was soft deleted, if it is in the DELETED state.\",\"type\":\"string\"},\"expireTime\":{\"description\":\"Output only. The time at which this CertificateAuthority will be permanently purged, if it is in the DELETED state.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"pemCaCertificates\":{\"description\":\"Output only. This CertificateAuthority's certificate chain, including the current CertificateAuthority's certificate. Ordered such that the root issuer is the final element (consistent with RFC 5246). For a self-signed CA, this will only list the current CertificateAuthority's certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"state\":{\"description\":\"Output only. The State for this CertificateAuthority. Possible values: ENABLED, DISABLED, STAGED, AWAITING_USER_ACTIVATION, DELETED\",\"type\":\"string\"},\"subordinateConfig\":{\"description\":\"Optional. If this is a subordinate CertificateAuthority, this field will be set with the subordinate configuration, which describes its issuers. This may be updated, but this CertificateAuthority must continue to validate.\",\"type\":\"object\",\"properties\":{\"certificateAuthority\":{\"description\":\"Required. This can refer to a CertificateAuthority in the same project that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`.\",\"type\":\"string\"},\"pemIssuerChain\":{\"description\":\"Required. Contains the PEM certificate chain for the issuers of this CertificateAuthority, but not pem certificate for this CA itself.\",\"type\":\"object\",\"properties\":{\"pemCertificates\":{\"description\":\"Required. Expected to be in leaf-to-root order according to RFC 5246.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"tier\":{\"description\":\"Output only. The CaPool.Tier of the CaPool that includes this CertificateAuthority. Possible values: ENTERPRISE, DEVOPS\",\"type\":\"string\"},\"updateTime\":{\"description\":\"Output only. The time at which this CertificateAuthority was last updated.\",\"type\":\"string\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"privateca.cnrm.cloud.google.com\",\"kind\":\"PrivateCACertificateAuthority\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthorityList\":{\"description\":\"PrivateCACertificateAuthorityList is a list of PrivateCACertificateAuthority\",\"required\":[\"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 privatecacertificateauthorities. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"privateca.cnrm.cloud.google.com\",\"kind\":\"PrivateCACertificateAuthorityList\",\"version\":\"v1beta1\"}]},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\":{\"description\":\"CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"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/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning 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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"},\"status\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"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\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"default\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}},\"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\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}}},\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv2/storagetransfer_v1beta1_storagetransferjob.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.27.0\"},\"paths\":{\"/apis/storagetransfer.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/storagetransferjobs\":{\"get\":{\"description\":\"list objects of kind StorageTransferJob\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"storagetransferCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listStoragetransferCnrmCloudGoogleComV1beta1NamespacedStorageTransferJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"StorageTransferJob\"}},\"post\":{\"description\":\"create a StorageTransferJob\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"storagetransferCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"createStoragetransferCnrmCloudGoogleComV1beta1NamespacedStorageTransferJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"StorageTransferJob\"}},\"delete\":{\"description\":\"delete collection of StorageTransferJob\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"storagetransferCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteStoragetransferCnrmCloudGoogleComV1beta1CollectionNamespacedStorageTransferJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"StorageTransferJob\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storagetransfer.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/storagetransferjobs/{name}\":{\"get\":{\"description\":\"read the specified StorageTransferJob\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"storagetransferCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readStoragetransferCnrmCloudGoogleComV1beta1NamespacedStorageTransferJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"StorageTransferJob\"}},\"put\":{\"description\":\"replace the specified StorageTransferJob\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"storagetransferCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceStoragetransferCnrmCloudGoogleComV1beta1NamespacedStorageTransferJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"StorageTransferJob\"}},\"delete\":{\"description\":\"delete a StorageTransferJob\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"storagetransferCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteStoragetransferCnrmCloudGoogleComV1beta1NamespacedStorageTransferJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"StorageTransferJob\"}},\"patch\":{\"description\":\"partially update the specified StorageTransferJob\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"storagetransferCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchStoragetransferCnrmCloudGoogleComV1beta1NamespacedStorageTransferJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"StorageTransferJob\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StorageTransferJob\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storagetransfer.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/storagetransferjobs/{name}/status\":{\"get\":{\"description\":\"read status of the specified StorageTransferJob\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"storagetransferCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readStoragetransferCnrmCloudGoogleComV1beta1NamespacedStorageTransferJobStatus\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"StorageTransferJob\"}},\"put\":{\"description\":\"replace status of the specified StorageTransferJob\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"storagetransferCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceStoragetransferCnrmCloudGoogleComV1beta1NamespacedStorageTransferJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"StorageTransferJob\"}},\"patch\":{\"description\":\"partially update status of the specified StorageTransferJob\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"storagetransferCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchStoragetransferCnrmCloudGoogleComV1beta1NamespacedStorageTransferJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"StorageTransferJob\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StorageTransferJob\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storagetransfer.cnrm.cloud.google.com/v1beta1/storagetransferjobs\":{\"get\":{\"description\":\"list objects of kind StorageTransferJob\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"storagetransferCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listStoragetransferCnrmCloudGoogleComV1beta1StorageTransferJobForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"StorageTransferJob\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]}},\"definitions\":{\"com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\":{\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"type\":\"object\",\"properties\":{\"description\":{\"description\":\"Unique description to identify the Transfer Job.\",\"type\":\"string\"},\"notificationConfig\":{\"description\":\"Notification configuration.\",\"type\":\"object\",\"properties\":{\"eventTypes\":{\"description\":\"Event types for which a notification is desired. If empty, send notifications for all event types. The valid types are \\\"TRANSFER_OPERATION_SUCCESS\\\", \\\"TRANSFER_OPERATION_FAILED\\\", \\\"TRANSFER_OPERATION_ABORTED\\\".\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"payloadFormat\":{\"description\":\"The desired format of the notification message payloads. One of \\\"NONE\\\" or \\\"JSON\\\".\",\"type\":\"string\"},\"topicRef\":{\"description\":\"The PubSubTopic to which to publish notifications.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{project}}/topics/{{value}}`, where {{value}} is the `name` field of a `PubSubTopic` resource.\",\"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\"}}}}},\"resourceID\":{\"description\":\"Immutable. Optional. The service-generated name of the resource. Used for acquisition only. Leave unset to create a new resource.\",\"type\":\"string\"},\"schedule\":{\"description\":\"Schedule specification defining when the Transfer Job should be scheduled to start, end and what time to run.\",\"type\":\"object\",\"properties\":{\"repeatInterval\":{\"description\":\"Interval between the start of each scheduled transfer. If unspecified, the default value is 24 hours. This value may not be less than 1 hour. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \\\"3.5s\\\".\",\"type\":\"string\"},\"scheduleEndDate\":{\"description\":\"Immutable. The last day the recurring transfer will be run. If schedule_end_date is the same as schedule_start_date, the transfer will be executed only once.\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Immutable. Day of month. Must be from 1 to 31 and valid for the year and month.\",\"type\":\"integer\"},\"month\":{\"description\":\"Immutable. Month of year. Must be from 1 to 12.\",\"type\":\"integer\"},\"year\":{\"description\":\"Immutable. Year of date. Must be from 1 to 9999.\",\"type\":\"integer\"}}},\"scheduleStartDate\":{\"description\":\"Immutable. The first day the recurring transfer is scheduled to run. If schedule_start_date is in the past, the transfer will run for the first time on the following day.\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Immutable. Day of month. Must be from 1 to 31 and valid for the year and month.\",\"type\":\"integer\"},\"month\":{\"description\":\"Immutable. Month of year. Must be from 1 to 12.\",\"type\":\"integer\"},\"year\":{\"description\":\"Immutable. Year of date. Must be from 1 to 9999.\",\"type\":\"integer\"}}},\"startTimeOfDay\":{\"description\":\"Immutable. The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, recurring and one-time transfers that are scheduled to run today will run immediately; recurring transfers that are scheduled to run on a future date will start at approximately midnight UTC on that date. Note that when configuring a transfer with the Cloud Platform Console, the transfer's start time in a day is specified in your local timezone.\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Immutable. Hours of day in 24 hour format. Should be from 0 to 23.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Immutable. Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Immutable. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Immutable. Seconds of minutes of the time. Must normally be from 0 to 59.\",\"type\":\"integer\"}}}}},\"status\":{\"description\":\"Status of the job. Default: ENABLED. NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from ENABLED to DISABLED, and an operation spawned by the transfer is running, the status change would not affect the current operation.\",\"type\":\"string\"},\"transferSpec\":{\"description\":\"Transfer specification.\",\"type\":\"object\",\"properties\":{\"awsS3DataSource\":{\"description\":\"An AWS S3 data source.\",\"type\":\"object\",\"properties\":{\"awsAccessKey\":{\"description\":\"AWS credentials block.\",\"type\":\"object\",\"properties\":{\"accessKeyId\":{\"description\":\"AWS Key ID.\",\"type\":\"object\",\"properties\":{\"value\":{\"description\":\"Value of the field. Cannot be used if 'valueFrom' is specified.\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the field's value. Cannot be used if 'value' is specified.\",\"type\":\"object\",\"properties\":{\"secretKeyRef\":{\"description\":\"Reference to a value with the given key in the given Secret in the resource's namespace.\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Key that identifies the value to be extracted.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the Secret to extract a value from.\",\"type\":\"string\"}}}}}}},\"secretAccessKey\":{\"description\":\"AWS Secret Access Key.\",\"type\":\"object\",\"properties\":{\"value\":{\"description\":\"Value of the field. Cannot be used if 'valueFrom' is specified.\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the field's value. Cannot be used if 'value' is specified.\",\"type\":\"object\",\"properties\":{\"secretKeyRef\":{\"description\":\"Reference to a value with the given key in the given Secret in the resource's namespace.\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Key that identifies the value to be extracted.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the Secret to extract a value from.\",\"type\":\"string\"}}}}}}}}},\"bucketName\":{\"description\":\"S3 Bucket name.\",\"type\":\"string\"},\"roleArn\":{\"description\":\"The Amazon Resource Name (ARN) of the role to support temporary credentials via 'AssumeRoleWithWebIdentity'. For more information about ARNs, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns). When a role ARN is provided, Transfer Service fetches temporary credentials for the session using a 'AssumeRoleWithWebIdentity' call for the provided role using the [GoogleServiceAccount][] for this project.\",\"type\":\"string\"}}},\"azureBlobStorageDataSource\":{\"description\":\"An Azure Blob Storage data source.\",\"type\":\"object\",\"properties\":{\"azureCredentials\":{\"description\":\" Credentials used to authenticate API requests to Azure.\",\"type\":\"object\",\"properties\":{\"sasToken\":{\"description\":\"Azure shared access signature.\",\"type\":\"object\",\"properties\":{\"value\":{\"description\":\"Value of the field. Cannot be used if 'valueFrom' is specified.\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the field's value. Cannot be used if 'value' is specified.\",\"type\":\"object\",\"properties\":{\"secretKeyRef\":{\"description\":\"Reference to a value with the given key in the given Secret in the resource's namespace.\",\"type\":\"object\",\"properties\":{\"key\":{\"description\":\"Key that identifies the value to be extracted.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the Secret to extract a value from.\",\"type\":\"string\"}}}}}}}}},\"container\":{\"description\":\"The container to transfer from the Azure Storage account.\",\"type\":\"string\"},\"path\":{\"description\":\"Root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'.\",\"type\":\"string\"},\"storageAccount\":{\"description\":\"The name of the Azure Storage account.\",\"type\":\"string\"}}},\"gcsDataSink\":{\"description\":\"A Google Cloud Storage data sink.\",\"type\":\"object\",\"properties\":{\"bucketRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The `name` field of a `StorageBucket` resource.\",\"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\"}}},\"path\":{\"description\":\"Google Cloud Storage path in bucket to transfer.\",\"type\":\"string\"}}},\"gcsDataSource\":{\"description\":\"A Google Cloud Storage data source.\",\"type\":\"object\",\"properties\":{\"bucketRef\":{\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Allowed value: The `name` field of a `StorageBucket` resource.\",\"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\"}}},\"path\":{\"description\":\"Google Cloud Storage path in bucket to transfer.\",\"type\":\"string\"}}},\"httpDataSource\":{\"description\":\"A HTTP URL data source.\",\"type\":\"object\",\"properties\":{\"listUrl\":{\"description\":\"The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.\",\"type\":\"string\"}}},\"objectConditions\":{\"description\":\"Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' last_modification_time do not exclude objects in a data sink.\",\"type\":\"object\",\"properties\":{\"excludePrefixes\":{\"description\":\"exclude_prefixes must follow the requirements described for include_prefixes.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"includePrefixes\":{\"description\":\"If include_refixes is specified, objects that satisfy the object conditions must have names that start with one of the include_prefixes and that do not start with any of the exclude_prefixes. If include_prefixes is not specified, all objects except those that have names starting with one of the exclude_prefixes must satisfy the object conditions.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"maxTimeElapsedSinceLastModification\":{\"description\":\"A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \\\"3.5s\\\".\",\"type\":\"string\"},\"minTimeElapsedSinceLastModification\":{\"description\":\"A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \\\"3.5s\\\".\",\"type\":\"string\"}}},\"posixDataSink\":{\"description\":\"A POSIX filesystem data sink.\",\"type\":\"object\",\"properties\":{\"rootDirectory\":{\"description\":\"Root directory path to the filesystem.\",\"type\":\"string\"}}},\"posixDataSource\":{\"description\":\"A POSIX filesystem data source.\",\"type\":\"object\",\"properties\":{\"rootDirectory\":{\"description\":\"Root directory path to the filesystem.\",\"type\":\"string\"}}},\"transferOptions\":{\"description\":\"Characteristics of how to treat files from datasource and sink during job. If the option delete_objects_unique_in_sink is true, object conditions based on objects' last_modification_time are ignored and do not exclude objects in a data source or a data sink.\",\"type\":\"object\",\"properties\":{\"deleteObjectsFromSourceAfterTransfer\":{\"description\":\"Whether objects should be deleted from the source after they are transferred to the sink. Note that this option and delete_objects_unique_in_sink are mutually exclusive.\",\"type\":\"boolean\"},\"deleteObjectsUniqueInSink\":{\"description\":\"Whether objects that exist only in the sink should be deleted. Note that this option and delete_objects_from_source_after_transfer are mutually exclusive.\",\"type\":\"boolean\"},\"overwriteObjectsAlreadyExistingInSink\":{\"description\":\"Whether overwriting objects that already exist in the sink is allowed.\",\"type\":\"boolean\"},\"overwriteWhen\":{\"description\":\"When to overwrite objects that already exist in the sink. If not set, overwrite behavior is determined by overwriteObjectsAlreadyExistingInSink.\",\"type\":\"string\"}}}}}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"creationTime\":{\"description\":\"When the Transfer Job was created.\",\"type\":\"string\"},\"deletionTime\":{\"description\":\"When the Transfer Job was deleted.\",\"type\":\"string\"},\"lastModificationTime\":{\"description\":\"When the Transfer Job was last modified.\",\"type\":\"string\"},\"name\":{\"description\":\"The name of the Transfer Job.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"kind\":\"StorageTransferJob\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJobList\":{\"description\":\"StorageTransferJobList is a list of StorageTransferJob\",\"required\":[\"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 storagetransferjobs. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"kind\":\"StorageTransferJobList\",\"version\":\"v1beta1\"}]},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\":{\"description\":\"CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"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/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning 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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"},\"status\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"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\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"default\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}},\"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\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}}},\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv2/vpcaccess_v1beta1_vpcaccessconnector.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.27.0\"},\"paths\":{\"/apis/vpcaccess.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/vpcaccessconnectors\":{\"get\":{\"description\":\"list objects of kind VPCAccessConnector\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"vpcaccessCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listVpcaccessCnrmCloudGoogleComV1beta1NamespacedVPCAccessConnector\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnectorList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"VPCAccessConnector\"}},\"post\":{\"description\":\"create a VPCAccessConnector\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"vpcaccessCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"createVpcaccessCnrmCloudGoogleComV1beta1NamespacedVPCAccessConnector\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"VPCAccessConnector\"}},\"delete\":{\"description\":\"delete collection of VPCAccessConnector\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"vpcaccessCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteVpcaccessCnrmCloudGoogleComV1beta1CollectionNamespacedVPCAccessConnector\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"VPCAccessConnector\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/vpcaccess.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/vpcaccessconnectors/{name}\":{\"get\":{\"description\":\"read the specified VPCAccessConnector\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"vpcaccessCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readVpcaccessCnrmCloudGoogleComV1beta1NamespacedVPCAccessConnector\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"VPCAccessConnector\"}},\"put\":{\"description\":\"replace the specified VPCAccessConnector\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"vpcaccessCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceVpcaccessCnrmCloudGoogleComV1beta1NamespacedVPCAccessConnector\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"VPCAccessConnector\"}},\"delete\":{\"description\":\"delete a VPCAccessConnector\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"vpcaccessCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"deleteVpcaccessCnrmCloudGoogleComV1beta1NamespacedVPCAccessConnector\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"VPCAccessConnector\"}},\"patch\":{\"description\":\"partially update the specified VPCAccessConnector\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"vpcaccessCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchVpcaccessCnrmCloudGoogleComV1beta1NamespacedVPCAccessConnector\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"VPCAccessConnector\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the VPCAccessConnector\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/vpcaccess.cnrm.cloud.google.com/v1beta1/namespaces/{namespace}/vpcaccessconnectors/{name}/status\":{\"get\":{\"description\":\"read status of the specified VPCAccessConnector\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"vpcaccessCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"readVpcaccessCnrmCloudGoogleComV1beta1NamespacedVPCAccessConnectorStatus\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"VPCAccessConnector\"}},\"put\":{\"description\":\"replace status of the specified VPCAccessConnector\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"vpcaccessCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"replaceVpcaccessCnrmCloudGoogleComV1beta1NamespacedVPCAccessConnectorStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"VPCAccessConnector\"}},\"patch\":{\"description\":\"partially update status of the specified VPCAccessConnector\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/apply-patch+yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"vpcaccessCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"patchVpcaccessCnrmCloudGoogleComV1beta1NamespacedVPCAccessConnectorStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"name\":\"fieldManager\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\"name\":\"fieldValidation\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"VPCAccessConnector\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the VPCAccessConnector\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/vpcaccess.cnrm.cloud.google.com/v1beta1/vpcaccessconnectors\":{\"get\":{\"description\":\"list objects of kind VPCAccessConnector\",\"consumes\":[\"application/json\",\"application/yaml\"],\"produces\":[\"application/json\",\"application/yaml\"],\"schemes\":[\"https\"],\"tags\":[\"vpcaccessCnrmCloudGoogleCom_v1beta1\"],\"operationId\":\"listVpcaccessCnrmCloudGoogleComV1beta1VPCAccessConnectorForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnectorList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"version\":\"v1beta1\",\"kind\":\"VPCAccessConnector\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"name\":\"allowWatchBookmarks\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"name\":\"resourceVersionMatch\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]}},\"definitions\":{\"com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\":{\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"type\":\"object\",\"properties\":{\"ipCidrRange\":{\"description\":\"Immutable. The range of internal addresses that follows RFC 4632 notation. Example: `10.132.0.0/28`.\",\"type\":\"string\"},\"location\":{\"description\":\"Immutable. The location for the resource\",\"type\":\"string\"},\"machineType\":{\"description\":\"Immutable. Machine type of VM Instance underlying connector. Default is e2-micro\",\"type\":\"string\"},\"maxInstances\":{\"description\":\"Immutable. Maximum value of instances in autoscaling group underlying the connector.\",\"type\":\"integer\"},\"maxThroughput\":{\"description\":\"Immutable. Maximum throughput of the connector in Mbps. Default is 200, max is 1000.\",\"type\":\"integer\"},\"minInstances\":{\"description\":\"Immutable. Minimum value of instances in autoscaling group underlying the connector.\",\"type\":\"integer\"},\"minThroughput\":{\"description\":\"Immutable. Minimum throughput of the connector in Mbps. Default and min is 200.\",\"type\":\"integer\"},\"networkRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Name of a VPC network.\\n\\nAllowed value: The Google Cloud resource name of a `ComputeNetwork` resource (format: `projects/{{project}}/global/networks/{{name}}`).\",\"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\"}}},\"projectRef\":{\"description\":\"Immutable. The Project that this resource belongs to.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"The project for the resource\\n\\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"},\"subnet\":{\"description\":\"Immutable. The subnet in which to house the VPC Access Connector.\",\"type\":\"object\",\"properties\":{\"nameRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Subnet name (relative, not fully qualified). E.g. if the full subnet selfLink is https://compute.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetName} the correct input for this field would be: {subnetName}\\n\\nAllowed value: The Google Cloud resource name of a `ComputeSubnetwork` resource (format: `projects/{{project}}/regions/{{region}}/subnetworks/{{name}}`).\",\"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\"}}},\"projectRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"properties\":{\"external\":{\"description\":\"Project in which the subnet exists. If not set, this project is assumed to be the project for which the connector create request was issued.\\n\\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}}}}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"connectedProjects\":{\"description\":\"Output only. List of projects using the connector.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"state\":{\"description\":\"Output only. State of the VPC access connector. Possible values: STATE_UNSPECIFIED, READY, CREATING, DELETING, ERROR, UPDATING\",\"type\":\"string\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"kind\":\"VPCAccessConnector\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnectorList\":{\"description\":\"VPCAccessConnectorList is a list of VPCAccessConnector\",\"required\":[\"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 vpcaccessconnectors. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"vpcaccess.cnrm.cloud.google.com\",\"kind\":\"VPCAccessConnectorList\",\"version\":\"v1beta1\"}]},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\":{\"description\":\"CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"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/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning 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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"},\"status\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"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\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"default\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}},\"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\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}}},\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv3/accesscontextmanager_v1beta1_accesscontextmanagerserviceperimeter.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes CRD Swagger\",\"version\":\"v0.1.0\"},\"components\":{\"schemas\":{\"com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\":{\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"type\":\"object\",\"required\":[\"accessPolicyRef\",\"title\"],\"properties\":{\"accessPolicyRef\":{\"description\":\"The AccessContextManagerAccessPolicy this\\nAccessContextManagerServicePerimeter lives in.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `accessPolicies/{{value}}`, where {{value}} is the `name` field of an `AccessContextManagerAccessPolicy` resource.\",\"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\"}}},\"description\":{\"description\":\"Description of the ServicePerimeter and its use. Does not affect\\nbehavior.\",\"type\":\"string\"},\"perimeterType\":{\"description\":\"Immutable. Specifies the type of the Perimeter. There are two types: regular and\\nbridge. Regular Service Perimeter contains resources, access levels,\\nand restricted services. Every resource can be in at most\\nONE regular Service Perimeter.\\n\\nIn addition to being in a regular service perimeter, a resource can also\\nbe in zero or more perimeter bridges. A perimeter bridge only contains\\nresources. Cross project operations are permitted if all effected\\nresources share some perimeter (whether bridge or regular). Perimeter\\nBridge does not contain access levels or services: those are governed\\nentirely by the regular perimeter that resource is in.\\n\\nPerimeter Bridges are typically useful when building more complex\\ntopologies with many independent perimeters that need to share some data\\nwith a common perimeter, but should not be able to share data among\\nthemselves. Default value: \\\"PERIMETER_TYPE_REGULAR\\\" Possible values: [\\\"PERIMETER_TYPE_REGULAR\\\", \\\"PERIMETER_TYPE_BRIDGE\\\"].\",\"type\":\"string\"},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"},\"spec\":{\"description\":\"Proposed (or dry run) ServicePerimeter configuration.\\nThis configuration allows to specify and test ServicePerimeter configuration\\nwithout enforcing actual access restrictions. Only allowed to be set when\\nthe 'useExplicitDryRunSpec' flag is set.\",\"type\":\"object\",\"properties\":{\"accessLevels\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of AccessLevel resource names that allow resources within\\nthe ServicePerimeter to be accessed from the internet. AccessLevels listed\\nmust be in the same policy as this ServicePerimeter.\\nReferencing a nonexistent AccessLevel is a syntax error. If no\\nAccessLevel names are listed, resources within the perimeter can\\nonly be accessed via GCP calls with request origins within the\\nperimeter. For Service Perimeter Bridge, must be empty.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `{{parent}}/accessLevels/{{value}}`, where {{value}} is the `name` field of an `AccessContextManagerAccessLevel` resource.\",\"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\"}}}},\"egressPolicies\":{\"description\":\"List of EgressPolicies to apply to the perimeter. A perimeter may \\nhave multiple EgressPolicies, each of which is evaluated separately.\\nAccess is granted if any EgressPolicy grants it. Must be empty for \\na perimeter bridge.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"egressFrom\":{\"description\":\"Defines conditions on the source of a request causing this 'EgressPolicy' to apply.\",\"type\":\"object\",\"properties\":{\"identities\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of identities that are allowed access through this\\nEgressPolicy. Should be in the format of email address. The email\\naddress should represent individual user or service account only.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"serviceAccountRef\"]},{\"required\":[\"user\"]}],\"properties\":{\"serviceAccountRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `serviceAccount:{{value}}`, where {{value}} is the `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"user\":{\"type\":\"string\"}}}},\"identityType\":{\"description\":\"Specifies the type of identities that are allowed access to outside the \\nperimeter. If left unspecified, then members of 'identities' field will \\nbe allowed access. Possible values: [\\\"IDENTITY_TYPE_UNSPECIFIED\\\", \\\"ANY_IDENTITY\\\", \\\"ANY_USER_ACCOUNT\\\", \\\"ANY_SERVICE_ACCOUNT\\\"].\",\"type\":\"string\"}}},\"egressTo\":{\"description\":\"Defines the conditions on the 'ApiOperation' and destination resources that \\ncause this 'EgressPolicy' to apply.\",\"type\":\"object\",\"properties\":{\"externalResources\":{\"description\":\"A list of external resources that are allowed to be accessed. A request\\nmatches if it contains an external resource in this list (Example:\\ns3://bucket/path). Currently '*' is not allowed.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"operations\":{\"description\":\"A list of 'ApiOperations' that this egress rule applies to. A request matches \\nif it contains an operation/service in this list.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"methodSelectors\":{\"description\":\"API methods or permissions to allow. Method or permission must belong \\nto the service specified by 'serviceName' field. A single MethodSelector \\nentry with '*' specified for the 'method' field will allow all methods \\nAND permissions for the service specified in 'serviceName'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"method\":{\"description\":\"Value for 'method' should be a valid method name for the corresponding \\n'serviceName' in 'ApiOperation'. If '*' used as value for method, \\nthen ALL methods and permissions are allowed.\",\"type\":\"string\"},\"permission\":{\"description\":\"Value for permission should be a valid Cloud IAM permission for the \\ncorresponding 'serviceName' in 'ApiOperation'.\",\"type\":\"string\"}}}},\"serviceName\":{\"description\":\"The name of the API whose methods or permissions the 'IngressPolicy' or \\n'EgressPolicy' want to allow. A single 'ApiOperation' with serviceName \\nfield set to '*' will allow all methods AND permissions for all services.\",\"type\":\"string\"}}}},\"resources\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of resources, currently only projects in the form\\n\\\"projects/{project_number}\\\". A request\\nmatches if it contains a resource in this list.\",\"type\":\"object\",\"properties\":{\"projectRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}}}}}}},\"ingressPolicies\":{\"description\":\"List of 'IngressPolicies' to apply to the perimeter. A perimeter may\\nhave multiple 'IngressPolicies', each of which is evaluated\\nseparately. Access is granted if any 'Ingress Policy' grants it.\\nMust be empty for a perimeter bridge.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"ingressFrom\":{\"description\":\"Defines the conditions on the source of a request causing this 'IngressPolicy'\\nto apply.\",\"type\":\"object\",\"properties\":{\"identities\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of identities that are allowed access through this\\ningress policy. Should be in the format of email address. The email\\naddress should represent individual user or service account only.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"serviceAccountRef\"]},{\"required\":[\"user\"]}],\"properties\":{\"serviceAccountRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `serviceAccount:{{value}}`, where {{value}} is the `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"user\":{\"type\":\"string\"}}}},\"identityType\":{\"description\":\"Specifies the type of identities that are allowed access from outside the \\nperimeter. If left unspecified, then members of 'identities' field will be \\nallowed access. Possible values: [\\\"IDENTITY_TYPE_UNSPECIFIED\\\", \\\"ANY_IDENTITY\\\", \\\"ANY_USER_ACCOUNT\\\", \\\"ANY_SERVICE_ACCOUNT\\\"].\",\"type\":\"string\"},\"sources\":{\"description\":\"Sources that this 'IngressPolicy' authorizes access from.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"accessLevelRef\":{\"description\":\"An AccessLevel resource name that allow resources within the\\nServicePerimeters to be accessed from the internet. AccessLevels\\nlisted must be in the same policy as this ServicePerimeter.\\nReferencing a nonexistent AccessLevel will cause an error. If no\\nAccessLevel names are listed, resources within the perimeter can\\nonly be accessed via Google Cloud calls with request origins within\\nthe perimeter.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `{{parent}}/accessLevels/{{value}}`, where {{value}} is the `name` field of an `AccessContextManagerAccessLevel` resource.\",\"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\"}}},\"projectRef\":{\"description\":\"(Optional) A Google Cloud resource that is allowed to ingress the\\nperimeter. Requests from these resources will be allowed to access\\nperimeter data. Currently only projects are allowed. Format\\n\\\"projects/{project_number}\\\" The project may be in any Google Cloud\\norganization, not just the organization that the perimeter is defined in.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}}}},\"ingressTo\":{\"description\":\"Defines the conditions on the 'ApiOperation' and request destination that cause\\nthis 'IngressPolicy' to apply.\",\"type\":\"object\",\"properties\":{\"operations\":{\"description\":\"A list of 'ApiOperations' the sources specified in corresponding 'IngressFrom' \\nare allowed to perform in this 'ServicePerimeter'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"methodSelectors\":{\"description\":\"API methods or permissions to allow. Method or permission must belong to \\nthe service specified by serviceName field. A single 'MethodSelector' entry \\nwith '*' specified for the method field will allow all methods AND \\npermissions for the service specified in 'serviceName'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"method\":{\"description\":\"Value for method should be a valid method name for the corresponding \\nserviceName in 'ApiOperation'. If '*' used as value for 'method', then \\nALL methods and permissions are allowed.\",\"type\":\"string\"},\"permission\":{\"description\":\"Value for permission should be a valid Cloud IAM permission for the \\ncorresponding 'serviceName' in 'ApiOperation'.\",\"type\":\"string\"}}}},\"serviceName\":{\"description\":\"The name of the API whose methods or permissions the 'IngressPolicy' or \\n'EgressPolicy' want to allow. A single 'ApiOperation' with 'serviceName' \\nfield set to '*' will allow all methods AND permissions for all services.\",\"type\":\"string\"}}}},\"resources\":{\"type\":\"array\",\"items\":{\"description\":\"A list of resources, currently only projects in the form\\n\\\"projects/{project_number}\\\", protected by this ServicePerimeter\\nthat are allowed to be accessed by sources defined in the\\ncorresponding IngressFrom. A request matches if it contains a\\nresource in this list.\",\"type\":\"object\",\"properties\":{\"projectRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}}}}}}},\"resources\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of GCP resources that are inside of the service perimeter.\\nCurrently only projects are allowed.\",\"type\":\"object\",\"properties\":{\"projectRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}},\"restrictedServices\":{\"description\":\"GCP services that are subject to the Service Perimeter\\nrestrictions. Must contain a list of services. For example, if\\n'storage.googleapis.com' is specified, access to the storage\\nbuckets inside the perimeter must meet the perimeter's access\\nrestrictions.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"vpcAccessibleServices\":{\"description\":\"Specifies how APIs are allowed to communicate within the Service\\nPerimeter.\",\"type\":\"object\",\"properties\":{\"allowedServices\":{\"description\":\"The list of APIs usable within the Service Perimeter.\\nMust be empty unless 'enableRestriction' is True.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"enableRestriction\":{\"description\":\"Whether to restrict API calls within the Service Perimeter to the\\nlist of APIs specified in 'allowedServices'.\",\"type\":\"boolean\"}}}}},\"status\":{\"description\":\"ServicePerimeter configuration. Specifies sets of resources,\\nrestricted services and access levels that determine\\nperimeter content and boundaries.\",\"type\":\"object\",\"properties\":{\"accessLevels\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of AccessLevel resource names that allow resources within\\nthe ServicePerimeter to be accessed from the internet. AccessLevels listed\\nmust be in the same policy as this ServicePerimeter.\\nReferencing a nonexistent AccessLevel is a syntax error. If no\\nAccessLevel names are listed, resources within the perimeter can\\nonly be accessed via GCP calls with request origins within the\\nperimeter. For Service Perimeter Bridge, must be empty.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `{{parent}}/accessLevels/{{value}}`, where {{value}} is the `name` field of an `AccessContextManagerAccessLevel` resource.\",\"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\"}}}},\"egressPolicies\":{\"description\":\"List of EgressPolicies to apply to the perimeter. A perimeter may \\nhave multiple EgressPolicies, each of which is evaluated separately.\\nAccess is granted if any EgressPolicy grants it. Must be empty for \\na perimeter bridge.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"egressFrom\":{\"description\":\"Defines conditions on the source of a request causing this 'EgressPolicy' to apply.\",\"type\":\"object\",\"properties\":{\"identities\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of identities that are allowed access through this\\nEgressPolicy. Should be in the format of email address. The email\\naddress should represent individual user or service account only.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"serviceAccountRef\"]},{\"required\":[\"user\"]}],\"properties\":{\"serviceAccountRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `serviceAccount:{{value}}`, where {{value}} is the `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"user\":{\"type\":\"string\"}}}},\"identityType\":{\"description\":\"Specifies the type of identities that are allowed access to outside the \\nperimeter. If left unspecified, then members of 'identities' field will \\nbe allowed access. Possible values: [\\\"IDENTITY_TYPE_UNSPECIFIED\\\", \\\"ANY_IDENTITY\\\", \\\"ANY_USER_ACCOUNT\\\", \\\"ANY_SERVICE_ACCOUNT\\\"].\",\"type\":\"string\"}}},\"egressTo\":{\"description\":\"Defines the conditions on the 'ApiOperation' and destination resources that \\ncause this 'EgressPolicy' to apply.\",\"type\":\"object\",\"properties\":{\"externalResources\":{\"description\":\"A list of external resources that are allowed to be accessed. A request\\nmatches if it contains an external resource in this list (Example:\\ns3://bucket/path). Currently '*' is not allowed.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"operations\":{\"description\":\"A list of 'ApiOperations' that this egress rule applies to. A request matches \\nif it contains an operation/service in this list.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"methodSelectors\":{\"description\":\"API methods or permissions to allow. Method or permission must belong \\nto the service specified by 'serviceName' field. A single MethodSelector \\nentry with '*' specified for the 'method' field will allow all methods \\nAND permissions for the service specified in 'serviceName'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"method\":{\"description\":\"Value for 'method' should be a valid method name for the corresponding \\n'serviceName' in 'ApiOperation'. If '*' used as value for method, \\nthen ALL methods and permissions are allowed.\",\"type\":\"string\"},\"permission\":{\"description\":\"Value for permission should be a valid Cloud IAM permission for the \\ncorresponding 'serviceName' in 'ApiOperation'.\",\"type\":\"string\"}}}},\"serviceName\":{\"description\":\"The name of the API whose methods or permissions the 'IngressPolicy' or \\n'EgressPolicy' want to allow. A single 'ApiOperation' with serviceName \\nfield set to '*' will allow all methods AND permissions for all services.\",\"type\":\"string\"}}}},\"resources\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of resources, currently only projects in the form\\n\\\"projects/{project_number}\\\". A request\\nmatches if it contains a resource in this list.\",\"type\":\"object\",\"properties\":{\"projectRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}}}}}}},\"ingressPolicies\":{\"description\":\"List of 'IngressPolicies' to apply to the perimeter. A perimeter may\\nhave multiple 'IngressPolicies', each of which is evaluated\\nseparately. Access is granted if any 'Ingress Policy' grants it.\\nMust be empty for a perimeter bridge.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"ingressFrom\":{\"description\":\"Defines the conditions on the source of a request causing this 'IngressPolicy'\\nto apply.\",\"type\":\"object\",\"properties\":{\"identities\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of identities that are allowed access through this\\nEgressPolicy. Should be in the format of email address. The email\\naddress should represent individual user or service account only.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"serviceAccountRef\"]},{\"required\":[\"user\"]}],\"properties\":{\"serviceAccountRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `serviceAccount:{{value}}`, where {{value}} is the `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"user\":{\"type\":\"string\"}}}},\"identityType\":{\"description\":\"Specifies the type of identities that are allowed access from outside the \\nperimeter. If left unspecified, then members of 'identities' field will be \\nallowed access. Possible values: [\\\"IDENTITY_TYPE_UNSPECIFIED\\\", \\\"ANY_IDENTITY\\\", \\\"ANY_USER_ACCOUNT\\\", \\\"ANY_SERVICE_ACCOUNT\\\"].\",\"type\":\"string\"},\"sources\":{\"description\":\"Sources that this 'IngressPolicy' authorizes access from.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"accessLevelRef\":{\"description\":\"An AccessLevel resource name that allow resources within the\\nServicePerimeters to be accessed from the internet. AccessLevels\\nlisted must be in the same policy as this ServicePerimeter.\\nReferencing a nonexistent AccessLevel will cause an error. If no\\nAccessLevel names are listed, resources within the perimeter can\\nonly be accessed via Google Cloud calls with request origins within\\nthe perimeter.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `{{parent}}/accessLevels/{{value}}`, where {{value}} is the `name` field of an `AccessContextManagerAccessLevel` resource.\",\"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\"}}},\"projectRef\":{\"description\":\"(Optional) A Google Cloud resource that is allowed to ingress the\\nperimeter. Requests from these resources will be allowed to access\\nperimeter data. Currently only projects are allowed. Format\\n\\\"projects/{project_number}\\\" The project may be in any Google Cloud\\norganization, not just the organization that the perimeter is defined in.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}}}},\"ingressTo\":{\"description\":\"Defines the conditions on the 'ApiOperation' and request destination that cause\\nthis 'IngressPolicy' to apply.\",\"type\":\"object\",\"properties\":{\"operations\":{\"description\":\"A list of 'ApiOperations' the sources specified in corresponding 'IngressFrom' \\nare allowed to perform in this 'ServicePerimeter'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"methodSelectors\":{\"description\":\"API methods or permissions to allow. Method or permission must belong to \\nthe service specified by serviceName field. A single 'MethodSelector' entry \\nwith '*' specified for the method field will allow all methods AND \\npermissions for the service specified in 'serviceName'.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"method\":{\"description\":\"Value for method should be a valid method name for the corresponding \\nserviceName in 'ApiOperation'. If '*' used as value for 'method', then \\nALL methods and permissions are allowed.\",\"type\":\"string\"},\"permission\":{\"description\":\"Value for permission should be a valid Cloud IAM permission for the \\ncorresponding 'serviceName' in 'ApiOperation'.\",\"type\":\"string\"}}}},\"serviceName\":{\"description\":\"The name of the API whose methods or permissions the 'IngressPolicy' or \\n'EgressPolicy' want to allow. A single 'ApiOperation' with 'serviceName' \\nfield set to '*' will allow all methods AND permissions for all services.\",\"type\":\"string\"}}}},\"resources\":{\"type\":\"array\",\"items\":{\"description\":\"A list of resources, currently only projects in the form\\n\\\"projects/{project_number}\\\", protected by this ServicePerimeter\\nthat are allowed to be accessed by sources defined in the\\ncorresponding IngressFrom. A request matches if it contains a\\nresource in this list.\",\"type\":\"object\",\"properties\":{\"projectRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}}}}}}},\"resources\":{\"type\":\"array\",\"items\":{\"description\":\"(Optional) A list of GCP resources that are inside of the service perimeter.\\nCurrently only projects are allowed.\",\"type\":\"object\",\"properties\":{\"projectRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{value}}`, where {{value}} is the `number` field of a `Project` resource.\",\"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\"}}}}}},\"restrictedServices\":{\"description\":\"GCP services that are subject to the Service Perimeter\\nrestrictions. Must contain a list of services. For example, if\\n'storage.googleapis.com' is specified, access to the storage\\nbuckets inside the perimeter must meet the perimeter's access\\nrestrictions.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"vpcAccessibleServices\":{\"description\":\"Specifies how APIs are allowed to communicate within the Service\\nPerimeter.\",\"type\":\"object\",\"properties\":{\"allowedServices\":{\"description\":\"The list of APIs usable within the Service Perimeter.\\nMust be empty unless 'enableRestriction' is True.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"enableRestriction\":{\"description\":\"Whether to restrict API calls within the Service Perimeter to the\\nlist of APIs specified in 'allowedServices'.\",\"type\":\"boolean\"}}}}},\"title\":{\"description\":\"Human readable title. Must be unique within the Policy.\",\"type\":\"string\"},\"useExplicitDryRunSpec\":{\"description\":\"Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists\\nfor all Service Perimeters, and that spec is identical to the status for those\\nService Perimeters. When this flag is set, it inhibits the generation of the\\nimplicit spec, thereby allowing the user to explicitly provide a\\nconfiguration (\\\"spec\\\") to use in a dry-run version of the Service Perimeter.\\nThis allows the user to test changes to the enforced config (\\\"status\\\") without\\nactually enforcing them. This testing is done through analyzing the differences\\nbetween currently enforced and suggested restrictions. useExplicitDryRunSpec must\\nbet set to True if any of the fields in the spec are set to non-default values.\",\"type\":\"boolean\"}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"createTime\":{\"description\":\"Time the AccessPolicy was created in UTC.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"updateTime\":{\"description\":\"Time the AccessPolicy was updated in UTC.\",\"type\":\"string\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"kind\":\"AccessContextManagerServicePerimeter\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeterList\":{\"description\":\"AccessContextManagerServicePerimeterList is a list of AccessContextManagerServicePerimeter\",\"type\":\"object\",\"required\":[\"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 accesscontextmanagerserviceperimeters. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/com.google.cloud.cnrm.accesscontextmanager.v1beta1.AccessContextManagerServicePerimeter\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"accesscontextmanager.cnrm.cloud.google.com\",\"kind\":\"AccessContextManagerServicePerimeterList\",\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"}]},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}]}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"}]},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}}}}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv3/container_v1beta1_containercluster.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes CRD Swagger\",\"version\":\"v0.1.0\"},\"components\":{\"schemas\":{\"com.google.cloud.cnrm.container.v1beta1.ContainerCluster\":{\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"type\":\"object\",\"required\":[\"location\"],\"properties\":{\"addonsConfig\":{\"description\":\"The configuration for addons supported by GKE.\",\"type\":\"object\",\"properties\":{\"cloudrunConfig\":{\"description\":\"The status of the CloudRun addon. It is disabled by default. Set disabled = false to enable.\",\"type\":\"object\",\"required\":[\"disabled\"],\"properties\":{\"disabled\":{\"type\":\"boolean\"},\"loadBalancerType\":{\"type\":\"string\"}}},\"configConnectorConfig\":{\"description\":\"The of the Config Connector addon.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"dnsCacheConfig\":{\"description\":\"The status of the NodeLocal DNSCache addon. It is disabled by default. Set enabled = true to enable.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"gcePersistentDiskCsiDriverConfig\":{\"description\":\"Whether this cluster should enable the Google Compute Engine Persistent Disk Container Storage Interface (CSI) Driver. Defaults to enabled; set disabled = true to disable.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"gcpFilestoreCsiDriverConfig\":{\"description\":\"The status of the Filestore CSI driver addon, which allows the usage of filestore instance as volumes. Defaults to disabled; set enabled = true to enable.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"gkeBackupAgentConfig\":{\"description\":\"The status of the Backup for GKE Agent addon. It is disabled by default. Set enabled = true to enable.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"horizontalPodAutoscaling\":{\"description\":\"The status of the Horizontal Pod Autoscaling addon, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. It ensures that a Heapster pod is running in the cluster, which is also used by the Cloud Monitoring service. It is enabled by default; set disabled = true to disable.\",\"type\":\"object\",\"required\":[\"disabled\"],\"properties\":{\"disabled\":{\"type\":\"boolean\"}}},\"httpLoadBalancing\":{\"description\":\"The status of the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. It is enabled by default; set disabled = true to disable.\",\"type\":\"object\",\"required\":[\"disabled\"],\"properties\":{\"disabled\":{\"type\":\"boolean\"}}},\"istioConfig\":{\"description\":\"The status of the Istio addon.\",\"type\":\"object\",\"required\":[\"disabled\"],\"properties\":{\"auth\":{\"description\":\"The authentication type between services in Istio. Available options include AUTH_MUTUAL_TLS.\",\"type\":\"string\"},\"disabled\":{\"description\":\"The status of the Istio addon, which makes it easy to set up Istio for services in a cluster. It is disabled by default. Set disabled = false to enable.\",\"type\":\"boolean\"}}},\"kalmConfig\":{\"description\":\"Configuration for the KALM addon, which manages the lifecycle of k8s. It is disabled by default; Set enabled = true to enable.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"networkPolicyConfig\":{\"description\":\"Whether we should enable the network policy addon for the master. This must be enabled in order to enable network policy for the nodes. To enable this, you must also define a network_policy block, otherwise nothing will happen. It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set disabled = false to enable.\",\"type\":\"object\",\"required\":[\"disabled\"],\"properties\":{\"disabled\":{\"type\":\"boolean\"}}}}},\"authenticatorGroupsConfig\":{\"description\":\"Configuration for the Google Groups for GKE feature.\",\"type\":\"object\",\"required\":[\"securityGroup\"],\"properties\":{\"securityGroup\":{\"description\":\"The name of the RBAC security group for use with Google security groups in Kubernetes RBAC. Group name must be in format gke-security-groups@yourdomain.com.\",\"type\":\"string\"}}},\"binaryAuthorization\":{\"description\":\"Configuration options for the Binary Authorization feature.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"DEPRECATED. Deprecated in favor of evaluation_mode. Enable Binary Authorization for this cluster.\",\"type\":\"boolean\"},\"evaluationMode\":{\"description\":\"Mode of operation for Binary Authorization policy evaluation.\",\"type\":\"string\"}}},\"clusterAutoscaling\":{\"description\":\"Per-cluster configuration of Node Auto-Provisioning with Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs of the cluster's workload. See the guide to using Node Auto-Provisioning for more details.\",\"type\":\"object\",\"properties\":{\"autoProvisioningDefaults\":{\"description\":\"Contains defaults for a node pool created by NAP.\",\"type\":\"object\",\"properties\":{\"bootDiskKMSKeyRef\":{\"description\":\"Immutable. The Customer Managed Encryption Key used to encrypt the\\nboot disk attached to each node in the node pool.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.\",\"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\"}}},\"diskSize\":{\"description\":\"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.\",\"type\":\"integer\"},\"imageType\":{\"description\":\"The default image type used by NAP once a new node pool is being created.\",\"type\":\"string\"},\"management\":{\"description\":\"NodeManagement configuration for this NodePool.\",\"type\":\"object\",\"properties\":{\"autoRepair\":{\"description\":\"Specifies whether the node auto-repair is enabled for the node pool. If enabled, the nodes in this node pool will be monitored and, if they fail health checks too many times, an automatic repair action will be triggered.\",\"type\":\"boolean\"},\"autoUpgrade\":{\"description\":\"Specifies whether node auto-upgrade is enabled for the node pool. If enabled, node auto-upgrade helps keep the nodes in your node pool up to date with the latest release version of Kubernetes.\",\"type\":\"boolean\"},\"upgradeOptions\":{\"description\":\"Specifies the Auto Upgrade knobs for the node pool.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"autoUpgradeStartTime\":{\"description\":\"This field is set when upgrades are about to commence with the approximate start time for the upgrades, in RFC3339 text format.\",\"type\":\"string\"},\"description\":{\"description\":\"This field is set when upgrades are about to commence with the description of the upgrade.\",\"type\":\"string\"}}}}}},\"minCpuPlatform\":{\"description\":\"Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell.\",\"type\":\"string\"},\"oauthScopes\":{\"description\":\"Scopes that are used by NAP when creating node pools.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"serviceAccountRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"shieldedInstanceConfig\":{\"description\":\"Shielded Instance options.\",\"type\":\"object\",\"properties\":{\"enableIntegrityMonitoring\":{\"description\":\"Defines whether the instance has integrity monitoring enabled.\",\"type\":\"boolean\"},\"enableSecureBoot\":{\"description\":\"Defines whether the instance has Secure Boot enabled.\",\"type\":\"boolean\"}}},\"upgradeSettings\":{\"description\":\"Specifies the upgrade settings for NAP created node pools.\",\"type\":\"object\",\"properties\":{\"blueGreenSettings\":{\"description\":\"Settings for blue-green upgrade strategy.\",\"type\":\"object\",\"properties\":{\"nodePoolSoakDuration\":{\"description\":\"Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tA duration in seconds with up to nine fractional digits, ending with 's'. Example: \\\"3.5s\\\".\",\"type\":\"string\"},\"standardRolloutPolicy\":{\"description\":\"Standard policy for the blue-green upgrade.\",\"type\":\"object\",\"properties\":{\"batchNodeCount\":{\"description\":\"Number of blue nodes to drain in a batch.\",\"type\":\"integer\"},\"batchPercentage\":{\"description\":\"Percentage of the bool pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].\",\"type\":\"number\"},\"batchSoakDuration\":{\"description\":\"Soak time after each batch gets drained.\\n\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tA duration in seconds with up to nine fractional digits, ending with 's'. Example: \\\"3.5s\\\".\",\"type\":\"string\"}}}}},\"maxSurge\":{\"description\":\"The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.\",\"type\":\"integer\"},\"maxUnavailable\":{\"description\":\"The maximum number of nodes that can be simultaneously unavailable during the upgrade process.\",\"type\":\"integer\"},\"strategy\":{\"description\":\"Update strategy of the node pool.\",\"type\":\"string\"}}}}},\"autoscalingProfile\":{\"description\":\"Configuration options for the Autoscaling profile feature, which lets you choose whether the cluster autoscaler should optimize for resource utilization or resource availability when deciding to remove nodes from a cluster. Can be BALANCED or OPTIMIZE_UTILIZATION. Defaults to BALANCED.\",\"type\":\"string\"},\"enabled\":{\"description\":\"Whether node auto-provisioning is enabled. Resource limits for cpu and memory must be defined to enable node auto-provisioning.\",\"type\":\"boolean\"},\"resourceLimits\":{\"description\":\"Global constraints for machine resources in the cluster. Configuring the cpu and memory types is required if node auto-provisioning is enabled. These limits will apply to node pool autoscaling in addition to node auto-provisioning.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"resourceType\"],\"properties\":{\"maximum\":{\"description\":\"Maximum amount of the resource in the cluster.\",\"type\":\"integer\"},\"minimum\":{\"description\":\"Minimum amount of the resource in the cluster.\",\"type\":\"integer\"},\"resourceType\":{\"description\":\"The type of the resource. For example, cpu and memory. See the guide to using Node Auto-Provisioning for a list of types.\",\"type\":\"string\"}}}}}},\"clusterIpv4Cidr\":{\"description\":\"Immutable. The IP address range of the Kubernetes pods in this cluster in CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8. This field will only work for routes-based clusters, where ip_allocation_policy is not defined.\",\"type\":\"string\"},\"clusterTelemetry\":{\"description\":\"Telemetry integration for the cluster.\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"description\":\"Type of the integration.\",\"type\":\"string\"}}},\"confidentialNodes\":{\"description\":\"Immutable. Configuration for the confidential nodes feature, which makes nodes run on confidential VMs. Warning: This configuration can't be changed (or added/removed) after cluster creation without deleting and recreating the entire cluster.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"description\":\"Immutable. Whether Confidential Nodes feature is enabled for all nodes in this cluster.\",\"type\":\"boolean\"}}},\"costManagementConfig\":{\"description\":\"Cost management configuration for the cluster.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"description\":\"Whether to enable GKE cost allocation. When you enable GKE cost allocation, the cluster name and namespace of your GKE workloads appear in the labels field of the billing export to BigQuery. Defaults to false.\",\"type\":\"boolean\"}}},\"databaseEncryption\":{\"description\":\"Application-layer Secrets Encryption settings. The object format is {state = string, key_name = string}. Valid values of state are: \\\"ENCRYPTED\\\"; \\\"DECRYPTED\\\". key_name is the name of a CloudKMS key.\",\"type\":\"object\",\"required\":[\"state\"],\"properties\":{\"keyName\":{\"description\":\"The key to use to encrypt/decrypt secrets.\",\"type\":\"string\"},\"state\":{\"description\":\"ENCRYPTED or DECRYPTED.\",\"type\":\"string\"}}},\"datapathProvider\":{\"description\":\"Immutable. The desired datapath provider for this cluster. By default, uses the IPTables-based kube-proxy implementation.\",\"type\":\"string\"},\"defaultMaxPodsPerNode\":{\"description\":\"Immutable. The default maximum number of pods per node in this cluster. This doesn't work on \\\"routes-based\\\" clusters, clusters that don't have IP Aliasing enabled.\",\"type\":\"integer\"},\"defaultSnatStatus\":{\"description\":\"Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when defaultSnatStatus is disabled.\",\"type\":\"object\",\"required\":[\"disabled\"],\"properties\":{\"disabled\":{\"description\":\"When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic.\",\"type\":\"boolean\"}}},\"description\":{\"description\":\"Immutable.  Description of the cluster.\",\"type\":\"string\"},\"dnsConfig\":{\"description\":\"Immutable. Configuration for Cloud DNS for Kubernetes Engine.\",\"type\":\"object\",\"properties\":{\"clusterDns\":{\"description\":\"Which in-cluster DNS provider should be used.\",\"type\":\"string\"},\"clusterDnsDomain\":{\"description\":\"The suffix used for all cluster service records.\",\"type\":\"string\"},\"clusterDnsScope\":{\"description\":\"The scope of access to cluster DNS records.\",\"type\":\"string\"}}},\"enableAutopilot\":{\"description\":\"Immutable. Enable Autopilot for this cluster.\",\"type\":\"boolean\"},\"enableBinaryAuthorization\":{\"description\":\"DEPRECATED. Deprecated in favor of binary_authorization. Enable Binary Authorization for this cluster. If enabled, all container images will be validated by Google Binary Authorization.\",\"type\":\"boolean\"},\"enableIntranodeVisibility\":{\"description\":\"Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.\",\"type\":\"boolean\"},\"enableKubernetesAlpha\":{\"description\":\"Immutable. Whether to enable Kubernetes Alpha features for this cluster. Note that when this option is enabled, the cluster cannot be upgraded and will be automatically deleted after 30 days.\",\"type\":\"boolean\"},\"enableL4IlbSubsetting\":{\"description\":\"Whether L4ILB Subsetting is enabled for this cluster.\",\"type\":\"boolean\"},\"enableLegacyAbac\":{\"description\":\"Whether the ABAC authorizer is enabled for this cluster. When enabled, identities in the system, including service accounts, nodes, and controllers, will have statically granted permissions beyond those provided by the RBAC configuration or IAM. Defaults to false.\",\"type\":\"boolean\"},\"enableShieldedNodes\":{\"description\":\"Enable Shielded Nodes features on all nodes in this cluster. Defaults to true.\",\"type\":\"boolean\"},\"enableTpu\":{\"description\":\"Immutable. Whether to enable Cloud TPU resources in this cluster.\",\"type\":\"boolean\"},\"gatewayApiConfig\":{\"description\":\"Configuration for GKE Gateway API controller.\",\"type\":\"object\",\"required\":[\"channel\"],\"properties\":{\"channel\":{\"description\":\"The Gateway API release channel to use for Gateway API.\",\"type\":\"string\"}}},\"identityServiceConfig\":{\"description\":\"Configuration for Identity Service which allows customers to use external identity providers with the K8S API.\",\"type\":\"object\",\"properties\":{\"enabled\":{\"description\":\"Whether to enable the Identity Service component.\",\"type\":\"boolean\"}}},\"initialNodeCount\":{\"description\":\"Immutable. The number of nodes to create in this cluster's default node pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Must be set if node_pool is not set. If you're using google_container_node_pool objects with no default node pool, you'll need to set this to a value of at least 1, alongside setting remove_default_node_pool to true.\",\"type\":\"integer\"},\"ipAllocationPolicy\":{\"description\":\"Immutable. Configuration of cluster IP allocation for VPC-native clusters. Adding this block enables IP aliasing, making the cluster VPC-native instead of routes-based.\",\"type\":\"object\",\"properties\":{\"clusterIpv4CidrBlock\":{\"description\":\"Immutable. The IP address range for the cluster pod IPs. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.\",\"type\":\"string\"},\"clusterSecondaryRangeName\":{\"description\":\"Immutable. The name of the existing secondary range in the cluster's subnetwork to use for pod IP addresses. Alternatively, cluster_ipv4_cidr_block can be used to automatically create a GKE-managed one.\",\"type\":\"string\"},\"servicesIpv4CidrBlock\":{\"description\":\"Immutable. The IP address range of the services IPs in this cluster. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.\",\"type\":\"string\"},\"servicesSecondaryRangeName\":{\"description\":\"Immutable. The name of the existing secondary range in the cluster's subnetwork to use for service ClusterIPs. Alternatively, services_ipv4_cidr_block can be used to automatically create a GKE-managed one.\",\"type\":\"string\"}}},\"location\":{\"description\":\"Immutable. The location (region or zone) in which the cluster master will be created, as well as the default node location. If you specify a zone (such as us-central1-a), the cluster will be a zonal cluster with a single cluster master. If you specify a region (such as us-west1), the cluster will be a regional cluster with multiple masters spread across zones in the region, and with default node locations in those zones as well.\",\"type\":\"string\"},\"loggingConfig\":{\"description\":\"Logging configuration for the cluster.\",\"type\":\"object\",\"required\":[\"enableComponents\"],\"properties\":{\"enableComponents\":{\"description\":\"GKE components exposing logs. Valid values include SYSTEM_COMPONENTS, APISERVER, CONTROLLER_MANAGER, SCHEDULER, and WORKLOADS.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"loggingService\":{\"description\":\"The logging service that the cluster should write logs to. Available options include logging.googleapis.com(Legacy Stackdriver), logging.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Logging), and none. Defaults to logging.googleapis.com/kubernetes.\",\"type\":\"string\"},\"maintenancePolicy\":{\"description\":\"The maintenance policy to use for the cluster.\",\"type\":\"object\",\"properties\":{\"dailyMaintenanceWindow\":{\"description\":\"Time window specified for daily maintenance operations. Specify start_time in RFC3339 format \\\"HH:MM”, where HH : [00-23] and MM : [00-59] GMT.\",\"type\":\"object\",\"required\":[\"startTime\"],\"properties\":{\"duration\":{\"type\":\"string\"},\"startTime\":{\"type\":\"string\"}}},\"maintenanceExclusion\":{\"description\":\"Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"endTime\",\"exclusionName\",\"startTime\"],\"properties\":{\"endTime\":{\"type\":\"string\"},\"exclusionName\":{\"type\":\"string\"},\"exclusionOptions\":{\"description\":\"Maintenance exclusion related options.\",\"type\":\"object\",\"required\":[\"scope\"],\"properties\":{\"scope\":{\"description\":\"The scope of automatic upgrades to restrict in the exclusion window.\",\"type\":\"string\"}}},\"startTime\":{\"type\":\"string\"}}}},\"recurringWindow\":{\"description\":\"Time window for recurring maintenance operations.\",\"type\":\"object\",\"required\":[\"endTime\",\"recurrence\",\"startTime\"],\"properties\":{\"endTime\":{\"type\":\"string\"},\"recurrence\":{\"type\":\"string\"},\"startTime\":{\"type\":\"string\"}}}}},\"masterAuth\":{\"description\":\"DEPRECATED. Basic authentication was removed for GKE cluster versions \\u003e= 1.19. The authentication information for accessing the Kubernetes master. Some values in this block are only returned by the API if your service account has permission to get credentials for your GKE cluster. If you see an unexpected diff unsetting your client cert, ensure you have the container.clusters.getCredentials permission.\",\"type\":\"object\",\"properties\":{\"clientCertificate\":{\"description\":\"Base64 encoded public certificate used by clients to authenticate to the cluster endpoint.\",\"type\":\"string\"},\"clientCertificateConfig\":{\"description\":\"Immutable. Whether client certificate authorization is enabled for this cluster.\",\"type\":\"object\",\"required\":[\"issueClientCertificate\"],\"properties\":{\"issueClientCertificate\":{\"description\":\"Immutable. Whether client certificate authorization is enabled for this cluster.\",\"type\":\"boolean\"}}},\"clientKey\":{\"description\":\"Base64 encoded private key used by clients to authenticate to the cluster endpoint.\",\"type\":\"string\"},\"clusterCaCertificate\":{\"description\":\"Base64 encoded public certificate that is the root of trust for the cluster.\",\"type\":\"string\"},\"password\":{\"description\":\"The password to use for HTTP basic authentication when accessing the Kubernetes master endpoint.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"value\"],\"not\":{\"required\":[\"valueFrom\"]}},{\"required\":[\"valueFrom\"],\"not\":{\"required\":[\"value\"]}}],\"properties\":{\"value\":{\"description\":\"Value of the field. Cannot be used if 'valueFrom' is specified.\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the field's value. Cannot be used if 'value' is specified.\",\"type\":\"object\",\"properties\":{\"secretKeyRef\":{\"description\":\"Reference to a value with the given key in the given Secret in the resource's namespace.\",\"type\":\"object\",\"required\":[\"name\",\"key\"],\"properties\":{\"key\":{\"description\":\"Key that identifies the value to be extracted.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the Secret to extract a value from.\",\"type\":\"string\"}}}}}}},\"username\":{\"description\":\"The username to use for HTTP basic authentication when accessing the Kubernetes master endpoint. If not present basic auth will be disabled.\",\"type\":\"string\"}}},\"masterAuthorizedNetworksConfig\":{\"description\":\"The desired configuration options for master authorized networks. Omit the nested cidr_blocks attribute to disallow external access (except the cluster node IPs, which GKE automatically whitelists).\",\"type\":\"object\",\"properties\":{\"cidrBlocks\":{\"description\":\"External networks that can access the Kubernetes cluster master through HTTPS.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"cidrBlock\"],\"properties\":{\"cidrBlock\":{\"description\":\"External network that can access Kubernetes master through HTTPS. Must be specified in CIDR notation.\",\"type\":\"string\"},\"displayName\":{\"description\":\"Field for users to identify CIDR blocks.\",\"type\":\"string\"}}}},\"gcpPublicCidrsAccessEnabled\":{\"description\":\"Whether master is accessbile via Google Compute Engine Public IP addresses.\",\"type\":\"boolean\"}}},\"meshCertificates\":{\"description\":\"If set, and enable_certificates=true, the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster.\",\"type\":\"object\",\"required\":[\"enableCertificates\"],\"properties\":{\"enableCertificates\":{\"description\":\"When enabled the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster.\",\"type\":\"boolean\"}}},\"minMasterVersion\":{\"description\":\"The minimum version of the master. GKE will auto-update the master to new versions, so this does not guarantee the current master version--use the read-only master_version field to obtain that. If unset, the cluster's version will be set by GKE to the version of the most recent official release (which is not necessarily the latest version).\",\"type\":\"string\"},\"monitoringConfig\":{\"description\":\"Monitoring configuration for the cluster.\",\"type\":\"object\",\"properties\":{\"enableComponents\":{\"description\":\"GKE components exposing metrics. Valid values include SYSTEM_COMPONENTS, APISERVER, CONTROLLER_MANAGER, SCHEDULER, and WORKLOADS.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"managedPrometheus\":{\"description\":\"Configuration for Google Cloud Managed Services for Prometheus.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"description\":\"Whether or not the managed collection is enabled.\",\"type\":\"boolean\"}}}}},\"monitoringService\":{\"description\":\"The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com(Legacy Stackdriver), monitoring.googleapis.com/kubernetes(Stackdriver Kubernetes Engine Monitoring), and none. Defaults to monitoring.googleapis.com/kubernetes.\",\"type\":\"string\"},\"networkPolicy\":{\"description\":\"Configuration options for the NetworkPolicy feature.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"description\":\"Whether network policy is enabled on the cluster.\",\"type\":\"boolean\"},\"provider\":{\"description\":\"The selected network policy provider. Defaults to PROVIDER_UNSPECIFIED.\",\"type\":\"string\"}}},\"networkRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The `selfLink` field of a `ComputeNetwork` resource.\",\"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\"}}},\"networkingMode\":{\"description\":\"Immutable. Determines whether alias IPs or routes will be used for pod IPs in the cluster.\",\"type\":\"string\"},\"nodeConfig\":{\"description\":\"Immutable. The configuration of the nodepool.\",\"type\":\"object\",\"properties\":{\"bootDiskKMSCryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The `selfLink` field of a `KMSCryptoKey` resource.\",\"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\"}}},\"diskSizeGb\":{\"description\":\"Immutable. Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.\",\"type\":\"integer\"},\"diskType\":{\"description\":\"Immutable. Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd.\",\"type\":\"string\"},\"ephemeralStorageConfig\":{\"description\":\"Immutable. Parameters for the ephemeral storage filesystem.\",\"type\":\"object\",\"required\":[\"localSsdCount\"],\"properties\":{\"localSsdCount\":{\"description\":\"Immutable. Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD is 375 GB in size.\",\"type\":\"integer\"}}},\"gcfsConfig\":{\"description\":\"Immutable. GCFS configuration for this node.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"description\":\"Immutable. Whether or not GCFS is enabled.\",\"type\":\"boolean\"}}},\"guestAccelerator\":{\"description\":\"Immutable. List of the type and count of accelerator cards attached to the instance.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"count\",\"type\"],\"properties\":{\"count\":{\"description\":\"Immutable. The number of the accelerator cards exposed to an instance.\",\"type\":\"integer\"},\"gpuPartitionSize\":{\"description\":\"Immutable. Size of partitions to create on the GPU. Valid values are described in the NVIDIA mig user guide (https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).\",\"type\":\"string\"},\"gpuSharingConfig\":{\"description\":\"Immutable. Configuration for GPU sharing.\",\"type\":\"object\",\"required\":[\"gpuSharingStrategy\",\"maxSharedClientsPerGpu\"],\"properties\":{\"gpuSharingStrategy\":{\"description\":\"Immutable. The type of GPU sharing strategy to enable on the GPU node. Possible values are described in the API package (https://pkg.go.dev/google.golang.org/api/container/v1#GPUSharingConfig).\",\"type\":\"string\"},\"maxSharedClientsPerGpu\":{\"description\":\"Immutable. The maximum number of containers that can share a GPU.\",\"type\":\"integer\"}}},\"type\":{\"description\":\"Immutable. The accelerator type resource name.\",\"type\":\"string\"}}}},\"gvnic\":{\"description\":\"Immutable. Enable or disable gvnic in the node pool.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"description\":\"Immutable. Whether or not gvnic is enabled.\",\"type\":\"boolean\"}}},\"imageType\":{\"description\":\"The image type to use for this node. Note that for a given image type, the latest version of it will be used.\",\"type\":\"string\"},\"kubeletConfig\":{\"description\":\"Node kubelet configs.\",\"type\":\"object\",\"required\":[\"cpuManagerPolicy\"],\"properties\":{\"cpuCfsQuota\":{\"description\":\"Enable CPU CFS quota enforcement for containers that specify CPU limits.\",\"type\":\"boolean\"},\"cpuCfsQuotaPeriod\":{\"description\":\"Set the CPU CFS quota period value 'cpu.cfs_period_us'.\",\"type\":\"string\"},\"cpuManagerPolicy\":{\"description\":\"Control the CPU management policy on the node.\",\"type\":\"string\"}}},\"labels\":{\"description\":\"Immutable. The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"linuxNodeConfig\":{\"description\":\"Parameters that can be configured on Linux nodes.\",\"type\":\"object\",\"required\":[\"sysctls\"],\"properties\":{\"sysctls\":{\"description\":\"The Linux kernel parameters to be applied to the nodes and all pods running on the nodes.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"localSsdCount\":{\"description\":\"Immutable. The number of local SSD disks to be attached to the node.\",\"type\":\"integer\"},\"loggingVariant\":{\"description\":\"Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.\",\"type\":\"string\"},\"machineType\":{\"description\":\"Immutable. The name of a Google Compute Engine machine type.\",\"type\":\"string\"},\"metadata\":{\"description\":\"Immutable. The metadata key/value pairs assigned to instances in the cluster.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"minCpuPlatform\":{\"description\":\"Immutable. Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.\",\"type\":\"string\"},\"nodeGroupRef\":{\"description\":\"Immutable. Setting this field will assign instances\\nof this pool to run on the specified node group. This is useful\\nfor running workloads on sole tenant nodes.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The `name` field of a `ComputeNodeGroup` resource.\",\"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\"}}},\"oauthScopes\":{\"description\":\"Immutable. The set of Google API scopes to be made available on all of the node VMs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"preemptible\":{\"description\":\"Immutable. Whether the nodes are created as preemptible VM instances.\",\"type\":\"boolean\"},\"reservationAffinity\":{\"description\":\"Immutable. The reservation affinity configuration for the node pool.\",\"type\":\"object\",\"required\":[\"consumeReservationType\"],\"properties\":{\"consumeReservationType\":{\"description\":\"Immutable. Corresponds to the type of reservation consumption.\",\"type\":\"string\"},\"key\":{\"description\":\"Immutable. The label key of a reservation resource.\",\"type\":\"string\"},\"values\":{\"description\":\"Immutable. The label values of the reservation resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"resourceLabels\":{\"description\":\"The GCE resource labels (a map of key/value pairs) to be applied to the node pool.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"sandboxConfig\":{\"description\":\"Immutable. Sandbox configuration for this node.\",\"type\":\"object\",\"required\":[\"sandboxType\"],\"properties\":{\"sandboxType\":{\"description\":\"Type of the sandbox to use for the node (e.g. 'gvisor').\",\"type\":\"string\"}}},\"serviceAccountRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"shieldedInstanceConfig\":{\"description\":\"Immutable. Shielded Instance options.\",\"type\":\"object\",\"properties\":{\"enableIntegrityMonitoring\":{\"description\":\"Immutable. Defines whether the instance has integrity monitoring enabled.\",\"type\":\"boolean\"},\"enableSecureBoot\":{\"description\":\"Immutable. Defines whether the instance has Secure Boot enabled.\",\"type\":\"boolean\"}}},\"spot\":{\"description\":\"Immutable. Whether the nodes are created as spot VM instances.\",\"type\":\"boolean\"},\"tags\":{\"description\":\"The list of instance tags applied to all nodes.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"taint\":{\"description\":\"Immutable. List of Kubernetes taints to be applied to each node.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"effect\",\"key\",\"value\"],\"properties\":{\"effect\":{\"description\":\"Immutable. Effect for taint.\",\"type\":\"string\"},\"key\":{\"description\":\"Immutable. Key for taint.\",\"type\":\"string\"},\"value\":{\"description\":\"Immutable. Value for taint.\",\"type\":\"string\"}}}},\"workloadMetadataConfig\":{\"description\":\"Immutable. The workload metadata configuration for this node.\",\"type\":\"object\",\"properties\":{\"mode\":{\"description\":\"Mode is the configuration for how to expose metadata to workloads running on the node.\",\"type\":\"string\"},\"nodeMetadata\":{\"description\":\"DEPRECATED. Deprecated in favor of mode. NodeMetadata is the configuration for how to expose metadata to the workloads running on the node.\",\"type\":\"string\"}}}}},\"nodeLocations\":{\"description\":\"The list of zones in which the cluster's nodes are located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If this is specified for a zonal cluster, omit the cluster's zone.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"nodePoolAutoConfig\":{\"description\":\"Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.\",\"type\":\"object\",\"properties\":{\"networkTags\":{\"description\":\"Collection of Compute Engine network tags that can be applied to a node's underlying VM instance.\",\"type\":\"object\",\"properties\":{\"tags\":{\"description\":\"List of network tags applied to auto-provisioned node pools.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"nodePoolDefaults\":{\"description\":\"The default nodel pool settings for the entire cluster.\",\"type\":\"object\",\"properties\":{\"nodeConfigDefaults\":{\"description\":\"Subset of NodeConfig message that has defaults.\",\"type\":\"object\",\"properties\":{\"gcfsConfig\":{\"description\":\"GCFS configuration for this node.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"description\":\"Whether or not GCFS is enabled.\",\"type\":\"boolean\"}}},\"loggingVariant\":{\"description\":\"Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.\",\"type\":\"string\"}}}}},\"nodeVersion\":{\"type\":\"string\"},\"notificationConfig\":{\"description\":\"The notification config for sending cluster upgrade notifications.\",\"type\":\"object\",\"required\":[\"pubsub\"],\"properties\":{\"pubsub\":{\"description\":\"Notification config for Cloud Pub/Sub.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"description\":\"Whether or not the notification config is enabled.\",\"type\":\"boolean\"},\"filter\":{\"description\":\"Allows filtering to one or more specific event types. If event types are present, those and only those event types will be transmitted to the cluster. Other types will be skipped. If no filter is specified, or no event types are present, all event types will be sent.\",\"type\":\"object\",\"required\":[\"eventType\"],\"properties\":{\"eventType\":{\"description\":\"Can be used to filter what notifications are sent. Valid values include include UPGRADE_AVAILABLE_EVENT, UPGRADE_EVENT and SECURITY_BULLETIN_EVENT.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"topicRef\":{\"description\":\"The PubSubTopic to send the notification to.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{project}}/topics/{{value}}`, where {{value}} is the `name` field of a `PubSubTopic` resource.\",\"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\"}}}}}}},\"podSecurityPolicyConfig\":{\"description\":\"Configuration for the PodSecurityPolicy feature.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"description\":\"Enable the PodSecurityPolicy controller for this cluster. If enabled, pods must be valid under a PodSecurityPolicy to be created.\",\"type\":\"boolean\"}}},\"privateClusterConfig\":{\"description\":\"Configuration for private clusters, clusters with private nodes.\",\"type\":\"object\",\"properties\":{\"enablePrivateEndpoint\":{\"description\":\"When true, the cluster's private endpoint is used as the cluster endpoint and access through the public endpoint is disabled. When false, either endpoint can be used. This field only applies to private clusters, when enable_private_nodes is true.\",\"type\":\"boolean\"},\"enablePrivateNodes\":{\"description\":\"Immutable. Enables the private cluster feature, creating a private endpoint on the cluster. In a private cluster, nodes only have RFC 1918 private addresses and communicate with the master's private endpoint via private networking.\",\"type\":\"boolean\"},\"masterGlobalAccessConfig\":{\"description\":\"Controls cluster master global access settings.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"description\":\"Whether the cluster master is accessible globally or not.\",\"type\":\"boolean\"}}},\"masterIpv4CidrBlock\":{\"description\":\"Immutable. The IP range in CIDR notation to use for the hosted master network. This range will be used for assigning private IP addresses to the cluster master(s) and the ILB VIP. This range must not overlap with any other ranges in use within the cluster's network, and it must be a /28 subnet. See Private Cluster Limitations for more details. This field only applies to private clusters, when enable_private_nodes is true.\",\"type\":\"string\"},\"peeringName\":{\"description\":\"The name of the peering between this cluster and the Google owned VPC.\",\"type\":\"string\"},\"privateEndpoint\":{\"description\":\"The internal IP address of this cluster's master endpoint.\",\"type\":\"string\"},\"privateEndpointSubnetworkRef\":{\"description\":\"Immutable. Subnetwork in cluster's network where master's endpoint\\nwill be provisioned.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The `selfLink` field of a `ComputeSubnetwork` resource.\",\"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\"}}},\"publicEndpoint\":{\"description\":\"The external IP address of this cluster's master endpoint.\",\"type\":\"string\"}}},\"privateIpv6GoogleAccess\":{\"description\":\"The desired state of IPv6 connectivity to Google Services. By default, no private IPv6 access to or from Google Services (all access will be via IPv4).\",\"type\":\"string\"},\"releaseChannel\":{\"description\":\"Configuration options for the Release channel feature, which provide more control over automatic upgrades of your GKE clusters. Note that removing this field from your config will not unenroll it. Instead, use the \\\"UNSPECIFIED\\\" channel.\",\"type\":\"object\",\"required\":[\"channel\"],\"properties\":{\"channel\":{\"description\":\"The selected release channel. Accepted values are:\\n* UNSPECIFIED: Not set.\\n* RAPID: Weekly upgrade cadence; Early testers and developers who requires new features.\\n* REGULAR: Multiple per month upgrade cadence; Production users who need features not yet offered in the Stable channel.\\n* STABLE: Every few months upgrade cadence; Production users who need stability above all else, and for whom frequent upgrades are too risky.\",\"type\":\"string\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"},\"resourceUsageExportConfig\":{\"description\":\"Configuration for the ResourceUsageExportConfig feature.\",\"type\":\"object\",\"required\":[\"bigqueryDestination\"],\"properties\":{\"bigqueryDestination\":{\"description\":\"Parameters for using BigQuery as the destination of resource usage export.\",\"type\":\"object\",\"required\":[\"datasetId\"],\"properties\":{\"datasetId\":{\"description\":\"The ID of a BigQuery Dataset.\",\"type\":\"string\"}}},\"enableNetworkEgressMetering\":{\"description\":\"Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic.\",\"type\":\"boolean\"},\"enableResourceConsumptionMetering\":{\"description\":\"Whether to enable resource consumption metering on this cluster. When enabled, a table will be created in the resource export BigQuery dataset to store resource consumption data. The resulting table can be joined with the resource usage table or with BigQuery billing export. Defaults to true.\",\"type\":\"boolean\"}}},\"serviceExternalIpsConfig\":{\"description\":\"If set, and enabled=true, services with external ips field will not be blocked.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"description\":\"When enabled, services with exterenal ips specified will be allowed.\",\"type\":\"boolean\"}}},\"subnetworkRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The `selfLink` field of a `ComputeSubnetwork` resource.\",\"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\"}}},\"verticalPodAutoscaling\":{\"description\":\"Vertical Pod Autoscaling automatically adjusts the resources of pods controlled by it.\",\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"description\":\"Enables vertical pod autoscaling.\",\"type\":\"boolean\"}}},\"workloadIdentityConfig\":{\"description\":\"Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.\",\"type\":\"object\",\"properties\":{\"identityNamespace\":{\"description\":\"DEPRECATED. This field will be removed in a future major release as it has been deprecated in the API. Use `workloadPool` instead; `workloadPool` field will supersede this field.\\nEnables workload identity.\",\"type\":\"string\"},\"workloadPool\":{\"description\":\"The workload pool to attach all Kubernetes service accounts to.\",\"type\":\"string\"}}}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"endpoint\":{\"description\":\"The IP address of this cluster's Kubernetes master.\",\"type\":\"string\"},\"labelFingerprint\":{\"description\":\"The fingerprint of the set of labels for this cluster.\",\"type\":\"string\"},\"masterVersion\":{\"description\":\"The current version of the master in the cluster. This may be different than the min_master_version set in the config if the master has been updated by GKE.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"operation\":{\"type\":\"string\"},\"selfLink\":{\"description\":\"Server-defined URL for the resource.\",\"type\":\"string\"},\"servicesIpv4Cidr\":{\"description\":\"The IP address range of the Kubernetes services in this cluster, in CIDR notation (e.g. 1.2.3.4/29). Service addresses are typically put in the last /16 from the container CIDR.\",\"type\":\"string\"},\"tpuIpv4CidrBlock\":{\"description\":\"The IP address range of the Cloud TPUs in this cluster, in CIDR notation (e.g. 1.2.3.4/29).\",\"type\":\"string\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"container.cnrm.cloud.google.com\",\"kind\":\"ContainerCluster\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.container.v1beta1.ContainerClusterList\":{\"description\":\"ContainerClusterList is a list of ContainerCluster\",\"type\":\"object\",\"required\":[\"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 containerclusters. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/com.google.cloud.cnrm.container.v1beta1.ContainerCluster\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"container.cnrm.cloud.google.com\",\"kind\":\"ContainerClusterList\",\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"}]},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}]}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"}]},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}}}}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv3/dataproc_v1beta1_dataprocworkflowtemplate.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes CRD Swagger\",\"version\":\"v0.1.0\"},\"components\":{\"schemas\":{\"com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\":{\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"type\":\"object\",\"required\":[\"jobs\",\"location\",\"placement\"],\"properties\":{\"dagTimeout\":{\"description\":\"Immutable. Optional. Timeout duration for the DAG of jobs, expressed in seconds (see [JSON representation of duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). The timeout duration must be from 10 minutes (\\\"600s\\\") to 24 hours (\\\"86400s\\\"). The timer begins when the first job is submitted. If the workflow is running at the end of the timeout period, any remaining jobs are cancelled, the workflow is ended, and if the workflow was running on a [managed cluster](/dataproc/docs/concepts/workflows/using-workflows#configuring_or_selecting_a_cluster), the cluster is deleted.\",\"type\":\"string\"},\"jobs\":{\"description\":\"Immutable. Required. The Directed Acyclic Graph of Jobs to submit.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"stepId\"],\"properties\":{\"hadoopJob\":{\"description\":\"Immutable. Optional. Job is a Hadoop job.\",\"type\":\"object\",\"properties\":{\"archiveUris\":{\"description\":\"Immutable. Optional. HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"args\":{\"description\":\"Immutable. Optional. The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"fileUris\":{\"description\":\"Immutable. Optional. HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"jarFileUris\":{\"description\":\"Immutable. Optional. Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"mainClass\":{\"description\":\"Immutable. The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in `jar_file_uris`.\",\"type\":\"string\"},\"mainJarFileUri\":{\"description\":\"Immutable. The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'\",\"type\":\"string\"},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"hiveJob\":{\"description\":\"Immutable. Optional. Job is a Hive job.\",\"type\":\"object\",\"properties\":{\"continueOnFailure\":{\"description\":\"Immutable. Optional. Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.\",\"type\":\"boolean\"},\"jarFileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"queryFileUri\":{\"description\":\"Immutable. The HCFS URI of the script that contains Hive queries.\",\"type\":\"string\"},\"queryList\":{\"description\":\"Immutable. A list of queries.\",\"type\":\"object\",\"required\":[\"queries\"],\"properties\":{\"queries\":{\"description\":\"Immutable. Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \\\"hiveJob\\\": { \\\"queryList\\\": { \\\"queries\\\": [ \\\"query1\\\", \\\"query2\\\", \\\"query3;query4\\\", ] } }\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"scriptVariables\":{\"description\":\"Immutable. Optional. Mapping of query variable names to values (equivalent to the Hive command: `SET name=\\\"value\\\";`).\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"labels\":{\"description\":\"Immutable. Optional. The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: p{Ll}p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following regular expression: [p{Ll}p{Lo}p{N}_-]{0,63} No more than 32 labels can be associated with a given job.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"pigJob\":{\"description\":\"Immutable. Optional. Job is a Pig job.\",\"type\":\"object\",\"properties\":{\"continueOnFailure\":{\"description\":\"Immutable. Optional. Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.\",\"type\":\"boolean\"},\"jarFileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"queryFileUri\":{\"description\":\"Immutable. The HCFS URI of the script that contains the Pig queries.\",\"type\":\"string\"},\"queryList\":{\"description\":\"Immutable. A list of queries.\",\"type\":\"object\",\"required\":[\"queries\"],\"properties\":{\"queries\":{\"description\":\"Immutable. Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \\\"hiveJob\\\": { \\\"queryList\\\": { \\\"queries\\\": [ \\\"query1\\\", \\\"query2\\\", \\\"query3;query4\\\", ] } }\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"scriptVariables\":{\"description\":\"Immutable. Optional. Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"prerequisiteStepIds\":{\"description\":\"Immutable. Optional. The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"prestoJob\":{\"description\":\"Immutable. Optional. Job is a Presto job.\",\"type\":\"object\",\"properties\":{\"clientTags\":{\"description\":\"Immutable. Optional. Presto client tags to attach to this query\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"continueOnFailure\":{\"description\":\"Immutable. Optional. Whether to continue executing queries if a query fails. The default value is `false`. Setting to `true` can be useful when executing independent parallel queries.\",\"type\":\"boolean\"},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"outputFormat\":{\"description\":\"Immutable. Optional. The format in which query output will be displayed. See the Presto documentation for supported output formats\",\"type\":\"string\"},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values. Used to set Presto [session properties](https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"queryFileUri\":{\"description\":\"Immutable. The HCFS URI of the script that contains SQL queries.\",\"type\":\"string\"},\"queryList\":{\"description\":\"Immutable. A list of queries.\",\"type\":\"object\",\"required\":[\"queries\"],\"properties\":{\"queries\":{\"description\":\"Immutable. Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \\\"hiveJob\\\": { \\\"queryList\\\": { \\\"queries\\\": [ \\\"query1\\\", \\\"query2\\\", \\\"query3;query4\\\", ] } }\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"pysparkJob\":{\"description\":\"Immutable. Optional. Job is a PySpark job.\",\"type\":\"object\",\"required\":[\"mainPythonFileUri\"],\"properties\":{\"archiveUris\":{\"description\":\"Immutable. Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"args\":{\"description\":\"Immutable. Optional. The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"fileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"jarFileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"mainPythonFileUri\":{\"description\":\"Immutable. Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.\",\"type\":\"string\"},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"pythonFileUris\":{\"description\":\"Immutable. Optional. HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"scheduling\":{\"description\":\"Immutable. Optional. Job scheduling configuration.\",\"type\":\"object\",\"properties\":{\"maxFailuresPerHour\":{\"description\":\"Immutable. Optional. Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window. Maximum value is 10.\",\"type\":\"integer\",\"format\":\"int64\"},\"maxFailuresTotal\":{\"description\":\"Immutable. Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"sparkJob\":{\"description\":\"Immutable. Optional. Job is a Spark job.\",\"type\":\"object\",\"properties\":{\"archiveUris\":{\"description\":\"Immutable. Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"args\":{\"description\":\"Immutable. Optional. The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"fileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"jarFileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"mainClass\":{\"description\":\"Immutable. The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in `jar_file_uris`.\",\"type\":\"string\"},\"mainJarFileUri\":{\"description\":\"Immutable. The HCFS URI of the jar file that contains the main class.\",\"type\":\"string\"},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"sparkRJob\":{\"description\":\"Immutable. Optional. Job is a SparkR job.\",\"type\":\"object\",\"required\":[\"mainRFileUri\"],\"properties\":{\"archiveUris\":{\"description\":\"Immutable. Optional. HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"args\":{\"description\":\"Immutable. Optional. The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"fileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"mainRFileUri\":{\"description\":\"Immutable. Required. The HCFS URI of the main R file to use as the driver. Must be a .R file.\",\"type\":\"string\"},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"sparkSqlJob\":{\"description\":\"Immutable. Optional. Job is a SparkSql job.\",\"type\":\"object\",\"properties\":{\"jarFileUris\":{\"description\":\"Immutable. Optional. HCFS URIs of jar files to be added to the Spark CLASSPATH.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"loggingConfig\":{\"description\":\"Immutable. Optional. The runtime log config for job execution.\",\"type\":\"object\",\"properties\":{\"driverLogLevels\":{\"description\":\"Immutable. The per-package log levels for the driver. This may include \\\"root\\\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"properties\":{\"description\":\"Immutable. Optional. A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"queryFileUri\":{\"description\":\"Immutable. The HCFS URI of the script that contains SQL queries.\",\"type\":\"string\"},\"queryList\":{\"description\":\"Immutable. A list of queries.\",\"type\":\"object\",\"required\":[\"queries\"],\"properties\":{\"queries\":{\"description\":\"Immutable. Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \\\"hiveJob\\\": { \\\"queryList\\\": { \\\"queries\\\": [ \\\"query1\\\", \\\"query2\\\", \\\"query3;query4\\\", ] } }\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"scriptVariables\":{\"description\":\"Immutable. Optional. Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name=\\\"value\\\";`).\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"stepId\":{\"description\":\"Immutable. Required. The step id. The id must be unique among all jobs within the template. The step id is used as prefix for job id, as job `goog-dataproc-workflow-step-id` label, and in prerequisiteStepIds field from other steps. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of between 3 and 50 characters.\",\"type\":\"string\"}}}},\"location\":{\"description\":\"Immutable. The location for the resource\",\"type\":\"string\"},\"parameters\":{\"description\":\"Immutable. Optional. Template parameters whose values are substituted into the template. Values for parameters must be provided when the template is instantiated.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"fields\",\"name\"],\"properties\":{\"description\":{\"description\":\"Immutable. Optional. Brief description of the parameter. Must not exceed 1024 characters.\",\"type\":\"string\"},\"fields\":{\"description\":\"Immutable. Required. Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter's list of field paths. A field path is similar in syntax to a google.protobuf.FieldMask. For example, a field path that references the zone field of a workflow template's cluster selector would be specified as `placement.clusterSelector.zone`. Also, field paths can reference fields using the following syntax: * Values in maps can be referenced by key: * labels['key'] * placement.clusterSelector.clusterLabels['key'] * placement.managedCluster.labels['key'] * placement.clusterSelector.clusterLabels['key'] * jobs['step-id'].labels['key'] * Jobs in the jobs list can be referenced by step-id: * jobs['step-id'].hadoopJob.mainJarFileUri * jobs['step-id'].hiveJob.queryFileUri * jobs['step-id'].pySparkJob.mainPythonFileUri * jobs['step-id'].hadoopJob.jarFileUris[0] * jobs['step-id'].hadoopJob.archiveUris[0] * jobs['step-id'].hadoopJob.fileUris[0] * jobs['step-id'].pySparkJob.pythonFileUris[0] * Items in repeated fields can be referenced by a zero-based index: * jobs['step-id'].sparkJob.args[0] * Other examples: * jobs['step-id'].hadoopJob.properties['key'] * jobs['step-id'].hadoopJob.args[0] * jobs['step-id'].hiveJob.scriptVariables['key'] * jobs['step-id'].hadoopJob.mainJarFileUri * placement.clusterSelector.zone It may not be possible to parameterize maps and repeated fields in their entirety since only individual map values and individual items in repeated fields can be referenced. For example, the following field paths are invalid: - placement.clusterSelector.clusterLabels - jobs['step-id'].sparkJob.args\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"name\":{\"description\":\"Immutable. Required. Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters.\",\"type\":\"string\"},\"validation\":{\"description\":\"Immutable. Optional. Validation rules to be applied to this parameter's value.\",\"type\":\"object\",\"properties\":{\"regex\":{\"description\":\"Immutable. Validation based on regular expressions.\",\"type\":\"object\",\"required\":[\"regexes\"],\"properties\":{\"regexes\":{\"description\":\"Immutable. Required. RE2 regular expressions used to validate the parameter's value. The value must match the regex in its entirety (substring matches are not sufficient).\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"values\":{\"description\":\"Immutable. Validation based on a list of allowed values.\",\"type\":\"object\",\"required\":[\"values\"],\"properties\":{\"values\":{\"description\":\"Immutable. Required. List of allowed values for the parameter.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}}}}},\"placement\":{\"description\":\"Immutable. Required. WorkflowTemplate scheduling information.\",\"type\":\"object\",\"properties\":{\"clusterSelector\":{\"description\":\"Immutable. Optional. A selector that chooses target cluster for jobs based on metadata. The selector is evaluated at the time each job is submitted.\",\"type\":\"object\",\"required\":[\"clusterLabels\"],\"properties\":{\"clusterLabels\":{\"description\":\"Immutable. Required. The cluster labels. Cluster must have all labels to match.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"zone\":{\"description\":\"Immutable. Optional. The zone where workflow process executes. This parameter does not affect the selection of the cluster. If unspecified, the zone of the first cluster matching the selector is used.\",\"type\":\"string\"}}},\"managedCluster\":{\"description\":\"Immutable. A cluster that is managed by the workflow.\",\"type\":\"object\",\"required\":[\"clusterName\",\"config\"],\"properties\":{\"clusterName\":{\"description\":\"Immutable. Required. The cluster name prefix. A unique cluster name will be formed by appending a random suffix. The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters.\",\"type\":\"string\"},\"config\":{\"description\":\"Immutable. Required. The cluster configuration.\",\"type\":\"object\",\"properties\":{\"autoscalingConfig\":{\"description\":\"Immutable. Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset.\",\"type\":\"object\",\"properties\":{\"policyRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Optional. The autoscaling policy used by the cluster. Only resource names including projectid and location (region) are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]` * `projects/[project_id]/locations/[dataproc_region]/autoscalingPolicies/[policy_id]` Note that the policy must be in the same project and Dataproc region.\\n\\nAllowed value: The Google Cloud resource name of a `DataprocAutoscalingPolicy` resource (format: `projects/{{project}}/locations/{{location}}/autoscalingPolicies/{{name}}`).\",\"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\"}}}}},\"encryptionConfig\":{\"description\":\"Immutable. Optional. Encryption settings for the cluster.\",\"type\":\"object\",\"properties\":{\"gcePdKmsKeyRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.\\n\\nAllowed value: The `selfLink` field of a `KMSCryptoKey` resource.\",\"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\"}}}}},\"endpointConfig\":{\"description\":\"Immutable. Optional. Port/endpoint configuration for this cluster\",\"type\":\"object\",\"properties\":{\"enableHttpPortAccess\":{\"description\":\"Immutable. Optional. If true, enable http access to specific ports on the cluster from external sources. Defaults to false.\",\"type\":\"boolean\"}}},\"gceClusterConfig\":{\"description\":\"Immutable. Optional. The shared Compute Engine config settings for all instances in a cluster.\",\"type\":\"object\",\"properties\":{\"internalIPOnly\":{\"description\":\"Immutable. Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This `internal_ip_only` restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.\",\"type\":\"boolean\"},\"metadata\":{\"description\":\"Immutable. The Compute Engine metadata entries to add to all instances (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"networkRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither `network_uri` nor `subnetwork_uri` is specified, the \\\"default\\\" network of the project is used, if it exists. Cannot be a \\\"Custom Subnet Network\\\" (see [Using Subnetworks](https://cloud.google.com/compute/docs/subnetworks) for more information). A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default` * `projects/[project_id]/regions/global/default` * `default`\\n\\nAllowed value: The `selfLink` field of a `ComputeNetwork` resource.\",\"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\"}}},\"nodeGroupAffinity\":{\"description\":\"Immutable. Optional. Node Group Affinity for sole-tenant clusters.\",\"type\":\"object\",\"required\":[\"nodeGroupRef\"],\"properties\":{\"nodeGroupRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The URI of a sole-tenant [node group resource](https://cloud.google.com/compute/docs/reference/rest/v1/nodeGroups) that the cluster will be created on. A full URL, partial URI, or node group name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1` * `projects/[project_id]/zones/us-central1-a/nodeGroups/node-group-1` * `node-group-1`\\n\\nAllowed value: The `selfLink` field of a `ComputeNodeGroup` resource.\",\"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\"}}}}},\"privateIPv6GoogleAccess\":{\"description\":\"Immutable. Optional. The type of IPv6 access for a cluster. Possible values: PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED, INHERIT_FROM_SUBNETWORK, OUTBOUND, BIDIRECTIONAL\",\"type\":\"string\"},\"reservationAffinity\":{\"description\":\"Immutable. Optional. Reservation Affinity for consuming Zonal reservation.\",\"type\":\"object\",\"properties\":{\"consumeReservationType\":{\"description\":\"Immutable. Optional. Type of reservation to consume Possible values: TYPE_UNSPECIFIED, NO_RESERVATION, ANY_RESERVATION, SPECIFIC_RESERVATION\",\"type\":\"string\"},\"key\":{\"description\":\"Immutable. Optional. Corresponds to the label key of reservation resource.\",\"type\":\"string\"},\"values\":{\"description\":\"Immutable. Optional. Corresponds to the label values of reservation resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"serviceAccountRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Optional. The [Dataproc service account](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/service-accounts#service_accounts_in_dataproc) (also see [VM Data Plane identity](https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-principals#vm_service_account_data_plane_identity)) used by Dataproc cluster VM instances to access Google Cloud Platform services. If not specified, the [Compute Engine default service account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) is used.\\n\\nAllowed value: The `email` field of an `IAMServiceAccount` resource.\",\"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\"}}},\"serviceAccountScopes\":{\"description\":\"Immutable. Optional. The URIs of service account scopes to be included in Compute Engine instances. The following base set of scopes is always included: * https://www.googleapis.com/auth/cloud.useraccounts.readonly * https://www.googleapis.com/auth/devstorage.read_write * https://www.googleapis.com/auth/logging.write If no scopes are specified, the following defaults are also provided: * https://www.googleapis.com/auth/bigquery * https://www.googleapis.com/auth/bigtable.admin.table * https://www.googleapis.com/auth/bigtable.data * https://www.googleapis.com/auth/devstorage.full_control\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"shieldedInstanceConfig\":{\"description\":\"Immutable. Optional. Shielded Instance Config for clusters using Compute Engine Shielded VMs.\",\"type\":\"object\",\"properties\":{\"enableIntegrityMonitoring\":{\"description\":\"Immutable. Optional. Defines whether instances have integrity monitoring enabled. Integrity monitoring compares the most recent boot measurements to the integrity policy baseline and returns a pair of pass/fail results depending on whether they match or not.\",\"type\":\"boolean\"},\"enableSecureBoot\":{\"description\":\"Immutable. Optional. Defines whether the instances have Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails.\",\"type\":\"boolean\"},\"enableVtpm\":{\"description\":\"Immutable. Optional. Defines whether the instance have the vTPM enabled. Virtual Trusted Platform Module protects objects like keys, certificates and enables Measured Boot by performing the measurements needed to create a known good boot baseline, called the integrity policy baseline.\",\"type\":\"boolean\"}}},\"subnetworkRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0` * `projects/[project_id]/regions/us-east1/subnetworks/sub0` * `sub0`\\n\\nAllowed value: The `selfLink` field of a `ComputeSubnetwork` resource.\",\"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\"}}},\"tags\":{\"description\":\"Immutable. The Compute Engine tags to add to all instances (see [Tagging instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"zone\":{\"description\":\"Immutable. Optional. The zone where the Compute Engine cluster will be located. On a create request, it is required in the \\\"global\\\" region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding Compute Engine region. On a get request, zone will always be present. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/[zone]` * `projects/[project_id]/zones/[zone]` * `us-central1-f`\",\"type\":\"string\"}}},\"initializationActions\":{\"description\":\"Immutable. Optional. Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's `role` metadata to run an executable on a master or worker node, as shown below using `curl` (you can also use `wget`): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role) if [[ \\\"${ROLE}\\\" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"executableFile\":{\"description\":\"Immutable. Required. Cloud Storage URI of executable file.\",\"type\":\"string\"},\"executionTimeout\":{\"description\":\"Immutable. Optional. Amount of time executable has to complete. Default is 10 minutes (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.\",\"type\":\"string\"}}}},\"lifecycleConfig\":{\"description\":\"Immutable. Optional. Lifecycle setting for the cluster.\",\"type\":\"object\",\"properties\":{\"autoDeleteTime\":{\"description\":\"Immutable. Optional. The time when cluster will be auto-deleted (see JSON representation of [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).\",\"type\":\"string\",\"format\":\"date-time\"},\"autoDeleteTtl\":{\"description\":\"Immutable. Optional. The lifetime duration of cluster. The cluster will be auto-deleted at the end of this period. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).\",\"type\":\"string\"},\"idleDeleteTtl\":{\"description\":\"Immutable. Optional. The duration to keep the cluster alive while idling (when no jobs are running). Passing this threshold will cause the cluster to be deleted. Minimum value is 5 minutes; maximum value is 14 days (see JSON representation of [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)).\",\"type\":\"string\"}}},\"masterConfig\":{\"description\":\"Immutable. Optional. The Compute Engine config settings for the master instance in a cluster.\",\"type\":\"object\",\"properties\":{\"accelerators\":{\"description\":\"Immutable. Optional. The Compute Engine accelerator configuration for these instances.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"acceleratorCount\":{\"description\":\"Immutable. The number of the accelerator cards of this type exposed to this instance.\",\"type\":\"integer\",\"format\":\"int64\"},\"acceleratorType\":{\"description\":\"Immutable. Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `nvidia-tesla-k80` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.\",\"type\":\"string\"}}}},\"diskConfig\":{\"description\":\"Immutable. Optional. Disk option config settings.\",\"type\":\"object\",\"properties\":{\"bootDiskSizeGb\":{\"description\":\"Immutable. Optional. Size in GB of the boot disk (default is 500GB).\",\"type\":\"integer\",\"format\":\"int64\"},\"bootDiskType\":{\"description\":\"Immutable. Optional. Type of the boot disk (default is \\\"pd-standard\\\"). Valid values: \\\"pd-balanced\\\" (Persistent Disk Balanced Solid State Drive), \\\"pd-ssd\\\" (Persistent Disk Solid State Drive), or \\\"pd-standard\\\" (Persistent Disk Hard Disk Drive). See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).\",\"type\":\"string\"},\"numLocalSsds\":{\"description\":\"Immutable. Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"imageRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id]` * `projects/[project_id]/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name]` * `projects/[project_id]/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.\\n\\nAllowed value: The `selfLink` field of a `ComputeImage` resource.\",\"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\"}}},\"machineType\":{\"description\":\"Immutable. Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.\",\"type\":\"string\"},\"minCpuPlatform\":{\"description\":\"Immutable. Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc -\\u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).\",\"type\":\"string\"},\"numInstances\":{\"description\":\"Immutable. Optional. The number of VM instances in the instance group. For [HA cluster](/dataproc/docs/concepts/configuring-clusters/high-availability) [master_config](#FIELDS.master_config) groups, **must be set to 3**. For standard cluster [master_config](#FIELDS.master_config) groups, **must be set to 1**.\",\"type\":\"integer\",\"format\":\"int64\"},\"preemptibility\":{\"description\":\"Immutable. Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE\",\"type\":\"string\"}}},\"secondaryWorkerConfig\":{\"description\":\"Immutable. Optional. The Compute Engine config settings for additional worker instances in a cluster.\",\"type\":\"object\",\"properties\":{\"accelerators\":{\"description\":\"Immutable. Optional. The Compute Engine accelerator configuration for these instances.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"acceleratorCount\":{\"description\":\"Immutable. The number of the accelerator cards of this type exposed to this instance.\",\"type\":\"integer\",\"format\":\"int64\"},\"acceleratorType\":{\"description\":\"Immutable. Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `nvidia-tesla-k80` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.\",\"type\":\"string\"}}}},\"diskConfig\":{\"description\":\"Immutable. Optional. Disk option config settings.\",\"type\":\"object\",\"properties\":{\"bootDiskSizeGb\":{\"description\":\"Immutable. Optional. Size in GB of the boot disk (default is 500GB).\",\"type\":\"integer\",\"format\":\"int64\"},\"bootDiskType\":{\"description\":\"Immutable. Optional. Type of the boot disk (default is \\\"pd-standard\\\"). Valid values: \\\"pd-balanced\\\" (Persistent Disk Balanced Solid State Drive), \\\"pd-ssd\\\" (Persistent Disk Solid State Drive), or \\\"pd-standard\\\" (Persistent Disk Hard Disk Drive). See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).\",\"type\":\"string\"},\"numLocalSsds\":{\"description\":\"Immutable. Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"imageRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id]` * `projects/[project_id]/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name]` * `projects/[project_id]/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.\\n\\nAllowed value: The `selfLink` field of a `ComputeImage` resource.\",\"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\"}}},\"machineType\":{\"description\":\"Immutable. Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.\",\"type\":\"string\"},\"minCpuPlatform\":{\"description\":\"Immutable. Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc -\\u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).\",\"type\":\"string\"},\"numInstances\":{\"description\":\"Immutable. Optional. The number of VM instances in the instance group. For [HA cluster](/dataproc/docs/concepts/configuring-clusters/high-availability) [master_config](#FIELDS.master_config) groups, **must be set to 3**. For standard cluster [master_config](#FIELDS.master_config) groups, **must be set to 1**.\",\"type\":\"integer\",\"format\":\"int64\"},\"preemptibility\":{\"description\":\"Immutable. Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE\",\"type\":\"string\"}}},\"securityConfig\":{\"description\":\"Immutable. Optional. Security settings for the cluster.\",\"type\":\"object\",\"properties\":{\"kerberosConfig\":{\"description\":\"Immutable. Optional. Kerberos related configuration.\",\"type\":\"object\",\"properties\":{\"crossRealmTrustAdminServer\":{\"description\":\"Immutable. Optional. The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.\",\"type\":\"string\"},\"crossRealmTrustKdc\":{\"description\":\"Immutable. Optional. The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.\",\"type\":\"string\"},\"crossRealmTrustRealm\":{\"description\":\"Immutable. Optional. The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.\",\"type\":\"string\"},\"crossRealmTrustSharedPassword\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of a KMS encrypted file containing the shared password between the on-cluster Kerberos realm and the remote trusted realm, in a cross realm trust relationship.\",\"type\":\"string\"},\"enableKerberos\":{\"description\":\"Immutable. Optional. Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster.\",\"type\":\"boolean\"},\"kdcDbKey\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.\",\"type\":\"string\"},\"keyPassword\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided key. For the self-signed certificate, this password is generated by Dataproc.\",\"type\":\"string\"},\"keystore\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.\",\"type\":\"string\"},\"keystorePassword\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided keystore. For the self-signed certificate, this password is generated by Dataproc.\",\"type\":\"string\"},\"kmsKeyRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Optional. The uri of the KMS key used to encrypt various sensitive files.\\n\\nAllowed value: The `selfLink` field of a `KMSCryptoKey` resource.\",\"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\"}}},\"realm\":{\"description\":\"Immutable. Optional. The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.\",\"type\":\"string\"},\"rootPrincipalPassword\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of a KMS encrypted file containing the root principal password.\",\"type\":\"string\"},\"tgtLifetimeHours\":{\"description\":\"Immutable. Optional. The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used.\",\"type\":\"integer\",\"format\":\"int64\"},\"truststore\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.\",\"type\":\"string\"},\"truststorePassword\":{\"description\":\"Immutable. Optional. The Cloud Storage URI of a KMS encrypted file containing the password to the user provided truststore. For the self-signed certificate, this password is generated by Dataproc.\",\"type\":\"string\"}}}}},\"softwareConfig\":{\"description\":\"Immutable. Optional. The config settings for software inside the cluster.\",\"type\":\"object\",\"properties\":{\"imageVersion\":{\"description\":\"Immutable. Optional. The version of software inside the cluster. It must be one of the supported [Dataproc Versions](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as \\\"1.2\\\" (including a subminor version, such as \\\"1.2.29\\\"), or the [\\\"preview\\\" version](https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version.\",\"type\":\"string\"},\"optionalComponents\":{\"description\":\"Immutable. Optional. The set of components to activate on the cluster.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"properties\":{\"description\":\"Immutable. Optional. The properties to set on daemon config files. Property keys are specified in `prefix:property` format, for example `core:hadoop.tmp.dir`. The following are supported prefixes and their mappings: * capacity-scheduler: `capacity-scheduler.xml` * core: `core-site.xml` * distcp: `distcp-default.xml` * hdfs: `hdfs-site.xml` * hive: `hive-site.xml` * mapred: `mapred-site.xml` * pig: `pig.properties` * spark: `spark-defaults.conf` * yarn: `yarn-site.xml` For more information, see [Cluster properties](https://cloud.google.com/dataproc/docs/concepts/cluster-properties).\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"stagingBucketRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Optional. A Cloud Storage bucket used to stage job dependencies, config files, and job driver console output. If you do not specify a staging bucket, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket (see [Dataproc staging bucket](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). **This field requires a Cloud Storage bucket name, not a URI to a Cloud Storage bucket.**\\n\\nAllowed value: The Google Cloud resource name of a `StorageBucket` resource (format: `{{name}}`).\",\"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\"}}},\"tempBucketRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Optional. A Cloud Storage bucket used to store ephemeral cluster and jobs data, such as Spark and MapReduce history files. If you do not specify a temp bucket, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's temp bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket. The default bucket has a TTL of 90 days, but you can use any TTL (or none) if you specify a bucket. **This field requires a Cloud Storage bucket name, not a URI to a Cloud Storage bucket.**\\n\\nAllowed value: The Google Cloud resource name of a `StorageBucket` resource (format: `{{name}}`).\",\"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\"}}},\"workerConfig\":{\"description\":\"Immutable. Optional. The Compute Engine config settings for worker instances in a cluster.\",\"type\":\"object\",\"properties\":{\"accelerators\":{\"description\":\"Immutable. Optional. The Compute Engine accelerator configuration for these instances.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"acceleratorCount\":{\"description\":\"Immutable. The number of the accelerator cards of this type exposed to this instance.\",\"type\":\"integer\",\"format\":\"int64\"},\"acceleratorType\":{\"description\":\"Immutable. Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `projects/[project_id]/zones/us-east1-a/acceleratorTypes/nvidia-tesla-k80` * `nvidia-tesla-k80` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.\",\"type\":\"string\"}}}},\"diskConfig\":{\"description\":\"Immutable. Optional. Disk option config settings.\",\"type\":\"object\",\"properties\":{\"bootDiskSizeGb\":{\"description\":\"Immutable. Optional. Size in GB of the boot disk (default is 500GB).\",\"type\":\"integer\",\"format\":\"int64\"},\"bootDiskType\":{\"description\":\"Immutable. Optional. Type of the boot disk (default is \\\"pd-standard\\\"). Valid values: \\\"pd-balanced\\\" (Persistent Disk Balanced Solid State Drive), \\\"pd-ssd\\\" (Persistent Disk Solid State Drive), or \\\"pd-standard\\\" (Persistent Disk Hard Disk Drive). See [Disk types](https://cloud.google.com/compute/docs/disks#disk-types).\",\"type\":\"string\"},\"numLocalSsds\":{\"description\":\"Immutable. Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and [HDFS](https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"imageRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/[image-id]` * `projects/[project_id]/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/[project_id]/global/images/family/[custom-image-family-name]` * `projects/[project_id]/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.\\n\\nAllowed value: The `selfLink` field of a `ComputeImage` resource.\",\"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\"}}},\"machineType\":{\"description\":\"Immutable. Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/[project_id]/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.\",\"type\":\"string\"},\"minCpuPlatform\":{\"description\":\"Immutable. Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc -\\u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).\",\"type\":\"string\"},\"numInstances\":{\"description\":\"Immutable. Optional. The number of VM instances in the instance group. For [HA cluster](/dataproc/docs/concepts/configuring-clusters/high-availability) [master_config](#FIELDS.master_config) groups, **must be set to 3**. For standard cluster [master_config](#FIELDS.master_config) groups, **must be set to 1**.\",\"type\":\"integer\",\"format\":\"int64\"},\"preemptibility\":{\"description\":\"Immutable. Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE\",\"type\":\"string\"}}}}},\"labels\":{\"description\":\"Immutable. Optional. The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: p{Ll}p{Lo}{0,62} Label values must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: [p{Ll}p{Lo}p{N}_-]{0,63} No more than 32 labels can be associated with a given cluster.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}}}},\"projectRef\":{\"description\":\"Immutable. The Project that this resource belongs to.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"The project for the resource\\n\\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"createTime\":{\"description\":\"Output only. The time template was created.\",\"type\":\"string\",\"format\":\"date-time\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"placement\":{\"type\":\"object\",\"properties\":{\"managedCluster\":{\"type\":\"object\",\"properties\":{\"config\":{\"type\":\"object\",\"properties\":{\"endpointConfig\":{\"type\":\"object\",\"properties\":{\"httpPorts\":{\"description\":\"Output only. The map of port descriptions to URLs. Will only be populated if enable_http_port_access is true.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"lifecycleConfig\":{\"type\":\"object\",\"properties\":{\"idleStartTime\":{\"description\":\"Output only. The time when cluster became idle (most recent job finished) and became eligible for deletion due to idleness (see JSON representation of [Timestamp](https://developers.google.com/protocol-buffers/docs/proto3#json)).\",\"type\":\"string\",\"format\":\"date-time\"}}},\"masterConfig\":{\"type\":\"object\",\"properties\":{\"instanceNames\":{\"description\":\"Output only. The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"isPreemptible\":{\"description\":\"Output only. Specifies that this instance group contains preemptible instances.\",\"type\":\"boolean\"},\"managedGroupConfig\":{\"description\":\"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.\",\"type\":\"object\",\"properties\":{\"instanceGroupManagerName\":{\"description\":\"Output only. The name of the Instance Group Manager for this group.\",\"type\":\"string\"},\"instanceTemplateName\":{\"description\":\"Output only. The name of the Instance Template used for the Managed Instance Group.\",\"type\":\"string\"}}}}},\"secondaryWorkerConfig\":{\"type\":\"object\",\"properties\":{\"instanceNames\":{\"description\":\"Output only. The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"isPreemptible\":{\"description\":\"Output only. Specifies that this instance group contains preemptible instances.\",\"type\":\"boolean\"},\"managedGroupConfig\":{\"description\":\"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.\",\"type\":\"object\",\"properties\":{\"instanceGroupManagerName\":{\"description\":\"Output only. The name of the Instance Group Manager for this group.\",\"type\":\"string\"},\"instanceTemplateName\":{\"description\":\"Output only. The name of the Instance Template used for the Managed Instance Group.\",\"type\":\"string\"}}}}},\"workerConfig\":{\"type\":\"object\",\"properties\":{\"instanceNames\":{\"description\":\"Output only. The list of instance names. Dataproc derives the names from `cluster_name`, `num_instances`, and the instance group.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"isPreemptible\":{\"description\":\"Output only. Specifies that this instance group contains preemptible instances.\",\"type\":\"boolean\"},\"managedGroupConfig\":{\"description\":\"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.\",\"type\":\"object\",\"properties\":{\"instanceGroupManagerName\":{\"description\":\"Output only. The name of the Instance Group Manager for this group.\",\"type\":\"string\"},\"instanceTemplateName\":{\"description\":\"Output only. The name of the Instance Template used for the Managed Instance Group.\",\"type\":\"string\"}}}}}}}}}}},\"updateTime\":{\"description\":\"Output only. The time template was last updated.\",\"type\":\"string\",\"format\":\"date-time\"},\"version\":{\"description\":\"Output only. The current version of this workflow template.\",\"type\":\"integer\",\"format\":\"int64\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"dataproc.cnrm.cloud.google.com\",\"kind\":\"DataprocWorkflowTemplate\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplateList\":{\"description\":\"DataprocWorkflowTemplateList is a list of DataprocWorkflowTemplate\",\"type\":\"object\",\"required\":[\"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 dataprocworkflowtemplates. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/com.google.cloud.cnrm.dataproc.v1beta1.DataprocWorkflowTemplate\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"dataproc.cnrm.cloud.google.com\",\"kind\":\"DataprocWorkflowTemplateList\",\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"}]},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}]}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"}]},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}}}}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv3/dlp_v1beta1_dlpdeidentifytemplate.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes CRD Swagger\",\"version\":\"v0.1.0\"},\"components\":{\"schemas\":{\"com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\":{\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"organizationRef\"]},{\"required\":[\"projectRef\"]}],\"properties\":{\"deidentifyConfig\":{\"description\":\"The core content of the template.\",\"type\":\"object\",\"properties\":{\"infoTypeTransformations\":{\"description\":\"Treat the dataset as free-form text and apply the same free text transformation everywhere.\",\"type\":\"object\",\"required\":[\"transformations\"],\"properties\":{\"transformations\":{\"description\":\"Required. Transformation for each infoType. Cannot specify more than one for a given infoType.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"primitiveTransformation\"],\"properties\":{\"infoTypes\":{\"description\":\"InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}},\"primitiveTransformation\":{\"description\":\"Required. Primitive transformation to apply to the infoType.\",\"type\":\"object\",\"properties\":{\"bucketingConfig\":{\"description\":\"Bucketing\",\"type\":\"object\",\"properties\":{\"buckets\":{\"description\":\"Set of buckets. Ranges must be non-overlapping.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"replacementValue\"],\"properties\":{\"max\":{\"description\":\"Upper bound of the range, exclusive; type must match min.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}},\"min\":{\"description\":\"Lower bound of the range, inclusive. Type should be the same as max if used.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}},\"replacementValue\":{\"description\":\"Required. Replacement value for this bucket.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}}}}}}},\"characterMaskConfig\":{\"description\":\"Mask\",\"type\":\"object\",\"properties\":{\"charactersToIgnore\":{\"description\":\"When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"charactersToSkip\":{\"description\":\"Characters to not transform when masking.\",\"type\":\"string\"},\"commonCharactersToIgnore\":{\"description\":\"Common characters to not transform when masking. Useful to avoid removing punctuation. Possible values: COMMON_CHARS_TO_IGNORE_UNSPECIFIED, NUMERIC, ALPHA_UPPER_CASE, ALPHA_LOWER_CASE, PUNCTUATION, WHITESPACE\",\"type\":\"string\"}}}},\"maskingCharacter\":{\"description\":\"Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.\",\"type\":\"string\"},\"numberToMask\":{\"description\":\"Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.\",\"type\":\"integer\",\"format\":\"int64\"},\"reverseOrder\":{\"description\":\"Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.\",\"type\":\"boolean\"}}},\"cryptoDeterministicConfig\":{\"description\":\"Deterministic Crypto\",\"type\":\"object\",\"properties\":{\"context\":{\"description\":\"A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"required\":[\"cryptoKeyRef\",\"wrappedKey\"],\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"surrogateInfoType\":{\"description\":\"The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}}},\"cryptoHashConfig\":{\"description\":\"Crypto\",\"type\":\"object\",\"properties\":{\"cryptoKey\":{\"description\":\"The key used by the hash function.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"required\":[\"cryptoKeyRef\",\"wrappedKey\"],\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}}}},\"cryptoReplaceFfxFpeConfig\":{\"description\":\"Ffx-Fpe\",\"type\":\"object\",\"required\":[\"cryptoKey\"],\"properties\":{\"commonAlphabet\":{\"description\":\"Common alphabets. Possible values: FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED, NUMERIC, HEXADECIMAL, UPPER_CASE_ALPHA_NUMERIC, ALPHA_NUMERIC\",\"type\":\"string\"},\"context\":{\"description\":\"The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"Required. The key used by the encryption algorithm.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"required\":[\"cryptoKeyRef\",\"wrappedKey\"],\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"customAlphabet\":{\"description\":\"This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: ``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^\\u0026*()_-+={[}]|:;\\\"'\\u003c,\\u003e.?/``\",\"type\":\"string\"},\"radix\":{\"description\":\"The native way to select the alphabet. Must be in the range [2, 95].\",\"type\":\"integer\",\"format\":\"int64\"},\"surrogateInfoType\":{\"description\":\"The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}}},\"dateShiftConfig\":{\"description\":\"Date Shift\",\"type\":\"object\",\"required\":[\"lowerBoundDays\",\"upperBoundDays\"],\"properties\":{\"context\":{\"description\":\"Points to the field that contains the context, for example, an entity id. If set, must also set cryptoKey. If set, shift will be consistent for the given context.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"required\":[\"cryptoKeyRef\",\"wrappedKey\"],\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"lowerBoundDays\":{\"description\":\"Required. For example, -5 means shift date to at most 5 days back in the past.\",\"type\":\"integer\",\"format\":\"int64\"},\"upperBoundDays\":{\"description\":\"Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"fixedSizeBucketingConfig\":{\"description\":\"Fixed size bucketing\",\"type\":\"object\",\"required\":[\"bucketSize\",\"lowerBound\",\"upperBound\"],\"properties\":{\"bucketSize\":{\"description\":\"Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.\",\"type\":\"number\",\"format\":\"double\"},\"lowerBound\":{\"description\":\"Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value \\\"-10\\\".\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}},\"upperBound\":{\"description\":\"Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value \\\"89+\\\".\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}}}},\"redactConfig\":{\"description\":\"Redact\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"replaceConfig\":{\"description\":\"Replace with a specified value.\",\"type\":\"object\",\"properties\":{\"newValue\":{\"description\":\"Value to replace it with.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}}}},\"replaceWithInfoTypeConfig\":{\"description\":\"Replace with infotype\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"timePartConfig\":{\"description\":\"Time extraction\",\"type\":\"object\",\"properties\":{\"partToExtract\":{\"description\":\"The part of the time to keep. Possible values: TIME_PART_UNSPECIFIED, YEAR, MONTH, DAY_OF_MONTH, DAY_OF_WEEK, WEEK_OF_YEAR, HOUR_OF_DAY\",\"type\":\"string\"}}}}}}}}}},\"recordTransformations\":{\"description\":\"Treat the dataset as structured. Transformations can be applied to specific locations within structured datasets, such as transforming a column within a table.\",\"type\":\"object\",\"properties\":{\"fieldTransformations\":{\"description\":\"Transform the record by applying various field transformations.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"fields\"],\"properties\":{\"condition\":{\"description\":\"Only apply the transformation if the condition evaluates to true for the given `RecordCondition`. The conditions are allowed to reference fields that are not used in the actual transformation. Example Use Cases: - Apply a different bucket transformation to an age column if the zip code column for the same record is within a specific range. - Redact a field if the date of birth field is greater than 85.\",\"type\":\"object\",\"properties\":{\"expressions\":{\"description\":\"An expression.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions to apply to the expression.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"A collection of conditions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"field\",\"operator\"],\"properties\":{\"field\":{\"description\":\"Required. Field within the record this condition is evaluated against.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"operator\":{\"description\":\"Required. Operator used to compare the field or infoType to the value. Possible values: LOGICAL_OPERATOR_UNSPECIFIED, AND\",\"type\":\"string\"},\"value\":{\"description\":\"Value to compare against. [Mandatory, except for `EXISTS` tests.]\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}}}}}}},\"logicalOperator\":{\"description\":\"The operator to apply to the result of conditions. Default and currently only supported value is `AND`. Possible values: LOGICAL_OPERATOR_UNSPECIFIED, AND\",\"type\":\"string\"}}}}},\"fields\":{\"description\":\"Required. Input field(s) to apply the transformation to. When you have columns that reference their position within a list, omit the index from the FieldId. FieldId name matching ignores the index. For example, instead of \\\"contact.nums[0].type\\\", use \\\"contact.nums.type\\\".\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}}},\"infoTypeTransformations\":{\"description\":\"Treat the contents of the field as free text, and selectively transform content that matches an `InfoType`.\",\"type\":\"object\",\"required\":[\"transformations\"],\"properties\":{\"transformations\":{\"description\":\"Required. Transformation for each infoType. Cannot specify more than one for a given infoType.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"primitiveTransformation\"],\"properties\":{\"infoTypes\":{\"description\":\"InfoTypes to apply the transformation to. An empty list will cause this transformation to apply to all findings that correspond to infoTypes that were requested in `InspectConfig`.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}},\"primitiveTransformation\":{\"description\":\"Required. Primitive transformation to apply to the infoType.\",\"type\":\"object\",\"properties\":{\"bucketingConfig\":{\"description\":\"Bucketing\",\"type\":\"object\",\"properties\":{\"buckets\":{\"description\":\"Set of buckets. Ranges must be non-overlapping.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"replacementValue\"],\"properties\":{\"max\":{\"description\":\"Upper bound of the range, exclusive; type must match min.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}},\"min\":{\"description\":\"Lower bound of the range, inclusive. Type should be the same as max if used.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}},\"replacementValue\":{\"description\":\"Required. Replacement value for this bucket.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}}}}}}},\"characterMaskConfig\":{\"description\":\"Mask\",\"type\":\"object\",\"properties\":{\"charactersToIgnore\":{\"description\":\"When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"charactersToSkip\":{\"description\":\"Characters to not transform when masking.\",\"type\":\"string\"},\"commonCharactersToIgnore\":{\"description\":\"Common characters to not transform when masking. Useful to avoid removing punctuation. Possible values: COMMON_CHARS_TO_IGNORE_UNSPECIFIED, NUMERIC, ALPHA_UPPER_CASE, ALPHA_LOWER_CASE, PUNCTUATION, WHITESPACE\",\"type\":\"string\"}}}},\"maskingCharacter\":{\"description\":\"Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.\",\"type\":\"string\"},\"numberToMask\":{\"description\":\"Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.\",\"type\":\"integer\",\"format\":\"int64\"},\"reverseOrder\":{\"description\":\"Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.\",\"type\":\"boolean\"}}},\"cryptoDeterministicConfig\":{\"description\":\"Deterministic Crypto\",\"type\":\"object\",\"properties\":{\"context\":{\"description\":\"A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"required\":[\"cryptoKeyRef\",\"wrappedKey\"],\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"surrogateInfoType\":{\"description\":\"The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}}},\"cryptoHashConfig\":{\"description\":\"Crypto\",\"type\":\"object\",\"properties\":{\"cryptoKey\":{\"description\":\"The key used by the hash function.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"required\":[\"cryptoKeyRef\",\"wrappedKey\"],\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}}}},\"cryptoReplaceFfxFpeConfig\":{\"description\":\"Ffx-Fpe\",\"type\":\"object\",\"required\":[\"cryptoKey\"],\"properties\":{\"commonAlphabet\":{\"description\":\"Common alphabets. Possible values: FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED, NUMERIC, HEXADECIMAL, UPPER_CASE_ALPHA_NUMERIC, ALPHA_NUMERIC\",\"type\":\"string\"},\"context\":{\"description\":\"The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"Required. The key used by the encryption algorithm.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"required\":[\"cryptoKeyRef\",\"wrappedKey\"],\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"customAlphabet\":{\"description\":\"This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: ``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^\\u0026*()_-+={[}]|:;\\\"'\\u003c,\\u003e.?/``\",\"type\":\"string\"},\"radix\":{\"description\":\"The native way to select the alphabet. Must be in the range [2, 95].\",\"type\":\"integer\",\"format\":\"int64\"},\"surrogateInfoType\":{\"description\":\"The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}}},\"dateShiftConfig\":{\"description\":\"Date Shift\",\"type\":\"object\",\"required\":[\"lowerBoundDays\",\"upperBoundDays\"],\"properties\":{\"context\":{\"description\":\"Points to the field that contains the context, for example, an entity id. If set, must also set cryptoKey. If set, shift will be consistent for the given context.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"required\":[\"cryptoKeyRef\",\"wrappedKey\"],\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"lowerBoundDays\":{\"description\":\"Required. For example, -5 means shift date to at most 5 days back in the past.\",\"type\":\"integer\",\"format\":\"int64\"},\"upperBoundDays\":{\"description\":\"Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"fixedSizeBucketingConfig\":{\"description\":\"Fixed size bucketing\",\"type\":\"object\",\"required\":[\"bucketSize\",\"lowerBound\",\"upperBound\"],\"properties\":{\"bucketSize\":{\"description\":\"Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.\",\"type\":\"number\",\"format\":\"double\"},\"lowerBound\":{\"description\":\"Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value \\\"-10\\\".\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}},\"upperBound\":{\"description\":\"Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value \\\"89+\\\".\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}}}},\"redactConfig\":{\"description\":\"Redact\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"replaceConfig\":{\"description\":\"Replace with a specified value.\",\"type\":\"object\",\"properties\":{\"newValue\":{\"description\":\"Value to replace it with.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}}}},\"replaceWithInfoTypeConfig\":{\"description\":\"Replace with infotype\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"timePartConfig\":{\"description\":\"Time extraction\",\"type\":\"object\",\"properties\":{\"partToExtract\":{\"description\":\"The part of the time to keep. Possible values: TIME_PART_UNSPECIFIED, YEAR, MONTH, DAY_OF_MONTH, DAY_OF_WEEK, WEEK_OF_YEAR, HOUR_OF_DAY\",\"type\":\"string\"}}}}}}}}}},\"primitiveTransformation\":{\"description\":\"Apply the transformation to the entire field.\",\"type\":\"object\",\"properties\":{\"bucketingConfig\":{\"description\":\"Bucketing\",\"type\":\"object\",\"properties\":{\"buckets\":{\"description\":\"Set of buckets. Ranges must be non-overlapping.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"replacementValue\"],\"properties\":{\"max\":{\"description\":\"Upper bound of the range, exclusive; type must match min.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}},\"min\":{\"description\":\"Lower bound of the range, inclusive. Type should be the same as max if used.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}},\"replacementValue\":{\"description\":\"Required. Replacement value for this bucket.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}}}}}}},\"characterMaskConfig\":{\"description\":\"Mask\",\"type\":\"object\",\"properties\":{\"charactersToIgnore\":{\"description\":\"When masking a string, items in this list will be skipped when replacing characters. For example, if the input string is `555-555-5555` and you instruct Cloud DLP to skip `-` and mask 5 characters with `*`, Cloud DLP returns `***-**5-5555`.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"charactersToSkip\":{\"description\":\"Characters to not transform when masking.\",\"type\":\"string\"},\"commonCharactersToIgnore\":{\"description\":\"Common characters to not transform when masking. Useful to avoid removing punctuation. Possible values: COMMON_CHARS_TO_IGNORE_UNSPECIFIED, NUMERIC, ALPHA_UPPER_CASE, ALPHA_LOWER_CASE, PUNCTUATION, WHITESPACE\",\"type\":\"string\"}}}},\"maskingCharacter\":{\"description\":\"Character to use to mask the sensitive values—for example, `*` for an alphabetic string such as a name, or `0` for a numeric string such as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to `*` for strings, and `0` for digits.\",\"type\":\"string\"},\"numberToMask\":{\"description\":\"Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.\",\"type\":\"integer\",\"format\":\"int64\"},\"reverseOrder\":{\"description\":\"Mask characters in reverse order. For example, if `masking_character` is `0`, `number_to_mask` is `14`, and `reverse_order` is `false`, then the input string `1234-5678-9012-3456` is masked as `00000000000000-3456`. If `masking_character` is `*`, `number_to_mask` is `3`, and `reverse_order` is `true`, then the string `12345` is masked as `12***`.\",\"type\":\"boolean\"}}},\"cryptoDeterministicConfig\":{\"description\":\"Deterministic Crypto\",\"type\":\"object\",\"properties\":{\"context\":{\"description\":\"A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"required\":[\"cryptoKeyRef\",\"wrappedKey\"],\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"surrogateInfoType\":{\"description\":\"The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate} For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text. Note: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text. In order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either - reverse a surrogate that does not correspond to an actual identifier - be unable to parse the surrogate and result in an error Therefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}}},\"cryptoHashConfig\":{\"description\":\"Crypto\",\"type\":\"object\",\"properties\":{\"cryptoKey\":{\"description\":\"The key used by the hash function.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"required\":[\"cryptoKeyRef\",\"wrappedKey\"],\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}}}},\"cryptoReplaceFfxFpeConfig\":{\"description\":\"Ffx-Fpe\",\"type\":\"object\",\"required\":[\"cryptoKey\"],\"properties\":{\"commonAlphabet\":{\"description\":\"Common alphabets. Possible values: FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED, NUMERIC, HEXADECIMAL, UPPER_CASE_ALPHA_NUMERIC, ALPHA_NUMERIC\",\"type\":\"string\"},\"context\":{\"description\":\"The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"Required. The key used by the encryption algorithm.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"required\":[\"cryptoKeyRef\",\"wrappedKey\"],\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"customAlphabet\":{\"description\":\"This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range [2, 95]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is: ``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^\\u0026*()_-+={[}]|:;\\\"'\\u003c,\\u003e.?/``\",\"type\":\"string\"},\"radix\":{\"description\":\"The native way to select the alphabet. Must be in the range [2, 95].\",\"type\":\"integer\",\"format\":\"int64\"},\"surrogateInfoType\":{\"description\":\"The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info_type_name(surrogate_character_count):surrogate For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY_TOKEN_INFO_TYPE(3):abc' This annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text. In order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY_TOKEN_TYPE\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\",\"type\":\"string\"}}}}},\"dateShiftConfig\":{\"description\":\"Date Shift\",\"type\":\"object\",\"required\":[\"lowerBoundDays\",\"upperBoundDays\"],\"properties\":{\"context\":{\"description\":\"Points to the field that contains the context, for example, an entity id. If set, must also set cryptoKey. If set, shift will be consistent for the given context.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"cryptoKey\":{\"description\":\"Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and crypto_key. If set, must also set context. Can only be applied to table items.\",\"type\":\"object\",\"properties\":{\"kmsWrapped\":{\"description\":\"Key wrapped using Cloud KMS\",\"type\":\"object\",\"required\":[\"cryptoKeyRef\",\"wrappedKey\"],\"properties\":{\"cryptoKeyRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Required. The resource name of the KMS CryptoKey to use for unwrapping.\\n\\nAllowed value: The Google Cloud resource name of a `KMSCryptoKey` resource (format: `{{selfLink}}`).\",\"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\"}}},\"wrappedKey\":{\"description\":\"Required. The wrapped data crypto key.\",\"type\":\"string\"}}},\"transient\":{\"description\":\"Transient crypto key\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Required. Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\",\"type\":\"string\"}}},\"unwrapped\":{\"description\":\"Unwrapped crypto key\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"Required. A 128/192/256 bit key.\",\"type\":\"string\"}}}}},\"lowerBoundDays\":{\"description\":\"Required. For example, -5 means shift date to at most 5 days back in the past.\",\"type\":\"integer\",\"format\":\"int64\"},\"upperBoundDays\":{\"description\":\"Required. Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction. For example, 3 means shift date to at most 3 days into the future.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"fixedSizeBucketingConfig\":{\"description\":\"Fixed size bucketing\",\"type\":\"object\",\"required\":[\"bucketSize\",\"lowerBound\",\"upperBound\"],\"properties\":{\"bucketSize\":{\"description\":\"Required. Size of each bucket (except for minimum and maximum buckets). So if `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works.\",\"type\":\"number\",\"format\":\"double\"},\"lowerBound\":{\"description\":\"Required. Lower bound value of buckets. All values less than `lower_bound` are grouped together into a single bucket; for example if `lower_bound` = 10, then all values less than 10 are replaced with the value \\\"-10\\\".\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}},\"upperBound\":{\"description\":\"Required. Upper bound value of buckets. All values greater than upper_bound are grouped together into a single bucket; for example if `upper_bound` = 89, then all values greater than 89 are replaced with the value \\\"89+\\\".\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}}}},\"redactConfig\":{\"description\":\"Redact\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"replaceConfig\":{\"description\":\"Replace with a specified value.\",\"type\":\"object\",\"properties\":{\"newValue\":{\"description\":\"Value to replace it with.\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}}}},\"replaceWithInfoTypeConfig\":{\"description\":\"Replace with infotype\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"timePartConfig\":{\"description\":\"Time extraction\",\"type\":\"object\",\"properties\":{\"partToExtract\":{\"description\":\"The part of the time to keep. Possible values: TIME_PART_UNSPECIFIED, YEAR, MONTH, DAY_OF_MONTH, DAY_OF_WEEK, WEEK_OF_YEAR, HOUR_OF_DAY\",\"type\":\"string\"}}}}}}}},\"recordSuppressions\":{\"description\":\"Configuration defining which records get suppressed entirely. Records that match any suppression rule are omitted from the output.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"condition\":{\"description\":\"A condition that when it evaluates to true will result in the record being evaluated to be suppressed from the transformed content.\",\"type\":\"object\",\"properties\":{\"expressions\":{\"description\":\"An expression.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions to apply to the expression.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"A collection of conditions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"field\",\"operator\"],\"properties\":{\"field\":{\"description\":\"Required. Field within the record this condition is evaluated against.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name describing the field.\",\"type\":\"string\"}}},\"operator\":{\"description\":\"Required. Operator used to compare the field or infoType to the value. Possible values: LOGICAL_OPERATOR_UNSPECIFIED, AND\",\"type\":\"string\"},\"value\":{\"description\":\"Value to compare against. [Mandatory, except for `EXISTS` tests.]\",\"type\":\"object\",\"properties\":{\"booleanValue\":{\"description\":\"boolean\",\"type\":\"boolean\"},\"dateValue\":{\"description\":\"date\",\"type\":\"object\",\"properties\":{\"day\":{\"description\":\"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\",\"type\":\"integer\",\"format\":\"int64\"},\"month\":{\"description\":\"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\",\"type\":\"integer\",\"format\":\"int64\"},\"year\":{\"description\":\"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"dayOfWeekValue\":{\"description\":\"day of week Possible values: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY\",\"type\":\"string\"},\"floatValue\":{\"description\":\"float\",\"type\":\"number\",\"format\":\"double\"},\"integerValue\":{\"description\":\"integer\",\"type\":\"integer\",\"format\":\"int64\"},\"stringValue\":{\"description\":\"string\",\"type\":\"string\"},\"timeValue\":{\"description\":\"time of day\",\"type\":\"object\",\"properties\":{\"hours\":{\"description\":\"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \\\"24:00:00\\\" for scenarios like business closing time.\",\"type\":\"integer\",\"format\":\"int64\"},\"minutes\":{\"description\":\"Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\",\"format\":\"int64\"},\"nanos\":{\"description\":\"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\",\"format\":\"int64\"},\"seconds\":{\"description\":\"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"timestampValue\":{\"description\":\"timestamp\",\"type\":\"string\",\"format\":\"date-time\"}}}}}}}},\"logicalOperator\":{\"description\":\"The operator to apply to the result of conditions. Default and currently only supported value is `AND`. Possible values: LOGICAL_OPERATOR_UNSPECIFIED, AND\",\"type\":\"string\"}}}}}}}}}},\"transformationErrorHandling\":{\"description\":\"Mode for handling transformation errors. If left unspecified, the default mode is `TransformationErrorHandling.ThrowError`.\",\"type\":\"object\",\"properties\":{\"leaveUntransformed\":{\"description\":\"Ignore errors\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"throwError\":{\"description\":\"Throw an error\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true}}}}},\"description\":{\"description\":\"Short description (max 256 chars).\",\"type\":\"string\"},\"displayName\":{\"description\":\"Display name (max 256 chars).\",\"type\":\"string\"},\"location\":{\"description\":\"Immutable. The location of the resource\",\"type\":\"string\"},\"organizationRef\":{\"description\":\"Immutable. The Organization that this resource belongs to. Only one of [organizationRef, projectRef] may be specified.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The Google Cloud resource name of a Google Cloud Organization (format: `organizations/{{name}}`).\",\"type\":\"string\"},\"name\":{\"description\":\"[WARNING] Organization not yet supported in Config Connector, use 'external' field to reference existing resources.\\nName 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\"}}},\"projectRef\":{\"description\":\"Immutable. The Project that this resource belongs to. Only one of [organizationRef, projectRef] may be specified.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The service-generated name of the resource. Used for acquisition only. Leave unset to create a new resource.\",\"type\":\"string\"}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"createTime\":{\"description\":\"Output only. The creation timestamp of an inspectTemplate.\",\"type\":\"string\",\"format\":\"date-time\"},\"locationId\":{\"description\":\"Output only. The geographic location where this resource is stored.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"updateTime\":{\"description\":\"Output only. The last update timestamp of an inspectTemplate.\",\"type\":\"string\",\"format\":\"date-time\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"dlp.cnrm.cloud.google.com\",\"kind\":\"DLPDeidentifyTemplate\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplateList\":{\"description\":\"DLPDeidentifyTemplateList is a list of DLPDeidentifyTemplate\",\"type\":\"object\",\"required\":[\"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 dlpdeidentifytemplates. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/com.google.cloud.cnrm.dlp.v1beta1.DLPDeidentifyTemplate\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"dlp.cnrm.cloud.google.com\",\"kind\":\"DLPDeidentifyTemplateList\",\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"}]},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}]}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"}]},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}}}}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv3/monitoring_v1beta1_monitoringalertpolicy.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes CRD Swagger\",\"version\":\"v0.1.0\"},\"components\":{\"schemas\":{\"com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\":{\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"type\":\"object\",\"required\":[\"combiner\",\"conditions\",\"displayName\"],\"properties\":{\"alertStrategy\":{\"description\":\"Control over how this alert policy's notification channels are notified.\",\"type\":\"object\",\"properties\":{\"autoClose\":{\"description\":\"If an alert policy that was active has no data for this long, any open incidents will close.\",\"type\":\"string\"},\"notificationRateLimit\":{\"description\":\"Required for alert policies with a LogMatch condition.\\nThis limit is not implemented for alert policies that are not log-based.\",\"type\":\"object\",\"properties\":{\"period\":{\"description\":\"Not more than one notification per period.\",\"type\":\"string\"}}}}},\"combiner\":{\"description\":\"How to combine the results of multiple conditions to\\ndetermine if an incident should be opened. Possible values: [\\\"AND\\\", \\\"OR\\\", \\\"AND_WITH_MATCHING_RESOURCE\\\"].\",\"type\":\"string\"},\"conditions\":{\"description\":\"A list of conditions for the policy. The conditions are combined by\\nAND or OR according to the combiner field. If the combined conditions\\nevaluate to true, then an incident is created. A policy can have from\\none to six conditions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"displayName\"],\"properties\":{\"conditionAbsent\":{\"description\":\"A condition that checks that a time series\\ncontinues to receive new data points.\",\"type\":\"object\",\"required\":[\"duration\"],\"properties\":{\"aggregations\":{\"description\":\"Specifies the alignment of data points in\\nindividual time series as well as how to\\ncombine the retrieved time series together\\n(such as when aggregating multiple streams\\non each resource to a single stream for each\\nresource or when aggregating streams across\\nall members of a group of resources).\\nMultiple aggregations are applied in the\\norder specified.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The alignment period for per-time\\nseries alignment. If present,\\nalignmentPeriod must be at least\\n60 seconds. After per-time series\\nalignment, each time series will\\ncontain data points only on the\\nperiod boundaries. If\\nperSeriesAligner is not specified\\nor equals ALIGN_NONE, then this\\nfield is ignored. If\\nperSeriesAligner is specified and\\ndoes not equal ALIGN_NONE, then\\nthis field must be defined;\\notherwise an error is returned.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The approach to be used to combine\\ntime series. Not all reducer\\nfunctions may be applied to all\\ntime series, depending on the\\nmetric type and the value type of\\nthe original time series.\\nReduction may change the metric\\ntype of value type of the time\\nseries.Time series data must be\\naligned in order to perform cross-\\ntime series reduction. If\\ncrossSeriesReducer is specified,\\nthen perSeriesAligner must be\\nspecified and not equal ALIGN_NONE\\nand alignmentPeriod must be\\nspecified; otherwise, an error is\\nreturned. Possible values: [\\\"REDUCE_NONE\\\", \\\"REDUCE_MEAN\\\", \\\"REDUCE_MIN\\\", \\\"REDUCE_MAX\\\", \\\"REDUCE_SUM\\\", \\\"REDUCE_STDDEV\\\", \\\"REDUCE_COUNT\\\", \\\"REDUCE_COUNT_TRUE\\\", \\\"REDUCE_COUNT_FALSE\\\", \\\"REDUCE_FRACTION_TRUE\\\", \\\"REDUCE_PERCENTILE_99\\\", \\\"REDUCE_PERCENTILE_95\\\", \\\"REDUCE_PERCENTILE_50\\\", \\\"REDUCE_PERCENTILE_05\\\"].\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when\\ncrossSeriesReducer is specified.\\nThe groupByFields determine how\\nthe time series are partitioned\\ninto subsets prior to applying the\\naggregation function. Each subset\\ncontains time series that have the\\nsame value for each of the\\ngrouping fields. Each individual\\ntime series is a member of exactly\\none subset. The crossSeriesReducer\\nis applied to each subset of time\\nseries. It is not possible to\\nreduce across different resource\\ntypes, so this field implicitly\\ncontains resource.type. Fields not\\nspecified in groupByFields are\\naggregated away. If groupByFields\\nis not specified and all the time\\nseries have the same resource\\ntype, then the time series are\\naggregated into a single output\\ntime series. If crossSeriesReducer\\nis not defined, this field is\\nignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"The approach to be used to align\\nindividual time series. Not all\\nalignment functions may be applied\\nto all time series, depending on\\nthe metric type and value type of\\nthe original time series.\\nAlignment may change the metric\\ntype or the value type of the time\\nseries.Time series data must be\\naligned in order to perform cross-\\ntime series reduction. If\\ncrossSeriesReducer is specified,\\nthen perSeriesAligner must be\\nspecified and not equal ALIGN_NONE\\nand alignmentPeriod must be\\nspecified; otherwise, an error is\\nreturned. Possible values: [\\\"ALIGN_NONE\\\", \\\"ALIGN_DELTA\\\", \\\"ALIGN_RATE\\\", \\\"ALIGN_INTERPOLATE\\\", \\\"ALIGN_NEXT_OLDER\\\", \\\"ALIGN_MIN\\\", \\\"ALIGN_MAX\\\", \\\"ALIGN_MEAN\\\", \\\"ALIGN_COUNT\\\", \\\"ALIGN_SUM\\\", \\\"ALIGN_STDDEV\\\", \\\"ALIGN_COUNT_TRUE\\\", \\\"ALIGN_COUNT_FALSE\\\", \\\"ALIGN_FRACTION_TRUE\\\", \\\"ALIGN_PERCENTILE_99\\\", \\\"ALIGN_PERCENTILE_95\\\", \\\"ALIGN_PERCENTILE_50\\\", \\\"ALIGN_PERCENTILE_05\\\", \\\"ALIGN_PERCENT_CHANGE\\\"].\",\"type\":\"string\"}}}},\"duration\":{\"description\":\"The amount of time that a time series must\\nfail to report new data to be considered\\nfailing. Currently, only values that are a\\nmultiple of a minute--e.g. 60s, 120s, or 300s\\n--are supported.\",\"type\":\"string\"},\"filter\":{\"description\":\"A filter that identifies which time series\\nshould be compared with the threshold.The\\nfilter is similar to the one that is\\nspecified in the\\nMetricService.ListTimeSeries request (that\\ncall is useful to verify the time series\\nthat will be retrieved / processed) and must\\nspecify the metric type and optionally may\\ncontain restrictions on resource type,\\nresource labels, and metric labels. This\\nfield may not exceed 2048 Unicode characters\\nin length.\",\"type\":\"string\"},\"trigger\":{\"description\":\"The number/percent of time series for which\\nthe comparison must hold in order for the\\ncondition to trigger. If unspecified, then\\nthe condition will trigger if the comparison\\nis true for any of the time series that have\\nbeen identified by filter and aggregations.\",\"type\":\"object\",\"properties\":{\"count\":{\"description\":\"The absolute number of time series\\nthat must fail the predicate for the\\ncondition to be triggered.\",\"type\":\"integer\"},\"percent\":{\"description\":\"The percentage of time series that\\nmust fail the predicate for the\\ncondition to be triggered.\",\"type\":\"number\"}}}}},\"conditionMatchedLog\":{\"description\":\"A condition that checks for log messages matching given constraints.\\nIf set, no other conditions can be present.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"filter\":{\"description\":\"A logs-based filter.\",\"type\":\"string\"},\"labelExtractors\":{\"description\":\"A map from a label key to an extractor expression, which is used to\\nextract the value for this label key. Each entry in this map is\\na specification for how data should be extracted from log entries that\\nmatch filter. Each combination of extracted values is treated as\\na separate rule for the purposes of triggering notifications.\\nLabel keys and corresponding values can be used in notifications\\ngenerated by this condition.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"conditionMonitoringQueryLanguage\":{\"description\":\"A Monitoring Query Language query that outputs a boolean stream.\",\"type\":\"object\",\"required\":[\"duration\",\"query\"],\"properties\":{\"duration\":{\"description\":\"The amount of time that a time series must\\nviolate the threshold to be considered\\nfailing. Currently, only values that are a\\nmultiple of a minute--e.g., 0, 60, 120, or\\n300 seconds--are supported. If an invalid\\nvalue is given, an error will be returned.\\nWhen choosing a duration, it is useful to\\nkeep in mind the frequency of the underlying\\ntime series data (which may also be affected\\nby any alignments specified in the\\naggregations field); a good duration is long\\nenough so that a single outlier does not\\ngenerate spurious alerts, but short enough\\nthat unhealthy states are detected and\\nalerted on quickly.\",\"type\":\"string\"},\"evaluationMissingData\":{\"description\":\"A condition control that determines how\\nmetric-threshold conditions are evaluated when\\ndata stops arriving. Possible values: [\\\"EVALUATION_MISSING_DATA_INACTIVE\\\", \\\"EVALUATION_MISSING_DATA_ACTIVE\\\", \\\"EVALUATION_MISSING_DATA_NO_OP\\\"].\",\"type\":\"string\"},\"query\":{\"description\":\"Monitoring Query Language query that outputs a boolean stream.\",\"type\":\"string\"},\"trigger\":{\"description\":\"The number/percent of time series for which\\nthe comparison must hold in order for the\\ncondition to trigger. If unspecified, then\\nthe condition will trigger if the comparison\\nis true for any of the time series that have\\nbeen identified by filter and aggregations,\\nor by the ratio, if denominator_filter and\\ndenominator_aggregations are specified.\",\"type\":\"object\",\"properties\":{\"count\":{\"description\":\"The absolute number of time series\\nthat must fail the predicate for the\\ncondition to be triggered.\",\"type\":\"integer\"},\"percent\":{\"description\":\"The percentage of time series that\\nmust fail the predicate for the\\ncondition to be triggered.\",\"type\":\"number\"}}}}},\"conditionThreshold\":{\"description\":\"A condition that compares a time series against a\\nthreshold.\",\"type\":\"object\",\"required\":[\"comparison\",\"duration\"],\"properties\":{\"aggregations\":{\"description\":\"Specifies the alignment of data points in\\nindividual time series as well as how to\\ncombine the retrieved time series together\\n(such as when aggregating multiple streams\\non each resource to a single stream for each\\nresource or when aggregating streams across\\nall members of a group of resources).\\nMultiple aggregations are applied in the\\norder specified.This field is similar to the\\none in the MetricService.ListTimeSeries\\nrequest. It is advisable to use the\\nListTimeSeries method when debugging this\\nfield.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The alignment period for per-time\\nseries alignment. If present,\\nalignmentPeriod must be at least\\n60 seconds. After per-time series\\nalignment, each time series will\\ncontain data points only on the\\nperiod boundaries. If\\nperSeriesAligner is not specified\\nor equals ALIGN_NONE, then this\\nfield is ignored. If\\nperSeriesAligner is specified and\\ndoes not equal ALIGN_NONE, then\\nthis field must be defined;\\notherwise an error is returned.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The approach to be used to combine\\ntime series. Not all reducer\\nfunctions may be applied to all\\ntime series, depending on the\\nmetric type and the value type of\\nthe original time series.\\nReduction may change the metric\\ntype of value type of the time\\nseries.Time series data must be\\naligned in order to perform cross-\\ntime series reduction. If\\ncrossSeriesReducer is specified,\\nthen perSeriesAligner must be\\nspecified and not equal ALIGN_NONE\\nand alignmentPeriod must be\\nspecified; otherwise, an error is\\nreturned. Possible values: [\\\"REDUCE_NONE\\\", \\\"REDUCE_MEAN\\\", \\\"REDUCE_MIN\\\", \\\"REDUCE_MAX\\\", \\\"REDUCE_SUM\\\", \\\"REDUCE_STDDEV\\\", \\\"REDUCE_COUNT\\\", \\\"REDUCE_COUNT_TRUE\\\", \\\"REDUCE_COUNT_FALSE\\\", \\\"REDUCE_FRACTION_TRUE\\\", \\\"REDUCE_PERCENTILE_99\\\", \\\"REDUCE_PERCENTILE_95\\\", \\\"REDUCE_PERCENTILE_50\\\", \\\"REDUCE_PERCENTILE_05\\\"].\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when\\ncrossSeriesReducer is specified.\\nThe groupByFields determine how\\nthe time series are partitioned\\ninto subsets prior to applying the\\naggregation function. Each subset\\ncontains time series that have the\\nsame value for each of the\\ngrouping fields. Each individual\\ntime series is a member of exactly\\none subset. The crossSeriesReducer\\nis applied to each subset of time\\nseries. It is not possible to\\nreduce across different resource\\ntypes, so this field implicitly\\ncontains resource.type. Fields not\\nspecified in groupByFields are\\naggregated away. If groupByFields\\nis not specified and all the time\\nseries have the same resource\\ntype, then the time series are\\naggregated into a single output\\ntime series. If crossSeriesReducer\\nis not defined, this field is\\nignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"The approach to be used to align\\nindividual time series. Not all\\nalignment functions may be applied\\nto all time series, depending on\\nthe metric type and value type of\\nthe original time series.\\nAlignment may change the metric\\ntype or the value type of the time\\nseries.Time series data must be\\naligned in order to perform cross-\\ntime series reduction. If\\ncrossSeriesReducer is specified,\\nthen perSeriesAligner must be\\nspecified and not equal ALIGN_NONE\\nand alignmentPeriod must be\\nspecified; otherwise, an error is\\nreturned. Possible values: [\\\"ALIGN_NONE\\\", \\\"ALIGN_DELTA\\\", \\\"ALIGN_RATE\\\", \\\"ALIGN_INTERPOLATE\\\", \\\"ALIGN_NEXT_OLDER\\\", \\\"ALIGN_MIN\\\", \\\"ALIGN_MAX\\\", \\\"ALIGN_MEAN\\\", \\\"ALIGN_COUNT\\\", \\\"ALIGN_SUM\\\", \\\"ALIGN_STDDEV\\\", \\\"ALIGN_COUNT_TRUE\\\", \\\"ALIGN_COUNT_FALSE\\\", \\\"ALIGN_FRACTION_TRUE\\\", \\\"ALIGN_PERCENTILE_99\\\", \\\"ALIGN_PERCENTILE_95\\\", \\\"ALIGN_PERCENTILE_50\\\", \\\"ALIGN_PERCENTILE_05\\\", \\\"ALIGN_PERCENT_CHANGE\\\"].\",\"type\":\"string\"}}}},\"comparison\":{\"description\":\"The comparison to apply between the time\\nseries (indicated by filter and aggregation)\\nand the threshold (indicated by\\nthreshold_value). The comparison is applied\\non each time series, with the time series on\\nthe left-hand side and the threshold on the\\nright-hand side. Only COMPARISON_LT and\\nCOMPARISON_GT are supported currently. Possible values: [\\\"COMPARISON_GT\\\", \\\"COMPARISON_GE\\\", \\\"COMPARISON_LT\\\", \\\"COMPARISON_LE\\\", \\\"COMPARISON_EQ\\\", \\\"COMPARISON_NE\\\"].\",\"type\":\"string\"},\"denominatorAggregations\":{\"description\":\"Specifies the alignment of data points in\\nindividual time series selected by\\ndenominatorFilter as well as how to combine\\nthe retrieved time series together (such as\\nwhen aggregating multiple streams on each\\nresource to a single stream for each\\nresource or when aggregating streams across\\nall members of a group of resources).When\\ncomputing ratios, the aggregations and\\ndenominator_aggregations fields must use the\\nsame alignment period and produce time\\nseries that have the same periodicity and\\nlabels.This field is similar to the one in\\nthe MetricService.ListTimeSeries request. It\\nis advisable to use the ListTimeSeries\\nmethod when debugging this field.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The alignment period for per-time\\nseries alignment. If present,\\nalignmentPeriod must be at least\\n60 seconds. After per-time series\\nalignment, each time series will\\ncontain data points only on the\\nperiod boundaries. If\\nperSeriesAligner is not specified\\nor equals ALIGN_NONE, then this\\nfield is ignored. If\\nperSeriesAligner is specified and\\ndoes not equal ALIGN_NONE, then\\nthis field must be defined;\\notherwise an error is returned.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The approach to be used to combine\\ntime series. Not all reducer\\nfunctions may be applied to all\\ntime series, depending on the\\nmetric type and the value type of\\nthe original time series.\\nReduction may change the metric\\ntype of value type of the time\\nseries.Time series data must be\\naligned in order to perform cross-\\ntime series reduction. If\\ncrossSeriesReducer is specified,\\nthen perSeriesAligner must be\\nspecified and not equal ALIGN_NONE\\nand alignmentPeriod must be\\nspecified; otherwise, an error is\\nreturned. Possible values: [\\\"REDUCE_NONE\\\", \\\"REDUCE_MEAN\\\", \\\"REDUCE_MIN\\\", \\\"REDUCE_MAX\\\", \\\"REDUCE_SUM\\\", \\\"REDUCE_STDDEV\\\", \\\"REDUCE_COUNT\\\", \\\"REDUCE_COUNT_TRUE\\\", \\\"REDUCE_COUNT_FALSE\\\", \\\"REDUCE_FRACTION_TRUE\\\", \\\"REDUCE_PERCENTILE_99\\\", \\\"REDUCE_PERCENTILE_95\\\", \\\"REDUCE_PERCENTILE_50\\\", \\\"REDUCE_PERCENTILE_05\\\"].\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when\\ncrossSeriesReducer is specified.\\nThe groupByFields determine how\\nthe time series are partitioned\\ninto subsets prior to applying the\\naggregation function. Each subset\\ncontains time series that have the\\nsame value for each of the\\ngrouping fields. Each individual\\ntime series is a member of exactly\\none subset. The crossSeriesReducer\\nis applied to each subset of time\\nseries. It is not possible to\\nreduce across different resource\\ntypes, so this field implicitly\\ncontains resource.type. Fields not\\nspecified in groupByFields are\\naggregated away. If groupByFields\\nis not specified and all the time\\nseries have the same resource\\ntype, then the time series are\\naggregated into a single output\\ntime series. If crossSeriesReducer\\nis not defined, this field is\\nignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"The approach to be used to align\\nindividual time series. Not all\\nalignment functions may be applied\\nto all time series, depending on\\nthe metric type and value type of\\nthe original time series.\\nAlignment may change the metric\\ntype or the value type of the time\\nseries.Time series data must be\\naligned in order to perform cross-\\ntime series reduction. If\\ncrossSeriesReducer is specified,\\nthen perSeriesAligner must be\\nspecified and not equal ALIGN_NONE\\nand alignmentPeriod must be\\nspecified; otherwise, an error is\\nreturned. Possible values: [\\\"ALIGN_NONE\\\", \\\"ALIGN_DELTA\\\", \\\"ALIGN_RATE\\\", \\\"ALIGN_INTERPOLATE\\\", \\\"ALIGN_NEXT_OLDER\\\", \\\"ALIGN_MIN\\\", \\\"ALIGN_MAX\\\", \\\"ALIGN_MEAN\\\", \\\"ALIGN_COUNT\\\", \\\"ALIGN_SUM\\\", \\\"ALIGN_STDDEV\\\", \\\"ALIGN_COUNT_TRUE\\\", \\\"ALIGN_COUNT_FALSE\\\", \\\"ALIGN_FRACTION_TRUE\\\", \\\"ALIGN_PERCENTILE_99\\\", \\\"ALIGN_PERCENTILE_95\\\", \\\"ALIGN_PERCENTILE_50\\\", \\\"ALIGN_PERCENTILE_05\\\", \\\"ALIGN_PERCENT_CHANGE\\\"].\",\"type\":\"string\"}}}},\"denominatorFilter\":{\"description\":\"A filter that identifies a time series that\\nshould be used as the denominator of a ratio\\nthat will be compared with the threshold. If\\na denominator_filter is specified, the time\\nseries specified by the filter field will be\\nused as the numerator.The filter is similar\\nto the one that is specified in the\\nMetricService.ListTimeSeries request (that\\ncall is useful to verify the time series\\nthat will be retrieved / processed) and must\\nspecify the metric type and optionally may\\ncontain restrictions on resource type,\\nresource labels, and metric labels. This\\nfield may not exceed 2048 Unicode characters\\nin length.\",\"type\":\"string\"},\"duration\":{\"description\":\"The amount of time that a time series must\\nviolate the threshold to be considered\\nfailing. Currently, only values that are a\\nmultiple of a minute--e.g., 0, 60, 120, or\\n300 seconds--are supported. If an invalid\\nvalue is given, an error will be returned.\\nWhen choosing a duration, it is useful to\\nkeep in mind the frequency of the underlying\\ntime series data (which may also be affected\\nby any alignments specified in the\\naggregations field); a good duration is long\\nenough so that a single outlier does not\\ngenerate spurious alerts, but short enough\\nthat unhealthy states are detected and\\nalerted on quickly.\",\"type\":\"string\"},\"evaluationMissingData\":{\"description\":\"A condition control that determines how\\nmetric-threshold conditions are evaluated when\\ndata stops arriving. Possible values: [\\\"EVALUATION_MISSING_DATA_INACTIVE\\\", \\\"EVALUATION_MISSING_DATA_ACTIVE\\\", \\\"EVALUATION_MISSING_DATA_NO_OP\\\"].\",\"type\":\"string\"},\"filter\":{\"description\":\"A filter that identifies which time series\\nshould be compared with the threshold.The\\nfilter is similar to the one that is\\nspecified in the\\nMetricService.ListTimeSeries request (that\\ncall is useful to verify the time series\\nthat will be retrieved / processed) and must\\nspecify the metric type and optionally may\\ncontain restrictions on resource type,\\nresource labels, and metric labels. This\\nfield may not exceed 2048 Unicode characters\\nin length.\",\"type\":\"string\"},\"thresholdValue\":{\"description\":\"A value against which to compare the time\\nseries.\",\"type\":\"number\"},\"trigger\":{\"description\":\"The number/percent of time series for which\\nthe comparison must hold in order for the\\ncondition to trigger. If unspecified, then\\nthe condition will trigger if the comparison\\nis true for any of the time series that have\\nbeen identified by filter and aggregations,\\nor by the ratio, if denominator_filter and\\ndenominator_aggregations are specified.\",\"type\":\"object\",\"properties\":{\"count\":{\"description\":\"The absolute number of time series\\nthat must fail the predicate for the\\ncondition to be triggered.\",\"type\":\"integer\"},\"percent\":{\"description\":\"The percentage of time series that\\nmust fail the predicate for the\\ncondition to be triggered.\",\"type\":\"number\"}}}}},\"displayName\":{\"description\":\"A short name or phrase used to identify the\\ncondition in dashboards, notifications, and\\nincidents. To avoid confusion, don't use the same\\ndisplay name for multiple conditions in the same\\npolicy.\",\"type\":\"string\"},\"name\":{\"description\":\"The unique resource name for this condition.\\nIts syntax is:\\nprojects/[PROJECT_ID]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID]\\n[CONDITION_ID] is assigned by Stackdriver Monitoring when\\nthe condition is created as part of a new or updated alerting\\npolicy.\",\"type\":\"string\"}}}},\"displayName\":{\"description\":\"A short name or phrase used to identify the policy in\\ndashboards, notifications, and incidents. To avoid confusion, don't use\\nthe same display name for multiple policies in the same project. The\\nname is limited to 512 Unicode characters.\",\"type\":\"string\"},\"documentation\":{\"description\":\"Documentation that is included with notifications and incidents related\\nto this policy. Best practice is for the documentation to include information\\nto help responders understand, mitigate, escalate, and correct the underlying\\nproblems detected by the alerting policy. Notification channels that have\\nlimited capacity might not show this documentation.\",\"type\":\"object\",\"properties\":{\"content\":{\"description\":\"The text of the documentation, interpreted according to mimeType.\\nThe content may not exceed 8,192 Unicode characters and may not\\nexceed more than 10,240 bytes when encoded in UTF-8 format,\\nwhichever is smaller.\",\"type\":\"string\"},\"mimeType\":{\"description\":\"The format of the content field. Presently, only the value\\n\\\"text/markdown\\\" is supported.\",\"type\":\"string\"}}},\"enabled\":{\"description\":\"Whether or not the policy is enabled. The default is true.\",\"type\":\"boolean\"},\"notificationChannels\":{\"type\":\"array\",\"items\":{\"description\":\"Identifies the notification channels to which notifications should be sent when incidents are opened or closed or when new violations occur on an already opened incident.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The `name` field of a `MonitoringNotificationChannel` resource.\",\"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\"}}}},\"resourceID\":{\"description\":\"Immutable. Optional. The service-generated name of the resource. Used for acquisition only. Leave unset to create a new resource.\",\"type\":\"string\"}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"creationRecord\":{\"description\":\"A read-only record of the creation of the alerting policy.\\nIf provided in a call to create or update, this field will\\nbe ignored.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"mutateTime\":{\"description\":\"When the change occurred.\",\"type\":\"string\"},\"mutatedBy\":{\"description\":\"The email address of the user making the change.\",\"type\":\"string\"}}}},\"name\":{\"description\":\"The unique resource name for this policy.\\nIts syntax is: projects/[PROJECT_ID]/alertPolicies/[ALERT_POLICY_ID].\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"monitoring.cnrm.cloud.google.com\",\"kind\":\"MonitoringAlertPolicy\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicyList\":{\"description\":\"MonitoringAlertPolicyList is a list of MonitoringAlertPolicy\",\"type\":\"object\",\"required\":[\"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 monitoringalertpolicies. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringAlertPolicy\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"monitoring.cnrm.cloud.google.com\",\"kind\":\"MonitoringAlertPolicyList\",\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"}]},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}]}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"}]},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}}}}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv3/monitoring_v1beta1_monitoringdashboard.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes CRD Swagger\",\"version\":\"v0.1.0\"},\"components\":{\"schemas\":{\"com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\":{\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"type\":\"object\",\"required\":[\"displayName\",\"projectRef\"],\"properties\":{\"columnLayout\":{\"description\":\"The content is divided into equally spaced columns and the widgets are arranged vertically.\",\"type\":\"object\",\"properties\":{\"columns\":{\"description\":\"The columns of content to display.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"weight\":{\"description\":\"The relative weight of this column. The column weight is used to adjust the width of columns on the screen (relative to peers). Greater the weight, greater the width of the column on the screen. If omitted, a value of 1 is used while rendering.\",\"type\":\"integer\",\"format\":\"int64\"},\"widgets\":{\"description\":\"The display widgets arranged vertically in this column.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blank\":{\"description\":\"A blank space.\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"logsPanel\":{\"type\":\"object\",\"properties\":{\"filter\":{\"description\":\"A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). Only log entries that match the filter are returned. An empty filter matches all log entries.\",\"type\":\"string\"},\"resourceNames\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}}}}},\"scorecard\":{\"description\":\"A scorecard summarizing time series data.\",\"type\":\"object\",\"required\":[\"timeSeriesQuery\"],\"properties\":{\"gaugeView\":{\"description\":\"Will cause the scorecard to show a gauge chart.\",\"type\":\"object\",\"properties\":{\"lowerBound\":{\"description\":\"The lower bound for this gauge chart. The value of the chart should always be greater than or equal to this.\",\"type\":\"number\",\"format\":\"double\"},\"upperBound\":{\"description\":\"The upper bound for this gauge chart. The value of the chart should always be less than or equal to this.\",\"type\":\"number\",\"format\":\"double\"}}},\"sparkChartView\":{\"description\":\"Will cause the scorecard to show a spark chart.\",\"type\":\"object\",\"required\":[\"sparkChartType\"],\"properties\":{\"minAlignmentPeriod\":{\"description\":\"The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.\",\"type\":\"string\"},\"sparkChartType\":{\"description\":\"Required. The type of sparkchart to show in this chartView. Possible values: SPARK_CHART_TYPE_UNSPECIFIED, SPARK_LINE, SPARK_BAR\",\"type\":\"string\"}}},\"thresholds\":{\"description\":\"The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.)  As an example, consider a scorecard with the following four thresholds: {   value: 90,   category: 'DANGER',   trigger: 'ABOVE', },: {   value: 70,   category: 'WARNING',   trigger: 'ABOVE', }, {   value: 10,   category: 'DANGER',   trigger: 'BELOW', }, {   value: 20,   category: 'WARNING',   trigger: 'BELOW', }  Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\",\"format\":\"double\"}}}},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}},\"text\":{\"description\":\"A raw string or markdown displaying textual content.\",\"type\":\"object\",\"properties\":{\"content\":{\"description\":\"The text content to be displayed.\",\"type\":\"string\"},\"format\":{\"description\":\"How the text content is formatted. Possible values: FORMAT_UNSPECIFIED, MARKDOWN, RAW\",\"type\":\"string\"}}},\"title\":{\"description\":\"Optional. The title of the widget.\",\"type\":\"string\"},\"xyChart\":{\"description\":\"A chart of time series data.\",\"type\":\"object\",\"required\":[\"dataSets\"],\"properties\":{\"chartOptions\":{\"description\":\"Display options for the chart.\",\"type\":\"object\",\"properties\":{\"mode\":{\"description\":\"The chart mode. Possible values: MODE_UNSPECIFIED, COLOR, X_RAY, STATS\",\"type\":\"string\"}}},\"dataSets\":{\"description\":\"Required. The data displayed in this chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"timeSeriesQuery\"],\"properties\":{\"legendTemplate\":{\"description\":\"A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value. \",\"type\":\"string\"},\"minAlignmentPeriod\":{\"description\":\"Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.\",\"type\":\"string\"},\"plotType\":{\"description\":\"How this data should be plotted on the chart. Possible values: PLOT_TYPE_UNSPECIFIED, LINE, STACKED_AREA, STACKED_BAR, HEATMAP\",\"type\":\"string\"},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}}},\"thresholds\":{\"description\":\"Threshold lines drawn horizontally across the chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\",\"format\":\"double\"}}}},\"timeshiftDuration\":{\"description\":\"The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.\",\"type\":\"string\"},\"xAxis\":{\"description\":\"The properties applied to the X axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}},\"yAxis\":{\"description\":\"The properties applied to the Y axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}}}}}}}}}}}},\"displayName\":{\"description\":\"Required. The mutable, human-readable name.\",\"type\":\"string\"},\"gridLayout\":{\"description\":\"Content is arranged with a basic layout that re-flows a simple list of informational elements like widgets or tiles.\",\"type\":\"object\",\"properties\":{\"columns\":{\"description\":\"The number of columns into which the view's width is divided. If omitted or set to zero, a system default will be used while rendering.\",\"type\":\"integer\",\"format\":\"int64\"},\"widgets\":{\"description\":\"The informational elements that are arranged into the columns row-first.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blank\":{\"description\":\"A blank space.\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"logsPanel\":{\"type\":\"object\",\"properties\":{\"filter\":{\"description\":\"A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). Only log entries that match the filter are returned. An empty filter matches all log entries.\",\"type\":\"string\"},\"resourceNames\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}}}}},\"scorecard\":{\"description\":\"A scorecard summarizing time series data.\",\"type\":\"object\",\"required\":[\"timeSeriesQuery\"],\"properties\":{\"gaugeView\":{\"description\":\"Will cause the scorecard to show a gauge chart.\",\"type\":\"object\",\"properties\":{\"lowerBound\":{\"description\":\"The lower bound for this gauge chart. The value of the chart should always be greater than or equal to this.\",\"type\":\"number\",\"format\":\"double\"},\"upperBound\":{\"description\":\"The upper bound for this gauge chart. The value of the chart should always be less than or equal to this.\",\"type\":\"number\",\"format\":\"double\"}}},\"sparkChartView\":{\"description\":\"Will cause the scorecard to show a spark chart.\",\"type\":\"object\",\"required\":[\"sparkChartType\"],\"properties\":{\"minAlignmentPeriod\":{\"description\":\"The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.\",\"type\":\"string\"},\"sparkChartType\":{\"description\":\"Required. The type of sparkchart to show in this chartView. Possible values: SPARK_CHART_TYPE_UNSPECIFIED, SPARK_LINE, SPARK_BAR\",\"type\":\"string\"}}},\"thresholds\":{\"description\":\"The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.)  As an example, consider a scorecard with the following four thresholds: {   value: 90,   category: 'DANGER',   trigger: 'ABOVE', },: {   value: 70,   category: 'WARNING',   trigger: 'ABOVE', }, {   value: 10,   category: 'DANGER',   trigger: 'BELOW', }, {   value: 20,   category: 'WARNING',   trigger: 'BELOW', }  Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\",\"format\":\"double\"}}}},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}},\"text\":{\"description\":\"A raw string or markdown displaying textual content.\",\"type\":\"object\",\"properties\":{\"content\":{\"description\":\"The text content to be displayed.\",\"type\":\"string\"},\"format\":{\"description\":\"How the text content is formatted. Possible values: FORMAT_UNSPECIFIED, MARKDOWN, RAW\",\"type\":\"string\"}}},\"title\":{\"description\":\"Optional. The title of the widget.\",\"type\":\"string\"},\"xyChart\":{\"description\":\"A chart of time series data.\",\"type\":\"object\",\"required\":[\"dataSets\"],\"properties\":{\"chartOptions\":{\"description\":\"Display options for the chart.\",\"type\":\"object\",\"properties\":{\"mode\":{\"description\":\"The chart mode. Possible values: MODE_UNSPECIFIED, COLOR, X_RAY, STATS\",\"type\":\"string\"}}},\"dataSets\":{\"description\":\"Required. The data displayed in this chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"timeSeriesQuery\"],\"properties\":{\"legendTemplate\":{\"description\":\"A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value. \",\"type\":\"string\"},\"minAlignmentPeriod\":{\"description\":\"Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.\",\"type\":\"string\"},\"plotType\":{\"description\":\"How this data should be plotted on the chart. Possible values: PLOT_TYPE_UNSPECIFIED, LINE, STACKED_AREA, STACKED_BAR, HEATMAP\",\"type\":\"string\"},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}}},\"thresholds\":{\"description\":\"Threshold lines drawn horizontally across the chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\",\"format\":\"double\"}}}},\"timeshiftDuration\":{\"description\":\"The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.\",\"type\":\"string\"},\"xAxis\":{\"description\":\"The properties applied to the X axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}},\"yAxis\":{\"description\":\"The properties applied to the Y axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}}}}}}}}},\"mosaicLayout\":{\"description\":\"The content is arranged as a grid of tiles, with each content widget occupying one or more tiles.\",\"type\":\"object\",\"properties\":{\"columns\":{\"description\":\"The number of columns in the mosaic grid.\",\"type\":\"integer\",\"format\":\"int64\"},\"tiles\":{\"description\":\"The tiles to display.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"height\":{\"description\":\"The height of the tile, measured in grid squares.\",\"type\":\"integer\",\"format\":\"int64\"},\"widget\":{\"description\":\"The informational widget contained in the tile.\",\"type\":\"object\",\"properties\":{\"blank\":{\"description\":\"A blank space.\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"logsPanel\":{\"type\":\"object\",\"properties\":{\"filter\":{\"description\":\"A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). Only log entries that match the filter are returned. An empty filter matches all log entries.\",\"type\":\"string\"},\"resourceNames\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}}}}},\"scorecard\":{\"description\":\"A scorecard summarizing time series data.\",\"type\":\"object\",\"required\":[\"timeSeriesQuery\"],\"properties\":{\"gaugeView\":{\"description\":\"Will cause the scorecard to show a gauge chart.\",\"type\":\"object\",\"properties\":{\"lowerBound\":{\"description\":\"The lower bound for this gauge chart. The value of the chart should always be greater than or equal to this.\",\"type\":\"number\",\"format\":\"double\"},\"upperBound\":{\"description\":\"The upper bound for this gauge chart. The value of the chart should always be less than or equal to this.\",\"type\":\"number\",\"format\":\"double\"}}},\"sparkChartView\":{\"description\":\"Will cause the scorecard to show a spark chart.\",\"type\":\"object\",\"required\":[\"sparkChartType\"],\"properties\":{\"minAlignmentPeriod\":{\"description\":\"The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.\",\"type\":\"string\"},\"sparkChartType\":{\"description\":\"Required. The type of sparkchart to show in this chartView. Possible values: SPARK_CHART_TYPE_UNSPECIFIED, SPARK_LINE, SPARK_BAR\",\"type\":\"string\"}}},\"thresholds\":{\"description\":\"The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.)  As an example, consider a scorecard with the following four thresholds: {   value: 90,   category: 'DANGER',   trigger: 'ABOVE', },: {   value: 70,   category: 'WARNING',   trigger: 'ABOVE', }, {   value: 10,   category: 'DANGER',   trigger: 'BELOW', }, {   value: 20,   category: 'WARNING',   trigger: 'BELOW', }  Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\",\"format\":\"double\"}}}},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}},\"text\":{\"description\":\"A raw string or markdown displaying textual content.\",\"type\":\"object\",\"properties\":{\"content\":{\"description\":\"The text content to be displayed.\",\"type\":\"string\"},\"format\":{\"description\":\"How the text content is formatted. Possible values: FORMAT_UNSPECIFIED, MARKDOWN, RAW\",\"type\":\"string\"}}},\"title\":{\"description\":\"Optional. The title of the widget.\",\"type\":\"string\"},\"xyChart\":{\"description\":\"A chart of time series data.\",\"type\":\"object\",\"required\":[\"dataSets\"],\"properties\":{\"chartOptions\":{\"description\":\"Display options for the chart.\",\"type\":\"object\",\"properties\":{\"mode\":{\"description\":\"The chart mode. Possible values: MODE_UNSPECIFIED, COLOR, X_RAY, STATS\",\"type\":\"string\"}}},\"dataSets\":{\"description\":\"Required. The data displayed in this chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"timeSeriesQuery\"],\"properties\":{\"legendTemplate\":{\"description\":\"A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value. \",\"type\":\"string\"},\"minAlignmentPeriod\":{\"description\":\"Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.\",\"type\":\"string\"},\"plotType\":{\"description\":\"How this data should be plotted on the chart. Possible values: PLOT_TYPE_UNSPECIFIED, LINE, STACKED_AREA, STACKED_BAR, HEATMAP\",\"type\":\"string\"},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}}},\"thresholds\":{\"description\":\"Threshold lines drawn horizontally across the chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\",\"format\":\"double\"}}}},\"timeshiftDuration\":{\"description\":\"The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.\",\"type\":\"string\"},\"xAxis\":{\"description\":\"The properties applied to the X axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}},\"yAxis\":{\"description\":\"The properties applied to the Y axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}}}}}},\"width\":{\"description\":\"The width of the tile, measured in grid squares.\",\"type\":\"integer\",\"format\":\"int64\"},\"xPos\":{\"description\":\"The zero-indexed position of the tile in grid squares relative to the left edge of the grid.\",\"type\":\"integer\",\"format\":\"int64\"},\"yPos\":{\"description\":\"The zero-indexed position of the tile in grid squares relative to the top edge of the grid.\",\"type\":\"integer\",\"format\":\"int64\"}}}}}},\"projectRef\":{\"description\":\"Immutable. The Project that this resource belongs to.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"The project id of the resource.\\n\\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"},\"rowLayout\":{\"description\":\"The content is divided into equally spaced rows and the widgets are arranged horizontally.\",\"type\":\"object\",\"properties\":{\"rows\":{\"description\":\"The rows of content to display.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"weight\":{\"description\":\"The relative weight of this row. The row weight is used to adjust the height of rows on the screen (relative to peers). Greater the weight, greater the height of the row on the screen. If omitted, a value of 1 is used while rendering.\",\"type\":\"integer\",\"format\":\"int64\"},\"widgets\":{\"description\":\"The display widgets arranged horizontally in this row.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"blank\":{\"description\":\"A blank space.\",\"type\":\"object\",\"x-kubernetes-preserve-unknown-fields\":true},\"logsPanel\":{\"type\":\"object\",\"properties\":{\"filter\":{\"description\":\"A filter that chooses which log entries to return. See [Advanced Logs Queries](https://cloud.google.com/logging/docs/view/advanced-queries). Only log entries that match the filter are returned. An empty filter matches all log entries.\",\"type\":\"string\"},\"resourceNames\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}}}}},\"scorecard\":{\"description\":\"A scorecard summarizing time series data.\",\"type\":\"object\",\"required\":[\"timeSeriesQuery\"],\"properties\":{\"gaugeView\":{\"description\":\"Will cause the scorecard to show a gauge chart.\",\"type\":\"object\",\"properties\":{\"lowerBound\":{\"description\":\"The lower bound for this gauge chart. The value of the chart should always be greater than or equal to this.\",\"type\":\"number\",\"format\":\"double\"},\"upperBound\":{\"description\":\"The upper bound for this gauge chart. The value of the chart should always be less than or equal to this.\",\"type\":\"number\",\"format\":\"double\"}}},\"sparkChartView\":{\"description\":\"Will cause the scorecard to show a spark chart.\",\"type\":\"object\",\"required\":[\"sparkChartType\"],\"properties\":{\"minAlignmentPeriod\":{\"description\":\"The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.\",\"type\":\"string\"},\"sparkChartType\":{\"description\":\"Required. The type of sparkchart to show in this chartView. Possible values: SPARK_CHART_TYPE_UNSPECIFIED, SPARK_LINE, SPARK_BAR\",\"type\":\"string\"}}},\"thresholds\":{\"description\":\"The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.)  As an example, consider a scorecard with the following four thresholds: {   value: 90,   category: 'DANGER',   trigger: 'ABOVE', },: {   value: 70,   category: 'WARNING',   trigger: 'ABOVE', }, {   value: 10,   category: 'DANGER',   trigger: 'BELOW', }, {   value: 20,   category: 'WARNING',   trigger: 'BELOW', }  Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\",\"format\":\"double\"}}}},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}},\"text\":{\"description\":\"A raw string or markdown displaying textual content.\",\"type\":\"object\",\"properties\":{\"content\":{\"description\":\"The text content to be displayed.\",\"type\":\"string\"},\"format\":{\"description\":\"How the text content is formatted. Possible values: FORMAT_UNSPECIFIED, MARKDOWN, RAW\",\"type\":\"string\"}}},\"title\":{\"description\":\"Optional. The title of the widget.\",\"type\":\"string\"},\"xyChart\":{\"description\":\"A chart of time series data.\",\"type\":\"object\",\"required\":[\"dataSets\"],\"properties\":{\"chartOptions\":{\"description\":\"Display options for the chart.\",\"type\":\"object\",\"properties\":{\"mode\":{\"description\":\"The chart mode. Possible values: MODE_UNSPECIFIED, COLOR, X_RAY, STATS\",\"type\":\"string\"}}},\"dataSets\":{\"description\":\"Required. The data displayed in this chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"timeSeriesQuery\"],\"properties\":{\"legendTemplate\":{\"description\":\"A template string for naming `TimeSeries` in the resulting data set. This should be a string with interpolations of the form `${label_name}`, which will resolve to the label's value. \",\"type\":\"string\"},\"minAlignmentPeriod\":{\"description\":\"Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the `min_alignment_period` should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.\",\"type\":\"string\"},\"plotType\":{\"description\":\"How this data should be plotted on the chart. Possible values: PLOT_TYPE_UNSPECIFIED, LINE, STACKED_AREA, STACKED_BAR, HEATMAP\",\"type\":\"string\"},\"timeSeriesQuery\":{\"description\":\"Required. Fields for querying time series data from the Stackdriver metrics API.\",\"type\":\"object\",\"properties\":{\"timeSeriesFilter\":{\"description\":\"Filter parameters to fetch time series.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after `aggregation` is applied.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesFilterRatio\":{\"description\":\"Parameters to fetch a ratio between two time series filters.\",\"type\":\"object\",\"properties\":{\"denominator\":{\"description\":\"The denominator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"numerator\":{\"description\":\"The numerator of the ratio.\",\"type\":\"object\",\"required\":[\"filter\"],\"properties\":{\"aggregation\":{\"description\":\"By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}},\"filter\":{\"description\":\"Required. The [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.\",\"type\":\"string\"}}},\"pickTimeSeriesFilter\":{\"description\":\"Ranking based time series filter.\",\"type\":\"object\",\"properties\":{\"direction\":{\"description\":\"How to use the ranking to select time series that pass through the filter. Possible values: DIRECTION_UNSPECIFIED, TOP, BOTTOM\",\"type\":\"string\"},\"numTimeSeries\":{\"description\":\"How many time series to allow to pass through the filter.\",\"type\":\"integer\",\"format\":\"int64\"},\"rankingMethod\":{\"description\":\"`ranking_method` is applied to each time series independently to produce the value which will be used to compare the time series to other time series. Possible values: METHOD_UNSPECIFIED, METHOD_MEAN, METHOD_MAX, METHOD_MIN, METHOD_SUM, METHOD_LATEST\",\"type\":\"string\"}}},\"secondaryAggregation\":{\"description\":\"Apply a second aggregation after the ratio is computed.\",\"type\":\"object\",\"properties\":{\"alignmentPeriod\":{\"description\":\"The `alignment_period` specifies a time interval, in seconds, that is used to divide the data in all the [time series][google.monitoring.v3.TimeSeries] into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.  The value must be at least 60 seconds. If a per-series aligner other than `ALIGN_NONE` is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner `ALIGN_NONE` is specified, then this field is ignored.\",\"type\":\"string\"},\"crossSeriesReducer\":{\"description\":\"The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.  Not all reducer operations can be applied to all time series. The valid choices depend on the `metric_kind` and the `value_type` of the original time series. Reduction can yield a time series with a different `metric_kind` or `value_type` than the input time series.  Time series data must first be aligned (see `per_series_aligner`) in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified, and must not be `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an error is returned. Possible values: REDUCE_NONE, REDUCE_MEAN, REDUCE_MIN, REDUCE_MAX, REDUCE_SUM, REDUCE_STDDEV, REDUCE_COUNT, REDUCE_COUNT_TRUE, REDUCE_COUNT_FALSE, REDUCE_FRACTION_TRUE, REDUCE_PERCENTILE_99, REDUCE_PERCENTILE_95, REDUCE_PERCENTILE_50, REDUCE_PERCENTILE_05, REDUCE_FRACTION_LESS_THAN, REDUCE_MAKE_DISTRIBUTION\",\"type\":\"string\"},\"groupByFields\":{\"description\":\"The set of fields to preserve when `cross_series_reducer` is specified. The `group_by_fields` determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The `cross_series_reducer` is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains `resource.type`.  Fields not specified in `group_by_fields` are aggregated away.  If `group_by_fields` is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If `cross_series_reducer` is not defined, this field is ignored.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"perSeriesAligner\":{\"description\":\"An `Aligner` describes how to bring the data points in a single time series into temporal alignment. Except for `ALIGN_NONE`, all alignments cause all the data points in an `alignment_period` to be mathematically grouped together, resulting in a single data point for each `alignment_period` with end timestamp at the end of the period.  Not all alignment operations may be applied to all time series. The valid choices depend on the `metric_kind` and `value_type` of the original time series. Alignment can change the `metric_kind` or the `value_type` of the time series.  Time series data must be aligned in order to perform cross-time series reduction. If `cross_series_reducer` is specified, then `per_series_aligner` must be specified and not equal to `ALIGN_NONE` and `alignment_period` must be specified; otherwise, an error is returned.\",\"type\":\"string\"}}}}},\"timeSeriesQueryLanguage\":{\"description\":\"A query used to fetch time series.\",\"type\":\"string\"},\"unitOverride\":{\"description\":\"The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the [`unit`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in `MetricDescriptor`.\",\"type\":\"string\"}}}}}},\"thresholds\":{\"description\":\"Threshold lines drawn horizontally across the chart.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"color\":{\"description\":\"The state color for this threshold. Color is not allowed in a XyChart. Possible values: COLOR_UNSPECIFIED, GREY, BLUE, GREEN, YELLOW, ORANGE, RED\",\"type\":\"string\"},\"direction\":{\"description\":\"The direction for the current threshold. Direction is not allowed in a XyChart. Possible values: DIRECTION_UNSPECIFIED, ABOVE, BELOW\",\"type\":\"string\"},\"label\":{\"description\":\"A label for the threshold.\",\"type\":\"string\"},\"value\":{\"description\":\"The value of the threshold. The value should be defined in the native scale of the metric.\",\"type\":\"number\",\"format\":\"double\"}}}},\"timeshiftDuration\":{\"description\":\"The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.\",\"type\":\"string\"},\"xAxis\":{\"description\":\"The properties applied to the X axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}},\"yAxis\":{\"description\":\"The properties applied to the Y axis.\",\"type\":\"object\",\"properties\":{\"label\":{\"description\":\"The label of the axis.\",\"type\":\"string\"},\"scale\":{\"description\":\"The axis scale. By default, a linear scale is used. Possible values: SCALE_UNSPECIFIED, LINEAR, LOG10\",\"type\":\"string\"}}}}}}}}}}}}}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"etag\":{\"description\":\"\\\\`etag\\\\` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. An \\\\`etag\\\\` is returned in the response to \\\\`GetDashboard\\\\`, and users are expected to put that etag in the request to \\\\`UpdateDashboard\\\\` to ensure that their change will be applied to the same version of the Dashboard configuration. The field should not be passed during dashboard creation.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"monitoring.cnrm.cloud.google.com\",\"kind\":\"MonitoringDashboard\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboardList\":{\"description\":\"MonitoringDashboardList is a list of MonitoringDashboard\",\"type\":\"object\",\"required\":[\"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 monitoringdashboards. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/com.google.cloud.cnrm.monitoring.v1beta1.MonitoringDashboard\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"monitoring.cnrm.cloud.google.com\",\"kind\":\"MonitoringDashboardList\",\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"}]},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}]}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"}]},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}}}}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv3/privateca_v1beta1_privatecacertificate.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes CRD Swagger\",\"version\":\"v0.1.0\"},\"components\":{\"schemas\":{\"com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\":{\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"type\":\"object\",\"required\":[\"caPoolRef\",\"lifetime\",\"location\",\"projectRef\"],\"properties\":{\"caPoolRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"The ca_pool for the resource\\n\\nAllowed value: The Google Cloud resource name of a `PrivateCACAPool` resource (format: `projects/{{project}}/locations/{{location}}/caPools/{{name}}`).\",\"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\"}}},\"certificateAuthorityRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"The certificate authority for the resource\\n\\nAllowed value: The Google Cloud resource name of a `PrivateCACertificateAuthority` resource (format: `projects/{{project}}/locations/{{location}}/caPools/{{ca_pool}}/certificateAuthorities/{{name}}`).\",\"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\"}}},\"certificateTemplateRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Immutable. The resource name for a CertificateTemplate used to issue this certificate, in the format `projects/*/locations/*/certificateTemplates/*`. If this is specified, the caller must have the necessary permission to use this template. If this is omitted, no template will be used. This template must be in the same location as the Certificate.\\n\\nAllowed value: The `selfLink` field of a `PrivateCACertificateTemplate` resource.\",\"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\"}}},\"config\":{\"description\":\"Immutable. Immutable. A description of the certificate and key that does not require X.509 or ASN.1.\",\"type\":\"object\",\"required\":[\"subjectConfig\",\"x509Config\"],\"properties\":{\"publicKey\":{\"description\":\"Immutable. Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR.\",\"type\":\"object\",\"required\":[\"format\",\"key\"],\"properties\":{\"format\":{\"description\":\"Immutable. Required. The format of the public key. Possible values: KEY_FORMAT_UNSPECIFIED, PEM\",\"type\":\"string\"},\"key\":{\"description\":\"Immutable. Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.\",\"type\":\"string\"}}},\"subjectConfig\":{\"description\":\"Immutable. Required. Specifies some of the values in a certificate that are related to the subject.\",\"type\":\"object\",\"required\":[\"subject\"],\"properties\":{\"subject\":{\"description\":\"Immutable. Required. Contains distinguished name fields such as the common name, location and organization.\",\"type\":\"object\",\"properties\":{\"commonName\":{\"description\":\"Immutable. The \\\"common name\\\" of the subject.\",\"type\":\"string\"},\"countryCode\":{\"description\":\"Immutable. The country code of the subject.\",\"type\":\"string\"},\"locality\":{\"description\":\"Immutable. The locality or city of the subject.\",\"type\":\"string\"},\"organization\":{\"description\":\"Immutable. The organization of the subject.\",\"type\":\"string\"},\"organizationalUnit\":{\"description\":\"Immutable. The organizational_unit of the subject.\",\"type\":\"string\"},\"postalCode\":{\"description\":\"Immutable. The postal code of the subject.\",\"type\":\"string\"},\"province\":{\"description\":\"Immutable. The province, territory, or regional state of the subject.\",\"type\":\"string\"},\"streetAddress\":{\"description\":\"Immutable. The street address of the subject.\",\"type\":\"string\"}}},\"subjectAltName\":{\"description\":\"Immutable. Optional. The subject alternative name fields.\",\"type\":\"object\",\"properties\":{\"dnsNames\":{\"description\":\"Immutable. Contains only valid, fully-qualified host names.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"emailAddresses\":{\"description\":\"Immutable. Contains only valid RFC 2822 E-mail addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ipAddresses\":{\"description\":\"Immutable. Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"uris\":{\"description\":\"Immutable. Contains only valid RFC 3986 URIs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"x509Config\":{\"description\":\"Immutable. Required. Describes how some of the technical X.509 fields in a certificate should be populated.\",\"type\":\"object\",\"properties\":{\"additionalExtensions\":{\"description\":\"Immutable. Optional. Describes custom X.509 extensions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"objectId\",\"value\"],\"properties\":{\"critical\":{\"description\":\"Immutable. Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Immutable. Required. The OID for this X.509 extension.\",\"type\":\"object\",\"required\":[\"objectIdPath\"],\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}},\"value\":{\"description\":\"Immutable. Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"aiaOcspServers\":{\"description\":\"Immutable. Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \\\"Authority Information Access\\\" extension in the certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"caOptions\":{\"description\":\"Immutable. Optional. Describes options in this X509Parameters that are relevant in a CA certificate.\",\"type\":\"object\",\"properties\":{\"isCa\":{\"description\":\"Immutable. Optional. When true, the \\\"CA\\\" in Basic Constraints extension will be set to true.\",\"type\":\"boolean\"},\"maxIssuerPathLength\":{\"description\":\"Immutable. Optional. Refers to the \\\"path length constraint\\\" in Basic Constraints extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail.\",\"type\":\"integer\",\"format\":\"int64\"},\"nonCa\":{\"description\":\"Immutable. Optional. When true, the \\\"CA\\\" in Basic Constraints extension will be set to false. If both `is_ca` and `non_ca` are unset, the extension will be omitted from the CA certificate.\",\"type\":\"boolean\"},\"zeroMaxIssuerPathLength\":{\"description\":\"Immutable. Optional. When true, the \\\"path length constraint\\\" in Basic Constraints extension will be set to 0. if both max_issuer_path_length and zero_max_issuer_path_length are unset, the max path length will be omitted from the CA certificate.\",\"type\":\"boolean\"}}},\"keyUsage\":{\"description\":\"Immutable. Optional. Indicates the intended use for keys that correspond to a certificate.\",\"type\":\"object\",\"properties\":{\"baseKeyUsage\":{\"description\":\"Immutable. Describes high-level ways in which a key may be used.\",\"type\":\"object\",\"properties\":{\"certSign\":{\"description\":\"Immutable. The key may be used to sign certificates.\",\"type\":\"boolean\"},\"contentCommitment\":{\"description\":\"Immutable. The key may be used for cryptographic commitments. Note that this may also be referred to as \\\"non-repudiation\\\".\",\"type\":\"boolean\"},\"crlSign\":{\"description\":\"Immutable. The key may be used sign certificate revocation lists.\",\"type\":\"boolean\"},\"dataEncipherment\":{\"description\":\"Immutable. The key may be used to encipher data.\",\"type\":\"boolean\"},\"decipherOnly\":{\"description\":\"Immutable. The key may be used to decipher only.\",\"type\":\"boolean\"},\"digitalSignature\":{\"description\":\"Immutable. The key may be used for digital signatures.\",\"type\":\"boolean\"},\"encipherOnly\":{\"description\":\"Immutable. The key may be used to encipher only.\",\"type\":\"boolean\"},\"keyAgreement\":{\"description\":\"Immutable. The key may be used in a key agreement protocol.\",\"type\":\"boolean\"},\"keyEncipherment\":{\"description\":\"Immutable. The key may be used to encipher other keys.\",\"type\":\"boolean\"}}},\"extendedKeyUsage\":{\"description\":\"Immutable. Detailed scenarios in which a key may be used.\",\"type\":\"object\",\"properties\":{\"clientAuth\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \\\"TLS WWW client authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"codeSigning\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \\\"Signing of downloadable executable code client authentication\\\".\",\"type\":\"boolean\"},\"emailProtection\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \\\"Email protection\\\".\",\"type\":\"boolean\"},\"ocspSigning\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \\\"Signing OCSP responses\\\".\",\"type\":\"boolean\"},\"serverAuth\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \\\"TLS WWW server authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"timeStamping\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \\\"Binding the hash of an object to a time\\\".\",\"type\":\"boolean\"}}},\"unknownExtendedKeyUsages\":{\"description\":\"Immutable. Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"objectIdPath\"],\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}}}}},\"policyIds\":{\"description\":\"Immutable. Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"objectIdPath\"],\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}}}}}}},\"lifetime\":{\"description\":\"Immutable. Required. Immutable. The desired lifetime of a certificate. Used to create the \\\"not_before_time\\\" and \\\"not_after_time\\\" fields inside an X.509 certificate. Note that the lifetime may be truncated if it would extend past the life of any certificate authority in the issuing chain.\",\"type\":\"string\"},\"location\":{\"description\":\"Immutable. The location for the resource\",\"type\":\"string\"},\"pemCsr\":{\"description\":\"Immutable. Immutable. A pem-encoded X.509 certificate signing request (CSR).\",\"type\":\"string\"},\"projectRef\":{\"description\":\"Immutable. The Project that this resource belongs to.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"The project for the resource\\n\\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"},\"subjectMode\":{\"description\":\"Immutable. Immutable. Specifies how the Certificate's identity fields are to be decided. If this is omitted, the `DEFAULT` subject mode will be used. Possible values: SUBJECT_REQUEST_MODE_UNSPECIFIED, DEFAULT, REFLECTED_SPIFFE\",\"type\":\"string\"}}},\"status\":{\"type\":\"object\",\"properties\":{\"certificateDescription\":{\"description\":\"Output only. A structured description of the issued X.509 certificate.\",\"type\":\"object\",\"properties\":{\"aiaIssuingCertificateUrls\":{\"description\":\"Describes lists of issuer CA certificate URLs that appear in the \\\"Authority Information Access\\\" extension in the certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"authorityKeyId\":{\"description\":\"Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1\",\"type\":\"object\",\"properties\":{\"keyId\":{\"description\":\"Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.\",\"type\":\"string\"}}},\"certFingerprint\":{\"description\":\"The hash of the x.509 certificate.\",\"type\":\"object\",\"properties\":{\"sha256Hash\":{\"description\":\"The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.\",\"type\":\"string\"}}},\"crlDistributionPoints\":{\"description\":\"Describes a list of locations to obtain CRL information, i.e. the DistributionPoint.fullName described by https://tools.ietf.org/html/rfc5280#section-4.2.1.13\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"publicKey\":{\"description\":\"The public key that corresponds to an issued certificate.\",\"type\":\"object\",\"properties\":{\"format\":{\"description\":\"Required. The format of the public key. Possible values: KEY_FORMAT_UNSPECIFIED, PEM\",\"type\":\"string\"},\"key\":{\"description\":\"Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.\",\"type\":\"string\"}}},\"subjectDescription\":{\"description\":\"Describes some of the values in a certificate that are related to the subject and lifetime.\",\"type\":\"object\",\"properties\":{\"hexSerialNumber\":{\"description\":\"The serial number encoded in lowercase hexadecimal.\",\"type\":\"string\"},\"lifetime\":{\"description\":\"For convenience, the actual lifetime of an issued certificate.\",\"type\":\"string\"},\"notAfterTime\":{\"description\":\"The time after which the certificate is expired. Per RFC 5280, the validity period for a certificate is the period of time from not_before_time through not_after_time, inclusive. Corresponds to 'not_before_time' + 'lifetime' - 1 second.\",\"type\":\"string\",\"format\":\"date-time\"},\"notBeforeTime\":{\"description\":\"The time at which the certificate becomes valid.\",\"type\":\"string\",\"format\":\"date-time\"},\"subject\":{\"description\":\"Contains distinguished name fields such as the common name, location and / organization.\",\"type\":\"object\",\"properties\":{\"commonName\":{\"description\":\"The \\\"common name\\\" of the subject.\",\"type\":\"string\"},\"countryCode\":{\"description\":\"The country code of the subject.\",\"type\":\"string\"},\"locality\":{\"description\":\"The locality or city of the subject.\",\"type\":\"string\"},\"organization\":{\"description\":\"The organization of the subject.\",\"type\":\"string\"},\"organizationalUnit\":{\"description\":\"The organizational_unit of the subject.\",\"type\":\"string\"},\"postalCode\":{\"description\":\"The postal code of the subject.\",\"type\":\"string\"},\"province\":{\"description\":\"The province, territory, or regional state of the subject.\",\"type\":\"string\"},\"streetAddress\":{\"description\":\"The street address of the subject.\",\"type\":\"string\"}}},\"subjectAltName\":{\"description\":\"The subject alternative name fields.\",\"type\":\"object\",\"properties\":{\"customSans\":{\"description\":\"Contains additional subject alternative name values.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"critical\":{\"description\":\"Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Required. The OID for this X.509 extension.\",\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}},\"value\":{\"description\":\"Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"dnsNames\":{\"description\":\"Contains only valid, fully-qualified host names.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"emailAddresses\":{\"description\":\"Contains only valid RFC 2822 E-mail addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ipAddresses\":{\"description\":\"Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"uris\":{\"description\":\"Contains only valid RFC 3986 URIs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"subjectKeyId\":{\"description\":\"Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.\",\"type\":\"object\",\"properties\":{\"keyId\":{\"description\":\"Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.\",\"type\":\"string\"}}},\"x509Description\":{\"description\":\"Describes some of the technical X.509 fields in a certificate.\",\"type\":\"object\",\"properties\":{\"additionalExtensions\":{\"description\":\"Optional. Describes custom X.509 extensions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"critical\":{\"description\":\"Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Required. The OID for this X.509 extension.\",\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}},\"value\":{\"description\":\"Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"aiaOcspServers\":{\"description\":\"Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \\\"Authority Information Access\\\" extension in the certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"caOptions\":{\"description\":\"Optional. Describes options in this X509Parameters that are relevant in a CA certificate.\",\"type\":\"object\",\"properties\":{\"isCa\":{\"description\":\"Optional. Refers to the \\\"CA\\\" X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.\",\"type\":\"boolean\"},\"maxIssuerPathLength\":{\"description\":\"Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"keyUsage\":{\"description\":\"Optional. Indicates the intended use for keys that correspond to a certificate.\",\"type\":\"object\",\"properties\":{\"baseKeyUsage\":{\"description\":\"Describes high-level ways in which a key may be used.\",\"type\":\"object\",\"properties\":{\"certSign\":{\"description\":\"The key may be used to sign certificates.\",\"type\":\"boolean\"},\"contentCommitment\":{\"description\":\"The key may be used for cryptographic commitments. Note that this may also be referred to as \\\"non-repudiation\\\".\",\"type\":\"boolean\"},\"crlSign\":{\"description\":\"The key may be used sign certificate revocation lists.\",\"type\":\"boolean\"},\"dataEncipherment\":{\"description\":\"The key may be used to encipher data.\",\"type\":\"boolean\"},\"decipherOnly\":{\"description\":\"The key may be used to decipher only.\",\"type\":\"boolean\"},\"digitalSignature\":{\"description\":\"The key may be used for digital signatures.\",\"type\":\"boolean\"},\"encipherOnly\":{\"description\":\"The key may be used to encipher only.\",\"type\":\"boolean\"},\"keyAgreement\":{\"description\":\"The key may be used in a key agreement protocol.\",\"type\":\"boolean\"},\"keyEncipherment\":{\"description\":\"The key may be used to encipher other keys.\",\"type\":\"boolean\"}}},\"extendedKeyUsage\":{\"description\":\"Detailed scenarios in which a key may be used.\",\"type\":\"object\",\"properties\":{\"clientAuth\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \\\"TLS WWW client authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"codeSigning\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \\\"Signing of downloadable executable code client authentication\\\".\",\"type\":\"boolean\"},\"emailProtection\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \\\"Email protection\\\".\",\"type\":\"boolean\"},\"ocspSigning\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \\\"Signing OCSP responses\\\".\",\"type\":\"boolean\"},\"serverAuth\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \\\"TLS WWW server authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"timeStamping\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \\\"Binding the hash of an object to a time\\\".\",\"type\":\"boolean\"}}},\"unknownExtendedKeyUsages\":{\"description\":\"Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}}}}},\"policyIds\":{\"description\":\"Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}}}}}}},\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"createTime\":{\"description\":\"Output only. The time at which this Certificate was created.\",\"type\":\"string\",\"format\":\"date-time\"},\"issuerCertificateAuthority\":{\"description\":\"Output only. The resource name of the issuing CertificateAuthority in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"pemCertificate\":{\"description\":\"Output only. The pem-encoded, signed X.509 certificate.\",\"type\":\"string\"},\"pemCertificateChain\":{\"description\":\"Output only. The chain that may be used to verify the X.509 certificate. Expected to be in issuer-to-root order according to RFC 5246.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"revocationDetails\":{\"description\":\"Output only. Details regarding the revocation of this Certificate. This Certificate is considered revoked if and only if this field is present.\",\"type\":\"object\",\"properties\":{\"revocationState\":{\"description\":\"Indicates why a Certificate was revoked. Possible values: REVOCATION_REASON_UNSPECIFIED, KEY_COMPROMISE, CERTIFICATE_AUTHORITY_COMPROMISE, AFFILIATION_CHANGED, SUPERSEDED, CESSATION_OF_OPERATION, CERTIFICATE_HOLD, PRIVILEGE_WITHDRAWN, ATTRIBUTE_AUTHORITY_COMPROMISE\",\"type\":\"string\"},\"revocationTime\":{\"description\":\"The time at which this Certificate was revoked.\",\"type\":\"string\",\"format\":\"date-time\"}}},\"updateTime\":{\"description\":\"Output only. The time at which this Certificate was updated.\",\"type\":\"string\",\"format\":\"date-time\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"privateca.cnrm.cloud.google.com\",\"kind\":\"PrivateCACertificate\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateList\":{\"description\":\"PrivateCACertificateList is a list of PrivateCACertificate\",\"type\":\"object\",\"required\":[\"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 privatecacertificates. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificate\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"privateca.cnrm.cloud.google.com\",\"kind\":\"PrivateCACertificateList\",\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"}]},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}]}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"}]},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}}}}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv3/privateca_v1beta1_privatecacertificateauthority.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes CRD Swagger\",\"version\":\"v0.1.0\"},\"components\":{\"schemas\":{\"com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\":{\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"type\":\"object\",\"required\":[\"caPoolRef\",\"config\",\"keySpec\",\"lifetime\",\"location\",\"projectRef\",\"type\"],\"properties\":{\"caPoolRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"The caPool for the resource\\n\\nAllowed value: The Google Cloud resource name of a `PrivateCACAPool` resource (format: `projects/{{project}}/locations/{{location}}/caPools/{{name}}`).\",\"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\"}}},\"config\":{\"description\":\"Immutable. Required. Immutable. The config used to create a self-signed X.509 certificate or CSR.\",\"type\":\"object\",\"required\":[\"subjectConfig\",\"x509Config\"],\"properties\":{\"subjectConfig\":{\"description\":\"Immutable. Required. Specifies some of the values in a certificate that are related to the subject.\",\"type\":\"object\",\"required\":[\"subject\"],\"properties\":{\"subject\":{\"description\":\"Immutable. Required. Contains distinguished name fields such as the common name, location and organization.\",\"type\":\"object\",\"properties\":{\"commonName\":{\"description\":\"Immutable. The \\\"common name\\\" of the subject.\",\"type\":\"string\"},\"countryCode\":{\"description\":\"Immutable. The country code of the subject.\",\"type\":\"string\"},\"locality\":{\"description\":\"Immutable. The locality or city of the subject.\",\"type\":\"string\"},\"organization\":{\"description\":\"Immutable. The organization of the subject.\",\"type\":\"string\"},\"organizationalUnit\":{\"description\":\"Immutable. The organizational_unit of the subject.\",\"type\":\"string\"},\"postalCode\":{\"description\":\"Immutable. The postal code of the subject.\",\"type\":\"string\"},\"province\":{\"description\":\"Immutable. The province, territory, or regional state of the subject.\",\"type\":\"string\"},\"streetAddress\":{\"description\":\"Immutable. The street address of the subject.\",\"type\":\"string\"}}},\"subjectAltName\":{\"description\":\"Immutable. Optional. The subject alternative name fields.\",\"type\":\"object\",\"properties\":{\"customSans\":{\"description\":\"Immutable. Contains additional subject alternative name values.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"objectId\",\"value\"],\"properties\":{\"critical\":{\"description\":\"Immutable. Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Immutable. Required. The OID for this X.509 extension.\",\"type\":\"object\",\"required\":[\"objectIdPath\"],\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}},\"value\":{\"description\":\"Immutable. Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"dnsNames\":{\"description\":\"Immutable. Contains only valid, fully-qualified host names.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"emailAddresses\":{\"description\":\"Immutable. Contains only valid RFC 2822 E-mail addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ipAddresses\":{\"description\":\"Immutable. Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"uris\":{\"description\":\"Immutable. Contains only valid RFC 3986 URIs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"x509Config\":{\"description\":\"Immutable. Required. Describes how some of the technical X.509 fields in a certificate should be populated.\",\"type\":\"object\",\"properties\":{\"additionalExtensions\":{\"description\":\"Immutable. Optional. Describes custom X.509 extensions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"objectId\",\"value\"],\"properties\":{\"critical\":{\"description\":\"Immutable. Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Immutable. Required. The OID for this X.509 extension.\",\"type\":\"object\",\"required\":[\"objectIdPath\"],\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}},\"value\":{\"description\":\"Immutable. Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"caOptions\":{\"description\":\"Immutable. Optional. Describes options in this X509Parameters that are relevant in a CA certificate.\",\"type\":\"object\",\"properties\":{\"isCa\":{\"description\":\"Immutable. Optional. Refers to the \\\"CA\\\" X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.\",\"type\":\"boolean\"},\"maxIssuerPathLength\":{\"description\":\"Immutable. Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"keyUsage\":{\"description\":\"Immutable. Optional. Indicates the intended use for keys that correspond to a certificate.\",\"type\":\"object\",\"properties\":{\"baseKeyUsage\":{\"description\":\"Immutable. Describes high-level ways in which a key may be used.\",\"type\":\"object\",\"properties\":{\"certSign\":{\"description\":\"Immutable. The key may be used to sign certificates.\",\"type\":\"boolean\"},\"contentCommitment\":{\"description\":\"Immutable. The key may be used for cryptographic commitments. Note that this may also be referred to as \\\"non-repudiation\\\".\",\"type\":\"boolean\"},\"crlSign\":{\"description\":\"Immutable. The key may be used sign certificate revocation lists.\",\"type\":\"boolean\"},\"dataEncipherment\":{\"description\":\"Immutable. The key may be used to encipher data.\",\"type\":\"boolean\"},\"decipherOnly\":{\"description\":\"Immutable. The key may be used to decipher only.\",\"type\":\"boolean\"},\"digitalSignature\":{\"description\":\"Immutable. The key may be used for digital signatures.\",\"type\":\"boolean\"},\"encipherOnly\":{\"description\":\"Immutable. The key may be used to encipher only.\",\"type\":\"boolean\"},\"keyAgreement\":{\"description\":\"Immutable. The key may be used in a key agreement protocol.\",\"type\":\"boolean\"},\"keyEncipherment\":{\"description\":\"Immutable. The key may be used to encipher other keys.\",\"type\":\"boolean\"}}},\"extendedKeyUsage\":{\"description\":\"Immutable. Detailed scenarios in which a key may be used.\",\"type\":\"object\",\"properties\":{\"clientAuth\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \\\"TLS WWW client authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"codeSigning\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \\\"Signing of downloadable executable code client authentication\\\".\",\"type\":\"boolean\"},\"emailProtection\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \\\"Email protection\\\".\",\"type\":\"boolean\"},\"ocspSigning\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \\\"Signing OCSP responses\\\".\",\"type\":\"boolean\"},\"serverAuth\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \\\"TLS WWW server authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"timeStamping\":{\"description\":\"Immutable. Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \\\"Binding the hash of an object to a time\\\".\",\"type\":\"boolean\"}}},\"unknownExtendedKeyUsages\":{\"description\":\"Immutable. Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"objectIdPath\"],\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}}}}},\"policyIds\":{\"description\":\"Immutable. Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"objectIdPath\"],\"properties\":{\"objectIdPath\":{\"description\":\"Immutable. Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}}}}}}},\"gcsBucketRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Immutable. The name of a Cloud Storage bucket where this CertificateAuthority will publish content, such as the CA certificate and CRLs. This must be a bucket name, without any prefixes (such as `gs://`) or suffixes (such as `.googleapis.com`). For example, to use a bucket named `my-bucket`, you would simply specify `my-bucket`. If not specified, a managed bucket will be created.\\n\\nAllowed value: The Google Cloud resource name of a `StorageBucket` resource (format: `{{name}}`).\",\"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\"}}},\"keySpec\":{\"description\":\"Immutable. Required. Immutable. Used when issuing certificates for this CertificateAuthority. If this CertificateAuthority is a self-signed CertificateAuthority, this key is also used to sign the self-signed CA certificate. Otherwise, it is used to sign a CSR.\",\"type\":\"object\",\"properties\":{\"algorithm\":{\"description\":\"Immutable. The algorithm to use for creating a managed Cloud KMS key for a for a simplified experience. All managed keys will be have their ProtectionLevel as `HSM`. Possible values: RSA_PSS_2048_SHA256, RSA_PSS_3072_SHA256, RSA_PSS_4096_SHA256, RSA_PKCS1_2048_SHA256, RSA_PKCS1_3072_SHA256, RSA_PKCS1_4096_SHA256, EC_P256_SHA256, EC_P384_SHA384\",\"type\":\"string\"},\"cloudKmsKeyVersionRef\":{\"description\":\"Immutable.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"The resource name for an existing Cloud KMS CryptoKeyVersion in the format `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. This option enables full flexibility in the key's capabilities and properties.\",\"type\":\"string\"},\"name\":{\"description\":\"[WARNING] KMSCryptoKeyVersion not yet supported in Config Connector, use 'external' field to reference existing resources.\\nName 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\"}}}}},\"lifetime\":{\"description\":\"Immutable. Required. The desired lifetime of the CA certificate. Used to create the \\\"not_before_time\\\" and \\\"not_after_time\\\" fields inside an X.509 certificate.\",\"type\":\"string\"},\"location\":{\"description\":\"Immutable. The location for the resource\",\"type\":\"string\"},\"projectRef\":{\"description\":\"Immutable. The Project that this resource belongs to.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"The project for the resource\\n\\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\"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\"}}},\"resourceID\":{\"description\":\"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\"type\":\"string\"},\"type\":{\"description\":\"Immutable. Required. Immutable. The Type of this CertificateAuthority. Possible values: SELF_SIGNED, SUBORDINATE\",\"type\":\"string\"}}},\"status\":{\"type\":\"object\",\"properties\":{\"accessUrls\":{\"description\":\"Output only. URLs for accessing content published by this CA, such as the CA certificate and CRLs.\",\"type\":\"object\",\"properties\":{\"caCertificateAccessUrl\":{\"description\":\"The URL where this CertificateAuthority's CA certificate is published. This will only be set for CAs that have been activated.\",\"type\":\"string\"},\"crlAccessUrls\":{\"description\":\"The URLs where this CertificateAuthority's CRLs are published. This will only be set for CAs that have been activated.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"caCertificateDescriptions\":{\"description\":\"Output only. A structured description of this CertificateAuthority's CA certificate and its issuers. Ordered as self-to-root.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"aiaIssuingCertificateUrls\":{\"description\":\"Describes lists of issuer CA certificate URLs that appear in the \\\"Authority Information Access\\\" extension in the certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"authorityKeyId\":{\"description\":\"Identifies the subject_key_id of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1\",\"type\":\"object\",\"properties\":{\"keyId\":{\"description\":\"Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.\",\"type\":\"string\"}}},\"certFingerprint\":{\"description\":\"The hash of the x.509 certificate.\",\"type\":\"object\",\"properties\":{\"sha256Hash\":{\"description\":\"The SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.\",\"type\":\"string\"}}},\"crlDistributionPoints\":{\"description\":\"Describes a list of locations to obtain CRL information, i.e. the DistributionPoint.fullName described by https://tools.ietf.org/html/rfc5280#section-4.2.1.13\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"publicKey\":{\"description\":\"The public key that corresponds to an issued certificate.\",\"type\":\"object\",\"properties\":{\"format\":{\"description\":\"Required. The format of the public key. Possible values: PEM\",\"type\":\"string\"},\"key\":{\"description\":\"Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.\",\"type\":\"string\"}}},\"subjectDescription\":{\"description\":\"Describes some of the values in a certificate that are related to the subject and lifetime.\",\"type\":\"object\",\"properties\":{\"hexSerialNumber\":{\"description\":\"The serial number encoded in lowercase hexadecimal.\",\"type\":\"string\"},\"lifetime\":{\"description\":\"For convenience, the actual lifetime of an issued certificate.\",\"type\":\"string\"},\"notAfterTime\":{\"description\":\"The time after which the certificate is expired. Per RFC 5280, the validity period for a certificate is the period of time from not_before_time through not_after_time, inclusive. Corresponds to 'not_before_time' + 'lifetime' - 1 second.\",\"type\":\"string\",\"format\":\"date-time\"},\"notBeforeTime\":{\"description\":\"The time at which the certificate becomes valid.\",\"type\":\"string\",\"format\":\"date-time\"},\"subject\":{\"description\":\"Contains distinguished name fields such as the common name, location and organization.\",\"type\":\"object\",\"properties\":{\"commonName\":{\"description\":\"The \\\"common name\\\" of the subject.\",\"type\":\"string\"},\"countryCode\":{\"description\":\"The country code of the subject.\",\"type\":\"string\"},\"locality\":{\"description\":\"The locality or city of the subject.\",\"type\":\"string\"},\"organization\":{\"description\":\"The organization of the subject.\",\"type\":\"string\"},\"organizationalUnit\":{\"description\":\"The organizational_unit of the subject.\",\"type\":\"string\"},\"postalCode\":{\"description\":\"The postal code of the subject.\",\"type\":\"string\"},\"province\":{\"description\":\"The province, territory, or regional state of the subject.\",\"type\":\"string\"},\"streetAddress\":{\"description\":\"The street address of the subject.\",\"type\":\"string\"}}},\"subjectAltName\":{\"description\":\"The subject alternative name fields.\",\"type\":\"object\",\"properties\":{\"customSans\":{\"description\":\"Contains additional subject alternative name values.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"critical\":{\"description\":\"Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Required. The OID for this X.509 extension.\",\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}},\"value\":{\"description\":\"Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"dnsNames\":{\"description\":\"Contains only valid, fully-qualified host names.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"emailAddresses\":{\"description\":\"Contains only valid RFC 2822 E-mail addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ipAddresses\":{\"description\":\"Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"uris\":{\"description\":\"Contains only valid RFC 3986 URIs.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"subjectKeyId\":{\"description\":\"Provides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.\",\"type\":\"object\",\"properties\":{\"keyId\":{\"description\":\"Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.\",\"type\":\"string\"}}},\"x509Description\":{\"description\":\"Describes some of the technical X.509 fields in a certificate.\",\"type\":\"object\",\"properties\":{\"additionalExtensions\":{\"description\":\"Optional. Describes custom X.509 extensions.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"critical\":{\"description\":\"Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\",\"type\":\"boolean\"},\"objectId\":{\"description\":\"Required. The OID for this X.509 extension.\",\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}},\"value\":{\"description\":\"Required. The value of this X.509 extension.\",\"type\":\"string\"}}}},\"aiaOcspServers\":{\"description\":\"Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \\\"Authority Information Access\\\" extension in the certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"caOptions\":{\"description\":\"Optional. Describes options in this X509Parameters that are relevant in a CA certificate.\",\"type\":\"object\",\"properties\":{\"isCa\":{\"description\":\"Optional. Refers to the \\\"CA\\\" X.509 extension, which is a boolean value. When this value is missing, the extension will be omitted from the CA certificate.\",\"type\":\"boolean\"},\"maxIssuerPathLength\":{\"description\":\"Optional. Refers to the path length restriction X.509 extension. For a CA certificate, this value describes the depth of subordinate CA certificates that are allowed. If this value is less than 0, the request will fail. If this value is missing, the max path length will be omitted from the CA certificate.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"keyUsage\":{\"description\":\"Optional. Indicates the intended use for keys that correspond to a certificate.\",\"type\":\"object\",\"properties\":{\"baseKeyUsage\":{\"description\":\"Describes high-level ways in which a key may be used.\",\"type\":\"object\",\"properties\":{\"certSign\":{\"description\":\"The key may be used to sign certificates.\",\"type\":\"boolean\"},\"contentCommitment\":{\"description\":\"The key may be used for cryptographic commitments. Note that this may also be referred to as \\\"non-repudiation\\\".\",\"type\":\"boolean\"},\"crlSign\":{\"description\":\"The key may be used sign certificate revocation lists.\",\"type\":\"boolean\"},\"dataEncipherment\":{\"description\":\"The key may be used to encipher data.\",\"type\":\"boolean\"},\"decipherOnly\":{\"description\":\"The key may be used to decipher only.\",\"type\":\"boolean\"},\"digitalSignature\":{\"description\":\"The key may be used for digital signatures.\",\"type\":\"boolean\"},\"encipherOnly\":{\"description\":\"The key may be used to encipher only.\",\"type\":\"boolean\"},\"keyAgreement\":{\"description\":\"The key may be used in a key agreement protocol.\",\"type\":\"boolean\"},\"keyEncipherment\":{\"description\":\"The key may be used to encipher other keys.\",\"type\":\"boolean\"}}},\"extendedKeyUsage\":{\"description\":\"Detailed scenarios in which a key may be used.\",\"type\":\"object\",\"properties\":{\"clientAuth\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \\\"TLS WWW client authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"codeSigning\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \\\"Signing of downloadable executable code client authentication\\\".\",\"type\":\"boolean\"},\"emailProtection\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \\\"Email protection\\\".\",\"type\":\"boolean\"},\"ocspSigning\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \\\"Signing OCSP responses\\\".\",\"type\":\"boolean\"},\"serverAuth\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \\\"TLS WWW server authentication\\\", though regularly used for non-WWW TLS.\",\"type\":\"boolean\"},\"timeStamping\":{\"description\":\"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \\\"Binding the hash of an object to a time\\\".\",\"type\":\"boolean\"}}},\"unknownExtendedKeyUsages\":{\"description\":\"Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}}}}},\"policyIds\":{\"description\":\"Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"objectIdPath\":{\"description\":\"Required. The parts of an OID path. The most significant parts of the path come first.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}}}}}}}}}},\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"config\":{\"type\":\"object\",\"properties\":{\"publicKey\":{\"description\":\"Optional. The public key that corresponds to this config. This is, for example, used when issuing Certificates, but not when creating a self-signed CertificateAuthority or CertificateAuthority CSR.\",\"type\":\"object\",\"properties\":{\"format\":{\"description\":\"Required. The format of the public key. Possible values: PEM\",\"type\":\"string\"},\"key\":{\"description\":\"Required. A public key. The padding and encoding must match with the `KeyFormat` value specified for the `format` field.\",\"type\":\"string\"}}},\"x509Config\":{\"type\":\"object\",\"properties\":{\"aiaOcspServers\":{\"description\":\"Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \\\"Authority Information Access\\\" extension in the certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"createTime\":{\"description\":\"Output only. The time at which this CertificateAuthority was created.\",\"type\":\"string\",\"format\":\"date-time\"},\"deleteTime\":{\"description\":\"Output only. The time at which this CertificateAuthority was soft deleted, if it is in the DELETED state.\",\"type\":\"string\",\"format\":\"date-time\"},\"expireTime\":{\"description\":\"Output only. The time at which this CertificateAuthority will be permanently purged, if it is in the DELETED state.\",\"type\":\"string\",\"format\":\"date-time\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"},\"pemCaCertificates\":{\"description\":\"Output only. This CertificateAuthority's certificate chain, including the current CertificateAuthority's certificate. Ordered such that the root issuer is the final element (consistent with RFC 5246). For a self-signed CA, this will only list the current CertificateAuthority's certificate.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"state\":{\"description\":\"Output only. The State for this CertificateAuthority. Possible values: ENABLED, DISABLED, STAGED, AWAITING_USER_ACTIVATION, DELETED\",\"type\":\"string\"},\"subordinateConfig\":{\"description\":\"Optional. If this is a subordinate CertificateAuthority, this field will be set with the subordinate configuration, which describes its issuers. This may be updated, but this CertificateAuthority must continue to validate.\",\"type\":\"object\",\"properties\":{\"certificateAuthority\":{\"description\":\"Required. This can refer to a CertificateAuthority in the same project that was used to create a subordinate CertificateAuthority. This field is used for information and usability purposes only. The resource name is in the format `projects/*/locations/*/caPools/*/certificateAuthorities/*`.\",\"type\":\"string\"},\"pemIssuerChain\":{\"description\":\"Required. Contains the PEM certificate chain for the issuers of this CertificateAuthority, but not pem certificate for this CA itself.\",\"type\":\"object\",\"properties\":{\"pemCertificates\":{\"description\":\"Required. Expected to be in leaf-to-root order according to RFC 5246.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"tier\":{\"description\":\"Output only. The CaPool.Tier of the CaPool that includes this CertificateAuthority. Possible values: ENTERPRISE, DEVOPS\",\"type\":\"string\"},\"updateTime\":{\"description\":\"Output only. The time at which this CertificateAuthority was last updated.\",\"type\":\"string\",\"format\":\"date-time\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"privateca.cnrm.cloud.google.com\",\"kind\":\"PrivateCACertificateAuthority\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthorityList\":{\"description\":\"PrivateCACertificateAuthorityList is a list of PrivateCACertificateAuthority\",\"type\":\"object\",\"required\":[\"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 privatecacertificateauthorities. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/com.google.cloud.cnrm.privateca.v1beta1.PrivateCACertificateAuthority\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"privateca.cnrm.cloud.google.com\",\"kind\":\"PrivateCACertificateAuthorityList\",\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"}]},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}]}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"}]},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}}}}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv3/storagetransfer_v1beta1_storagetransferjob.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes CRD Swagger\",\"version\":\"v0.1.0\"},\"components\":{\"schemas\":{\"com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\":{\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}]},\"spec\":{\"type\":\"object\",\"required\":[\"description\",\"transferSpec\"],\"properties\":{\"description\":{\"description\":\"Unique description to identify the Transfer Job.\",\"type\":\"string\"},\"notificationConfig\":{\"description\":\"Notification configuration.\",\"type\":\"object\",\"required\":[\"payloadFormat\",\"topicRef\"],\"properties\":{\"eventTypes\":{\"description\":\"Event types for which a notification is desired. If empty, send notifications for all event types. The valid types are \\\"TRANSFER_OPERATION_SUCCESS\\\", \\\"TRANSFER_OPERATION_FAILED\\\", \\\"TRANSFER_OPERATION_ABORTED\\\".\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"payloadFormat\":{\"description\":\"The desired format of the notification message payloads. One of \\\"NONE\\\" or \\\"JSON\\\".\",\"type\":\"string\"},\"topicRef\":{\"description\":\"The PubSubTopic to which to publish notifications.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: string of the format `projects/{{project}}/topics/{{value}}`, where {{value}} is the `name` field of a `PubSubTopic` resource.\",\"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\"}}}}},\"resourceID\":{\"description\":\"Immutable. Optional. The service-generated name of the resource. Used for acquisition only. Leave unset to create a new resource.\",\"type\":\"string\"},\"schedule\":{\"description\":\"Schedule specification defining when the Transfer Job should be scheduled to start, end and what time to run.\",\"type\":\"object\",\"required\":[\"scheduleStartDate\"],\"properties\":{\"repeatInterval\":{\"description\":\"Interval between the start of each scheduled transfer. If unspecified, the default value is 24 hours. This value may not be less than 1 hour. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \\\"3.5s\\\".\",\"type\":\"string\"},\"scheduleEndDate\":{\"description\":\"Immutable. The last day the recurring transfer will be run. If schedule_end_date is the same as schedule_start_date, the transfer will be executed only once.\",\"type\":\"object\",\"required\":[\"day\",\"month\",\"year\"],\"properties\":{\"day\":{\"description\":\"Immutable. Day of month. Must be from 1 to 31 and valid for the year and month.\",\"type\":\"integer\"},\"month\":{\"description\":\"Immutable. Month of year. Must be from 1 to 12.\",\"type\":\"integer\"},\"year\":{\"description\":\"Immutable. Year of date. Must be from 1 to 9999.\",\"type\":\"integer\"}}},\"scheduleStartDate\":{\"description\":\"Immutable. The first day the recurring transfer is scheduled to run. If schedule_start_date is in the past, the transfer will run for the first time on the following day.\",\"type\":\"object\",\"required\":[\"day\",\"month\",\"year\"],\"properties\":{\"day\":{\"description\":\"Immutable. Day of month. Must be from 1 to 31 and valid for the year and month.\",\"type\":\"integer\"},\"month\":{\"description\":\"Immutable. Month of year. Must be from 1 to 12.\",\"type\":\"integer\"},\"year\":{\"description\":\"Immutable. Year of date. Must be from 1 to 9999.\",\"type\":\"integer\"}}},\"startTimeOfDay\":{\"description\":\"Immutable. The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, recurring and one-time transfers that are scheduled to run today will run immediately; recurring transfers that are scheduled to run on a future date will start at approximately midnight UTC on that date. Note that when configuring a transfer with the Cloud Platform Console, the transfer's start time in a day is specified in your local timezone.\",\"type\":\"object\",\"required\":[\"hours\",\"minutes\",\"nanos\",\"seconds\"],\"properties\":{\"hours\":{\"description\":\"Immutable. Hours of day in 24 hour format. Should be from 0 to 23.\",\"type\":\"integer\"},\"minutes\":{\"description\":\"Immutable. Minutes of hour of day. Must be from 0 to 59.\",\"type\":\"integer\"},\"nanos\":{\"description\":\"Immutable. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\",\"type\":\"integer\"},\"seconds\":{\"description\":\"Immutable. Seconds of minutes of the time. Must normally be from 0 to 59.\",\"type\":\"integer\"}}}}},\"status\":{\"description\":\"Status of the job. Default: ENABLED. NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from ENABLED to DISABLED, and an operation spawned by the transfer is running, the status change would not affect the current operation.\",\"type\":\"string\"},\"transferSpec\":{\"description\":\"Transfer specification.\",\"type\":\"object\",\"properties\":{\"awsS3DataSource\":{\"description\":\"An AWS S3 data source.\",\"type\":\"object\",\"required\":[\"bucketName\"],\"properties\":{\"awsAccessKey\":{\"description\":\"AWS credentials block.\",\"type\":\"object\",\"required\":[\"accessKeyId\",\"secretAccessKey\"],\"properties\":{\"accessKeyId\":{\"description\":\"AWS Key ID.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"value\"],\"not\":{\"required\":[\"valueFrom\"]}},{\"required\":[\"valueFrom\"],\"not\":{\"required\":[\"value\"]}}],\"properties\":{\"value\":{\"description\":\"Value of the field. Cannot be used if 'valueFrom' is specified.\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the field's value. Cannot be used if 'value' is specified.\",\"type\":\"object\",\"properties\":{\"secretKeyRef\":{\"description\":\"Reference to a value with the given key in the given Secret in the resource's namespace.\",\"type\":\"object\",\"required\":[\"name\",\"key\"],\"properties\":{\"key\":{\"description\":\"Key that identifies the value to be extracted.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the Secret to extract a value from.\",\"type\":\"string\"}}}}}}},\"secretAccessKey\":{\"description\":\"AWS Secret Access Key.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"value\"],\"not\":{\"required\":[\"valueFrom\"]}},{\"required\":[\"valueFrom\"],\"not\":{\"required\":[\"value\"]}}],\"properties\":{\"value\":{\"description\":\"Value of the field. Cannot be used if 'valueFrom' is specified.\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the field's value. Cannot be used if 'value' is specified.\",\"type\":\"object\",\"properties\":{\"secretKeyRef\":{\"description\":\"Reference to a value with the given key in the given Secret in the resource's namespace.\",\"type\":\"object\",\"required\":[\"name\",\"key\"],\"properties\":{\"key\":{\"description\":\"Key that identifies the value to be extracted.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the Secret to extract a value from.\",\"type\":\"string\"}}}}}}}}},\"bucketName\":{\"description\":\"S3 Bucket name.\",\"type\":\"string\"},\"roleArn\":{\"description\":\"The Amazon Resource Name (ARN) of the role to support temporary credentials via 'AssumeRoleWithWebIdentity'. For more information about ARNs, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns). When a role ARN is provided, Transfer Service fetches temporary credentials for the session using a 'AssumeRoleWithWebIdentity' call for the provided role using the [GoogleServiceAccount][] for this project.\",\"type\":\"string\"}}},\"azureBlobStorageDataSource\":{\"description\":\"An Azure Blob Storage data source.\",\"type\":\"object\",\"required\":[\"azureCredentials\",\"container\",\"storageAccount\"],\"properties\":{\"azureCredentials\":{\"description\":\" Credentials used to authenticate API requests to Azure.\",\"type\":\"object\",\"required\":[\"sasToken\"],\"properties\":{\"sasToken\":{\"description\":\"Azure shared access signature.\",\"type\":\"object\",\"oneOf\":[{\"required\":[\"value\"],\"not\":{\"required\":[\"valueFrom\"]}},{\"required\":[\"valueFrom\"],\"not\":{\"required\":[\"value\"]}}],\"properties\":{\"value\":{\"description\":\"Value of the field. Cannot be used if 'valueFrom' is specified.\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the field's value. Cannot be used if 'value' is specified.\",\"type\":\"object\",\"properties\":{\"secretKeyRef\":{\"description\":\"Reference to a value with the given key in the given Secret in the resource's namespace.\",\"type\":\"object\",\"required\":[\"name\",\"key\"],\"properties\":{\"key\":{\"description\":\"Key that identifies the value to be extracted.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the Secret to extract a value from.\",\"type\":\"string\"}}}}}}}}},\"container\":{\"description\":\"The container to transfer from the Azure Storage account.\",\"type\":\"string\"},\"path\":{\"description\":\"Root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'.\",\"type\":\"string\"},\"storageAccount\":{\"description\":\"The name of the Azure Storage account.\",\"type\":\"string\"}}},\"gcsDataSink\":{\"description\":\"A Google Cloud Storage data sink.\",\"type\":\"object\",\"required\":[\"bucketRef\"],\"properties\":{\"bucketRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The `name` field of a `StorageBucket` resource.\",\"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\"}}},\"path\":{\"description\":\"Google Cloud Storage path in bucket to transfer.\",\"type\":\"string\"}}},\"gcsDataSource\":{\"description\":\"A Google Cloud Storage data source.\",\"type\":\"object\",\"required\":[\"bucketRef\"],\"properties\":{\"bucketRef\":{\"type\":\"object\",\"oneOf\":[{\"required\":[\"name\"],\"not\":{\"required\":[\"external\"]}},{\"required\":[\"external\"],\"not\":{\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"namespace\"]}]}}],\"properties\":{\"external\":{\"description\":\"Allowed value: The `name` field of a `StorageBucket` resource.\",\"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\"}}},\"path\":{\"description\":\"Google Cloud Storage path in bucket to transfer.\",\"type\":\"string\"}}},\"httpDataSource\":{\"description\":\"A HTTP URL data source.\",\"type\":\"object\",\"required\":[\"listUrl\"],\"properties\":{\"listUrl\":{\"description\":\"The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.\",\"type\":\"string\"}}},\"objectConditions\":{\"description\":\"Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' last_modification_time do not exclude objects in a data sink.\",\"type\":\"object\",\"properties\":{\"excludePrefixes\":{\"description\":\"exclude_prefixes must follow the requirements described for include_prefixes.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"includePrefixes\":{\"description\":\"If include_refixes is specified, objects that satisfy the object conditions must have names that start with one of the include_prefixes and that do not start with any of the exclude_prefixes. If include_prefixes is not specified, all objects except those that have names starting with one of the exclude_prefixes must satisfy the object conditions.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"maxTimeElapsedSinceLastModification\":{\"description\":\"A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \\\"3.5s\\\".\",\"type\":\"string\"},\"minTimeElapsedSinceLastModification\":{\"description\":\"A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \\\"3.5s\\\".\",\"type\":\"string\"}}},\"posixDataSink\":{\"description\":\"A POSIX filesystem data sink.\",\"type\":\"object\",\"required\":[\"rootDirectory\"],\"properties\":{\"rootDirectory\":{\"description\":\"Root directory path to the filesystem.\",\"type\":\"string\"}}},\"posixDataSource\":{\"description\":\"A POSIX filesystem data source.\",\"type\":\"object\",\"required\":[\"rootDirectory\"],\"properties\":{\"rootDirectory\":{\"description\":\"Root directory path to the filesystem.\",\"type\":\"string\"}}},\"transferOptions\":{\"description\":\"Characteristics of how to treat files from datasource and sink during job. If the option delete_objects_unique_in_sink is true, object conditions based on objects' last_modification_time are ignored and do not exclude objects in a data source or a data sink.\",\"type\":\"object\",\"properties\":{\"deleteObjectsFromSourceAfterTransfer\":{\"description\":\"Whether objects should be deleted from the source after they are transferred to the sink. Note that this option and delete_objects_unique_in_sink are mutually exclusive.\",\"type\":\"boolean\"},\"deleteObjectsUniqueInSink\":{\"description\":\"Whether objects that exist only in the sink should be deleted. Note that this option and delete_objects_from_source_after_transfer are mutually exclusive.\",\"type\":\"boolean\"},\"overwriteObjectsAlreadyExistingInSink\":{\"description\":\"Whether overwriting objects that already exist in the sink is allowed.\",\"type\":\"boolean\"},\"overwriteWhen\":{\"description\":\"When to overwrite objects that already exist in the sink. If not set, overwrite behavior is determined by overwriteObjectsAlreadyExistingInSink.\",\"type\":\"string\"}}}}}}},\"status\":{\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Conditions represent the latest available observation of the resource's current state.\",\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"type\":\"string\"},\"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\"}}}},\"creationTime\":{\"description\":\"When the Transfer Job was created.\",\"type\":\"string\"},\"deletionTime\":{\"description\":\"When the Transfer Job was deleted.\",\"type\":\"string\"},\"lastModificationTime\":{\"description\":\"When the Transfer Job was last modified.\",\"type\":\"string\"},\"name\":{\"description\":\"The name of the Transfer Job.\",\"type\":\"string\"},\"observedGeneration\":{\"description\":\"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\"type\":\"integer\"}}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"kind\":\"StorageTransferJob\",\"version\":\"v1beta1\"}]},\"com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJobList\":{\"description\":\"StorageTransferJobList is a list of StorageTransferJob\",\"type\":\"object\",\"required\":[\"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 storagetransferjobs. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/com.google.cloud.cnrm.storagetransfer.v1beta1.StorageTransferJob\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}]}},\"x-kubernetes-group-version-kind\":[{\"group\":\"storagetransfer.cnrm.cloud.google.com\",\"kind\":\"StorageTransferJobList\",\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"}]},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"creationTimestamp\":{\"description\":\"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}]},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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 return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}]}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"allOf\":[{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"}]},\"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\":\"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"string\",\"format\":\"date-time\"}}}}"
  },
  {
    "path": "pkg/schemaconv/testdata/crds/openapiv3/vpcaccess_v1beta1_vpcaccessconnector.json",
    "content": "{\n  \"openapi\": \"3.0.0\",\n  \"info\": { \"title\": \"Kubernetes CRD Swagger\", \"version\": \"v0.1.0\" },\n  \"components\": {\n    \"schemas\": {\n      \"com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\": {\n        \"type\": \"object\",\n        \"required\": [\"spec\"],\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ]\n          },\n          \"spec\": {\n            \"type\": \"object\",\n            \"required\": [\"location\", \"projectRef\"],\n            \"properties\": {\n              \"ipCidrRange\": {\n                \"description\": \"Immutable. The range of internal addresses that follows RFC 4632 notation. Example: `10.132.0.0/28`.\",\n                \"type\": \"string\"\n              },\n              \"location\": {\n                \"description\": \"Immutable. The location for the resource\",\n                \"type\": \"string\"\n              },\n              \"machineType\": {\n                \"description\": \"Immutable. Machine type of VM Instance underlying connector. Default is e2-micro\",\n                \"type\": \"string\"\n              },\n              \"maxInstances\": {\n                \"description\": \"Immutable. Maximum value of instances in autoscaling group underlying the connector.\",\n                \"type\": \"integer\",\n                \"format\": \"int64\"\n              },\n              \"maxThroughput\": {\n                \"description\": \"Immutable. Maximum throughput of the connector in Mbps. Default is 200, max is 1000.\",\n                \"type\": \"integer\",\n                \"format\": \"int64\"\n              },\n              \"minInstances\": {\n                \"description\": \"Immutable. Minimum value of instances in autoscaling group underlying the connector.\",\n                \"type\": \"integer\",\n                \"format\": \"int64\"\n              },\n              \"minThroughput\": {\n                \"description\": \"Immutable. Minimum throughput of the connector in Mbps. Default and min is 200.\",\n                \"type\": \"integer\",\n                \"format\": \"int64\"\n              },\n              \"networkRef\": {\n                \"description\": \"Immutable.\",\n                \"type\": \"object\",\n                \"oneOf\": [\n                  { \"required\": [\"name\"], \"not\": { \"required\": [\"external\"] } },\n                  {\n                    \"required\": [\"external\"],\n                    \"not\": {\n                      \"anyOf\": [\n                        { \"required\": [\"name\"] },\n                        { \"required\": [\"namespace\"] }\n                      ]\n                    }\n                  }\n                ],\n                \"properties\": {\n                  \"external\": {\n                    \"description\": \"Name of a VPC network.\\n\\nAllowed value: The Google Cloud resource name of a `ComputeNetwork` resource (format: `projects/{{project}}/global/networks/{{name}}`).\",\n                    \"type\": \"string\"\n                  },\n                  \"name\": {\n                    \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n                    \"type\": \"string\"\n                  },\n                  \"namespace\": {\n                    \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n                    \"type\": \"string\"\n                  }\n                }\n              },\n              \"projectRef\": {\n                \"description\": \"Immutable. The Project that this resource belongs to.\",\n                \"type\": \"object\",\n                \"oneOf\": [\n                  { \"required\": [\"name\"], \"not\": { \"required\": [\"external\"] } },\n                  {\n                    \"required\": [\"external\"],\n                    \"not\": {\n                      \"anyOf\": [\n                        { \"required\": [\"name\"] },\n                        { \"required\": [\"namespace\"] }\n                      ]\n                    }\n                  }\n                ],\n                \"properties\": {\n                  \"external\": {\n                    \"description\": \"The project for the resource\\n\\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\n                    \"type\": \"string\"\n                  },\n                  \"name\": {\n                    \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n                    \"type\": \"string\"\n                  },\n                  \"namespace\": {\n                    \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n                    \"type\": \"string\"\n                  }\n                }\n              },\n              \"resourceID\": {\n                \"description\": \"Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.\",\n                \"type\": \"string\"\n              },\n              \"subnet\": {\n                \"description\": \"Immutable. The subnet in which to house the VPC Access Connector.\",\n                \"type\": \"object\",\n                \"properties\": {\n                  \"nameRef\": {\n                    \"description\": \"Immutable.\",\n                    \"type\": \"object\",\n                    \"oneOf\": [\n                      {\n                        \"required\": [\"name\"],\n                        \"not\": { \"required\": [\"external\"] }\n                      },\n                      {\n                        \"required\": [\"external\"],\n                        \"not\": {\n                          \"anyOf\": [\n                            { \"required\": [\"name\"] },\n                            { \"required\": [\"namespace\"] }\n                          ]\n                        }\n                      }\n                    ],\n                    \"properties\": {\n                      \"external\": {\n                        \"description\": \"Subnet name (relative, not fully qualified). E.g. if the full subnet selfLink is https://compute.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetName} the correct input for this field would be: {subnetName}\\n\\nAllowed value: The Google Cloud resource name of a `ComputeSubnetwork` resource (format: `projects/{{project}}/regions/{{region}}/subnetworks/{{name}}`).\",\n                        \"type\": \"string\"\n                      },\n                      \"name\": {\n                        \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n                        \"type\": \"string\"\n                      },\n                      \"namespace\": {\n                        \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n                        \"type\": \"string\"\n                      }\n                    }\n                  },\n                  \"projectRef\": {\n                    \"description\": \"Immutable.\",\n                    \"type\": \"object\",\n                    \"oneOf\": [\n                      {\n                        \"required\": [\"name\"],\n                        \"not\": { \"required\": [\"external\"] }\n                      },\n                      {\n                        \"required\": [\"external\"],\n                        \"not\": {\n                          \"anyOf\": [\n                            { \"required\": [\"name\"] },\n                            { \"required\": [\"namespace\"] }\n                          ]\n                        }\n                      }\n                    ],\n                    \"properties\": {\n                      \"external\": {\n                        \"description\": \"Project in which the subnet exists. If not set, this project is assumed to be the project for which the connector create request was issued.\\n\\nAllowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).\",\n                        \"type\": \"string\"\n                      },\n                      \"name\": {\n                        \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n                        \"type\": \"string\"\n                      },\n                      \"namespace\": {\n                        \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n                        \"type\": \"string\"\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          },\n          \"status\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"conditions\": {\n                \"description\": \"Conditions represent the latest available observation of the resource's current state.\",\n                \"type\": \"array\",\n                \"items\": {\n                  \"type\": \"object\",\n                  \"properties\": {\n                    \"lastTransitionTime\": {\n                      \"description\": \"Last time the condition transitioned from one status to another.\",\n                      \"type\": \"string\"\n                    },\n                    \"message\": {\n                      \"description\": \"Human-readable message indicating details about last transition.\",\n                      \"type\": \"string\"\n                    },\n                    \"reason\": {\n                      \"description\": \"Unique, one-word, CamelCase reason for the condition's last transition.\",\n                      \"type\": \"string\"\n                    },\n                    \"status\": {\n                      \"description\": \"Status is the status of the condition. Can be True, False, Unknown.\",\n                      \"type\": \"string\"\n                    },\n                    \"type\": {\n                      \"description\": \"Type is the type of the condition.\",\n                      \"type\": \"string\"\n                    }\n                  }\n                }\n              },\n              \"connectedProjects\": {\n                \"description\": \"Output only. List of projects using the connector.\",\n                \"type\": \"array\",\n                \"items\": { \"type\": \"string\" }\n              },\n              \"observedGeneration\": {\n                \"description\": \"ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.\",\n                \"type\": \"integer\"\n              },\n              \"state\": {\n                \"description\": \"Output only. State of the VPC access connector. Possible values: STATE_UNSPECIFIED, READY, CREATING, DELETING, ERROR, UPDATING\",\n                \"type\": \"string\"\n              }\n            }\n          }\n        },\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"vpcaccess.cnrm.cloud.google.com\",\n            \"kind\": \"VPCAccessConnector\",\n            \"version\": \"v1beta1\"\n          }\n        ]\n      },\n      \"com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnectorList\": {\n        \"description\": \"VPCAccessConnectorList is a list of VPCAccessConnector\",\n        \"type\": \"object\",\n        \"required\": [\"items\"],\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"items\": {\n            \"description\": \"List of vpcaccessconnectors. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\n            \"type\": \"array\",\n            \"items\": {\n              \"$ref\": \"#/components/schemas/com.google.cloud.cnrm.vpcaccess.v1beta1.VPCAccessConnector\"\n            }\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n              }\n            ]\n          }\n        },\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"vpcaccess.cnrm.cloud.google.com\",\n            \"kind\": \"VPCAccessConnectorList\",\n            \"version\": \"v1beta1\"\n          }\n        ]\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\": {\n        \"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\",\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\": {\n        \"description\": \"ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.\",\n        \"type\": \"object\",\n        \"properties\": {\n          \"continue\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"remainingItemCount\": {\n            \"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.\",\n            \"type\": \"integer\",\n            \"format\": \"int64\"\n          },\n          \"resourceVersion\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"selfLink\": {\n            \"description\": \"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\n            \"type\": \"string\"\n          }\n        }\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\": {\n        \"description\": \"ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.\",\n        \"type\": \"object\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"fieldsType\": {\n            \"description\": \"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\n            \"type\": \"string\"\n          },\n          \"fieldsV1\": {\n            \"description\": \"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"\n              }\n            ]\n          },\n          \"manager\": {\n            \"description\": \"Manager is an identifier of the workflow managing these fields.\",\n            \"type\": \"string\"\n          },\n          \"operation\": {\n            \"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'.\",\n            \"type\": \"string\"\n          },\n          \"subresource\": {\n            \"description\": \"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\n            \"type\": \"string\"\n          },\n          \"time\": {\n            \"description\": \"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ]\n          }\n        }\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\": {\n        \"description\": \"ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.\",\n        \"type\": \"object\",\n        \"properties\": {\n          \"annotations\": {\n            \"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\",\n            \"type\": \"object\",\n            \"additionalProperties\": { \"type\": \"string\", \"default\": \"\" }\n          },\n          \"creationTimestamp\": {\n            \"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\",\n            \"default\": {},\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ]\n          },\n          \"deletionGracePeriodSeconds\": {\n            \"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.\",\n            \"type\": \"integer\",\n            \"format\": \"int64\"\n          },\n          \"deletionTimestamp\": {\n            \"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\",\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ]\n          },\n          \"finalizers\": {\n            \"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.\",\n            \"type\": \"array\",\n            \"items\": { \"type\": \"string\", \"default\": \"\" },\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"generateName\": {\n            \"description\": \"GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\\n\\nIf this field is specified and the generated name exists, the server will return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\n            \"type\": \"string\"\n          },\n          \"generation\": {\n            \"description\": \"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\n            \"type\": \"integer\",\n            \"format\": \"int64\"\n          },\n          \"labels\": {\n            \"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\",\n            \"type\": \"object\",\n            \"additionalProperties\": { \"type\": \"string\", \"default\": \"\" }\n          },\n          \"managedFields\": {\n            \"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.\",\n            \"type\": \"array\",\n            \"items\": {\n              \"default\": {},\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"\n                }\n              ]\n            }\n          },\n          \"name\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"namespace\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"ownerReferences\": {\n            \"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.\",\n            \"type\": \"array\",\n            \"items\": {\n              \"default\": {},\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"\n                }\n              ]\n            },\n            \"x-kubernetes-patch-merge-key\": \"uid\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"resourceVersion\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"selfLink\": {\n            \"description\": \"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\n            \"type\": \"string\"\n          },\n          \"uid\": {\n            \"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\",\n            \"type\": \"string\"\n          }\n        }\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\": {\n        \"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.\",\n        \"type\": \"object\",\n        \"required\": [\"apiVersion\", \"kind\", \"name\", \"uid\"],\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"API version of the referent.\",\n            \"type\": \"string\",\n            \"default\": \"\"\n          },\n          \"blockOwnerDeletion\": {\n            \"description\": \"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\n            \"type\": \"boolean\"\n          },\n          \"controller\": {\n            \"description\": \"If true, this reference points to the managing controller.\",\n            \"type\": \"boolean\"\n          },\n          \"kind\": {\n            \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\",\n            \"default\": \"\"\n          },\n          \"name\": {\n            \"description\": \"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n            \"type\": \"string\",\n            \"default\": \"\"\n          },\n          \"uid\": {\n            \"description\": \"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\n            \"type\": \"string\",\n            \"default\": \"\"\n          }\n        },\n        \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.Time\": {\n        \"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.\",\n        \"type\": \"string\",\n        \"format\": \"date-time\"\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "pkg/schemaconv/testdata/defaults.json",
    "content": "{\n    \"swagger\": \"2.0\",\n    \"info\": {\n        \"title\": \"Atomic Types\",\n        \"version\": \"v1.0.0\"\n    },\n    \"paths\": {},\n    \"definitions\": {\n        \"List\": {\n            \"type\": \"array\",\n            \"x-kubernetes-list-type\": \"map\",\n            \"x-kubernetes-list-map-keys\": [\"foo\"],\n            \"default\": {\"foo\": \"bar\"},\n            \"items\": {\n                \"type\": \"object\",\n                \"properties\": {\n                    \"foo\": {\n                        \"default\": \"buz\",\n                        \"type\": \"string\"\n                    }\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "pkg/schemaconv/testdata/defaults.yaml",
    "content": "types:\n- name: List\n  list:\n    elementType:\n      map:\n        fields:\n        - name: foo\n          type:\n            scalar: string\n          default: buz\n    elementRelationship: associative\n    keys:\n    - foo\n- name: __untyped_atomic_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n- name: __untyped_deduced_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_deduced_\n    elementRelationship: separable\n"
  },
  {
    "path": "pkg/schemaconv/testdata/field-level-annotation.json",
    "content": "{\n    \"definitions\": {\n        \"io.k8s.api.core.v1.ObjectReference\": {\n            \"description\": \"ObjectReference contains enough information to let you inspect or modify the referred object.\",\n            \"properties\": {\n                \"apiVersion\": {\n                    \"description\": \"API version of the referent.\",\n                    \"type\": \"string\"\n                },\n                \"fieldPath\": {\n                    \"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.\",\n                        \"type\": \"string\"\n                    },\n                    \"kind\": {\n                        \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n                        \"type\": \"string\"\n                    },\n                    \"name\": {\n                        \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n                        \"type\": \"string\"\n                    },\n                    \"namespace\": {\n                        \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n                        \"type\": \"string\"\n                    },\n                    \"resourceVersion\": {\n                        \"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\",\n                        \"type\": \"string\"\n                    },\n                    \"uid\": {\n                        \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n                        \"type\": \"string\"\n                    }\n                },\n                \"type\": \"object\"\n            },\n            \"io.k8s.api.core.v1.EndpointAddress\": {\n                \"description\": \"EndpointAddress is a tuple that describes single IP address.\",\n                \"properties\": {\n                    \"hostname\": {\n                        \"description\": \"The Hostname of this endpoint\",\n                        \"type\": \"string\"\n                    },\n                    \"ip\": {\n                        \"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.\",\n                        \"type\": \"string\"\n                    },\n                    \"nodeName\": {\n                        \"description\": \"Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\",\n                        \"type\": \"string\"\n                    },\n                    \"targetRef\": {\n                        \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\",\n                        \"description\": \"Reference to object providing the endpoint.\",\n                        \"x-kubernetes-map-type\": \"atomic\"\n                    }\n                },\n                \"required\": [\n                    \"ip\"\n                ],\n                \"type\": \"object\",\n                \"x-kubernetes-map-type\": \"atomic\"\n            }\n        },\n        \"info\": {\n            \"title\": \"Kubernetes\",\n            \"version\": \"unversioned\"\n        },\n        \"paths\": {},\n        \"security\": [\n            {\n                \"BearerToken\": []\n            }\n        ],\n        \"securityDefinitions\": {\n            \"BearerToken\": {\n                \"description\": \"Bearer Token authentication\",\n                \"in\": \"header\",\n                \"name\": \"authorization\",\n                \"type\": \"apiKey\"\n            }\n        },\n        \"swagger\": \"2.0\"\n    }"
  },
  {
    "path": "pkg/schemaconv/testdata/new-schema.yaml",
    "content": "types:\n- name: io.k8s.api.admissionregistration.v1.MutatingWebhook\n  map:\n    fields:\n    - name: admissionReviewVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: clientConfig\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.WebhookClientConfig\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: reinvocationPolicy\n      type:\n        scalar: string\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.RuleWithOperations\n          elementRelationship: atomic\n    - name: sideEffects\n      type:\n        scalar: string\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: webhooks\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.MutatingWebhook\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.admissionregistration.v1.RuleWithOperations\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: apiVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: operations\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: scope\n      type:\n        scalar: string\n- name: io.k8s.api.admissionregistration.v1.ServiceReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: path\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1.ValidatingWebhook\n  map:\n    fields:\n    - name: admissionReviewVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: clientConfig\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.WebhookClientConfig\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.RuleWithOperations\n          elementRelationship: atomic\n    - name: sideEffects\n      type:\n        scalar: string\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: webhooks\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.ValidatingWebhook\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.admissionregistration.v1.WebhookClientConfig\n  map:\n    fields:\n    - name: caBundle\n      type:\n        scalar: string\n    - name: service\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.ServiceReference\n    - name: url\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.ControllerRevision\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: data\n      type:\n        namedType: __untyped_atomic_\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: revision\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.ControllerRevisionList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.ControllerRevision\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.apps.v1.DaemonSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1.DaemonSetSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1.DaemonSetStatus\n- name: io.k8s.api.apps.v1.DaemonSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.DaemonSetList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.DaemonSet\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.apps.v1.DaemonSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.apps.v1.DaemonSetUpdateStrategy\n- name: io.k8s.api.apps.v1.DaemonSetStatus\n  map:\n    fields:\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.DaemonSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentNumberScheduled\n      type:\n        scalar: numeric\n    - name: desiredNumberScheduled\n      type:\n        scalar: numeric\n    - name: numberAvailable\n      type:\n        scalar: numeric\n    - name: numberMisscheduled\n      type:\n        scalar: numeric\n    - name: numberReady\n      type:\n        scalar: numeric\n    - name: numberUnavailable\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: updatedNumberScheduled\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.DaemonSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1.RollingUpdateDaemonSet\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.Deployment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1.DeploymentSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1.DeploymentStatus\n- name: io.k8s.api.apps.v1.DeploymentCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.DeploymentList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.Deployment\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.apps.v1.DeploymentSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: paused\n      type:\n        scalar: boolean\n    - name: progressDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: strategy\n      type:\n        namedType: io.k8s.api.apps.v1.DeploymentStrategy\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n- name: io.k8s.api.apps.v1.DeploymentStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.DeploymentCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: unavailableReplicas\n      type:\n        scalar: numeric\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.DeploymentStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1.RollingUpdateDeployment\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.ReplicaSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1.ReplicaSetSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1.ReplicaSetStatus\n- name: io.k8s.api.apps.v1.ReplicaSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.ReplicaSetList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.ReplicaSet\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.apps.v1.ReplicaSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n- name: io.k8s.api.apps.v1.ReplicaSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.ReplicaSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: fullyLabeledReplicas\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.RollingUpdateDaemonSet\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.apps.v1.RollingUpdateDeployment\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\n  map:\n    fields:\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: partition\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.StatefulSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetStatus\n- name: io.k8s.api.apps.v1.StatefulSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.StatefulSetList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.StatefulSet\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.apps.v1.StatefulSetOrdinals\n  map:\n    fields:\n    - name: start\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\n  map:\n    fields:\n    - name: whenDeleted\n      type:\n        scalar: string\n    - name: whenScaled\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.StatefulSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: ordinals\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetOrdinals\n    - name: persistentVolumeClaimRetentionPolicy\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\n    - name: podManagementPolicy\n      type:\n        scalar: string\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: serviceName\n      type:\n        scalar: string\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetUpdateStrategy\n    - name: volumeClaimTemplates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PersistentVolumeClaim\n          elementRelationship: atomic\n- name: io.k8s.api.apps.v1.StatefulSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.StatefulSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentReplicas\n      type:\n        scalar: numeric\n    - name: currentRevision\n      type:\n        scalar: string\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: updateRevision\n      type:\n        scalar: string\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.StatefulSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.authentication.v1.BoundObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n- name: io.k8s.api.authentication.v1.TokenRequest\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.authentication.v1.TokenRequestSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.authentication.v1.TokenRequestStatus\n- name: io.k8s.api.authentication.v1.TokenRequestSpec\n  map:\n    fields:\n    - name: audiences\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: boundObjectRef\n      type:\n        namedType: io.k8s.api.authentication.v1.BoundObjectReference\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.authentication.v1.TokenRequestStatus\n  map:\n    fields:\n    - name: expirationTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: token\n      type:\n        scalar: string\n- name: io.k8s.api.authentication.v1.TokenReview\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.authentication.v1.TokenReviewSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.authentication.v1.TokenReviewStatus\n- name: io.k8s.api.authentication.v1.TokenReviewSpec\n  map:\n    fields:\n    - name: audiences\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: token\n      type:\n        scalar: string\n- name: io.k8s.api.authentication.v1.TokenReviewStatus\n  map:\n    fields:\n    - name: audiences\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: authenticated\n      type:\n        scalar: boolean\n    - name: error\n      type:\n        scalar: string\n    - name: user\n      type:\n        namedType: io.k8s.api.authentication.v1.UserInfo\n- name: io.k8s.api.authentication.v1.UserInfo\n  map:\n    fields:\n    - name: extra\n      type:\n        map:\n          elementType:\n            list:\n              elementType:\n                scalar: string\n              elementRelationship: atomic\n    - name: groups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: uid\n      type:\n        scalar: string\n    - name: username\n      type:\n        scalar: string\n- name: io.k8s.api.authorization.v1.LocalSubjectAccessReview\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.authorization.v1.SubjectAccessReviewSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.authorization.v1.SubjectAccessReviewStatus\n- name: io.k8s.api.authorization.v1.NonResourceAttributes\n  map:\n    fields:\n    - name: path\n      type:\n        scalar: string\n    - name: verb\n      type:\n        scalar: string\n- name: io.k8s.api.authorization.v1.NonResourceRule\n  map:\n    fields:\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.authorization.v1.ResourceAttributes\n  map:\n    fields:\n    - name: group\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: resource\n      type:\n        scalar: string\n    - name: subresource\n      type:\n        scalar: string\n    - name: verb\n      type:\n        scalar: string\n    - name: version\n      type:\n        scalar: string\n- name: io.k8s.api.authorization.v1.ResourceRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resourceNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.authorization.v1.SelfSubjectAccessReview\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.authorization.v1.SubjectAccessReviewStatus\n- name: io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\n  map:\n    fields:\n    - name: nonResourceAttributes\n      type:\n        namedType: io.k8s.api.authorization.v1.NonResourceAttributes\n    - name: resourceAttributes\n      type:\n        namedType: io.k8s.api.authorization.v1.ResourceAttributes\n- name: io.k8s.api.authorization.v1.SelfSubjectRulesReview\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.authorization.v1.SubjectRulesReviewStatus\n- name: io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec\n  map:\n    fields:\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.authorization.v1.SubjectAccessReview\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.authorization.v1.SubjectAccessReviewSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.authorization.v1.SubjectAccessReviewStatus\n- name: io.k8s.api.authorization.v1.SubjectAccessReviewSpec\n  map:\n    fields:\n    - name: extra\n      type:\n        map:\n          elementType:\n            list:\n              elementType:\n                scalar: string\n              elementRelationship: atomic\n    - name: groups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: nonResourceAttributes\n      type:\n        namedType: io.k8s.api.authorization.v1.NonResourceAttributes\n    - name: resourceAttributes\n      type:\n        namedType: io.k8s.api.authorization.v1.ResourceAttributes\n    - name: uid\n      type:\n        scalar: string\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.authorization.v1.SubjectAccessReviewStatus\n  map:\n    fields:\n    - name: allowed\n      type:\n        scalar: boolean\n    - name: denied\n      type:\n        scalar: boolean\n    - name: evaluationError\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.authorization.v1.SubjectRulesReviewStatus\n  map:\n    fields:\n    - name: evaluationError\n      type:\n        scalar: string\n    - name: incomplete\n      type:\n        scalar: boolean\n    - name: nonResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.authorization.v1.NonResourceRule\n          elementRelationship: atomic\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.authorization.v1.ResourceRule\n          elementRelationship: atomic\n- name: io.k8s.api.autoscaling.v1.CrossVersionObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\n- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\n  map:\n    fields:\n    - name: maxReplicas\n      type:\n        scalar: numeric\n    - name: minReplicas\n      type:\n        scalar: numeric\n    - name: scaleTargetRef\n      type:\n        namedType: io.k8s.api.autoscaling.v1.CrossVersionObjectReference\n    - name: targetCPUUtilizationPercentage\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\n  map:\n    fields:\n    - name: currentCPUUtilizationPercentage\n      type:\n        scalar: numeric\n    - name: currentReplicas\n      type:\n        scalar: numeric\n    - name: desiredReplicas\n      type:\n        scalar: numeric\n    - name: lastScaleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v1.Scale\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.autoscaling.v1.ScaleSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.autoscaling.v1.ScaleStatus\n- name: io.k8s.api.autoscaling.v1.ScaleSpec\n  map:\n    fields:\n    - name: replicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v1.ScaleStatus\n  map:\n    fields:\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        scalar: string\n- name: io.k8s.api.autoscaling.v2.ContainerResourceMetricSource\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n- name: io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.autoscaling.v2.CrossVersionObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.autoscaling.v2.ExternalMetricSource\n  map:\n    fields:\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n- name: io.k8s.api.autoscaling.v2.ExternalMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n- name: io.k8s.api.autoscaling.v2.HPAScalingPolicy\n  map:\n    fields:\n    - name: periodSeconds\n      type:\n        scalar: numeric\n    - name: type\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2.HPAScalingRules\n  map:\n    fields:\n    - name: policies\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.HPAScalingPolicy\n          elementRelationship: atomic\n    - name: selectPolicy\n      type:\n        scalar: string\n    - name: stabilizationWindowSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior\n  map:\n    fields:\n    - name: scaleDown\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HPAScalingRules\n    - name: scaleUp\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HPAScalingRules\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec\n  map:\n    fields:\n    - name: behavior\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior\n    - name: maxReplicas\n      type:\n        scalar: numeric\n    - name: metrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.MetricSpec\n          elementRelationship: atomic\n    - name: minReplicas\n      type:\n        scalar: numeric\n    - name: scaleTargetRef\n      type:\n        namedType: io.k8s.api.autoscaling.v2.CrossVersionObjectReference\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentMetrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.MetricStatus\n          elementRelationship: atomic\n    - name: currentReplicas\n      type:\n        scalar: numeric\n    - name: desiredReplicas\n      type:\n        scalar: numeric\n    - name: lastScaleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2.MetricIdentifier\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.autoscaling.v2.MetricSpec\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ContainerResourceMetricSource\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ExternalMetricSource\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ObjectMetricSource\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2.PodsMetricSource\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ResourceMetricSource\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.autoscaling.v2.MetricStatus\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ExternalMetricStatus\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ObjectMetricStatus\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2.PodsMetricStatus\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ResourceMetricStatus\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.autoscaling.v2.MetricTarget\n  map:\n    fields:\n    - name: averageUtilization\n      type:\n        scalar: numeric\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: type\n      type:\n        scalar: string\n    - name: value\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2.MetricValueStatus\n  map:\n    fields:\n    - name: averageUtilization\n      type:\n        scalar: numeric\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: value\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2.ObjectMetricSource\n  map:\n    fields:\n    - name: describedObject\n      type:\n        namedType: io.k8s.api.autoscaling.v2.CrossVersionObjectReference\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n- name: io.k8s.api.autoscaling.v2.ObjectMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n    - name: describedObject\n      type:\n        namedType: io.k8s.api.autoscaling.v2.CrossVersionObjectReference\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n- name: io.k8s.api.autoscaling.v2.PodsMetricSource\n  map:\n    fields:\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n- name: io.k8s.api.autoscaling.v2.PodsMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n- name: io.k8s.api.autoscaling.v2.ResourceMetricSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n- name: io.k8s.api.autoscaling.v2.ResourceMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.batch.v1.CronJob\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1.CronJobSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.batch.v1.CronJobStatus\n- name: io.k8s.api.batch.v1.CronJobList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.batch.v1.CronJob\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.batch.v1.CronJobSpec\n  map:\n    fields:\n    - name: concurrencyPolicy\n      type:\n        scalar: string\n    - name: failedJobsHistoryLimit\n      type:\n        scalar: numeric\n    - name: jobTemplate\n      type:\n        namedType: io.k8s.api.batch.v1.JobTemplateSpec\n    - name: schedule\n      type:\n        scalar: string\n    - name: startingDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: successfulJobsHistoryLimit\n      type:\n        scalar: numeric\n    - name: suspend\n      type:\n        scalar: boolean\n    - name: timeZone\n      type:\n        scalar: string\n- name: io.k8s.api.batch.v1.CronJobStatus\n  map:\n    fields:\n    - name: active\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ObjectReference\n          elementRelationship: atomic\n    - name: lastScheduleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastSuccessfulTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.batch.v1.Job\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1.JobSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.batch.v1.JobStatus\n- name: io.k8s.api.batch.v1.JobCondition\n  map:\n    fields:\n    - name: lastProbeTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.batch.v1.JobList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.batch.v1.Job\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.batch.v1.JobSpec\n  map:\n    fields:\n    - name: activeDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: backoffLimit\n      type:\n        scalar: numeric\n    - name: completionMode\n      type:\n        scalar: string\n    - name: completions\n      type:\n        scalar: numeric\n    - name: manualSelector\n      type:\n        scalar: boolean\n    - name: parallelism\n      type:\n        scalar: numeric\n    - name: podFailurePolicy\n      type:\n        namedType: io.k8s.api.batch.v1.PodFailurePolicy\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: suspend\n      type:\n        scalar: boolean\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n    - name: ttlSecondsAfterFinished\n      type:\n        scalar: numeric\n- name: io.k8s.api.batch.v1.JobStatus\n  map:\n    fields:\n    - name: active\n      type:\n        scalar: numeric\n    - name: completedIndexes\n      type:\n        scalar: string\n    - name: completionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.batch.v1.JobCondition\n          elementRelationship: atomic\n    - name: failed\n      type:\n        scalar: numeric\n    - name: ready\n      type:\n        scalar: numeric\n    - name: startTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: succeeded\n      type:\n        scalar: numeric\n    - name: uncountedTerminatedPods\n      type:\n        namedType: io.k8s.api.batch.v1.UncountedTerminatedPods\n- name: io.k8s.api.batch.v1.JobTemplateSpec\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1.JobSpec\n- name: io.k8s.api.batch.v1.PodFailurePolicy\n  map:\n    fields:\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.batch.v1.PodFailurePolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement\n  map:\n    fields:\n    - name: containerName\n      type:\n        scalar: string\n    - name: operator\n      type:\n        scalar: string\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: numeric\n          elementRelationship: associative\n- name: io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern\n  map:\n    fields:\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.batch.v1.PodFailurePolicyRule\n  map:\n    fields:\n    - name: action\n      type:\n        scalar: string\n    - name: onExitCodes\n      type:\n        namedType: io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement\n    - name: onPodConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern\n          elementRelationship: atomic\n- name: io.k8s.api.batch.v1.UncountedTerminatedPods\n  map:\n    fields:\n    - name: failed\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: succeeded\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.certificates.v1.CertificateSigningRequest\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.certificates.v1.CertificateSigningRequestSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.certificates.v1.CertificateSigningRequestStatus\n- name: io.k8s.api.certificates.v1.CertificateSigningRequestCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.certificates.v1.CertificateSigningRequestList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.certificates.v1.CertificateSigningRequest\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.certificates.v1.CertificateSigningRequestSpec\n  map:\n    fields:\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n    - name: extra\n      type:\n        map:\n          elementType:\n            list:\n              elementType:\n                scalar: string\n              elementRelationship: atomic\n    - name: groups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: request\n      type:\n        scalar: string\n    - name: signerName\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n    - name: usages\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: username\n      type:\n        scalar: string\n- name: io.k8s.api.certificates.v1.CertificateSigningRequestStatus\n  map:\n    fields:\n    - name: certificate\n      type:\n        scalar: string\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.certificates.v1.CertificateSigningRequestCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.coordination.v1.Lease\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.coordination.v1.LeaseSpec\n- name: io.k8s.api.coordination.v1.LeaseList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.coordination.v1.Lease\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.coordination.v1.LeaseSpec\n  map:\n    fields:\n    - name: acquireTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: holderIdentity\n      type:\n        scalar: string\n    - name: leaseDurationSeconds\n      type:\n        scalar: numeric\n    - name: leaseTransitions\n      type:\n        scalar: numeric\n    - name: renewTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n- name: io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: partition\n      type:\n        scalar: numeric\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: volumeID\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Affinity\n  map:\n    fields:\n    - name: nodeAffinity\n      type:\n        namedType: io.k8s.api.core.v1.NodeAffinity\n    - name: podAffinity\n      type:\n        namedType: io.k8s.api.core.v1.PodAffinity\n    - name: podAntiAffinity\n      type:\n        namedType: io.k8s.api.core.v1.PodAntiAffinity\n- name: io.k8s.api.core.v1.AttachedVolume\n  map:\n    fields:\n    - name: devicePath\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.AzureDiskVolumeSource\n  map:\n    fields:\n    - name: cachingMode\n      type:\n        scalar: string\n    - name: diskName\n      type:\n        scalar: string\n    - name: diskURI\n      type:\n        scalar: string\n    - name: fsType\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.AzureFilePersistentVolumeSource\n  map:\n    fields:\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretName\n      type:\n        scalar: string\n    - name: secretNamespace\n      type:\n        scalar: string\n    - name: shareName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.AzureFileVolumeSource\n  map:\n    fields:\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretName\n      type:\n        scalar: string\n    - name: shareName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Binding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: target\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n- name: io.k8s.api.core.v1.CSIPersistentVolumeSource\n  map:\n    fields:\n    - name: controllerExpandSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: controllerPublishSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: driver\n      type:\n        scalar: string\n    - name: fsType\n      type:\n        scalar: string\n    - name: nodeExpandSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: nodePublishSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: nodeStageSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: volumeAttributes\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: volumeHandle\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.CSIVolumeSource\n  map:\n    fields:\n    - name: driver\n      type:\n        scalar: string\n    - name: fsType\n      type:\n        scalar: string\n    - name: nodePublishSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: volumeAttributes\n      type:\n        map:\n          elementType:\n            scalar: string\n- name: io.k8s.api.core.v1.Capabilities\n  map:\n    fields:\n    - name: add\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: drop\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.CephFSPersistentVolumeSource\n  map:\n    fields:\n    - name: monitors\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: path\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretFile\n      type:\n        scalar: string\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.CephFSVolumeSource\n  map:\n    fields:\n    - name: monitors\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: path\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretFile\n      type:\n        scalar: string\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.CinderPersistentVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: volumeID\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.CinderVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: volumeID\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ClaimSource\n  map:\n    fields:\n    - name: resourceClaimName\n      type:\n        scalar: string\n    - name: resourceClaimTemplateName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ClientIPConfig\n  map:\n    fields:\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.ComponentCondition\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: message\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ComponentStatus\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ComponentCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n- name: io.k8s.api.core.v1.ComponentStatusList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ComponentStatus\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.ConfigMap\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: binaryData\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: data\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: immutable\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n- name: io.k8s.api.core.v1.ConfigMapEnvSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.ConfigMapKeySelector\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.ConfigMapList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ConfigMap\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.ConfigMapNodeConfigSource\n  map:\n    fields:\n    - name: kubeletConfigKey\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ConfigMapProjection\n  map:\n    fields:\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.KeyToPath\n          elementRelationship: atomic\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.ConfigMapVolumeSource\n  map:\n    fields:\n    - name: defaultMode\n      type:\n        scalar: numeric\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.KeyToPath\n          elementRelationship: atomic\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.Container\n  map:\n    fields:\n    - name: args\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: command\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: env\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EnvVar\n          elementRelationship: associative\n          keys:\n          - name\n    - name: envFrom\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EnvFromSource\n          elementRelationship: atomic\n    - name: image\n      type:\n        scalar: string\n    - name: imagePullPolicy\n      type:\n        scalar: string\n    - name: lifecycle\n      type:\n        namedType: io.k8s.api.core.v1.Lifecycle\n    - name: livenessProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: name\n      type:\n        scalar: string\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerPort\n          elementRelationship: associative\n          keys:\n          - containerPort\n          - protocol\n    - name: readinessProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: resources\n      type:\n        namedType: io.k8s.api.core.v1.ResourceRequirements\n    - name: securityContext\n      type:\n        namedType: io.k8s.api.core.v1.SecurityContext\n    - name: startupProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: stdin\n      type:\n        scalar: boolean\n    - name: stdinOnce\n      type:\n        scalar: boolean\n    - name: terminationMessagePath\n      type:\n        scalar: string\n    - name: terminationMessagePolicy\n      type:\n        scalar: string\n    - name: tty\n      type:\n        scalar: boolean\n    - name: volumeDevices\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeDevice\n          elementRelationship: associative\n          keys:\n          - devicePath\n    - name: volumeMounts\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeMount\n          elementRelationship: associative\n          keys:\n          - mountPath\n    - name: workingDir\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ContainerImage\n  map:\n    fields:\n    - name: names\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: sizeBytes\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.ContainerPort\n  map:\n    fields:\n    - name: containerPort\n      type:\n        scalar: numeric\n    - name: hostIP\n      type:\n        scalar: string\n    - name: hostPort\n      type:\n        scalar: numeric\n    - name: name\n      type:\n        scalar: string\n    - name: protocol\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ContainerState\n  map:\n    fields:\n    - name: running\n      type:\n        namedType: io.k8s.api.core.v1.ContainerStateRunning\n    - name: terminated\n      type:\n        namedType: io.k8s.api.core.v1.ContainerStateTerminated\n    - name: waiting\n      type:\n        namedType: io.k8s.api.core.v1.ContainerStateWaiting\n- name: io.k8s.api.core.v1.ContainerStateRunning\n  map:\n    fields:\n    - name: startedAt\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.core.v1.ContainerStateTerminated\n  map:\n    fields:\n    - name: containerID\n      type:\n        scalar: string\n    - name: exitCode\n      type:\n        scalar: numeric\n    - name: finishedAt\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: signal\n      type:\n        scalar: numeric\n    - name: startedAt\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.core.v1.ContainerStateWaiting\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ContainerStatus\n  map:\n    fields:\n    - name: containerID\n      type:\n        scalar: string\n    - name: image\n      type:\n        scalar: string\n    - name: imageID\n      type:\n        scalar: string\n    - name: lastState\n      type:\n        namedType: io.k8s.api.core.v1.ContainerState\n    - name: name\n      type:\n        scalar: string\n    - name: ready\n      type:\n        scalar: boolean\n    - name: restartCount\n      type:\n        scalar: numeric\n    - name: started\n      type:\n        scalar: boolean\n    - name: state\n      type:\n        namedType: io.k8s.api.core.v1.ContainerState\n- name: io.k8s.api.core.v1.DaemonEndpoint\n  map:\n    fields:\n    - name: Port\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.DownwardAPIProjection\n  map:\n    fields:\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.DownwardAPIVolumeFile\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.DownwardAPIVolumeFile\n  map:\n    fields:\n    - name: fieldRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectFieldSelector\n    - name: mode\n      type:\n        scalar: numeric\n    - name: path\n      type:\n        scalar: string\n    - name: resourceFieldRef\n      type:\n        namedType: io.k8s.api.core.v1.ResourceFieldSelector\n- name: io.k8s.api.core.v1.DownwardAPIVolumeSource\n  map:\n    fields:\n    - name: defaultMode\n      type:\n        scalar: numeric\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.DownwardAPIVolumeFile\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.EmptyDirVolumeSource\n  map:\n    fields:\n    - name: medium\n      type:\n        scalar: string\n    - name: sizeLimit\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.core.v1.EndpointAddress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n    - name: nodeName\n      type:\n        scalar: string\n    - name: targetRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.EndpointPort\n  map:\n    fields:\n    - name: appProtocol\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n    - name: protocol\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.EndpointSubset\n  map:\n    fields:\n    - name: addresses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EndpointAddress\n          elementRelationship: atomic\n    - name: notReadyAddresses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EndpointAddress\n          elementRelationship: atomic\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EndpointPort\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.Endpoints\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: subsets\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EndpointSubset\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.EndpointsList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Endpoints\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.EnvFromSource\n  map:\n    fields:\n    - name: configMapRef\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapEnvSource\n    - name: prefix\n      type:\n        scalar: string\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretEnvSource\n- name: io.k8s.api.core.v1.EnvVar\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: string\n    - name: valueFrom\n      type:\n        namedType: io.k8s.api.core.v1.EnvVarSource\n- name: io.k8s.api.core.v1.EnvVarSource\n  map:\n    fields:\n    - name: configMapKeyRef\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapKeySelector\n    - name: fieldRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectFieldSelector\n    - name: resourceFieldRef\n      type:\n        namedType: io.k8s.api.core.v1.ResourceFieldSelector\n    - name: secretKeyRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretKeySelector\n- name: io.k8s.api.core.v1.EphemeralContainer\n  map:\n    fields:\n    - name: args\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: command\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: env\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EnvVar\n          elementRelationship: associative\n          keys:\n          - name\n    - name: envFrom\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EnvFromSource\n          elementRelationship: atomic\n    - name: image\n      type:\n        scalar: string\n    - name: imagePullPolicy\n      type:\n        scalar: string\n    - name: lifecycle\n      type:\n        namedType: io.k8s.api.core.v1.Lifecycle\n    - name: livenessProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: name\n      type:\n        scalar: string\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerPort\n          elementRelationship: associative\n          keys:\n          - containerPort\n          - protocol\n    - name: readinessProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: resources\n      type:\n        namedType: io.k8s.api.core.v1.ResourceRequirements\n    - name: securityContext\n      type:\n        namedType: io.k8s.api.core.v1.SecurityContext\n    - name: startupProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: stdin\n      type:\n        scalar: boolean\n    - name: stdinOnce\n      type:\n        scalar: boolean\n    - name: targetContainerName\n      type:\n        scalar: string\n    - name: terminationMessagePath\n      type:\n        scalar: string\n    - name: terminationMessagePolicy\n      type:\n        scalar: string\n    - name: tty\n      type:\n        scalar: boolean\n    - name: volumeDevices\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeDevice\n          elementRelationship: associative\n          keys:\n          - devicePath\n    - name: volumeMounts\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeMount\n          elementRelationship: associative\n          keys:\n          - mountPath\n    - name: workingDir\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.EphemeralVolumeSource\n  map:\n    fields:\n    - name: volumeClaimTemplate\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimTemplate\n- name: io.k8s.api.core.v1.Event\n  map:\n    fields:\n    - name: action\n      type:\n        scalar: string\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: count\n      type:\n        scalar: numeric\n    - name: eventTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: firstTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: involvedObject\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: kind\n      type:\n        scalar: string\n    - name: lastTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: reason\n      type:\n        scalar: string\n    - name: related\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: reportingComponent\n      type:\n        scalar: string\n    - name: reportingInstance\n      type:\n        scalar: string\n    - name: series\n      type:\n        namedType: io.k8s.api.core.v1.EventSeries\n    - name: source\n      type:\n        namedType: io.k8s.api.core.v1.EventSource\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.EventList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Event\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.EventSeries\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n    - name: lastObservedTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n- name: io.k8s.api.core.v1.EventSource\n  map:\n    fields:\n    - name: component\n      type:\n        scalar: string\n    - name: host\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ExecAction\n  map:\n    fields:\n    - name: command\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.FCVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: lun\n      type:\n        scalar: numeric\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: targetWWNs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: wwids\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.FlexPersistentVolumeSource\n  map:\n    fields:\n    - name: driver\n      type:\n        scalar: string\n    - name: fsType\n      type:\n        scalar: string\n    - name: options\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n- name: io.k8s.api.core.v1.FlexVolumeSource\n  map:\n    fields:\n    - name: driver\n      type:\n        scalar: string\n    - name: fsType\n      type:\n        scalar: string\n    - name: options\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n- name: io.k8s.api.core.v1.FlockerVolumeSource\n  map:\n    fields:\n    - name: datasetName\n      type:\n        scalar: string\n    - name: datasetUUID\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: partition\n      type:\n        scalar: numeric\n    - name: pdName\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.GRPCAction\n  map:\n    fields:\n    - name: port\n      type:\n        scalar: numeric\n    - name: service\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.GitRepoVolumeSource\n  map:\n    fields:\n    - name: directory\n      type:\n        scalar: string\n    - name: repository\n      type:\n        scalar: string\n    - name: revision\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\n  map:\n    fields:\n    - name: endpoints\n      type:\n        scalar: string\n    - name: endpointsNamespace\n      type:\n        scalar: string\n    - name: path\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.GlusterfsVolumeSource\n  map:\n    fields:\n    - name: endpoints\n      type:\n        scalar: string\n    - name: path\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.HTTPGetAction\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: httpHeaders\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.HTTPHeader\n          elementRelationship: atomic\n    - name: path\n      type:\n        scalar: string\n    - name: port\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: scheme\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.HTTPHeader\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.HostAlias\n  map:\n    fields:\n    - name: hostnames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: ip\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.HostPathVolumeSource\n  map:\n    fields:\n    - name: path\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ISCSIPersistentVolumeSource\n  map:\n    fields:\n    - name: chapAuthDiscovery\n      type:\n        scalar: boolean\n    - name: chapAuthSession\n      type:\n        scalar: boolean\n    - name: fsType\n      type:\n        scalar: string\n    - name: initiatorName\n      type:\n        scalar: string\n    - name: iqn\n      type:\n        scalar: string\n    - name: iscsiInterface\n      type:\n        scalar: string\n    - name: lun\n      type:\n        scalar: numeric\n    - name: portals\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: targetPortal\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ISCSIVolumeSource\n  map:\n    fields:\n    - name: chapAuthDiscovery\n      type:\n        scalar: boolean\n    - name: chapAuthSession\n      type:\n        scalar: boolean\n    - name: fsType\n      type:\n        scalar: string\n    - name: initiatorName\n      type:\n        scalar: string\n    - name: iqn\n      type:\n        scalar: string\n    - name: iscsiInterface\n      type:\n        scalar: string\n    - name: lun\n      type:\n        scalar: numeric\n    - name: portals\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: targetPortal\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.KeyToPath\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n    - name: mode\n      type:\n        scalar: numeric\n    - name: path\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Lifecycle\n  map:\n    fields:\n    - name: postStart\n      type:\n        namedType: io.k8s.api.core.v1.LifecycleHandler\n    - name: preStop\n      type:\n        namedType: io.k8s.api.core.v1.LifecycleHandler\n- name: io.k8s.api.core.v1.LifecycleHandler\n  map:\n    fields:\n    - name: exec\n      type:\n        namedType: io.k8s.api.core.v1.ExecAction\n    - name: httpGet\n      type:\n        namedType: io.k8s.api.core.v1.HTTPGetAction\n    - name: tcpSocket\n      type:\n        namedType: io.k8s.api.core.v1.TCPSocketAction\n- name: io.k8s.api.core.v1.LimitRange\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.LimitRangeSpec\n- name: io.k8s.api.core.v1.LimitRangeItem\n  map:\n    fields:\n    - name: default\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: defaultRequest\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: max\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: maxLimitRequestRatio\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: min\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.LimitRangeList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LimitRange\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.LimitRangeSpec\n  map:\n    fields:\n    - name: limits\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LimitRangeItem\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.LoadBalancerIngress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PortStatus\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.LoadBalancerStatus\n  map:\n    fields:\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LoadBalancerIngress\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.LocalObjectReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.LocalVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: path\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.NFSVolumeSource\n  map:\n    fields:\n    - name: path\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: server\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Namespace\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.NamespaceSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.NamespaceStatus\n- name: io.k8s.api.core.v1.NamespaceCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.NamespaceList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Namespace\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.NamespaceSpec\n  map:\n    fields:\n    - name: finalizers\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.NamespaceStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NamespaceCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: phase\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Node\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.NodeSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.NodeStatus\n- name: io.k8s.api.core.v1.NodeAddress\n  map:\n    fields:\n    - name: address\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.NodeAffinity\n  map:\n    fields:\n    - name: preferredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PreferredSchedulingTerm\n          elementRelationship: atomic\n    - name: requiredDuringSchedulingIgnoredDuringExecution\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n- name: io.k8s.api.core.v1.NodeCondition\n  map:\n    fields:\n    - name: lastHeartbeatTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.NodeConfigSource\n  map:\n    fields:\n    - name: configMap\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapNodeConfigSource\n- name: io.k8s.api.core.v1.NodeConfigStatus\n  map:\n    fields:\n    - name: active\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigSource\n    - name: assigned\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigSource\n    - name: error\n      type:\n        scalar: string\n    - name: lastKnownGood\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigSource\n- name: io.k8s.api.core.v1.NodeDaemonEndpoints\n  map:\n    fields:\n    - name: kubeletEndpoint\n      type:\n        namedType: io.k8s.api.core.v1.DaemonEndpoint\n- name: io.k8s.api.core.v1.NodeList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Node\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.NodeSelector\n  map:\n    fields:\n    - name: nodeSelectorTerms\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeSelectorTerm\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.NodeSelectorRequirement\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n    - name: operator\n      type:\n        scalar: string\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.NodeSelectorTerm\n  map:\n    fields:\n    - name: matchExpressions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeSelectorRequirement\n          elementRelationship: atomic\n    - name: matchFields\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeSelectorRequirement\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.NodeSpec\n  map:\n    fields:\n    - name: configSource\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigSource\n    - name: externalID\n      type:\n        scalar: string\n    - name: podCIDR\n      type:\n        scalar: string\n    - name: podCIDRs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: providerID\n      type:\n        scalar: string\n    - name: taints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Taint\n          elementRelationship: atomic\n    - name: unschedulable\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.NodeStatus\n  map:\n    fields:\n    - name: addresses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeAddress\n          elementRelationship: associative\n          keys:\n          - type\n    - name: allocatable\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: capacity\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: config\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigStatus\n    - name: daemonEndpoints\n      type:\n        namedType: io.k8s.api.core.v1.NodeDaemonEndpoints\n    - name: images\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerImage\n          elementRelationship: atomic\n    - name: nodeInfo\n      type:\n        namedType: io.k8s.api.core.v1.NodeSystemInfo\n    - name: phase\n      type:\n        scalar: string\n    - name: volumesAttached\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.AttachedVolume\n          elementRelationship: atomic\n    - name: volumesInUse\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.NodeSystemInfo\n  map:\n    fields:\n    - name: architecture\n      type:\n        scalar: string\n    - name: bootID\n      type:\n        scalar: string\n    - name: containerRuntimeVersion\n      type:\n        scalar: string\n    - name: kernelVersion\n      type:\n        scalar: string\n    - name: kubeProxyVersion\n      type:\n        scalar: string\n    - name: kubeletVersion\n      type:\n        scalar: string\n    - name: machineID\n      type:\n        scalar: string\n    - name: operatingSystem\n      type:\n        scalar: string\n    - name: osImage\n      type:\n        scalar: string\n    - name: systemUUID\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ObjectFieldSelector\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: fieldPath\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.ObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: fieldPath\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.PersistentVolume\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeStatus\n- name: io.k8s.api.core.v1.PersistentVolumeClaim\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimStatus\n- name: io.k8s.api.core.v1.PersistentVolumeClaimCondition\n  map:\n    fields:\n    - name: lastProbeTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PersistentVolumeClaimList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PersistentVolumeClaim\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.PersistentVolumeClaimSpec\n  map:\n    fields:\n    - name: accessModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: dataSource\n      type:\n        namedType: io.k8s.api.core.v1.TypedLocalObjectReference\n    - name: dataSourceRef\n      type:\n        namedType: io.k8s.api.core.v1.TypedObjectReference\n    - name: resources\n      type:\n        namedType: io.k8s.api.core.v1.ResourceRequirements\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: storageClassName\n      type:\n        scalar: string\n    - name: volumeMode\n      type:\n        scalar: string\n    - name: volumeName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PersistentVolumeClaimStatus\n  map:\n    fields:\n    - name: accessModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: allocatedResources\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: capacity\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PersistentVolumeClaimCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: phase\n      type:\n        scalar: string\n    - name: resizeStatus\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PersistentVolumeClaimTemplate\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimSpec\n- name: io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\n  map:\n    fields:\n    - name: claimName\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.PersistentVolumeList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PersistentVolume\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.PersistentVolumeSpec\n  map:\n    fields:\n    - name: accessModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: awsElasticBlockStore\n      type:\n        namedType: io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\n    - name: azureDisk\n      type:\n        namedType: io.k8s.api.core.v1.AzureDiskVolumeSource\n    - name: azureFile\n      type:\n        namedType: io.k8s.api.core.v1.AzureFilePersistentVolumeSource\n    - name: capacity\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: cephfs\n      type:\n        namedType: io.k8s.api.core.v1.CephFSPersistentVolumeSource\n    - name: cinder\n      type:\n        namedType: io.k8s.api.core.v1.CinderPersistentVolumeSource\n    - name: claimRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n        elementRelationship: separable\n    - name: csi\n      type:\n        namedType: io.k8s.api.core.v1.CSIPersistentVolumeSource\n    - name: fc\n      type:\n        namedType: io.k8s.api.core.v1.FCVolumeSource\n    - name: flexVolume\n      type:\n        namedType: io.k8s.api.core.v1.FlexPersistentVolumeSource\n    - name: flocker\n      type:\n        namedType: io.k8s.api.core.v1.FlockerVolumeSource\n    - name: gcePersistentDisk\n      type:\n        namedType: io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\n    - name: glusterfs\n      type:\n        namedType: io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\n    - name: hostPath\n      type:\n        namedType: io.k8s.api.core.v1.HostPathVolumeSource\n    - name: iscsi\n      type:\n        namedType: io.k8s.api.core.v1.ISCSIPersistentVolumeSource\n    - name: local\n      type:\n        namedType: io.k8s.api.core.v1.LocalVolumeSource\n    - name: mountOptions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: nfs\n      type:\n        namedType: io.k8s.api.core.v1.NFSVolumeSource\n    - name: nodeAffinity\n      type:\n        namedType: io.k8s.api.core.v1.VolumeNodeAffinity\n    - name: persistentVolumeReclaimPolicy\n      type:\n        scalar: string\n    - name: photonPersistentDisk\n      type:\n        namedType: io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\n    - name: portworxVolume\n      type:\n        namedType: io.k8s.api.core.v1.PortworxVolumeSource\n    - name: quobyte\n      type:\n        namedType: io.k8s.api.core.v1.QuobyteVolumeSource\n    - name: rbd\n      type:\n        namedType: io.k8s.api.core.v1.RBDPersistentVolumeSource\n    - name: scaleIO\n      type:\n        namedType: io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\n    - name: storageClassName\n      type:\n        scalar: string\n    - name: storageos\n      type:\n        namedType: io.k8s.api.core.v1.StorageOSPersistentVolumeSource\n    - name: volumeMode\n      type:\n        scalar: string\n    - name: vsphereVolume\n      type:\n        namedType: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\n- name: io.k8s.api.core.v1.PersistentVolumeStatus\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: phase\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: pdID\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Pod\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PodSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.PodStatus\n- name: io.k8s.api.core.v1.PodAffinity\n  map:\n    fields:\n    - name: preferredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.WeightedPodAffinityTerm\n          elementRelationship: atomic\n    - name: requiredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodAffinityTerm\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.PodAffinityTerm\n  map:\n    fields:\n    - name: labelSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: topologyKey\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PodAntiAffinity\n  map:\n    fields:\n    - name: preferredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.WeightedPodAffinityTerm\n          elementRelationship: atomic\n    - name: requiredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodAffinityTerm\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.PodCondition\n  map:\n    fields:\n    - name: lastProbeTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PodDNSConfig\n  map:\n    fields:\n    - name: nameservers\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: options\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodDNSConfigOption\n          elementRelationship: atomic\n    - name: searches\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.PodDNSConfigOption\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PodIP\n  map:\n    fields:\n    - name: ip\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PodList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Pod\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.PodOS\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PodReadinessGate\n  map:\n    fields:\n    - name: conditionType\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PodResourceClaim\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: source\n      type:\n        namedType: io.k8s.api.core.v1.ClaimSource\n- name: io.k8s.api.core.v1.PodSchedulingGate\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PodSecurityContext\n  map:\n    fields:\n    - name: fsGroup\n      type:\n        scalar: numeric\n    - name: fsGroupChangePolicy\n      type:\n        scalar: string\n    - name: runAsGroup\n      type:\n        scalar: numeric\n    - name: runAsNonRoot\n      type:\n        scalar: boolean\n    - name: runAsUser\n      type:\n        scalar: numeric\n    - name: seLinuxOptions\n      type:\n        namedType: io.k8s.api.core.v1.SELinuxOptions\n    - name: seccompProfile\n      type:\n        namedType: io.k8s.api.core.v1.SeccompProfile\n    - name: supplementalGroups\n      type:\n        list:\n          elementType:\n            scalar: numeric\n          elementRelationship: atomic\n    - name: sysctls\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Sysctl\n          elementRelationship: atomic\n    - name: windowsOptions\n      type:\n        namedType: io.k8s.api.core.v1.WindowsSecurityContextOptions\n- name: io.k8s.api.core.v1.PodSpec\n  map:\n    fields:\n    - name: activeDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: affinity\n      type:\n        namedType: io.k8s.api.core.v1.Affinity\n    - name: automountServiceAccountToken\n      type:\n        scalar: boolean\n    - name: containers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Container\n          elementRelationship: associative\n          keys:\n          - name\n    - name: dnsConfig\n      type:\n        namedType: io.k8s.api.core.v1.PodDNSConfig\n    - name: dnsPolicy\n      type:\n        scalar: string\n    - name: enableServiceLinks\n      type:\n        scalar: boolean\n    - name: ephemeralContainers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EphemeralContainer\n          elementRelationship: associative\n          keys:\n          - name\n    - name: hostAliases\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.HostAlias\n          elementRelationship: associative\n          keys:\n          - ip\n    - name: hostIPC\n      type:\n        scalar: boolean\n    - name: hostNetwork\n      type:\n        scalar: boolean\n    - name: hostPID\n      type:\n        scalar: boolean\n    - name: hostUsers\n      type:\n        scalar: boolean\n    - name: hostname\n      type:\n        scalar: string\n    - name: imagePullSecrets\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LocalObjectReference\n          elementRelationship: associative\n          keys:\n          - name\n    - name: initContainers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Container\n          elementRelationship: associative\n          keys:\n          - name\n    - name: nodeName\n      type:\n        scalar: string\n    - name: nodeSelector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: os\n      type:\n        namedType: io.k8s.api.core.v1.PodOS\n    - name: overhead\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: preemptionPolicy\n      type:\n        scalar: string\n    - name: priority\n      type:\n        scalar: numeric\n    - name: priorityClassName\n      type:\n        scalar: string\n    - name: readinessGates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodReadinessGate\n          elementRelationship: atomic\n    - name: resourceClaims\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodResourceClaim\n          elementRelationship: associative\n          keys:\n          - name\n    - name: restartPolicy\n      type:\n        scalar: string\n    - name: runtimeClassName\n      type:\n        scalar: string\n    - name: schedulerName\n      type:\n        scalar: string\n    - name: schedulingGates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodSchedulingGate\n          elementRelationship: associative\n          keys:\n          - name\n    - name: securityContext\n      type:\n        namedType: io.k8s.api.core.v1.PodSecurityContext\n    - name: serviceAccount\n      type:\n        scalar: string\n    - name: serviceAccountName\n      type:\n        scalar: string\n    - name: setHostnameAsFQDN\n      type:\n        scalar: boolean\n    - name: shareProcessNamespace\n      type:\n        scalar: boolean\n    - name: subdomain\n      type:\n        scalar: string\n    - name: terminationGracePeriodSeconds\n      type:\n        scalar: numeric\n    - name: tolerations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Toleration\n          elementRelationship: atomic\n    - name: topologySpreadConstraints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.TopologySpreadConstraint\n          elementRelationship: associative\n          keys:\n          - topologyKey\n          - whenUnsatisfiable\n    - name: volumes\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Volume\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.core.v1.PodStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: containerStatuses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerStatus\n          elementRelationship: atomic\n    - name: ephemeralContainerStatuses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerStatus\n          elementRelationship: atomic\n    - name: hostIP\n      type:\n        scalar: string\n    - name: initContainerStatuses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerStatus\n          elementRelationship: atomic\n    - name: message\n      type:\n        scalar: string\n    - name: nominatedNodeName\n      type:\n        scalar: string\n    - name: phase\n      type:\n        scalar: string\n    - name: podIP\n      type:\n        scalar: string\n    - name: podIPs\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodIP\n          elementRelationship: associative\n          keys:\n          - ip\n    - name: qosClass\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: startTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.core.v1.PodTemplate\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n- name: io.k8s.api.core.v1.PodTemplateList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodTemplate\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.PodTemplateSpec\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PodSpec\n- name: io.k8s.api.core.v1.PortStatus\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n    - name: protocol\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PortworxVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: volumeID\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PreferredSchedulingTerm\n  map:\n    fields:\n    - name: preference\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelectorTerm\n    - name: weight\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.Probe\n  map:\n    fields:\n    - name: exec\n      type:\n        namedType: io.k8s.api.core.v1.ExecAction\n    - name: failureThreshold\n      type:\n        scalar: numeric\n    - name: grpc\n      type:\n        namedType: io.k8s.api.core.v1.GRPCAction\n    - name: httpGet\n      type:\n        namedType: io.k8s.api.core.v1.HTTPGetAction\n    - name: initialDelaySeconds\n      type:\n        scalar: numeric\n    - name: periodSeconds\n      type:\n        scalar: numeric\n    - name: successThreshold\n      type:\n        scalar: numeric\n    - name: tcpSocket\n      type:\n        namedType: io.k8s.api.core.v1.TCPSocketAction\n    - name: terminationGracePeriodSeconds\n      type:\n        scalar: numeric\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.ProjectedVolumeSource\n  map:\n    fields:\n    - name: defaultMode\n      type:\n        scalar: numeric\n    - name: sources\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeProjection\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.QuobyteVolumeSource\n  map:\n    fields:\n    - name: group\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: registry\n      type:\n        scalar: string\n    - name: tenant\n      type:\n        scalar: string\n    - name: user\n      type:\n        scalar: string\n    - name: volume\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.RBDPersistentVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: image\n      type:\n        scalar: string\n    - name: keyring\n      type:\n        scalar: string\n    - name: monitors\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: pool\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.RBDVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: image\n      type:\n        scalar: string\n    - name: keyring\n      type:\n        scalar: string\n    - name: monitors\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: pool\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ReplicationController\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.ReplicationControllerSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.ReplicationControllerStatus\n- name: io.k8s.api.core.v1.ReplicationControllerCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ReplicationControllerList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ReplicationController\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.ReplicationControllerSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n- name: io.k8s.api.core.v1.ReplicationControllerStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ReplicationControllerCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: fullyLabeledReplicas\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.ResourceClaim\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ResourceFieldSelector\n  map:\n    fields:\n    - name: containerName\n      type:\n        scalar: string\n    - name: divisor\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: resource\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.ResourceQuota\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.ResourceQuotaSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.ResourceQuotaStatus\n- name: io.k8s.api.core.v1.ResourceQuotaList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ResourceQuota\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.ResourceQuotaSpec\n  map:\n    fields:\n    - name: hard\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: scopeSelector\n      type:\n        namedType: io.k8s.api.core.v1.ScopeSelector\n    - name: scopes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.ResourceQuotaStatus\n  map:\n    fields:\n    - name: hard\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: used\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.core.v1.ResourceRequirements\n  map:\n    fields:\n    - name: claims\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ResourceClaim\n          elementRelationship: associative\n    - name: limits\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: requests\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.core.v1.SELinuxOptions\n  map:\n    fields:\n    - name: level\n      type:\n        scalar: string\n    - name: role\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: gateway\n      type:\n        scalar: string\n    - name: protectionDomain\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: sslEnabled\n      type:\n        scalar: boolean\n    - name: storageMode\n      type:\n        scalar: string\n    - name: storagePool\n      type:\n        scalar: string\n    - name: system\n      type:\n        scalar: string\n    - name: volumeName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ScaleIOVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: gateway\n      type:\n        scalar: string\n    - name: protectionDomain\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: sslEnabled\n      type:\n        scalar: boolean\n    - name: storageMode\n      type:\n        scalar: string\n    - name: storagePool\n      type:\n        scalar: string\n    - name: system\n      type:\n        scalar: string\n    - name: volumeName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ScopeSelector\n  map:\n    fields:\n    - name: matchExpressions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ScopedResourceSelectorRequirement\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.ScopedResourceSelectorRequirement\n  map:\n    fields:\n    - name: operator\n      type:\n        scalar: string\n    - name: scopeName\n      type:\n        scalar: string\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.SeccompProfile\n  map:\n    fields:\n    - name: localhostProfile\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: localhostProfile\n        discriminatorValue: LocalhostProfile\n- name: io.k8s.api.core.v1.Secret\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: data\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: immutable\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: stringData\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.SecretEnvSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.SecretKeySelector\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.SecretList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Secret\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.SecretProjection\n  map:\n    fields:\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.KeyToPath\n          elementRelationship: atomic\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.SecretReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.SecretVolumeSource\n  map:\n    fields:\n    - name: defaultMode\n      type:\n        scalar: numeric\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.KeyToPath\n          elementRelationship: atomic\n    - name: optional\n      type:\n        scalar: boolean\n    - name: secretName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.SecurityContext\n  map:\n    fields:\n    - name: allowPrivilegeEscalation\n      type:\n        scalar: boolean\n    - name: capabilities\n      type:\n        namedType: io.k8s.api.core.v1.Capabilities\n    - name: privileged\n      type:\n        scalar: boolean\n    - name: procMount\n      type:\n        scalar: string\n    - name: readOnlyRootFilesystem\n      type:\n        scalar: boolean\n    - name: runAsGroup\n      type:\n        scalar: numeric\n    - name: runAsNonRoot\n      type:\n        scalar: boolean\n    - name: runAsUser\n      type:\n        scalar: numeric\n    - name: seLinuxOptions\n      type:\n        namedType: io.k8s.api.core.v1.SELinuxOptions\n    - name: seccompProfile\n      type:\n        namedType: io.k8s.api.core.v1.SeccompProfile\n    - name: windowsOptions\n      type:\n        namedType: io.k8s.api.core.v1.WindowsSecurityContextOptions\n- name: io.k8s.api.core.v1.Service\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.ServiceSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.ServiceStatus\n- name: io.k8s.api.core.v1.ServiceAccount\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: automountServiceAccountToken\n      type:\n        scalar: boolean\n    - name: imagePullSecrets\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LocalObjectReference\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: secrets\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ObjectReference\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.core.v1.ServiceAccountList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ServiceAccount\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.ServiceAccountTokenProjection\n  map:\n    fields:\n    - name: audience\n      type:\n        scalar: string\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n    - name: path\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ServiceList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Service\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.core.v1.ServicePort\n  map:\n    fields:\n    - name: appProtocol\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: nodePort\n      type:\n        scalar: numeric\n    - name: port\n      type:\n        scalar: numeric\n    - name: protocol\n      type:\n        scalar: string\n    - name: targetPort\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.core.v1.ServiceSpec\n  map:\n    fields:\n    - name: allocateLoadBalancerNodePorts\n      type:\n        scalar: boolean\n    - name: clusterIP\n      type:\n        scalar: string\n    - name: clusterIPs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: externalIPs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: externalName\n      type:\n        scalar: string\n    - name: externalTrafficPolicy\n      type:\n        scalar: string\n    - name: healthCheckNodePort\n      type:\n        scalar: numeric\n    - name: internalTrafficPolicy\n      type:\n        scalar: string\n    - name: ipFamilies\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: ipFamilyPolicy\n      type:\n        scalar: string\n    - name: loadBalancerClass\n      type:\n        scalar: string\n    - name: loadBalancerIP\n      type:\n        scalar: string\n    - name: loadBalancerSourceRanges\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ServicePort\n          elementRelationship: associative\n          keys:\n          - port\n          - protocol\n    - name: publishNotReadyAddresses\n      type:\n        scalar: boolean\n    - name: selector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: sessionAffinity\n      type:\n        scalar: string\n    - name: sessionAffinityConfig\n      type:\n        namedType: io.k8s.api.core.v1.SessionAffinityConfig\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ServiceStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: loadBalancer\n      type:\n        namedType: io.k8s.api.core.v1.LoadBalancerStatus\n- name: io.k8s.api.core.v1.SessionAffinityConfig\n  map:\n    fields:\n    - name: clientIP\n      type:\n        namedType: io.k8s.api.core.v1.ClientIPConfig\n- name: io.k8s.api.core.v1.StorageOSPersistentVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: volumeName\n      type:\n        scalar: string\n    - name: volumeNamespace\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.StorageOSVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: volumeName\n      type:\n        scalar: string\n    - name: volumeNamespace\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Sysctl\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.TCPSocketAction\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: port\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.core.v1.Taint\n  map:\n    fields:\n    - name: effect\n      type:\n        scalar: string\n    - name: key\n      type:\n        scalar: string\n    - name: timeAdded\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: value\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Toleration\n  map:\n    fields:\n    - name: effect\n      type:\n        scalar: string\n    - name: key\n      type:\n        scalar: string\n    - name: operator\n      type:\n        scalar: string\n    - name: tolerationSeconds\n      type:\n        scalar: numeric\n    - name: value\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.TopologySelectorLabelRequirement\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.TopologySelectorTerm\n  map:\n    fields:\n    - name: matchLabelExpressions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.TopologySelectorLabelRequirement\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.TopologySpreadConstraint\n  map:\n    fields:\n    - name: labelSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: matchLabelKeys\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: maxSkew\n      type:\n        scalar: numeric\n    - name: minDomains\n      type:\n        scalar: numeric\n    - name: nodeAffinityPolicy\n      type:\n        scalar: string\n    - name: nodeTaintsPolicy\n      type:\n        scalar: string\n    - name: topologyKey\n      type:\n        scalar: string\n    - name: whenUnsatisfiable\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.TypedLocalObjectReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.TypedObjectReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Volume\n  map:\n    fields:\n    - name: awsElasticBlockStore\n      type:\n        namedType: io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\n    - name: azureDisk\n      type:\n        namedType: io.k8s.api.core.v1.AzureDiskVolumeSource\n    - name: azureFile\n      type:\n        namedType: io.k8s.api.core.v1.AzureFileVolumeSource\n    - name: cephfs\n      type:\n        namedType: io.k8s.api.core.v1.CephFSVolumeSource\n    - name: cinder\n      type:\n        namedType: io.k8s.api.core.v1.CinderVolumeSource\n    - name: configMap\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapVolumeSource\n    - name: csi\n      type:\n        namedType: io.k8s.api.core.v1.CSIVolumeSource\n    - name: downwardAPI\n      type:\n        namedType: io.k8s.api.core.v1.DownwardAPIVolumeSource\n    - name: emptyDir\n      type:\n        namedType: io.k8s.api.core.v1.EmptyDirVolumeSource\n    - name: ephemeral\n      type:\n        namedType: io.k8s.api.core.v1.EphemeralVolumeSource\n    - name: fc\n      type:\n        namedType: io.k8s.api.core.v1.FCVolumeSource\n    - name: flexVolume\n      type:\n        namedType: io.k8s.api.core.v1.FlexVolumeSource\n    - name: flocker\n      type:\n        namedType: io.k8s.api.core.v1.FlockerVolumeSource\n    - name: gcePersistentDisk\n      type:\n        namedType: io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\n    - name: gitRepo\n      type:\n        namedType: io.k8s.api.core.v1.GitRepoVolumeSource\n    - name: glusterfs\n      type:\n        namedType: io.k8s.api.core.v1.GlusterfsVolumeSource\n    - name: hostPath\n      type:\n        namedType: io.k8s.api.core.v1.HostPathVolumeSource\n    - name: iscsi\n      type:\n        namedType: io.k8s.api.core.v1.ISCSIVolumeSource\n    - name: name\n      type:\n        scalar: string\n    - name: nfs\n      type:\n        namedType: io.k8s.api.core.v1.NFSVolumeSource\n    - name: persistentVolumeClaim\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\n    - name: photonPersistentDisk\n      type:\n        namedType: io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\n    - name: portworxVolume\n      type:\n        namedType: io.k8s.api.core.v1.PortworxVolumeSource\n    - name: projected\n      type:\n        namedType: io.k8s.api.core.v1.ProjectedVolumeSource\n    - name: quobyte\n      type:\n        namedType: io.k8s.api.core.v1.QuobyteVolumeSource\n    - name: rbd\n      type:\n        namedType: io.k8s.api.core.v1.RBDVolumeSource\n    - name: scaleIO\n      type:\n        namedType: io.k8s.api.core.v1.ScaleIOVolumeSource\n    - name: secret\n      type:\n        namedType: io.k8s.api.core.v1.SecretVolumeSource\n    - name: storageos\n      type:\n        namedType: io.k8s.api.core.v1.StorageOSVolumeSource\n    - name: vsphereVolume\n      type:\n        namedType: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\n- name: io.k8s.api.core.v1.VolumeDevice\n  map:\n    fields:\n    - name: devicePath\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.VolumeMount\n  map:\n    fields:\n    - name: mountPath\n      type:\n        scalar: string\n    - name: mountPropagation\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: subPath\n      type:\n        scalar: string\n    - name: subPathExpr\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.VolumeNodeAffinity\n  map:\n    fields:\n    - name: required\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n- name: io.k8s.api.core.v1.VolumeProjection\n  map:\n    fields:\n    - name: configMap\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapProjection\n    - name: downwardAPI\n      type:\n        namedType: io.k8s.api.core.v1.DownwardAPIProjection\n    - name: secret\n      type:\n        namedType: io.k8s.api.core.v1.SecretProjection\n    - name: serviceAccountToken\n      type:\n        namedType: io.k8s.api.core.v1.ServiceAccountTokenProjection\n- name: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: storagePolicyID\n      type:\n        scalar: string\n    - name: storagePolicyName\n      type:\n        scalar: string\n    - name: volumePath\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.WeightedPodAffinityTerm\n  map:\n    fields:\n    - name: podAffinityTerm\n      type:\n        namedType: io.k8s.api.core.v1.PodAffinityTerm\n    - name: weight\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.WindowsSecurityContextOptions\n  map:\n    fields:\n    - name: gmsaCredentialSpec\n      type:\n        scalar: string\n    - name: gmsaCredentialSpecName\n      type:\n        scalar: string\n    - name: hostProcess\n      type:\n        scalar: boolean\n    - name: runAsUserName\n      type:\n        scalar: string\n- name: io.k8s.api.discovery.v1.Endpoint\n  map:\n    fields:\n    - name: addresses\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: conditions\n      type:\n        namedType: io.k8s.api.discovery.v1.EndpointConditions\n    - name: deprecatedTopology\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: hints\n      type:\n        namedType: io.k8s.api.discovery.v1.EndpointHints\n    - name: hostname\n      type:\n        scalar: string\n    - name: nodeName\n      type:\n        scalar: string\n    - name: targetRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: zone\n      type:\n        scalar: string\n- name: io.k8s.api.discovery.v1.EndpointConditions\n  map:\n    fields:\n    - name: ready\n      type:\n        scalar: boolean\n    - name: serving\n      type:\n        scalar: boolean\n    - name: terminating\n      type:\n        scalar: boolean\n- name: io.k8s.api.discovery.v1.EndpointHints\n  map:\n    fields:\n    - name: forZones\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1.ForZone\n          elementRelationship: atomic\n- name: io.k8s.api.discovery.v1.EndpointPort\n  map:\n    fields:\n    - name: appProtocol\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n    - name: protocol\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.discovery.v1.EndpointSlice\n  map:\n    fields:\n    - name: addressType\n      type:\n        scalar: string\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: endpoints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1.Endpoint\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1.EndpointPort\n          elementRelationship: atomic\n- name: io.k8s.api.discovery.v1.EndpointSliceList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1.EndpointSlice\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.discovery.v1.ForZone\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.events.v1.Event\n  map:\n    fields:\n    - name: action\n      type:\n        scalar: string\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: deprecatedCount\n      type:\n        scalar: numeric\n    - name: deprecatedFirstTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: deprecatedLastTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: deprecatedSource\n      type:\n        namedType: io.k8s.api.core.v1.EventSource\n    - name: eventTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: note\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: regarding\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: related\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: reportingController\n      type:\n        scalar: string\n    - name: reportingInstance\n      type:\n        scalar: string\n    - name: series\n      type:\n        namedType: io.k8s.api.events.v1.EventSeries\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.events.v1.EventList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.events.v1.Event\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.events.v1.EventSeries\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n    - name: lastObservedTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n- name: io.k8s.api.flowcontrol.v1beta2.FlowDistinguisherMethod\n  map:\n    fields:\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchema\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.FlowSchemaSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.FlowSchemaStatus\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchemaCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchemaList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.FlowSchema\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchemaSpec\n  map:\n    fields:\n    - name: distinguisherMethod\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.FlowDistinguisherMethod\n    - name: matchingPrecedence\n      type:\n        scalar: numeric\n    - name: priorityLevelConfiguration\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationReference\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.PolicyRulesWithSubjects\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchemaStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.FlowSchemaCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta2.GroupSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta2.LimitResponse\n  map:\n    fields:\n    - name: queuing\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.QueuingConfiguration\n    - name: type\n      type:\n        scalar: string\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: queuing\n        discriminatorValue: Queuing\n- name: io.k8s.api.flowcontrol.v1beta2.LimitedPriorityLevelConfiguration\n  map:\n    fields:\n    - name: assuredConcurrencyShares\n      type:\n        scalar: numeric\n    - name: borrowingLimitPercent\n      type:\n        scalar: numeric\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: limitResponse\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.LimitResponse\n- name: io.k8s.api.flowcontrol.v1beta2.NonResourcePolicyRule\n  map:\n    fields:\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta2.PolicyRulesWithSubjects\n  map:\n    fields:\n    - name: nonResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.NonResourcePolicyRule\n          elementRelationship: atomic\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.ResourcePolicyRule\n          elementRelationship: atomic\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationStatus\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationSpec\n  map:\n    fields:\n    - name: limited\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.LimitedPriorityLevelConfiguration\n    - name: type\n      type:\n        scalar: string\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: limited\n        discriminatorValue: Limited\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta2.QueuingConfiguration\n  map:\n    fields:\n    - name: handSize\n      type:\n        scalar: numeric\n    - name: queueLengthLimit\n      type:\n        scalar: numeric\n    - name: queues\n      type:\n        scalar: numeric\n- name: io.k8s.api.flowcontrol.v1beta2.ResourcePolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: clusterScope\n      type:\n        scalar: boolean\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta2.ServiceAccountSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta2.Subject\n  map:\n    fields:\n    - name: group\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.GroupSubject\n    - name: kind\n      type:\n        scalar: string\n    - name: serviceAccount\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.ServiceAccountSubject\n    - name: user\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.UserSubject\n    unions:\n    - discriminator: kind\n      fields:\n      - fieldName: group\n        discriminatorValue: Group\n      - fieldName: serviceAccount\n        discriminatorValue: ServiceAccount\n      - fieldName: user\n        discriminatorValue: User\n- name: io.k8s.api.flowcontrol.v1beta2.UserSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta3.FlowDistinguisherMethod\n  map:\n    fields:\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchema\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.FlowSchemaSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.FlowSchemaStatus\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchemaCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchemaList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.FlowSchema\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchemaSpec\n  map:\n    fields:\n    - name: distinguisherMethod\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.FlowDistinguisherMethod\n    - name: matchingPrecedence\n      type:\n        scalar: numeric\n    - name: priorityLevelConfiguration\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationReference\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.PolicyRulesWithSubjects\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchemaStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.FlowSchemaCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta3.GroupSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta3.LimitResponse\n  map:\n    fields:\n    - name: queuing\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.QueuingConfiguration\n    - name: type\n      type:\n        scalar: string\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: queuing\n        discriminatorValue: Queuing\n- name: io.k8s.api.flowcontrol.v1beta3.LimitedPriorityLevelConfiguration\n  map:\n    fields:\n    - name: borrowingLimitPercent\n      type:\n        scalar: numeric\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: limitResponse\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.LimitResponse\n    - name: nominalConcurrencyShares\n      type:\n        scalar: numeric\n- name: io.k8s.api.flowcontrol.v1beta3.NonResourcePolicyRule\n  map:\n    fields:\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta3.PolicyRulesWithSubjects\n  map:\n    fields:\n    - name: nonResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.NonResourcePolicyRule\n          elementRelationship: atomic\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.ResourcePolicyRule\n          elementRelationship: atomic\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationStatus\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationSpec\n  map:\n    fields:\n    - name: limited\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.LimitedPriorityLevelConfiguration\n    - name: type\n      type:\n        scalar: string\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: limited\n        discriminatorValue: Limited\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta3.QueuingConfiguration\n  map:\n    fields:\n    - name: handSize\n      type:\n        scalar: numeric\n    - name: queueLengthLimit\n      type:\n        scalar: numeric\n    - name: queues\n      type:\n        scalar: numeric\n- name: io.k8s.api.flowcontrol.v1beta3.ResourcePolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: clusterScope\n      type:\n        scalar: boolean\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta3.ServiceAccountSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta3.Subject\n  map:\n    fields:\n    - name: group\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.GroupSubject\n    - name: kind\n      type:\n        scalar: string\n    - name: serviceAccount\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.ServiceAccountSubject\n    - name: user\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.UserSubject\n    unions:\n    - discriminator: kind\n      fields:\n      - fieldName: group\n        discriminatorValue: Group\n      - fieldName: serviceAccount\n        discriminatorValue: ServiceAccount\n      - fieldName: user\n        discriminatorValue: User\n- name: io.k8s.api.flowcontrol.v1beta3.UserSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.HTTPIngressPath\n  map:\n    fields:\n    - name: backend\n      type:\n        namedType: io.k8s.api.networking.v1.IngressBackend\n    - name: path\n      type:\n        scalar: string\n    - name: pathType\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.HTTPIngressRuleValue\n  map:\n    fields:\n    - name: paths\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.HTTPIngressPath\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.IPBlock\n  map:\n    fields:\n    - name: cidr\n      type:\n        scalar: string\n    - name: except\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.Ingress\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1.IngressSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.networking.v1.IngressStatus\n- name: io.k8s.api.networking.v1.IngressBackend\n  map:\n    fields:\n    - name: resource\n      type:\n        namedType: io.k8s.api.core.v1.TypedLocalObjectReference\n    - name: service\n      type:\n        namedType: io.k8s.api.networking.v1.IngressServiceBackend\n- name: io.k8s.api.networking.v1.IngressClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1.IngressClassSpec\n- name: io.k8s.api.networking.v1.IngressClassList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressClass\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.networking.v1.IngressClassParametersReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: scope\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.IngressClassSpec\n  map:\n    fields:\n    - name: controller\n      type:\n        scalar: string\n    - name: parameters\n      type:\n        namedType: io.k8s.api.networking.v1.IngressClassParametersReference\n- name: io.k8s.api.networking.v1.IngressList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.Ingress\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.networking.v1.IngressLoadBalancerIngress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressPortStatus\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.IngressLoadBalancerStatus\n  map:\n    fields:\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressLoadBalancerIngress\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.IngressPortStatus\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n    - name: protocol\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.IngressRule\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: http\n      type:\n        namedType: io.k8s.api.networking.v1.HTTPIngressRuleValue\n- name: io.k8s.api.networking.v1.IngressServiceBackend\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: port\n      type:\n        namedType: io.k8s.api.networking.v1.ServiceBackendPort\n- name: io.k8s.api.networking.v1.IngressSpec\n  map:\n    fields:\n    - name: defaultBackend\n      type:\n        namedType: io.k8s.api.networking.v1.IngressBackend\n    - name: ingressClassName\n      type:\n        scalar: string\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressRule\n          elementRelationship: atomic\n    - name: tls\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressTLS\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.IngressStatus\n  map:\n    fields:\n    - name: loadBalancer\n      type:\n        namedType: io.k8s.api.networking.v1.IngressLoadBalancerStatus\n- name: io.k8s.api.networking.v1.IngressTLS\n  map:\n    fields:\n    - name: hosts\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: secretName\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.NetworkPolicy\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1.NetworkPolicySpec\n    - name: status\n      type:\n        namedType: io.k8s.api.networking.v1.NetworkPolicyStatus\n- name: io.k8s.api.networking.v1.NetworkPolicyEgressRule\n  map:\n    fields:\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyPort\n          elementRelationship: atomic\n    - name: to\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyPeer\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.NetworkPolicyIngressRule\n  map:\n    fields:\n    - name: from\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyPeer\n          elementRelationship: atomic\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyPort\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.NetworkPolicyList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicy\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.networking.v1.NetworkPolicyPeer\n  map:\n    fields:\n    - name: ipBlock\n      type:\n        namedType: io.k8s.api.networking.v1.IPBlock\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: podSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.networking.v1.NetworkPolicyPort\n  map:\n    fields:\n    - name: endPort\n      type:\n        scalar: numeric\n    - name: port\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: protocol\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.NetworkPolicySpec\n  map:\n    fields:\n    - name: egress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyEgressRule\n          elementRelationship: atomic\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyIngressRule\n          elementRelationship: atomic\n    - name: podSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: policyTypes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.NetworkPolicyStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.networking.v1.ServiceBackendPort\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: number\n      type:\n        scalar: numeric\n- name: io.k8s.api.node.v1.Overhead\n  map:\n    fields:\n    - name: podFixed\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.node.v1.RuntimeClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: handler\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: overhead\n      type:\n        namedType: io.k8s.api.node.v1.Overhead\n    - name: scheduling\n      type:\n        namedType: io.k8s.api.node.v1.Scheduling\n- name: io.k8s.api.node.v1.RuntimeClassList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.node.v1.RuntimeClass\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.node.v1.Scheduling\n  map:\n    fields:\n    - name: nodeSelector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: tolerations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Toleration\n          elementRelationship: atomic\n- name: io.k8s.api.policy.v1.Eviction\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: deleteOptions\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n- name: io.k8s.api.policy.v1.PodDisruptionBudget\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.policy.v1.PodDisruptionBudgetSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.policy.v1.PodDisruptionBudgetStatus\n- name: io.k8s.api.policy.v1.PodDisruptionBudgetList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.policy.v1.PodDisruptionBudget\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.policy.v1.PodDisruptionBudgetSpec\n  map:\n    fields:\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: minAvailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: unhealthyPodEvictionPolicy\n      type:\n        scalar: string\n- name: io.k8s.api.policy.v1.PodDisruptionBudgetStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentHealthy\n      type:\n        scalar: numeric\n    - name: desiredHealthy\n      type:\n        scalar: numeric\n    - name: disruptedPods\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: disruptionsAllowed\n      type:\n        scalar: numeric\n    - name: expectedPods\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.rbac.v1.AggregationRule\n  map:\n    fields:\n    - name: clusterRoleSelectors\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.ClusterRole\n  map:\n    fields:\n    - name: aggregationRule\n      type:\n        namedType: io.k8s.api.rbac.v1.AggregationRule\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.ClusterRoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1.RoleRef\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.ClusterRoleBindingList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.ClusterRoleBinding\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.rbac.v1.ClusterRoleList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.ClusterRole\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.rbac.v1.PolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resourceNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.Role\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.RoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1.RoleRef\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.RoleBindingList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.RoleBinding\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.rbac.v1.RoleList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.Role\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.rbac.v1.RoleRef\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.Subject\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.scheduling.v1.PriorityClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: description\n      type:\n        scalar: string\n    - name: globalDefault\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: preemptionPolicy\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: numeric\n- name: io.k8s.api.scheduling.v1.PriorityClassList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.scheduling.v1.PriorityClass\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.storage.v1.CSIDriver\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1.CSIDriverSpec\n- name: io.k8s.api.storage.v1.CSIDriverList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1.CSIDriver\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.storage.v1.CSIDriverSpec\n  map:\n    fields:\n    - name: attachRequired\n      type:\n        scalar: boolean\n    - name: fsGroupPolicy\n      type:\n        scalar: string\n    - name: podInfoOnMount\n      type:\n        scalar: boolean\n    - name: requiresRepublish\n      type:\n        scalar: boolean\n    - name: seLinuxMount\n      type:\n        scalar: boolean\n    - name: storageCapacity\n      type:\n        scalar: boolean\n    - name: tokenRequests\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1.TokenRequest\n          elementRelationship: atomic\n    - name: volumeLifecycleModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.storage.v1.CSINode\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1.CSINodeSpec\n- name: io.k8s.api.storage.v1.CSINodeDriver\n  map:\n    fields:\n    - name: allocatable\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeNodeResources\n    - name: name\n      type:\n        scalar: string\n    - name: nodeID\n      type:\n        scalar: string\n    - name: topologyKeys\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.storage.v1.CSINodeList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1.CSINode\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.storage.v1.CSINodeSpec\n  map:\n    fields:\n    - name: drivers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1.CSINodeDriver\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.storage.v1.CSIStorageCapacity\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: capacity\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: kind\n      type:\n        scalar: string\n    - name: maximumVolumeSize\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: nodeTopology\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: storageClassName\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1.CSIStorageCapacityList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1.CSIStorageCapacity\n          elementRelationship: associative\n          keys:\n          - name\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.storage.v1.StorageClass\n  map:\n    fields:\n    - name: allowVolumeExpansion\n      type:\n        scalar: boolean\n    - name: allowedTopologies\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.TopologySelectorTerm\n          elementRelationship: atomic\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: mountOptions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: parameters\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: provisioner\n      type:\n        scalar: string\n    - name: reclaimPolicy\n      type:\n        scalar: string\n    - name: volumeBindingMode\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1.StorageClassList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1.StorageClass\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.storage.v1.TokenRequest\n  map:\n    fields:\n    - name: audience\n      type:\n        scalar: string\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.storage.v1.VolumeAttachment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeAttachmentSpec\n    - name: status\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeAttachmentStatus\n- name: io.k8s.api.storage.v1.VolumeAttachmentList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1.VolumeAttachment\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.api.storage.v1.VolumeAttachmentSource\n  map:\n    fields:\n    - name: inlineVolumeSpec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeSpec\n    - name: persistentVolumeName\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1.VolumeAttachmentSpec\n  map:\n    fields:\n    - name: attacher\n      type:\n        scalar: string\n    - name: nodeName\n      type:\n        scalar: string\n    - name: source\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeAttachmentSource\n- name: io.k8s.api.storage.v1.VolumeAttachmentStatus\n  map:\n    fields:\n    - name: attachError\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeError\n    - name: attached\n      type:\n        scalar: boolean\n    - name: attachmentMetadata\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: detachError\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeError\n- name: io.k8s.api.storage.v1.VolumeError\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: time\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.storage.v1.VolumeNodeResources\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n- name: io.k8s.api.storage.v1beta1.CSIStorageCapacity\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: capacity\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: kind\n      type:\n        scalar: string\n    - name: maximumVolumeSize\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: nodeTopology\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: storageClassName\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1beta1.CSIStorageCapacityList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1beta1.CSIStorageCapacity\n          elementRelationship: associative\n          keys:\n          - name\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\n  map:\n    fields:\n    - name: description\n      type:\n        scalar: string\n    - name: format\n      type:\n        scalar: string\n    - name: jsonPath\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: priority\n      type:\n        scalar: numeric\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\n  map:\n    fields:\n    - name: strategy\n      type:\n        scalar: string\n    - name: webhook\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\n    - name: status\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\n  map:\n    fields:\n    - name: categories\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: listKind\n      type:\n        scalar: string\n    - name: plural\n      type:\n        scalar: string\n    - name: shortNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: singular\n      type:\n        scalar: string\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\n  map:\n    fields:\n    - name: conversion\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\n    - name: group\n      type:\n        scalar: string\n    - name: names\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\n    - name: preserveUnknownFields\n      type:\n        scalar: boolean\n    - name: scope\n      type:\n        scalar: string\n    - name: versions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\n          elementRelationship: atomic\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\n  map:\n    fields:\n    - name: acceptedNames\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: storedVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\n  map:\n    fields:\n    - name: additionalPrinterColumns\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\n          elementRelationship: atomic\n    - name: deprecated\n      type:\n        scalar: boolean\n    - name: deprecationWarning\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: schema\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\n    - name: served\n      type:\n        scalar: boolean\n    - name: storage\n      type:\n        scalar: boolean\n    - name: subresources\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\n  map:\n    fields:\n    - name: labelSelectorPath\n      type:\n        scalar: string\n    - name: specReplicasPath\n      type:\n        scalar: string\n    - name: statusReplicasPath\n      type:\n        scalar: string\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\n  map:\n    elementType:\n      scalar: untyped\n      list:\n        elementType:\n          namedType: __untyped_atomic_\n        elementRelationship: atomic\n      map:\n        elementType:\n          namedType: __untyped_deduced_\n        elementRelationship: separable\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\n  map:\n    fields:\n    - name: scale\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\n    - name: status\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\n  map:\n    fields:\n    - name: openAPIV3Schema\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\n  map:\n    fields:\n    - name: description\n      type:\n        scalar: string\n    - name: url\n      type:\n        scalar: string\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_deduced_\n    elementRelationship: separable\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\n  map:\n    fields:\n    - name: $ref\n      type:\n        scalar: string\n    - name: $schema\n      type:\n        scalar: string\n    - name: additionalItems\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\n    - name: additionalProperties\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\n    - name: allOf\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\n          elementRelationship: atomic\n    - name: anyOf\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\n          elementRelationship: atomic\n    - name: default\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\n    - name: definitions\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\n    - name: dependencies\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\n    - name: description\n      type:\n        scalar: string\n    - name: enum\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\n          elementRelationship: atomic\n    - name: example\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\n    - name: exclusiveMaximum\n      type:\n        scalar: boolean\n    - name: exclusiveMinimum\n      type:\n        scalar: boolean\n    - name: externalDocs\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\n    - name: format\n      type:\n        scalar: string\n    - name: id\n      type:\n        scalar: string\n    - name: items\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray\n    - name: maxItems\n      type:\n        scalar: numeric\n    - name: maxLength\n      type:\n        scalar: numeric\n    - name: maxProperties\n      type:\n        scalar: numeric\n    - name: maximum\n      type:\n        scalar: numeric\n    - name: minItems\n      type:\n        scalar: numeric\n    - name: minLength\n      type:\n        scalar: numeric\n    - name: minProperties\n      type:\n        scalar: numeric\n    - name: minimum\n      type:\n        scalar: numeric\n    - name: multipleOf\n      type:\n        scalar: numeric\n    - name: not\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\n    - name: nullable\n      type:\n        scalar: boolean\n    - name: oneOf\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\n          elementRelationship: atomic\n    - name: pattern\n      type:\n        scalar: string\n    - name: patternProperties\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\n    - name: properties\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\n    - name: required\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: title\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n    - name: uniqueItems\n      type:\n        scalar: boolean\n    - name: x-kubernetes-embedded-resource\n      type:\n        scalar: boolean\n    - name: x-kubernetes-int-or-string\n      type:\n        scalar: boolean\n    - name: x-kubernetes-list-map-keys\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: x-kubernetes-list-type\n      type:\n        scalar: string\n    - name: x-kubernetes-map-type\n      type:\n        scalar: string\n    - name: x-kubernetes-preserve-unknown-fields\n      type:\n        scalar: boolean\n    - name: x-kubernetes-validations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\n          elementRelationship: associative\n          keys:\n          - rule\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_deduced_\n    elementRelationship: separable\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_deduced_\n    elementRelationship: separable\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_deduced_\n    elementRelationship: separable\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: path\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: rule\n      type:\n        scalar: string\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\n  map:\n    fields:\n    - name: caBundle\n      type:\n        scalar: string\n    - name: service\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\n    - name: url\n      type:\n        scalar: string\n- name: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\n  map:\n    fields:\n    - name: clientConfig\n      type:\n        namedType: io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\n    - name: conversionReviewVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.api.resource.Quantity\n  scalar: untyped\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: preferredVersion\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\n    - name: serverAddressByClientCIDRs\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\n          elementRelationship: atomic\n    - name: versions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\n          elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: groups\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\n  map:\n    fields:\n    - name: categories\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: group\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespaced\n      type:\n        scalar: boolean\n    - name: shortNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: singularName\n      type:\n        scalar: string\n    - name: storageVersionHash\n      type:\n        scalar: string\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: version\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: groupVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: resources\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\n          elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: serverAddressByClientCIDRs\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\n          elementRelationship: atomic\n    - name: versions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: dryRun\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: gracePeriodSeconds\n      type:\n        scalar: numeric\n    - name: kind\n      type:\n        scalar: string\n    - name: orphanDependents\n      type:\n        scalar: boolean\n    - name: preconditions\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\n    - name: propagationPolicy\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\n  map:\n    elementType:\n      scalar: untyped\n      list:\n        elementType:\n          namedType: __untyped_atomic_\n        elementRelationship: atomic\n      map:\n        elementType:\n          namedType: __untyped_deduced_\n        elementRelationship: separable\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\n  map:\n    fields:\n    - name: groupVersion\n      type:\n        scalar: string\n    - name: version\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n  map:\n    fields:\n    - name: matchExpressions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\n          elementRelationship: atomic\n    - name: matchLabels\n      type:\n        map:\n          elementType:\n            scalar: string\n    elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n    - name: operator\n      type:\n        scalar: string\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n  map:\n    fields:\n    - name: continue\n      type:\n        scalar: string\n    - name: remainingItemCount\n      type:\n        scalar: numeric\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: selfLink\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: fieldsType\n      type:\n        scalar: string\n    - name: fieldsV1\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\n    - name: manager\n      type:\n        scalar: string\n    - name: operation\n      type:\n        scalar: string\n    - name: subresource\n      type:\n        scalar: string\n    - name: time\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n  scalar: untyped\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n  map:\n    fields:\n    - name: annotations\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: creationTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: deletionGracePeriodSeconds\n      type:\n        scalar: numeric\n    - name: deletionTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: finalizers\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: generateName\n      type:\n        scalar: string\n    - name: generation\n      type:\n        scalar: numeric\n    - name: labels\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: managedFields\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\n          elementRelationship: atomic\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: ownerReferences\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\n          elementRelationship: associative\n          keys:\n          - uid\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: selfLink\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: blockOwnerDeletion\n      type:\n        scalar: boolean\n    - name: controller\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.Patch\n  map:\n    elementType:\n      scalar: untyped\n      list:\n        elementType:\n          namedType: __untyped_atomic_\n        elementRelationship: atomic\n      map:\n        elementType:\n          namedType: __untyped_deduced_\n        elementRelationship: separable\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\n  map:\n    fields:\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\n  map:\n    fields:\n    - name: clientCIDR\n      type:\n        scalar: string\n    - name: serverAddress\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.Status\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: code\n      type:\n        scalar: numeric\n    - name: details\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\n    - name: kind\n      type:\n        scalar: string\n    - name: message\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\n  map:\n    fields:\n    - name: field\n      type:\n        scalar: string\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\n  map:\n    fields:\n    - name: causes\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\n          elementRelationship: atomic\n    - name: group\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: retryAfterSeconds\n      type:\n        scalar: numeric\n    - name: uid\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n  scalar: untyped\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\n  map:\n    fields:\n    - name: object\n      type:\n        namedType: __untyped_atomic_\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.runtime.RawExtension\n  map:\n    elementType:\n      scalar: untyped\n      list:\n        elementType:\n          namedType: __untyped_atomic_\n        elementRelationship: atomic\n      map:\n        elementType:\n          namedType: __untyped_deduced_\n        elementRelationship: separable\n- name: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n  scalar: untyped\n- name: io.k8s.apimachinery.pkg.version.Info\n  map:\n    fields:\n    - name: buildDate\n      type:\n        scalar: string\n    - name: compiler\n      type:\n        scalar: string\n    - name: gitCommit\n      type:\n        scalar: string\n    - name: gitTreeState\n      type:\n        scalar: string\n    - name: gitVersion\n      type:\n        scalar: string\n    - name: goVersion\n      type:\n        scalar: string\n    - name: major\n      type:\n        scalar: string\n    - name: minor\n      type:\n        scalar: string\n    - name: platform\n      type:\n        scalar: string\n- name: io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n    - name: spec\n      type:\n        namedType: io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec\n    - name: status\n      type:\n        namedType: io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus\n- name: io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\n- name: io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec\n  map:\n    fields:\n    - name: caBundle\n      type:\n        scalar: string\n    - name: group\n      type:\n        scalar: string\n    - name: groupPriorityMinimum\n      type:\n        scalar: numeric\n    - name: insecureSkipTLSVerify\n      type:\n        scalar: boolean\n    - name: service\n      type:\n        namedType: io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference\n    - name: version\n      type:\n        scalar: string\n    - name: versionPriority\n      type:\n        scalar: numeric\n- name: io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n- name: __untyped_atomic_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n- name: __untyped_deduced_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_deduced_\n    elementRelationship: separable\n"
  },
  {
    "path": "pkg/schemaconv/testdata/preserve-unknown.json",
    "content": "{\n  \"swagger\": \"2.0\",\n  \"info\": {\n    \"title\": \"Atomic Types\",\n    \"version\": \"v1.0.0\"\n  },\n  \"paths\": {\n  },\n  \"definitions\": {\n    \"io.k8s.testcase.Empty\": {\n      \"description\": \"\",\n      \"type\": \"object\",\n    },\n    \"io.k8s.testcase.EmptyPreserveUnknownFieldsObject\": {\n      \"description\": \"\",\n      \"properties\": {\n        \"preserveField\": {\n          \"description\": \"\",\n          \"type\": \"object\",\n          \"x-kubernetes-preserve-unknown-fields\": true\n        }\n      }\n    },\n    \"io.k8s.testcase.PopulatedPreserveUnknownFieldsObject\": {\n      \"description\": \"\",\n      \"properties\": {\n        \"preserveField\": {\n          \"description\": \"\",\n          \"type\": \"object\",\n          \"x-kubernetes-preserve-unknown-fields\": true,\n\t  \"properties\": {\n\t    \"innerField\": {\n\t      \"type\": \"string\"\n\t    }\n\t  }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "pkg/schemaconv/testdata/preserve-unknown.yaml",
    "content": "types:\n- name: io.k8s.testcase.Empty\n  map:\n    elementType:\n      scalar: untyped\n      list:\n        elementType:\n          namedType: __untyped_atomic_\n        elementRelationship: atomic\n      map:\n        elementType:\n          namedType: __untyped_deduced_\n        elementRelationship: separable\n- name: io.k8s.testcase.EmptyPreserveUnknownFieldsObject\n  map:\n    fields:\n    - name: preserveField\n      type:\n        map:\n          elementType:\n            scalar: untyped\n            list:\n              elementType:\n                namedType: __untyped_atomic_\n              elementRelationship: atomic\n            map:\n              elementType:\n                namedType: __untyped_deduced_\n              elementRelationship: separable\n- name: io.k8s.testcase.PopulatedPreserveUnknownFieldsObject\n  map:\n    fields:\n    - name: preserveField\n      type:\n        map:\n          fields:\n          - name: innerField\n            type:\n              scalar: string\n          elementType:\n            namedType: __untyped_deduced_\n- name: __untyped_atomic_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n- name: __untyped_deduced_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_deduced_\n    elementRelationship: separable\n"
  },
  {
    "path": "pkg/schemaconv/testdata/swagger.json",
    "content": "{\n  \"swagger\": \"2.0\",\n  \"info\": { \"title\": \"Kubernetes\", \"version\": \"v1.27.0\" },\n  \"paths\": {\n    \"/.well-known/openid-configuration/\": {\n      \"get\": {\n        \"description\": \"get service account issuer OpenID configuration, also known as the 'OIDC discovery doc'\",\n        \"produces\": [\"application/json\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"WellKnown\"],\n        \"operationId\": \"getServiceAccountIssuerOpenIDConfiguration\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/api/\": {\n      \"get\": {\n        \"description\": \"get available API versions\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core\"],\n        \"operationId\": \"getCoreAPIVersions\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/api/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"getCoreV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/api/v1/componentstatuses\": {\n      \"get\": {\n        \"description\": \"list objects of kind ComponentStatus\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1ComponentStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ComponentStatusList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ComponentStatus\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/componentstatuses/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified ComponentStatus\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1ComponentStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ComponentStatus\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ComponentStatus\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ComponentStatus\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/configmaps\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ConfigMap\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1ConfigMapForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/endpoints\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Endpoints\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1EndpointsForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointsList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/events\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1EventForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.EventList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/limitranges\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind LimitRange\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1LimitRangeForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRangeList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Namespace\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1Namespace\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.NamespaceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a Namespace\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1Namespace\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/bindings\": {\n      \"post\": {\n        \"description\": \"create a Binding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedBinding\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Binding\" }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Binding\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Binding\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Binding\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Binding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"name\": \"dryRun\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"name\": \"fieldManager\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"name\": \"fieldValidation\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/configmaps\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ConfigMap\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1NamespacedConfigMap\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a ConfigMap\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedConfigMap\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of ConfigMap\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNamespacedConfigMap\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/configmaps/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified ConfigMap\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedConfigMap\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified ConfigMap\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedConfigMap\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a ConfigMap\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1NamespacedConfigMap\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified ConfigMap\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedConfigMap\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ConfigMap\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/endpoints\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Endpoints\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1NamespacedEndpoints\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointsList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create Endpoints\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedEndpoints\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of Endpoints\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNamespacedEndpoints\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/endpoints/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Endpoints\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedEndpoints\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Endpoints\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedEndpoints\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete Endpoints\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1NamespacedEndpoints\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Endpoints\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedEndpoints\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Endpoints\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/events\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1NamespacedEvent\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.EventList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create an Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedEvent\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNamespacedEvent\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/events/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedEvent\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedEvent\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete an Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1NamespacedEvent\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Event\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedEvent\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Event\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/limitranges\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind LimitRange\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1NamespacedLimitRange\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRangeList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a LimitRange\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedLimitRange\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of LimitRange\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNamespacedLimitRange\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/limitranges/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified LimitRange\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedLimitRange\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified LimitRange\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedLimitRange\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a LimitRange\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1NamespacedLimitRange\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified LimitRange\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedLimitRange\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the LimitRange\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/persistentvolumeclaims\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind PersistentVolumeClaim\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1NamespacedPersistentVolumeClaim\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a PersistentVolumeClaim\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedPersistentVolumeClaim\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of PersistentVolumeClaim\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNamespacedPersistentVolumeClaim\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified PersistentVolumeClaim\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedPersistentVolumeClaim\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified PersistentVolumeClaim\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedPersistentVolumeClaim\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a PersistentVolumeClaim\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1NamespacedPersistentVolumeClaim\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified PersistentVolumeClaim\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedPersistentVolumeClaim\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PersistentVolumeClaim\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified PersistentVolumeClaim\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedPersistentVolumeClaimStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified PersistentVolumeClaim\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedPersistentVolumeClaimStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified PersistentVolumeClaim\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedPersistentVolumeClaimStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PersistentVolumeClaim\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/pods\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1NamespacedPod\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedPod\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNamespacedPod\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/pods/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedPod\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedPod\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1NamespacedPod\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Pod\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedPod\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Pod\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/pods/{name}/attach\": {\n      \"get\": {\n        \"description\": \"connect GET requests to attach of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1GetNamespacedPodAttach\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodAttachOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"connect POST requests to attach of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PostNamespacedPodAttach\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodAttachOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\n          \"name\": \"container\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PodAttachOptions\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.\",\n          \"name\": \"stderr\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.\",\n          \"name\": \"stdin\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.\",\n          \"name\": \"stdout\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"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.\",\n          \"name\": \"tty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/pods/{name}/binding\": {\n      \"post\": {\n        \"description\": \"create binding of a Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedPodBinding\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Binding\" }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Binding\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Binding\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Binding\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Binding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"name\": \"dryRun\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"name\": \"fieldManager\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"name\": \"fieldValidation\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Binding\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers\": {\n      \"get\": {\n        \"description\": \"read ephemeralcontainers of the specified Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedPodEphemeralcontainers\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace ephemeralcontainers of the specified Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedPodEphemeralcontainers\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update ephemeralcontainers of the specified Pod\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedPodEphemeralcontainers\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Pod\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/pods/{name}/eviction\": {\n      \"post\": {\n        \"description\": \"create eviction of a Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedPodEviction\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.policy.v1.Eviction\" }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.policy.v1.Eviction\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.policy.v1.Eviction\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.policy.v1.Eviction\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"Eviction\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"name\": \"dryRun\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"name\": \"fieldManager\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"name\": \"fieldValidation\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Eviction\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/pods/{name}/exec\": {\n      \"get\": {\n        \"description\": \"connect GET requests to exec of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1GetNamespacedPodExec\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodExecOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"connect POST requests to exec of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PostNamespacedPodExec\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodExecOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"Command is the remote command to execute. argv array. Not executed within a shell.\",\n          \"name\": \"command\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"Container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\n          \"name\": \"container\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PodExecOptions\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Redirect the standard error stream of the pod for this call.\",\n          \"name\": \"stderr\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Redirect the standard input stream of the pod for this call. Defaults to false.\",\n          \"name\": \"stdin\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Redirect the standard output stream of the pod for this call.\",\n          \"name\": \"stdout\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.\",\n          \"name\": \"tty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/pods/{name}/log\": {\n      \"get\": {\n        \"description\": \"read log of the specified Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"text/plain\",\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedPodLog\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The container for which to stream logs. Defaults to only container if there is one container in the pod.\",\n          \"name\": \"container\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Follow the log stream of the pod. Defaults to false.\",\n          \"name\": \"follow\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"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).\",\n          \"name\": \"insecureSkipTLSVerifyBackend\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"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.\",\n          \"name\": \"limitBytes\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Pod\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Return previous terminated container logs. Defaults to false.\",\n          \"name\": \"previous\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"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.\",\n          \"name\": \"sinceSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"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\",\n          \"name\": \"tailLines\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.\",\n          \"name\": \"timestamps\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/pods/{name}/portforward\": {\n      \"get\": {\n        \"description\": \"connect GET requests to portforward of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1GetNamespacedPodPortforward\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodPortForwardOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"connect POST requests to portforward of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PostNamespacedPodPortforward\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodPortForwardOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PodPortForwardOptions\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"List of ports to forward Required when using WebSockets\",\n          \"name\": \"ports\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/pods/{name}/proxy\": {\n      \"get\": {\n        \"description\": \"connect GET requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1GetNamespacedPodProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"connect PUT requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PutNamespacedPodProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"connect POST requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PostNamespacedPodProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"connect DELETE requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1DeleteNamespacedPodProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"options\": {\n        \"description\": \"connect OPTIONS requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1OptionsNamespacedPodProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"head\": {\n        \"description\": \"connect HEAD requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1HeadNamespacedPodProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"connect PATCH requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PatchNamespacedPodProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PodProxyOptions\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"Path is the URL path to use for the current proxy request to pod.\",\n          \"name\": \"path\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}\": {\n      \"get\": {\n        \"description\": \"connect GET requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1GetNamespacedPodProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"connect PUT requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PutNamespacedPodProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"connect POST requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PostNamespacedPodProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"connect DELETE requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1DeleteNamespacedPodProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"options\": {\n        \"description\": \"connect OPTIONS requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1OptionsNamespacedPodProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"head\": {\n        \"description\": \"connect HEAD requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1HeadNamespacedPodProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"connect PATCH requests to proxy of Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PatchNamespacedPodProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PodProxyOptions\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"path to the resource\",\n          \"name\": \"path\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"Path is the URL path to use for the current proxy request to pod.\",\n          \"name\": \"path\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/pods/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedPodStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedPodStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified Pod\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedPodStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Pod\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/podtemplates\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind PodTemplate\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1NamespacedPodTemplate\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a PodTemplate\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedPodTemplate\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of PodTemplate\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNamespacedPodTemplate\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/podtemplates/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified PodTemplate\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedPodTemplate\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified PodTemplate\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedPodTemplate\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a PodTemplate\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1NamespacedPodTemplate\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified PodTemplate\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedPodTemplate\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PodTemplate\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/replicationcontrollers\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ReplicationController\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1NamespacedReplicationController\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationControllerList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a ReplicationController\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedReplicationController\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of ReplicationController\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNamespacedReplicationController\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified ReplicationController\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedReplicationController\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified ReplicationController\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedReplicationController\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a ReplicationController\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1NamespacedReplicationController\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified ReplicationController\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedReplicationController\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ReplicationController\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale\": {\n      \"get\": {\n        \"description\": \"read scale of the specified ReplicationController\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedReplicationControllerScale\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace scale of the specified ReplicationController\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedReplicationControllerScale\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update scale of the specified ReplicationController\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedReplicationControllerScale\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Scale\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified ReplicationController\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedReplicationControllerStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified ReplicationController\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedReplicationControllerStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified ReplicationController\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedReplicationControllerStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ReplicationController\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/resourcequotas\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ResourceQuota\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1NamespacedResourceQuota\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuotaList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a ResourceQuota\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedResourceQuota\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of ResourceQuota\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNamespacedResourceQuota\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/resourcequotas/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified ResourceQuota\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedResourceQuota\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified ResourceQuota\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedResourceQuota\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a ResourceQuota\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1NamespacedResourceQuota\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified ResourceQuota\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedResourceQuota\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ResourceQuota\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/resourcequotas/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified ResourceQuota\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedResourceQuotaStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified ResourceQuota\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedResourceQuotaStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified ResourceQuota\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedResourceQuotaStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ResourceQuota\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/secrets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Secret\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1NamespacedSecret\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a Secret\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedSecret\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of Secret\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNamespacedSecret\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/secrets/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Secret\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedSecret\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Secret\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedSecret\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a Secret\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1NamespacedSecret\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Secret\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedSecret\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Secret\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/serviceaccounts\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ServiceAccount\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1NamespacedServiceAccount\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccountList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a ServiceAccount\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedServiceAccount\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of ServiceAccount\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNamespacedServiceAccount\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/serviceaccounts/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified ServiceAccount\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedServiceAccount\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified ServiceAccount\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedServiceAccount\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a ServiceAccount\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1NamespacedServiceAccount\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified ServiceAccount\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedServiceAccount\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ServiceAccount\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/serviceaccounts/{name}/token\": {\n      \"post\": {\n        \"description\": \"create token of a ServiceAccount\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedServiceAccountToken\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.TokenRequest\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.TokenRequest\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.TokenRequest\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.TokenRequest\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"TokenRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"name\": \"dryRun\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"name\": \"fieldManager\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"name\": \"fieldValidation\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the TokenRequest\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/services\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1NamespacedService\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1NamespacedService\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNamespacedService\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/services/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedService\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedService\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1NamespacedService\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Service\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedService\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Service\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/services/{name}/proxy\": {\n      \"get\": {\n        \"description\": \"connect GET requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1GetNamespacedServiceProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"connect PUT requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PutNamespacedServiceProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"connect POST requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PostNamespacedServiceProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"connect DELETE requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1DeleteNamespacedServiceProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"options\": {\n        \"description\": \"connect OPTIONS requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1OptionsNamespacedServiceProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"head\": {\n        \"description\": \"connect HEAD requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1HeadNamespacedServiceProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"connect PATCH requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PatchNamespacedServiceProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ServiceProxyOptions\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"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.\",\n          \"name\": \"path\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}\": {\n      \"get\": {\n        \"description\": \"connect GET requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1GetNamespacedServiceProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"connect PUT requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PutNamespacedServiceProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"connect POST requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PostNamespacedServiceProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"connect DELETE requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1DeleteNamespacedServiceProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"options\": {\n        \"description\": \"connect OPTIONS requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1OptionsNamespacedServiceProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"head\": {\n        \"description\": \"connect HEAD requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1HeadNamespacedServiceProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"connect PATCH requests to proxy of Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PatchNamespacedServiceProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ServiceProxyOptions\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"path to the resource\",\n          \"name\": \"path\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"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.\",\n          \"name\": \"path\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{namespace}/services/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespacedServiceStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespacedServiceStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified Service\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespacedServiceStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Service\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Namespace\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1Namespace\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Namespace\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1Namespace\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a Namespace\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1Namespace\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Namespace\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1Namespace\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Namespace\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{name}/finalize\": {\n      \"put\": {\n        \"description\": \"replace finalize of the specified Namespace\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespaceFinalize\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"name\": \"dryRun\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"name\": \"fieldManager\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"name\": \"fieldValidation\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Namespace\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/namespaces/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified Namespace\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NamespaceStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified Namespace\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NamespaceStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified Namespace\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NamespaceStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Namespace\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/nodes\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1Node\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1Node\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionNode\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/nodes/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1Node\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1Node\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1Node\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Node\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1Node\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Node\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/nodes/{name}/proxy\": {\n      \"get\": {\n        \"description\": \"connect GET requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1GetNodeProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"connect PUT requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PutNodeProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"connect POST requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PostNodeProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"connect DELETE requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1DeleteNodeProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"options\": {\n        \"description\": \"connect OPTIONS requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1OptionsNodeProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"head\": {\n        \"description\": \"connect HEAD requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1HeadNodeProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"connect PATCH requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PatchNodeProxy\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the NodeProxyOptions\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"Path is the URL path to use for the current proxy request to node.\",\n          \"name\": \"path\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/nodes/{name}/proxy/{path}\": {\n      \"get\": {\n        \"description\": \"connect GET requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1GetNodeProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"connect PUT requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PutNodeProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"connect POST requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PostNodeProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"connect DELETE requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1DeleteNodeProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"options\": {\n        \"description\": \"connect OPTIONS requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1OptionsNodeProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"head\": {\n        \"description\": \"connect HEAD requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1HeadNodeProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"connect PATCH requests to proxy of Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\"*/*\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"connectCoreV1PatchNodeProxyWithPath\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"connect\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"NodeProxyOptions\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the NodeProxyOptions\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"path to the resource\",\n          \"name\": \"path\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"Path is the URL path to use for the current proxy request to node.\",\n          \"name\": \"path\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/nodes/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1NodeStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified Node\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1NodeStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified Node\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1NodeStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Node\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/persistentvolumeclaims\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind PersistentVolumeClaim\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1PersistentVolumeClaimForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/persistentvolumes\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind PersistentVolume\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1PersistentVolume\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a PersistentVolume\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"createCoreV1PersistentVolume\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of PersistentVolume\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1CollectionPersistentVolume\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/persistentvolumes/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified PersistentVolume\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1PersistentVolume\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified PersistentVolume\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1PersistentVolume\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a PersistentVolume\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"deleteCoreV1PersistentVolume\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified PersistentVolume\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1PersistentVolume\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PersistentVolume\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/persistentvolumes/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified PersistentVolume\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"readCoreV1PersistentVolumeStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified PersistentVolume\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"replaceCoreV1PersistentVolumeStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified PersistentVolume\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"patchCoreV1PersistentVolumeStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PersistentVolume\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/pods\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Pod\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1PodForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/podtemplates\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind PodTemplate\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1PodTemplateForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/replicationcontrollers\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ReplicationController\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1ReplicationControllerForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationControllerList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/resourcequotas\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ResourceQuota\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1ResourceQuotaForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuotaList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/secrets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Secret\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1SecretForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/serviceaccounts\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ServiceAccount\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1ServiceAccountForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccountList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/services\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Service\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"listCoreV1ServiceForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/configmaps\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1ConfigMapListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/endpoints\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1EndpointsListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/events\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1EventListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/limitranges\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1LimitRangeListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespaceList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/configmaps\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedConfigMapList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/configmaps/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedConfigMap\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ConfigMap\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/endpoints\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedEndpointsList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/endpoints/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedEndpoints\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Endpoints\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/events\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedEventList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/events/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedEvent\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Event\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/limitranges\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedLimitRangeList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/limitranges/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedLimitRange\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the LimitRange\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedPersistentVolumeClaimList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedPersistentVolumeClaim\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PersistentVolumeClaim\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/pods\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedPodList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/pods/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedPod\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Pod\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/podtemplates\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedPodTemplateList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/podtemplates/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedPodTemplate\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PodTemplate\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/replicationcontrollers\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedReplicationControllerList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedReplicationController\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ReplicationController\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/resourcequotas\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedResourceQuotaList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedResourceQuota\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ResourceQuota\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/secrets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedSecretList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/secrets/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedSecret\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Secret\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/serviceaccounts\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedServiceAccountList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedServiceAccount\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ServiceAccount\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/services\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedServiceList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{namespace}/services/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NamespacedService\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Service\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/namespaces/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1Namespace\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Namespace\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/nodes\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1NodeList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/nodes/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1Node\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Node\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/persistentvolumeclaims\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1PersistentVolumeClaimListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/persistentvolumes\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1PersistentVolumeList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/persistentvolumes/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1PersistentVolume\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PersistentVolume\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/pods\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1PodListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/podtemplates\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1PodTemplateListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/replicationcontrollers\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1ReplicationControllerListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/resourcequotas\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1ResourceQuotaListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/secrets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1SecretListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/serviceaccounts\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1ServiceAccountListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/api/v1/watch/services\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"core_v1\"],\n        \"operationId\": \"watchCoreV1ServiceListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/\": {\n      \"get\": {\n        \"description\": \"get available API versions\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apis\"],\n        \"operationId\": \"getAPIVersions\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/admissionregistration.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration\"],\n        \"operationId\": \"getAdmissionregistrationAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/admissionregistration.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"getAdmissionregistrationV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind MutatingWebhookConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"listAdmissionregistrationV1MutatingWebhookConfiguration\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"MutatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a MutatingWebhookConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"createAdmissionregistrationV1MutatingWebhookConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"MutatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of MutatingWebhookConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"deleteAdmissionregistrationV1CollectionMutatingWebhookConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"MutatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified MutatingWebhookConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"readAdmissionregistrationV1MutatingWebhookConfiguration\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"MutatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified MutatingWebhookConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"replaceAdmissionregistrationV1MutatingWebhookConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"MutatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a MutatingWebhookConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"deleteAdmissionregistrationV1MutatingWebhookConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"MutatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified MutatingWebhookConfiguration\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"patchAdmissionregistrationV1MutatingWebhookConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"MutatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the MutatingWebhookConfiguration\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ValidatingWebhookConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"listAdmissionregistrationV1ValidatingWebhookConfiguration\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"ValidatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a ValidatingWebhookConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"createAdmissionregistrationV1ValidatingWebhookConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"ValidatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of ValidatingWebhookConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"deleteAdmissionregistrationV1CollectionValidatingWebhookConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"ValidatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified ValidatingWebhookConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"readAdmissionregistrationV1ValidatingWebhookConfiguration\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"ValidatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified ValidatingWebhookConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"replaceAdmissionregistrationV1ValidatingWebhookConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"ValidatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a ValidatingWebhookConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"deleteAdmissionregistrationV1ValidatingWebhookConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"ValidatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified ValidatingWebhookConfiguration\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"patchAdmissionregistrationV1ValidatingWebhookConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"ValidatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ValidatingWebhookConfiguration\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"watchAdmissionregistrationV1MutatingWebhookConfigurationList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"MutatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"watchAdmissionregistrationV1MutatingWebhookConfiguration\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"MutatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the MutatingWebhookConfiguration\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"watchAdmissionregistrationV1ValidatingWebhookConfigurationList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"ValidatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"admissionregistration_v1\"],\n        \"operationId\": \"watchAdmissionregistrationV1ValidatingWebhookConfiguration\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"ValidatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ValidatingWebhookConfiguration\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apiextensions.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions\"],\n        \"operationId\": \"getApiextensionsAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/apiextensions.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"getApiextensionsV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/apiextensions.k8s.io/v1/customresourcedefinitions\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind CustomResourceDefinition\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"listApiextensionsV1CustomResourceDefinition\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a CustomResourceDefinition\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"createApiextensionsV1CustomResourceDefinition\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of CustomResourceDefinition\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"deleteApiextensionsV1CollectionCustomResourceDefinition\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified CustomResourceDefinition\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"readApiextensionsV1CustomResourceDefinition\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified CustomResourceDefinition\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"replaceApiextensionsV1CustomResourceDefinition\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a CustomResourceDefinition\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"deleteApiextensionsV1CustomResourceDefinition\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified CustomResourceDefinition\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"patchApiextensionsV1CustomResourceDefinition\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CustomResourceDefinition\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified CustomResourceDefinition\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"readApiextensionsV1CustomResourceDefinitionStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified CustomResourceDefinition\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"replaceApiextensionsV1CustomResourceDefinitionStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified CustomResourceDefinition\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"patchApiextensionsV1CustomResourceDefinitionStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CustomResourceDefinition\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"watchApiextensionsV1CustomResourceDefinitionList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiextensions_v1\"],\n        \"operationId\": \"watchApiextensionsV1CustomResourceDefinition\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CustomResourceDefinition\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apiregistration.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration\"],\n        \"operationId\": \"getApiregistrationAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/apiregistration.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"getApiregistrationV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/apiregistration.k8s.io/v1/apiservices\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind APIService\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"listApiregistrationV1APIService\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiregistration.k8s.io\",\n          \"version\": \"v1\",\n          \"kind\": \"APIService\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create an APIService\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"createApiregistrationV1APIService\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiregistration.k8s.io\",\n          \"version\": \"v1\",\n          \"kind\": \"APIService\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of APIService\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"deleteApiregistrationV1CollectionAPIService\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiregistration.k8s.io\",\n          \"version\": \"v1\",\n          \"kind\": \"APIService\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apiregistration.k8s.io/v1/apiservices/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified APIService\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"readApiregistrationV1APIService\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiregistration.k8s.io\",\n          \"version\": \"v1\",\n          \"kind\": \"APIService\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified APIService\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"replaceApiregistrationV1APIService\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiregistration.k8s.io\",\n          \"version\": \"v1\",\n          \"kind\": \"APIService\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete an APIService\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"deleteApiregistrationV1APIService\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiregistration.k8s.io\",\n          \"version\": \"v1\",\n          \"kind\": \"APIService\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified APIService\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"patchApiregistrationV1APIService\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiregistration.k8s.io\",\n          \"version\": \"v1\",\n          \"kind\": \"APIService\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the APIService\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apiregistration.k8s.io/v1/apiservices/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified APIService\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"readApiregistrationV1APIServiceStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiregistration.k8s.io\",\n          \"version\": \"v1\",\n          \"kind\": \"APIService\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified APIService\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"replaceApiregistrationV1APIServiceStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiregistration.k8s.io\",\n          \"version\": \"v1\",\n          \"kind\": \"APIService\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified APIService\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"patchApiregistrationV1APIServiceStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiregistration.k8s.io\",\n          \"version\": \"v1\",\n          \"kind\": \"APIService\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the APIService\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apiregistration.k8s.io/v1/watch/apiservices\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"watchApiregistrationV1APIServiceList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiregistration.k8s.io\",\n          \"version\": \"v1\",\n          \"kind\": \"APIService\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apiregistration.k8s.io/v1/watch/apiservices/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apiregistration_v1\"],\n        \"operationId\": \"watchApiregistrationV1APIService\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apiregistration.k8s.io\",\n          \"version\": \"v1\",\n          \"kind\": \"APIService\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the APIService\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps\"],\n        \"operationId\": \"getAppsAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/apps/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"getAppsV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/apps/v1/controllerrevisions\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ControllerRevision\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"listAppsV1ControllerRevisionForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevisionList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/daemonsets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind DaemonSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"listAppsV1DaemonSetForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSetList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/deployments\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Deployment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"listAppsV1DeploymentForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DeploymentList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/controllerrevisions\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ControllerRevision\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"listAppsV1NamespacedControllerRevision\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevisionList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a ControllerRevision\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"createAppsV1NamespacedControllerRevision\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of ControllerRevision\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"deleteAppsV1CollectionNamespacedControllerRevision\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified ControllerRevision\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"readAppsV1NamespacedControllerRevision\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified ControllerRevision\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"replaceAppsV1NamespacedControllerRevision\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a ControllerRevision\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"deleteAppsV1NamespacedControllerRevision\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified ControllerRevision\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"patchAppsV1NamespacedControllerRevision\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ControllerRevision\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/daemonsets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind DaemonSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"listAppsV1NamespacedDaemonSet\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSetList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a DaemonSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"createAppsV1NamespacedDaemonSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of DaemonSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"deleteAppsV1CollectionNamespacedDaemonSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified DaemonSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"readAppsV1NamespacedDaemonSet\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified DaemonSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"replaceAppsV1NamespacedDaemonSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a DaemonSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"deleteAppsV1NamespacedDaemonSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified DaemonSet\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"patchAppsV1NamespacedDaemonSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the DaemonSet\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified DaemonSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"readAppsV1NamespacedDaemonSetStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified DaemonSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"replaceAppsV1NamespacedDaemonSetStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified DaemonSet\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"patchAppsV1NamespacedDaemonSetStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the DaemonSet\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/deployments\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Deployment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"listAppsV1NamespacedDeployment\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DeploymentList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a Deployment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"createAppsV1NamespacedDeployment\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of Deployment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"deleteAppsV1CollectionNamespacedDeployment\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/deployments/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Deployment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"readAppsV1NamespacedDeployment\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Deployment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"replaceAppsV1NamespacedDeployment\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a Deployment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"deleteAppsV1NamespacedDeployment\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Deployment\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"patchAppsV1NamespacedDeployment\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Deployment\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale\": {\n      \"get\": {\n        \"description\": \"read scale of the specified Deployment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"readAppsV1NamespacedDeploymentScale\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace scale of the specified Deployment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"replaceAppsV1NamespacedDeploymentScale\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update scale of the specified Deployment\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"patchAppsV1NamespacedDeploymentScale\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Scale\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified Deployment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"readAppsV1NamespacedDeploymentStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified Deployment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"replaceAppsV1NamespacedDeploymentStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified Deployment\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"patchAppsV1NamespacedDeploymentStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Deployment\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/replicasets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ReplicaSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"listAppsV1NamespacedReplicaSet\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSetList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a ReplicaSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"createAppsV1NamespacedReplicaSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of ReplicaSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"deleteAppsV1CollectionNamespacedReplicaSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified ReplicaSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"readAppsV1NamespacedReplicaSet\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified ReplicaSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"replaceAppsV1NamespacedReplicaSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a ReplicaSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"deleteAppsV1NamespacedReplicaSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified ReplicaSet\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"patchAppsV1NamespacedReplicaSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ReplicaSet\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale\": {\n      \"get\": {\n        \"description\": \"read scale of the specified ReplicaSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"readAppsV1NamespacedReplicaSetScale\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace scale of the specified ReplicaSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"replaceAppsV1NamespacedReplicaSetScale\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update scale of the specified ReplicaSet\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"patchAppsV1NamespacedReplicaSetScale\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Scale\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified ReplicaSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"readAppsV1NamespacedReplicaSetStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified ReplicaSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"replaceAppsV1NamespacedReplicaSetStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified ReplicaSet\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"patchAppsV1NamespacedReplicaSetStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ReplicaSet\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/statefulsets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind StatefulSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"listAppsV1NamespacedStatefulSet\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSetList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a StatefulSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"createAppsV1NamespacedStatefulSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of StatefulSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"deleteAppsV1CollectionNamespacedStatefulSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified StatefulSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"readAppsV1NamespacedStatefulSet\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified StatefulSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"replaceAppsV1NamespacedStatefulSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a StatefulSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"deleteAppsV1NamespacedStatefulSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified StatefulSet\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"patchAppsV1NamespacedStatefulSet\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the StatefulSet\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale\": {\n      \"get\": {\n        \"description\": \"read scale of the specified StatefulSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"readAppsV1NamespacedStatefulSetScale\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace scale of the specified StatefulSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"replaceAppsV1NamespacedStatefulSetScale\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update scale of the specified StatefulSet\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"patchAppsV1NamespacedStatefulSetScale\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.Scale\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Scale\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified StatefulSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"readAppsV1NamespacedStatefulSetStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified StatefulSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"replaceAppsV1NamespacedStatefulSetStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified StatefulSet\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"patchAppsV1NamespacedStatefulSetStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the StatefulSet\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/replicasets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ReplicaSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"listAppsV1ReplicaSetForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSetList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/statefulsets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind StatefulSet\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"listAppsV1StatefulSetForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSetList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/controllerrevisions\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1ControllerRevisionListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/daemonsets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1DaemonSetListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/deployments\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1DeploymentListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1NamespacedControllerRevisionList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1NamespacedControllerRevision\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ControllerRevision\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/daemonsets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1NamespacedDaemonSetList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1NamespacedDaemonSet\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the DaemonSet\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/deployments\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1NamespacedDeploymentList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1NamespacedDeployment\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Deployment\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/replicasets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1NamespacedReplicaSetList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1NamespacedReplicaSet\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ReplicaSet\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/statefulsets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1NamespacedStatefulSetList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1NamespacedStatefulSet\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the StatefulSet\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/replicasets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1ReplicaSetListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/statefulsets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"apps_v1\"],\n        \"operationId\": \"watchAppsV1StatefulSetListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/authentication.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"authentication\"],\n        \"operationId\": \"getAuthenticationAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/authentication.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"authentication_v1\"],\n        \"operationId\": \"getAuthenticationV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/authentication.k8s.io/v1/tokenreviews\": {\n      \"post\": {\n        \"description\": \"create a TokenReview\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"authentication_v1\"],\n        \"operationId\": \"createAuthenticationV1TokenReview\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.TokenReview\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.TokenReview\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.TokenReview\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.TokenReview\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"TokenReview\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"name\": \"dryRun\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"name\": \"fieldManager\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"name\": \"fieldValidation\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/authorization.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"authorization\"],\n        \"operationId\": \"getAuthorizationAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/authorization.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"authorization_v1\"],\n        \"operationId\": \"getAuthorizationV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews\": {\n      \"post\": {\n        \"description\": \"create a LocalSubjectAccessReview\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"authorization_v1\"],\n        \"operationId\": \"createAuthorizationV1NamespacedLocalSubjectAccessReview\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"LocalSubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"name\": \"dryRun\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"name\": \"fieldManager\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"name\": \"fieldValidation\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/authorization.k8s.io/v1/selfsubjectaccessreviews\": {\n      \"post\": {\n        \"description\": \"create a SelfSubjectAccessReview\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"authorization_v1\"],\n        \"operationId\": \"createAuthorizationV1SelfSubjectAccessReview\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SelfSubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"name\": \"dryRun\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"name\": \"fieldManager\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"name\": \"fieldValidation\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/authorization.k8s.io/v1/selfsubjectrulesreviews\": {\n      \"post\": {\n        \"description\": \"create a SelfSubjectRulesReview\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"authorization_v1\"],\n        \"operationId\": \"createAuthorizationV1SelfSubjectRulesReview\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SelfSubjectRulesReview\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"name\": \"dryRun\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"name\": \"fieldManager\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"name\": \"fieldValidation\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/authorization.k8s.io/v1/subjectaccessreviews\": {\n      \"post\": {\n        \"description\": \"create a SubjectAccessReview\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"authorization_v1\"],\n        \"operationId\": \"createAuthorizationV1SubjectAccessReview\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview\"\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"name\": \"dryRun\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"name\": \"fieldManager\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"name\": \"fieldValidation\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling\"],\n        \"operationId\": \"getAutoscalingAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/autoscaling/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"getAutoscalingV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/autoscaling/v1/horizontalpodautoscalers\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"listAutoscalingV1NamespacedHorizontalPodAutoscaler\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"createAutoscalingV1NamespacedHorizontalPodAutoscaler\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"readAutoscalingV1NamespacedHorizontalPodAutoscaler\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"replaceAutoscalingV1NamespacedHorizontalPodAutoscaler\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"deleteAutoscalingV1NamespacedHorizontalPodAutoscaler\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified HorizontalPodAutoscaler\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"patchAutoscalingV1NamespacedHorizontalPodAutoscaler\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the HorizontalPodAutoscaler\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified HorizontalPodAutoscaler\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the HorizontalPodAutoscaler\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v1/watch/horizontalpodautoscalers\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"watchAutoscalingV1NamespacedHorizontalPodAutoscalerList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v1\"],\n        \"operationId\": \"watchAutoscalingV1NamespacedHorizontalPodAutoscaler\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the HorizontalPodAutoscaler\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v2/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"getAutoscalingV2APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/autoscaling/v2/horizontalpodautoscalers\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"listAutoscalingV2HorizontalPodAutoscalerForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"listAutoscalingV2NamespacedHorizontalPodAutoscaler\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"createAutoscalingV2NamespacedHorizontalPodAutoscaler\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"deleteAutoscalingV2CollectionNamespacedHorizontalPodAutoscaler\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"readAutoscalingV2NamespacedHorizontalPodAutoscaler\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"replaceAutoscalingV2NamespacedHorizontalPodAutoscaler\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"deleteAutoscalingV2NamespacedHorizontalPodAutoscaler\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified HorizontalPodAutoscaler\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"patchAutoscalingV2NamespacedHorizontalPodAutoscaler\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the HorizontalPodAutoscaler\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"readAutoscalingV2NamespacedHorizontalPodAutoscalerStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified HorizontalPodAutoscaler\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"replaceAutoscalingV2NamespacedHorizontalPodAutoscalerStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified HorizontalPodAutoscaler\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"patchAutoscalingV2NamespacedHorizontalPodAutoscalerStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the HorizontalPodAutoscaler\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v2/watch/horizontalpodautoscalers\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"watchAutoscalingV2HorizontalPodAutoscalerListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v2/watch/namespaces/{namespace}/horizontalpodautoscalers\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"watchAutoscalingV2NamespacedHorizontalPodAutoscalerList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/autoscaling/v2/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"autoscaling_v2\"],\n        \"operationId\": \"watchAutoscalingV2NamespacedHorizontalPodAutoscaler\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the HorizontalPodAutoscaler\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch\"],\n        \"operationId\": \"getBatchAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/batch/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"getBatchV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/batch/v1/cronjobs\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind CronJob\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"listBatchV1CronJobForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJobList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/jobs\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Job\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"listBatchV1JobForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.JobList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/namespaces/{namespace}/cronjobs\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind CronJob\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"listBatchV1NamespacedCronJob\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJobList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a CronJob\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"createBatchV1NamespacedCronJob\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of CronJob\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"deleteBatchV1CollectionNamespacedCronJob\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/namespaces/{namespace}/cronjobs/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified CronJob\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"readBatchV1NamespacedCronJob\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified CronJob\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"replaceBatchV1NamespacedCronJob\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a CronJob\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"deleteBatchV1NamespacedCronJob\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified CronJob\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"patchBatchV1NamespacedCronJob\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CronJob\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified CronJob\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"readBatchV1NamespacedCronJobStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified CronJob\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"replaceBatchV1NamespacedCronJobStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified CronJob\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"patchBatchV1NamespacedCronJobStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CronJob\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/namespaces/{namespace}/jobs\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Job\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"listBatchV1NamespacedJob\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.JobList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a Job\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"createBatchV1NamespacedJob\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of Job\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"deleteBatchV1CollectionNamespacedJob\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/namespaces/{namespace}/jobs/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Job\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"readBatchV1NamespacedJob\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Job\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"replaceBatchV1NamespacedJob\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a Job\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"deleteBatchV1NamespacedJob\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Job\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"patchBatchV1NamespacedJob\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Job\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified Job\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"readBatchV1NamespacedJobStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified Job\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"replaceBatchV1NamespacedJobStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified Job\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"patchBatchV1NamespacedJobStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Job\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/watch/cronjobs\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"watchBatchV1CronJobListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/watch/jobs\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"watchBatchV1JobListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/watch/namespaces/{namespace}/cronjobs\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"watchBatchV1NamespacedCronJobList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/watch/namespaces/{namespace}/cronjobs/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"watchBatchV1NamespacedCronJob\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"CronJob\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CronJob\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/watch/namespaces/{namespace}/jobs\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"watchBatchV1NamespacedJobList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"batch_v1\"],\n        \"operationId\": \"watchBatchV1NamespacedJob\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"batch\",\n          \"kind\": \"Job\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Job\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/certificates.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates\"],\n        \"operationId\": \"getCertificatesAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/certificates.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"getCertificatesV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/certificates.k8s.io/v1/certificatesigningrequests\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind CertificateSigningRequest\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"listCertificatesV1CertificateSigningRequest\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a CertificateSigningRequest\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"createCertificatesV1CertificateSigningRequest\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of CertificateSigningRequest\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"deleteCertificatesV1CollectionCertificateSigningRequest\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified CertificateSigningRequest\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"readCertificatesV1CertificateSigningRequest\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified CertificateSigningRequest\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"replaceCertificatesV1CertificateSigningRequest\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a CertificateSigningRequest\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"deleteCertificatesV1CertificateSigningRequest\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified CertificateSigningRequest\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"patchCertificatesV1CertificateSigningRequest\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CertificateSigningRequest\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/approval\": {\n      \"get\": {\n        \"description\": \"read approval of the specified CertificateSigningRequest\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"readCertificatesV1CertificateSigningRequestApproval\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace approval of the specified CertificateSigningRequest\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"replaceCertificatesV1CertificateSigningRequestApproval\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update approval of the specified CertificateSigningRequest\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"patchCertificatesV1CertificateSigningRequestApproval\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CertificateSigningRequest\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/certificates.k8s.io/v1/certificatesigningrequests/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified CertificateSigningRequest\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"readCertificatesV1CertificateSigningRequestStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified CertificateSigningRequest\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"replaceCertificatesV1CertificateSigningRequestStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified CertificateSigningRequest\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"patchCertificatesV1CertificateSigningRequestStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CertificateSigningRequest\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/certificates.k8s.io/v1/watch/certificatesigningrequests\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"watchCertificatesV1CertificateSigningRequestList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/certificates.k8s.io/v1/watch/certificatesigningrequests/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"certificates_v1\"],\n        \"operationId\": \"watchCertificatesV1CertificateSigningRequest\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CertificateSigningRequest\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/coordination.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination\"],\n        \"operationId\": \"getCoordinationAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/coordination.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination_v1\"],\n        \"operationId\": \"getCoordinationV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/coordination.k8s.io/v1/leases\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Lease\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination_v1\"],\n        \"operationId\": \"listCoordinationV1LeaseForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.LeaseList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"Lease\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Lease\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination_v1\"],\n        \"operationId\": \"listCoordinationV1NamespacedLease\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.LeaseList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"Lease\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a Lease\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination_v1\"],\n        \"operationId\": \"createCoordinationV1NamespacedLease\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.Lease\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.Lease\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.Lease\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.Lease\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"Lease\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of Lease\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination_v1\"],\n        \"operationId\": \"deleteCoordinationV1CollectionNamespacedLease\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"Lease\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/coordination.k8s.io/v1/namespaces/{namespace}/leases/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Lease\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination_v1\"],\n        \"operationId\": \"readCoordinationV1NamespacedLease\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.Lease\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"Lease\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Lease\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination_v1\"],\n        \"operationId\": \"replaceCoordinationV1NamespacedLease\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.Lease\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.Lease\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.Lease\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"Lease\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a Lease\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination_v1\"],\n        \"operationId\": \"deleteCoordinationV1NamespacedLease\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"Lease\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Lease\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination_v1\"],\n        \"operationId\": \"patchCoordinationV1NamespacedLease\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.Lease\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.Lease\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"Lease\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Lease\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/coordination.k8s.io/v1/watch/leases\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination_v1\"],\n        \"operationId\": \"watchCoordinationV1LeaseListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"Lease\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination_v1\"],\n        \"operationId\": \"watchCoordinationV1NamespacedLeaseList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"Lease\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/coordination.k8s.io/v1/watch/namespaces/{namespace}/leases/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"coordination_v1\"],\n        \"operationId\": \"watchCoordinationV1NamespacedLease\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"Lease\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Lease\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/discovery.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery\"],\n        \"operationId\": \"getDiscoveryAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/discovery.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery_v1\"],\n        \"operationId\": \"getDiscoveryV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/discovery.k8s.io/v1/endpointslices\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind EndpointSlice\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery_v1\"],\n        \"operationId\": \"listDiscoveryV1EndpointSliceForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSliceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSlice\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind EndpointSlice\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery_v1\"],\n        \"operationId\": \"listDiscoveryV1NamespacedEndpointSlice\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSliceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSlice\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create an EndpointSlice\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery_v1\"],\n        \"operationId\": \"createDiscoveryV1NamespacedEndpointSlice\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSlice\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSlice\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSlice\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSlice\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSlice\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of EndpointSlice\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery_v1\"],\n        \"operationId\": \"deleteDiscoveryV1CollectionNamespacedEndpointSlice\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSlice\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified EndpointSlice\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery_v1\"],\n        \"operationId\": \"readDiscoveryV1NamespacedEndpointSlice\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSlice\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSlice\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified EndpointSlice\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery_v1\"],\n        \"operationId\": \"replaceDiscoveryV1NamespacedEndpointSlice\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSlice\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSlice\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSlice\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSlice\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete an EndpointSlice\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery_v1\"],\n        \"operationId\": \"deleteDiscoveryV1NamespacedEndpointSlice\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSlice\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified EndpointSlice\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery_v1\"],\n        \"operationId\": \"patchDiscoveryV1NamespacedEndpointSlice\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSlice\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSlice\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSlice\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the EndpointSlice\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/discovery.k8s.io/v1/watch/endpointslices\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery_v1\"],\n        \"operationId\": \"watchDiscoveryV1EndpointSliceListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSlice\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/discovery.k8s.io/v1/watch/namespaces/{namespace}/endpointslices\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of EndpointSlice. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery_v1\"],\n        \"operationId\": \"watchDiscoveryV1NamespacedEndpointSliceList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSlice\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/discovery.k8s.io/v1/watch/namespaces/{namespace}/endpointslices/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"discovery_v1\"],\n        \"operationId\": \"watchDiscoveryV1NamespacedEndpointSlice\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSlice\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the EndpointSlice\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/events.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events\"],\n        \"operationId\": \"getEventsAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/events.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events_v1\"],\n        \"operationId\": \"getEventsV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/events.k8s.io/v1/events\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events_v1\"],\n        \"operationId\": \"listEventsV1EventForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.EventList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/events.k8s.io/v1/namespaces/{namespace}/events\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events_v1\"],\n        \"operationId\": \"listEventsV1NamespacedEvent\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.EventList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create an Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events_v1\"],\n        \"operationId\": \"createEventsV1NamespacedEvent\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.Event\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.Event\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.Event\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.Event\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events_v1\"],\n        \"operationId\": \"deleteEventsV1CollectionNamespacedEvent\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/events.k8s.io/v1/namespaces/{namespace}/events/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events_v1\"],\n        \"operationId\": \"readEventsV1NamespacedEvent\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.Event\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events_v1\"],\n        \"operationId\": \"replaceEventsV1NamespacedEvent\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.Event\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.Event\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.Event\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete an Event\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events_v1\"],\n        \"operationId\": \"deleteEventsV1NamespacedEvent\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Event\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events_v1\"],\n        \"operationId\": \"patchEventsV1NamespacedEvent\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.Event\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.Event\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Event\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/events.k8s.io/v1/watch/events\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events_v1\"],\n        \"operationId\": \"watchEventsV1EventListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/events.k8s.io/v1/watch/namespaces/{namespace}/events\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events_v1\"],\n        \"operationId\": \"watchEventsV1NamespacedEventList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/events.k8s.io/v1/watch/namespaces/{namespace}/events/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"events_v1\"],\n        \"operationId\": \"watchEventsV1NamespacedEvent\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Event\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver\"],\n        \"operationId\": \"getFlowcontrolApiserverAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta2/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"getFlowcontrolApiserverV1beta2APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"listFlowcontrolApiserverV1beta2FlowSchema\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchemaList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"createFlowcontrolApiserverV1beta2FlowSchema\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"deleteFlowcontrolApiserverV1beta2CollectionFlowSchema\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"readFlowcontrolApiserverV1beta2FlowSchema\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"replaceFlowcontrolApiserverV1beta2FlowSchema\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"deleteFlowcontrolApiserverV1beta2FlowSchema\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified FlowSchema\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"patchFlowcontrolApiserverV1beta2FlowSchema\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the FlowSchema\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"readFlowcontrolApiserverV1beta2FlowSchemaStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"replaceFlowcontrolApiserverV1beta2FlowSchemaStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified FlowSchema\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"patchFlowcontrolApiserverV1beta2FlowSchemaStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the FlowSchema\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"listFlowcontrolApiserverV1beta2PriorityLevelConfiguration\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"createFlowcontrolApiserverV1beta2PriorityLevelConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"deleteFlowcontrolApiserverV1beta2CollectionPriorityLevelConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"readFlowcontrolApiserverV1beta2PriorityLevelConfiguration\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"replaceFlowcontrolApiserverV1beta2PriorityLevelConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"deleteFlowcontrolApiserverV1beta2PriorityLevelConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified PriorityLevelConfiguration\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"patchFlowcontrolApiserverV1beta2PriorityLevelConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PriorityLevelConfiguration\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"readFlowcontrolApiserverV1beta2PriorityLevelConfigurationStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"replaceFlowcontrolApiserverV1beta2PriorityLevelConfigurationStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified PriorityLevelConfiguration\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"patchFlowcontrolApiserverV1beta2PriorityLevelConfigurationStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PriorityLevelConfiguration\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta2/watch/flowschemas\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of FlowSchema. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"watchFlowcontrolApiserverV1beta2FlowSchemaList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta2/watch/flowschemas/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"watchFlowcontrolApiserverV1beta2FlowSchema\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the FlowSchema\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta2/watch/prioritylevelconfigurations\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of PriorityLevelConfiguration. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"watchFlowcontrolApiserverV1beta2PriorityLevelConfigurationList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta2/watch/prioritylevelconfigurations/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta2\"],\n        \"operationId\": \"watchFlowcontrolApiserverV1beta2PriorityLevelConfiguration\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PriorityLevelConfiguration\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta3/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"getFlowcontrolApiserverV1beta3APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"listFlowcontrolApiserverV1beta3FlowSchema\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchemaList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"createFlowcontrolApiserverV1beta3FlowSchema\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"deleteFlowcontrolApiserverV1beta3CollectionFlowSchema\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"readFlowcontrolApiserverV1beta3FlowSchema\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"replaceFlowcontrolApiserverV1beta3FlowSchema\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"deleteFlowcontrolApiserverV1beta3FlowSchema\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified FlowSchema\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"patchFlowcontrolApiserverV1beta3FlowSchema\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the FlowSchema\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"readFlowcontrolApiserverV1beta3FlowSchemaStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified FlowSchema\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"replaceFlowcontrolApiserverV1beta3FlowSchemaStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified FlowSchema\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"patchFlowcontrolApiserverV1beta3FlowSchemaStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the FlowSchema\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"listFlowcontrolApiserverV1beta3PriorityLevelConfiguration\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"createFlowcontrolApiserverV1beta3PriorityLevelConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"deleteFlowcontrolApiserverV1beta3CollectionPriorityLevelConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"readFlowcontrolApiserverV1beta3PriorityLevelConfiguration\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"replaceFlowcontrolApiserverV1beta3PriorityLevelConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"deleteFlowcontrolApiserverV1beta3PriorityLevelConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified PriorityLevelConfiguration\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"patchFlowcontrolApiserverV1beta3PriorityLevelConfiguration\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PriorityLevelConfiguration\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"readFlowcontrolApiserverV1beta3PriorityLevelConfigurationStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified PriorityLevelConfiguration\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"replaceFlowcontrolApiserverV1beta3PriorityLevelConfigurationStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified PriorityLevelConfiguration\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"patchFlowcontrolApiserverV1beta3PriorityLevelConfigurationStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PriorityLevelConfiguration\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta3/watch/flowschemas\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of FlowSchema. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"watchFlowcontrolApiserverV1beta3FlowSchemaList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta3/watch/flowschemas/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"watchFlowcontrolApiserverV1beta3FlowSchema\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the FlowSchema\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta3/watch/prioritylevelconfigurations\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of PriorityLevelConfiguration. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"watchFlowcontrolApiserverV1beta3PriorityLevelConfigurationList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/flowcontrol.apiserver.k8s.io/v1beta3/watch/prioritylevelconfigurations/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"flowcontrolApiserver_v1beta3\"],\n        \"operationId\": \"watchFlowcontrolApiserverV1beta3PriorityLevelConfiguration\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PriorityLevelConfiguration\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking\"],\n        \"operationId\": \"getNetworkingAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/networking.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"getNetworkingV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/networking.k8s.io/v1/ingressclasses\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind IngressClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"listNetworkingV1IngressClass\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClassList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"IngressClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create an IngressClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"createNetworkingV1IngressClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClass\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClass\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClass\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"IngressClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of IngressClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"deleteNetworkingV1CollectionIngressClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"IngressClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/ingressclasses/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified IngressClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"readNetworkingV1IngressClass\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"IngressClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified IngressClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"replaceNetworkingV1IngressClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClass\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClass\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"IngressClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete an IngressClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"deleteNetworkingV1IngressClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"IngressClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified IngressClass\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"patchNetworkingV1IngressClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClass\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"IngressClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the IngressClass\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/ingresses\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Ingress\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"listNetworkingV1IngressForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Ingress\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"listNetworkingV1NamespacedIngress\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create an Ingress\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"createNetworkingV1NamespacedIngress\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of Ingress\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"deleteNetworkingV1CollectionNamespacedIngress\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Ingress\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"readNetworkingV1NamespacedIngress\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Ingress\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"replaceNetworkingV1NamespacedIngress\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete an Ingress\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"deleteNetworkingV1NamespacedIngress\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Ingress\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"patchNetworkingV1NamespacedIngress\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Ingress\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/namespaces/{namespace}/ingresses/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified Ingress\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"readNetworkingV1NamespacedIngressStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified Ingress\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"replaceNetworkingV1NamespacedIngressStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified Ingress\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"patchNetworkingV1NamespacedIngressStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Ingress\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind NetworkPolicy\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"listNetworkingV1NamespacedNetworkPolicy\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicyList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a NetworkPolicy\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"createNetworkingV1NamespacedNetworkPolicy\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of NetworkPolicy\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"deleteNetworkingV1CollectionNamespacedNetworkPolicy\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified NetworkPolicy\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"readNetworkingV1NamespacedNetworkPolicy\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified NetworkPolicy\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"replaceNetworkingV1NamespacedNetworkPolicy\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a NetworkPolicy\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"deleteNetworkingV1NamespacedNetworkPolicy\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified NetworkPolicy\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"patchNetworkingV1NamespacedNetworkPolicy\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the NetworkPolicy\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified NetworkPolicy\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"readNetworkingV1NamespacedNetworkPolicyStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified NetworkPolicy\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"replaceNetworkingV1NamespacedNetworkPolicyStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified NetworkPolicy\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"patchNetworkingV1NamespacedNetworkPolicyStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the NetworkPolicy\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/networkpolicies\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind NetworkPolicy\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"listNetworkingV1NetworkPolicyForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicyList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/watch/ingressclasses\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of IngressClass. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"watchNetworkingV1IngressClassList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"IngressClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/watch/ingressclasses/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"watchNetworkingV1IngressClass\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"IngressClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the IngressClass\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/watch/ingresses\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"watchNetworkingV1IngressListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"watchNetworkingV1NamespacedIngressList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/ingresses/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"watchNetworkingV1NamespacedIngress\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"Ingress\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Ingress\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"watchNetworkingV1NamespacedNetworkPolicyList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"watchNetworkingV1NamespacedNetworkPolicy\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the NetworkPolicy\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/networking.k8s.io/v1/watch/networkpolicies\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"networking_v1\"],\n        \"operationId\": \"watchNetworkingV1NetworkPolicyListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/node.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"node\"],\n        \"operationId\": \"getNodeAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/node.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"node_v1\"],\n        \"operationId\": \"getNodeV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/node.k8s.io/v1/runtimeclasses\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind RuntimeClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"node_v1\"],\n        \"operationId\": \"listNodeV1RuntimeClass\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.node.v1.RuntimeClassList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"node.k8s.io\",\n          \"kind\": \"RuntimeClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a RuntimeClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"node_v1\"],\n        \"operationId\": \"createNodeV1RuntimeClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.node.v1.RuntimeClass\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.node.v1.RuntimeClass\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.node.v1.RuntimeClass\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.node.v1.RuntimeClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"node.k8s.io\",\n          \"kind\": \"RuntimeClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of RuntimeClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"node_v1\"],\n        \"operationId\": \"deleteNodeV1CollectionRuntimeClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"node.k8s.io\",\n          \"kind\": \"RuntimeClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/node.k8s.io/v1/runtimeclasses/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified RuntimeClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"node_v1\"],\n        \"operationId\": \"readNodeV1RuntimeClass\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.node.v1.RuntimeClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"node.k8s.io\",\n          \"kind\": \"RuntimeClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified RuntimeClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"node_v1\"],\n        \"operationId\": \"replaceNodeV1RuntimeClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.node.v1.RuntimeClass\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.node.v1.RuntimeClass\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.node.v1.RuntimeClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"node.k8s.io\",\n          \"kind\": \"RuntimeClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a RuntimeClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"node_v1\"],\n        \"operationId\": \"deleteNodeV1RuntimeClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"node.k8s.io\",\n          \"kind\": \"RuntimeClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified RuntimeClass\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"node_v1\"],\n        \"operationId\": \"patchNodeV1RuntimeClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.node.v1.RuntimeClass\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.node.v1.RuntimeClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"node.k8s.io\",\n          \"kind\": \"RuntimeClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the RuntimeClass\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/node.k8s.io/v1/watch/runtimeclasses\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of RuntimeClass. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"node_v1\"],\n        \"operationId\": \"watchNodeV1RuntimeClassList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"node.k8s.io\",\n          \"kind\": \"RuntimeClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/node.k8s.io/v1/watch/runtimeclasses/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"node_v1\"],\n        \"operationId\": \"watchNodeV1RuntimeClass\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"node.k8s.io\",\n          \"kind\": \"RuntimeClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the RuntimeClass\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/policy/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy\"],\n        \"operationId\": \"getPolicyAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/policy/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"getPolicyV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind PodDisruptionBudget\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"listPolicyV1NamespacedPodDisruptionBudget\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudgetList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a PodDisruptionBudget\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"createPolicyV1NamespacedPodDisruptionBudget\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of PodDisruptionBudget\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"deletePolicyV1CollectionNamespacedPodDisruptionBudget\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified PodDisruptionBudget\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"readPolicyV1NamespacedPodDisruptionBudget\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified PodDisruptionBudget\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"replacePolicyV1NamespacedPodDisruptionBudget\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a PodDisruptionBudget\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"deletePolicyV1NamespacedPodDisruptionBudget\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified PodDisruptionBudget\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"patchPolicyV1NamespacedPodDisruptionBudget\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PodDisruptionBudget\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/policy/v1/namespaces/{namespace}/poddisruptionbudgets/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified PodDisruptionBudget\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"readPolicyV1NamespacedPodDisruptionBudgetStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified PodDisruptionBudget\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"replacePolicyV1NamespacedPodDisruptionBudgetStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified PodDisruptionBudget\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"patchPolicyV1NamespacedPodDisruptionBudgetStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PodDisruptionBudget\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/policy/v1/poddisruptionbudgets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind PodDisruptionBudget\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"listPolicyV1PodDisruptionBudgetForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudgetList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"watchPolicyV1NamespacedPodDisruptionBudgetList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/policy/v1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"watchPolicyV1NamespacedPodDisruptionBudget\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PodDisruptionBudget\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/policy/v1/watch/poddisruptionbudgets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"policy_v1\"],\n        \"operationId\": \"watchPolicyV1PodDisruptionBudgetListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudget\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization\"],\n        \"operationId\": \"getRbacAuthorizationAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"getRbacAuthorizationV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/clusterrolebindings\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ClusterRoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"listRbacAuthorizationV1ClusterRoleBinding\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a ClusterRoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"createRbacAuthorizationV1ClusterRoleBinding\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of ClusterRoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"deleteRbacAuthorizationV1CollectionClusterRoleBinding\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified ClusterRoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"readRbacAuthorizationV1ClusterRoleBinding\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified ClusterRoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"replaceRbacAuthorizationV1ClusterRoleBinding\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a ClusterRoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"deleteRbacAuthorizationV1ClusterRoleBinding\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified ClusterRoleBinding\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"patchRbacAuthorizationV1ClusterRoleBinding\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ClusterRoleBinding\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/clusterroles\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ClusterRole\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"listRbacAuthorizationV1ClusterRole\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRole\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a ClusterRole\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"createRbacAuthorizationV1ClusterRole\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRole\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRole\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRole\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRole\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRole\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of ClusterRole\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"deleteRbacAuthorizationV1CollectionClusterRole\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRole\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified ClusterRole\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"readRbacAuthorizationV1ClusterRole\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRole\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRole\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified ClusterRole\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"replaceRbacAuthorizationV1ClusterRole\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRole\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRole\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRole\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRole\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a ClusterRole\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"deleteRbacAuthorizationV1ClusterRole\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRole\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified ClusterRole\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"patchRbacAuthorizationV1ClusterRole\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRole\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRole\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRole\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ClusterRole\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind RoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"listRbacAuthorizationV1NamespacedRoleBinding\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBindingList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a RoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"createRbacAuthorizationV1NamespacedRoleBinding\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBinding\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBinding\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBinding\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBinding\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of RoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"deleteRbacAuthorizationV1CollectionNamespacedRoleBinding\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified RoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"readRbacAuthorizationV1NamespacedRoleBinding\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBinding\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified RoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"replaceRbacAuthorizationV1NamespacedRoleBinding\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBinding\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBinding\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBinding\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a RoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"deleteRbacAuthorizationV1NamespacedRoleBinding\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified RoleBinding\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"patchRbacAuthorizationV1NamespacedRoleBinding\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBinding\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBinding\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the RoleBinding\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Role\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"listRbacAuthorizationV1NamespacedRole\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"Role\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a Role\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"createRbacAuthorizationV1NamespacedRole\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Role\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Role\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Role\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Role\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"Role\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of Role\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"deleteRbacAuthorizationV1CollectionNamespacedRole\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"Role\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified Role\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"readRbacAuthorizationV1NamespacedRole\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Role\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"Role\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Role\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"replaceRbacAuthorizationV1NamespacedRole\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Role\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Role\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Role\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"Role\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a Role\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"deleteRbacAuthorizationV1NamespacedRole\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"Role\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified Role\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"patchRbacAuthorizationV1NamespacedRole\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Role\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Role\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"Role\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Role\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/rolebindings\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind RoleBinding\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"listRbacAuthorizationV1RoleBindingForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBindingList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/roles\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Role\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"listRbacAuthorizationV1RoleForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleList\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"Role\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"watchRbacAuthorizationV1ClusterRoleBindingList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"watchRbacAuthorizationV1ClusterRoleBinding\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ClusterRoleBinding\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/watch/clusterroles\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"watchRbacAuthorizationV1ClusterRoleList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRole\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"watchRbacAuthorizationV1ClusterRole\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRole\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the ClusterRole\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"watchRbacAuthorizationV1NamespacedRoleBindingList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"watchRbacAuthorizationV1NamespacedRoleBinding\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the RoleBinding\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"watchRbacAuthorizationV1NamespacedRoleList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"Role\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"watchRbacAuthorizationV1NamespacedRole\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"Role\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the Role\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/watch/rolebindings\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"watchRbacAuthorizationV1RoleBindingListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBinding\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/rbac.authorization.k8s.io/v1/watch/roles\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"rbacAuthorization_v1\"],\n        \"operationId\": \"watchRbacAuthorizationV1RoleListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"Role\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/scheduling.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"scheduling\"],\n        \"operationId\": \"getSchedulingAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/scheduling.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"scheduling_v1\"],\n        \"operationId\": \"getSchedulingV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/scheduling.k8s.io/v1/priorityclasses\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind PriorityClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"scheduling_v1\"],\n        \"operationId\": \"listSchedulingV1PriorityClass\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.scheduling.v1.PriorityClassList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"PriorityClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a PriorityClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"scheduling_v1\"],\n        \"operationId\": \"createSchedulingV1PriorityClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.scheduling.v1.PriorityClass\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.scheduling.v1.PriorityClass\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.scheduling.v1.PriorityClass\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.scheduling.v1.PriorityClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"PriorityClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of PriorityClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"scheduling_v1\"],\n        \"operationId\": \"deleteSchedulingV1CollectionPriorityClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"PriorityClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/scheduling.k8s.io/v1/priorityclasses/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified PriorityClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"scheduling_v1\"],\n        \"operationId\": \"readSchedulingV1PriorityClass\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.scheduling.v1.PriorityClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"PriorityClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified PriorityClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"scheduling_v1\"],\n        \"operationId\": \"replaceSchedulingV1PriorityClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.scheduling.v1.PriorityClass\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.scheduling.v1.PriorityClass\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.scheduling.v1.PriorityClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"PriorityClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a PriorityClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"scheduling_v1\"],\n        \"operationId\": \"deleteSchedulingV1PriorityClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"PriorityClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified PriorityClass\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"scheduling_v1\"],\n        \"operationId\": \"patchSchedulingV1PriorityClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.scheduling.v1.PriorityClass\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.scheduling.v1.PriorityClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"PriorityClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PriorityClass\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/scheduling.k8s.io/v1/watch/priorityclasses\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"scheduling_v1\"],\n        \"operationId\": \"watchSchedulingV1PriorityClassList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"PriorityClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/scheduling.k8s.io/v1/watch/priorityclasses/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"scheduling_v1\"],\n        \"operationId\": \"watchSchedulingV1PriorityClass\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"PriorityClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the PriorityClass\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/\": {\n      \"get\": {\n        \"description\": \"get information of a group\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage\"],\n        \"operationId\": \"getStorageAPIGroup\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/storage.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"getStorageV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/storage.k8s.io/v1/csidrivers\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind CSIDriver\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"listStorageV1CSIDriver\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriverList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIDriver\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a CSIDriver\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"createStorageV1CSIDriver\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIDriver\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of CSIDriver\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"deleteStorageV1CollectionCSIDriver\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIDriver\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/csidrivers/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified CSIDriver\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"readStorageV1CSIDriver\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIDriver\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified CSIDriver\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"replaceStorageV1CSIDriver\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIDriver\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a CSIDriver\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"deleteStorageV1CSIDriver\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIDriver\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified CSIDriver\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"patchStorageV1CSIDriver\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIDriver\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CSIDriver\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/csinodes\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind CSINode\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"listStorageV1CSINode\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINodeList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSINode\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a CSINode\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"createStorageV1CSINode\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSINode\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of CSINode\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"deleteStorageV1CollectionCSINode\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSINode\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/csinodes/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified CSINode\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"readStorageV1CSINode\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSINode\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified CSINode\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"replaceStorageV1CSINode\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSINode\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a CSINode\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"deleteStorageV1CSINode\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSINode\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified CSINode\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"patchStorageV1CSINode\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSINode\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CSINode\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/csistoragecapacities\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"listStorageV1CSIStorageCapacityForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacityList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"listStorageV1NamespacedCSIStorageCapacity\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacityList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"createStorageV1NamespacedCSIStorageCapacity\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"deleteStorageV1CollectionNamespacedCSIStorageCapacity\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"readStorageV1NamespacedCSIStorageCapacity\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"replaceStorageV1NamespacedCSIStorageCapacity\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"deleteStorageV1NamespacedCSIStorageCapacity\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified CSIStorageCapacity\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"patchStorageV1NamespacedCSIStorageCapacity\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CSIStorageCapacity\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/storageclasses\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind StorageClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"listStorageV1StorageClass\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClassList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"StorageClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a StorageClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"createStorageV1StorageClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"StorageClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of StorageClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"deleteStorageV1CollectionStorageClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"StorageClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/storageclasses/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified StorageClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"readStorageV1StorageClass\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"StorageClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified StorageClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"replaceStorageV1StorageClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"StorageClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a StorageClass\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"deleteStorageV1StorageClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"StorageClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified StorageClass\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"patchStorageV1StorageClass\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"StorageClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the StorageClass\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/volumeattachments\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind VolumeAttachment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"listStorageV1VolumeAttachment\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachmentList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a VolumeAttachment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"createStorageV1VolumeAttachment\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of VolumeAttachment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"deleteStorageV1CollectionVolumeAttachment\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/volumeattachments/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified VolumeAttachment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"readStorageV1VolumeAttachment\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified VolumeAttachment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"replaceStorageV1VolumeAttachment\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a VolumeAttachment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"deleteStorageV1VolumeAttachment\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified VolumeAttachment\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"patchStorageV1VolumeAttachment\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the VolumeAttachment\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/volumeattachments/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified VolumeAttachment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"readStorageV1VolumeAttachmentStatus\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified VolumeAttachment\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"replaceStorageV1VolumeAttachmentStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update status of the specified VolumeAttachment\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"patchStorageV1VolumeAttachmentStatus\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the VolumeAttachment\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/watch/csidrivers\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of CSIDriver. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"watchStorageV1CSIDriverList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIDriver\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/watch/csidrivers/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"watchStorageV1CSIDriver\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIDriver\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CSIDriver\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/watch/csinodes\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of CSINode. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"watchStorageV1CSINodeList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSINode\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/watch/csinodes/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"watchStorageV1CSINode\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSINode\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CSINode\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/watch/csistoragecapacities\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of CSIStorageCapacity. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"watchStorageV1CSIStorageCapacityListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/watch/namespaces/{namespace}/csistoragecapacities\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of CSIStorageCapacity. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"watchStorageV1NamespacedCSIStorageCapacityList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/watch/namespaces/{namespace}/csistoragecapacities/{name}\": {\n      \"get\": {\n        \"description\": \"watch changes to an object of kind CSIStorageCapacity. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"watchStorageV1NamespacedCSIStorageCapacity\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CSIStorageCapacity\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/watch/storageclasses\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"watchStorageV1StorageClassList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"StorageClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/watch/storageclasses/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"watchStorageV1StorageClass\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"StorageClass\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the StorageClass\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/watch/volumeattachments\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"watchStorageV1VolumeAttachmentList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1/watch/volumeattachments/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1\"],\n        \"operationId\": \"watchStorageV1VolumeAttachment\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the VolumeAttachment\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1beta1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"consumes\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1beta1\"],\n        \"operationId\": \"getStorageV1beta1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/apis/storage.k8s.io/v1beta1/csistoragecapacities\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1beta1\"],\n        \"operationId\": \"listStorageV1beta1CSIStorageCapacityForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacityList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1beta1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1beta1/namespaces/{namespace}/csistoragecapacities\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1beta1\"],\n        \"operationId\": \"listStorageV1beta1NamespacedCSIStorageCapacity\",\n        \"parameters\": [\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"name\": \"allowWatchBookmarks\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"name\": \"watch\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacityList\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1beta1\"\n        }\n      },\n      \"post\": {\n        \"description\": \"create a CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1beta1\"],\n        \"operationId\": \"createStorageV1beta1NamespacedCSIStorageCapacity\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacity\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacity\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacity\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacity\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1beta1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete collection of CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1beta1\"],\n        \"operationId\": \"deleteStorageV1beta1CollectionNamespacedCSIStorageCapacity\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"name\": \"continue\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"name\": \"fieldSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"name\": \"labelSelector\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"name\": \"limit\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersion\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"name\": \"resourceVersionMatch\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"name\": \"timeoutSeconds\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1beta1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1beta1/namespaces/{namespace}/csistoragecapacities/{name}\": {\n      \"get\": {\n        \"description\": \"read the specified CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1beta1\"],\n        \"operationId\": \"readStorageV1beta1NamespacedCSIStorageCapacity\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacity\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1beta1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1beta1\"],\n        \"operationId\": \"replaceStorageV1beta1NamespacedCSIStorageCapacity\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacity\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacity\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacity\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1beta1\"\n        }\n      },\n      \"delete\": {\n        \"description\": \"delete a CSIStorageCapacity\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1beta1\"],\n        \"operationId\": \"deleteStorageV1beta1NamespacedCSIStorageCapacity\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"integer\",\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"name\": \"gracePeriodSeconds\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"name\": \"orphanDependents\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"name\": \"propagationPolicy\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"202\": {\n            \"description\": \"Accepted\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1beta1\"\n        }\n      },\n      \"patch\": {\n        \"description\": \"partially update the specified CSIStorageCapacity\",\n        \"consumes\": [\n          \"application/json-patch+json\",\n          \"application/merge-patch+json\",\n          \"application/strategic-merge-patch+json\",\n          \"application/apply-patch+yaml\"\n        ],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1beta1\"],\n        \"operationId\": \"patchStorageV1beta1NamespacedCSIStorageCapacity\",\n        \"parameters\": [\n          {\n            \"name\": \"body\",\n            \"in\": \"body\",\n            \"required\": true,\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n            }\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"name\": \"dryRun\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"name\": \"fieldManager\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"string\",\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"name\": \"fieldValidation\",\n            \"in\": \"query\"\n          },\n          {\n            \"uniqueItems\": true,\n            \"type\": \"boolean\",\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"name\": \"force\",\n            \"in\": \"query\"\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacity\"\n            }\n          },\n          \"201\": {\n            \"description\": \"Created\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacity\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1beta1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CSIStorageCapacity\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1beta1/watch/csistoragecapacities\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of CSIStorageCapacity. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1beta1\"],\n        \"operationId\": \"watchStorageV1beta1CSIStorageCapacityListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1beta1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1beta1/watch/namespaces/{namespace}/csistoragecapacities\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of CSIStorageCapacity. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1beta1\"],\n        \"operationId\": \"watchStorageV1beta1NamespacedCSIStorageCapacityList\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1beta1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/apis/storage.k8s.io/v1beta1/watch/namespaces/{namespace}/csistoragecapacities/{name}\": {\n      \"get\": {\n        \"description\": \"watch changes to an object of kind CSIStorageCapacity. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.\",\n        \"consumes\": [\"*/*\"],\n        \"produces\": [\n          \"application/json\",\n          \"application/yaml\",\n          \"application/vnd.kubernetes.protobuf\",\n          \"application/json;stream=watch\",\n          \"application/vnd.kubernetes.protobuf;stream=watch\"\n        ],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"storage_v1beta1\"],\n        \"operationId\": \"watchStorageV1beta1NamespacedCSIStorageCapacity\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        },\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1beta1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"name\": \"allowWatchBookmarks\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"name\": \"continue\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"name\": \"fieldSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"name\": \"labelSelector\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"name\": \"limit\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"name of the CSIStorageCapacity\",\n          \"name\": \"name\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"name\": \"namespace\",\n          \"in\": \"path\",\n          \"required\": true\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"name\": \"pretty\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersion\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"name\": \"resourceVersionMatch\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"integer\",\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"name\": \"timeoutSeconds\",\n          \"in\": \"query\"\n        },\n        {\n          \"uniqueItems\": true,\n          \"type\": \"boolean\",\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"name\": \"watch\",\n          \"in\": \"query\"\n        }\n      ]\n    },\n    \"/logs/\": {\n      \"get\": {\n        \"schemes\": [\"https\"],\n        \"tags\": [\"logs\"],\n        \"operationId\": \"logFileListHandler\",\n        \"responses\": { \"401\": { \"description\": \"Unauthorized\" } }\n      }\n    },\n    \"/logs/{logpath}\": {\n      \"get\": {\n        \"schemes\": [\"https\"],\n        \"tags\": [\"logs\"],\n        \"operationId\": \"logFileHandler\",\n        \"responses\": { \"401\": { \"description\": \"Unauthorized\" } }\n      },\n      \"parameters\": [\n        {\n          \"uniqueItems\": true,\n          \"type\": \"string\",\n          \"description\": \"path to the log\",\n          \"name\": \"logpath\",\n          \"in\": \"path\",\n          \"required\": true\n        }\n      ]\n    },\n    \"/openid/v1/jwks/\": {\n      \"get\": {\n        \"description\": \"get service account issuer OpenID JSON Web Key Set (contains public token verification keys)\",\n        \"produces\": [\"application/jwk-set+json\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"openid\"],\n        \"operationId\": \"getServiceAccountIssuerOpenIDKeyset\",\n        \"responses\": {\n          \"200\": { \"description\": \"OK\", \"schema\": { \"type\": \"string\" } },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    },\n    \"/version/\": {\n      \"get\": {\n        \"description\": \"get the code version\",\n        \"consumes\": [\"application/json\"],\n        \"produces\": [\"application/json\"],\n        \"schemes\": [\"https\"],\n        \"tags\": [\"version\"],\n        \"operationId\": \"getCodeVersion\",\n        \"responses\": {\n          \"200\": {\n            \"description\": \"OK\",\n            \"schema\": {\n              \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.version.Info\"\n            }\n          },\n          \"401\": { \"description\": \"Unauthorized\" }\n        }\n      }\n    }\n  },\n  \"definitions\": {\n    \"io.k8s.api.admissionregistration.v1.MutatingWebhook\": {\n      \"description\": \"MutatingWebhook describes an admission webhook and the resources and operations it applies to.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"clientConfig\",\n        \"sideEffects\",\n        \"admissionReviewVersions\"\n      ],\n      \"properties\": {\n        \"admissionReviewVersions\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"clientConfig\": {\n          \"description\": \"ClientConfig defines how to communicate with the hook. Required\",\n          \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig\"\n        },\n        \"failurePolicy\": {\n          \"description\": \"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.\",\n          \"type\": \"string\"\n        },\n        \"matchPolicy\": {\n          \"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\\\"\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"namespaceSelector\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"objectSelector\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"reinvocationPolicy\": {\n          \"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\\\".\",\n          \"type\": \"string\"\n        },\n        \"rules\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations\"\n          }\n        },\n        \"sideEffects\": {\n          \"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 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.\",\n          \"type\": \"string\"\n        },\n        \"timeoutSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\": {\n      \"description\": \"MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"webhooks\": {\n          \"description\": \"Webhooks is a list of webhooks and the affected resources and operations.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhook\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"MutatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.admissionregistration.v1.MutatingWebhookConfigurationList\": {\n      \"description\": \"MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of MutatingWebhookConfiguration.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"MutatingWebhookConfigurationList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.admissionregistration.v1.RuleWithOperations\": {\n      \"description\": \"RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiGroups\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"apiVersions\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"operations\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"resources\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"scope\": {\n          \"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 \\\"*\\\".\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.admissionregistration.v1.ServiceReference\": {\n      \"description\": \"ServiceReference holds a reference to Service.legacy.k8s.io\",\n      \"type\": \"object\",\n      \"required\": [\"namespace\", \"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"`name` is the name of the service. Required\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"`namespace` is the namespace of the service. Required\",\n          \"type\": \"string\"\n        },\n        \"path\": {\n          \"description\": \"`path` is an optional URL path which will be sent in any request to this service.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"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).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.admissionregistration.v1.ValidatingWebhook\": {\n      \"description\": \"ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"clientConfig\",\n        \"sideEffects\",\n        \"admissionReviewVersions\"\n      ],\n      \"properties\": {\n        \"admissionReviewVersions\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"clientConfig\": {\n          \"description\": \"ClientConfig defines how to communicate with the hook. Required\",\n          \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig\"\n        },\n        \"failurePolicy\": {\n          \"description\": \"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.\",\n          \"type\": \"string\"\n        },\n        \"matchPolicy\": {\n          \"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\\\"\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"namespaceSelector\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"objectSelector\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"rules\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations\"\n          }\n        },\n        \"sideEffects\": {\n          \"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 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.\",\n          \"type\": \"string\"\n        },\n        \"timeoutSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\": {\n      \"description\": \"ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"webhooks\": {\n          \"description\": \"Webhooks is a list of webhooks and the affected resources and operations.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhook\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"ValidatingWebhookConfiguration\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.admissionregistration.v1.ValidatingWebhookConfigurationList\": {\n      \"description\": \"ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of ValidatingWebhookConfiguration.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"ValidatingWebhookConfigurationList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.admissionregistration.v1.WebhookClientConfig\": {\n      \"description\": \"WebhookClientConfig contains the information to make a TLS connection with the webhook\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"caBundle\": {\n          \"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.\",\n          \"type\": \"string\",\n          \"format\": \"byte\"\n        },\n        \"service\": {\n          \"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`.\",\n          \"$ref\": \"#/definitions/io.k8s.api.admissionregistration.v1.ServiceReference\"\n        },\n        \"url\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.ControllerRevision\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"revision\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"data\": {\n          \"description\": \"Data is the serialized representation of the state.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"revision\": {\n          \"description\": \"Revision indicates the revision of the state represented by Data.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"apps\", \"kind\": \"ControllerRevision\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.apps.v1.ControllerRevisionList\": {\n      \"description\": \"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of ControllerRevisions\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"apps\", \"kind\": \"ControllerRevisionList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.apps.v1.DaemonSet\": {\n      \"description\": \"DaemonSet represents the configuration of a daemon set.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSetSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSetStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"apps\", \"kind\": \"DaemonSet\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.apps.v1.DaemonSetCondition\": {\n      \"description\": \"DaemonSetCondition describes the state of a DaemonSet at a certain point.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"A human readable message indicating details about the transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"The reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of DaemonSet condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.DaemonSetList\": {\n      \"description\": \"DaemonSetList is a collection of daemon sets.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"A list of daemon sets.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSet\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"apps\", \"kind\": \"DaemonSetList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.apps.v1.DaemonSetSpec\": {\n      \"description\": \"DaemonSetSpec is the specification of a daemon set.\",\n      \"type\": \"object\",\n      \"required\": [\"selector\", \"template\"],\n      \"properties\": {\n        \"minReadySeconds\": {\n          \"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).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"revisionHistoryLimit\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"selector\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"template\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        },\n        \"updateStrategy\": {\n          \"description\": \"An update strategy to replace existing DaemonSet pods with new pods.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.DaemonSetStatus\": {\n      \"description\": \"DaemonSetStatus represents the current status of a daemon set.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"currentNumberScheduled\",\n        \"numberMisscheduled\",\n        \"desiredNumberScheduled\",\n        \"numberReady\"\n      ],\n      \"properties\": {\n        \"collisionCount\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"conditions\": {\n          \"description\": \"Represents the latest available observations of a DaemonSet's current state.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DaemonSetCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"currentNumberScheduled\": {\n          \"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/\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"desiredNumberScheduled\": {\n          \"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/\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"numberAvailable\": {\n          \"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)\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"numberMisscheduled\": {\n          \"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/\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"numberReady\": {\n          \"description\": \"numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"numberUnavailable\": {\n          \"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)\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"observedGeneration\": {\n          \"description\": \"The most recent generation observed by the daemon set controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"updatedNumberScheduled\": {\n          \"description\": \"The total number of nodes that are running updated daemon pod\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.DaemonSetUpdateStrategy\": {\n      \"description\": \"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"rollingUpdate\": {\n          \"description\": \"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet\"\n        },\n        \"type\": {\n          \"description\": \"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\\n\\nPossible enum values:\\n - `\\\"OnDelete\\\"` Replace the old daemons only when it's killed\\n - `\\\"RollingUpdate\\\"` Replace the old daemons by new ones using rolling update i.e replace them on each node one after the other.\",\n          \"type\": \"string\",\n          \"enum\": [\"OnDelete\", \"RollingUpdate\"]\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.Deployment\": {\n      \"description\": \"Deployment enables declarative updates for Pods and ReplicaSets.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Specification of the desired behavior of the Deployment.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DeploymentSpec\"\n        },\n        \"status\": {\n          \"description\": \"Most recently observed status of the Deployment.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DeploymentStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"apps\", \"kind\": \"Deployment\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.apps.v1.DeploymentCondition\": {\n      \"description\": \"DeploymentCondition describes the state of a deployment at a certain point.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastUpdateTime\": {\n          \"description\": \"The last time this condition was updated.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"A human readable message indicating details about the transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"The reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of deployment condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.DeploymentList\": {\n      \"description\": \"DeploymentList is a list of Deployments.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of Deployments.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.Deployment\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"apps\", \"kind\": \"DeploymentList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.apps.v1.DeploymentSpec\": {\n      \"description\": \"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\n      \"type\": \"object\",\n      \"required\": [\"selector\", \"template\"],\n      \"properties\": {\n        \"minReadySeconds\": {\n          \"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)\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"paused\": {\n          \"description\": \"Indicates that the deployment is paused.\",\n          \"type\": \"boolean\"\n        },\n        \"progressDeadlineSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"revisionHistoryLimit\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"selector\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"strategy\": {\n          \"description\": \"The deployment strategy to use to replace existing pods with new ones.\",\n          \"x-kubernetes-patch-strategy\": \"retainKeys\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DeploymentStrategy\"\n        },\n        \"template\": {\n          \"description\": \"Template describes the pods that will be created.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.DeploymentStatus\": {\n      \"description\": \"DeploymentStatus is the most recently observed status of the Deployment.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"availableReplicas\": {\n          \"description\": \"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"collisionCount\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"conditions\": {\n          \"description\": \"Represents the latest available observations of a deployment's current state.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1.DeploymentCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"observedGeneration\": {\n          \"description\": \"The generation observed by the deployment controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"readyReplicas\": {\n          \"description\": \"readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"unavailableReplicas\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"updatedReplicas\": {\n          \"description\": \"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.DeploymentStrategy\": {\n      \"description\": \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"rollingUpdate\": {\n          \"description\": \"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment\"\n        },\n        \"type\": {\n          \"description\": \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\\n\\nPossible enum values:\\n - `\\\"Recreate\\\"` Kill all existing pods before creating new ones.\\n - `\\\"RollingUpdate\\\"` Replace the old ReplicaSets by new one using rolling update i.e gradually scale down the old ReplicaSets and scale up the new one.\",\n          \"type\": \"string\",\n          \"enum\": [\"Recreate\", \"RollingUpdate\"]\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.ReplicaSet\": {\n      \"description\": \"ReplicaSet ensures that a specified number of pod replicas are running at any given time.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"apps\", \"kind\": \"ReplicaSet\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.apps.v1.ReplicaSetCondition\": {\n      \"description\": \"ReplicaSetCondition describes the state of a replica set at a certain point.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"The last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"A human readable message indicating details about the transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"The reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of replica set condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.ReplicaSetList\": {\n      \"description\": \"ReplicaSetList is a collection of ReplicaSets.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSet\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"apps\", \"kind\": \"ReplicaSetList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.apps.v1.ReplicaSetSpec\": {\n      \"description\": \"ReplicaSetSpec is the specification of a ReplicaSet.\",\n      \"type\": \"object\",\n      \"required\": [\"selector\"],\n      \"properties\": {\n        \"minReadySeconds\": {\n          \"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)\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"selector\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"template\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.ReplicaSetStatus\": {\n      \"description\": \"ReplicaSetStatus represents the current status of a ReplicaSet.\",\n      \"type\": \"object\",\n      \"required\": [\"replicas\"],\n      \"properties\": {\n        \"availableReplicas\": {\n          \"description\": \"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"conditions\": {\n          \"description\": \"Represents the latest available observations of a replica set's current state.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"fullyLabeledReplicas\": {\n          \"description\": \"The number of pods that have labels matching the labels of the pod template of the replicaset.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"observedGeneration\": {\n          \"description\": \"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"readyReplicas\": {\n          \"description\": \"readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.RollingUpdateDaemonSet\": {\n      \"description\": \"Spec to control the desired behavior of daemon set rolling update.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"maxSurge\": {\n          \"description\": \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        },\n        \"maxUnavailable\": {\n          \"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 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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.RollingUpdateDeployment\": {\n      \"description\": \"Spec to control the desired behavior of rolling update.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"maxSurge\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        },\n        \"maxUnavailable\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\": {\n      \"description\": \"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"maxUnavailable\": {\n          \"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 up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        },\n        \"partition\": {\n          \"description\": \"Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.StatefulSet\": {\n      \"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.\\n\\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the desired identities of pods in this set.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSetSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSetStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"apps\", \"kind\": \"StatefulSet\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.apps.v1.StatefulSetCondition\": {\n      \"description\": \"StatefulSetCondition describes the state of a statefulset at a certain point.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"A human readable message indicating details about the transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"The reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of statefulset condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.StatefulSetList\": {\n      \"description\": \"StatefulSetList is a collection of StatefulSets.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of stateful sets.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSet\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"apps\", \"kind\": \"StatefulSetList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.apps.v1.StatefulSetOrdinals\": {\n      \"description\": \"StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"start\": {\n          \"description\": \"start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range:\\n  [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\\nIf unset, defaults to 0. Replica indices will be in the range:\\n  [0, .spec.replicas).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\": {\n      \"description\": \"StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"whenDeleted\": {\n          \"description\": \"WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.\",\n          \"type\": \"string\"\n        },\n        \"whenScaled\": {\n          \"description\": \"WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.StatefulSetSpec\": {\n      \"description\": \"A StatefulSetSpec is the specification of a StatefulSet.\",\n      \"type\": \"object\",\n      \"required\": [\"selector\", \"template\", \"serviceName\"],\n      \"properties\": {\n        \"minReadySeconds\": {\n          \"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)\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"ordinals\": {\n          \"description\": \"ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a \\\"0\\\" index to the first replica and increments the index by one for each additional replica requested. Using the ordinals field requires the StatefulSetStartOrdinal feature gate to be enabled, which is alpha.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSetOrdinals\"\n        },\n        \"persistentVolumeClaimRetentionPolicy\": {\n          \"description\": \"persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.  +optional\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\"\n        },\n        \"podManagementPolicy\": {\n          \"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.\\n\\nPossible enum values:\\n - `\\\"OrderedReady\\\"` will create pods in strictly increasing order on scale up and strictly decreasing order on scale down, progressing only when the previous pod is ready or terminated. At most one pod will be changed at any time.\\n - `\\\"Parallel\\\"` will create and delete pods as soon as the stateful set replica count is changed, and will not wait for pods to be ready or complete termination.\",\n          \"type\": \"string\",\n          \"enum\": [\"OrderedReady\", \"Parallel\"]\n        },\n        \"replicas\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"revisionHistoryLimit\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"selector\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"serviceName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"template\": {\n          \"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. Each pod will be named with the format \\u003cstatefulsetname\\u003e-\\u003cpodindex\\u003e. For example, a pod in a StatefulSet named \\\"web\\\" with index number \\\"3\\\" would be named \\\"web-3\\\".\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        },\n        \"updateStrategy\": {\n          \"description\": \"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy\"\n        },\n        \"volumeClaimTemplates\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.StatefulSetStatus\": {\n      \"description\": \"StatefulSetStatus represents the current state of a StatefulSet.\",\n      \"type\": \"object\",\n      \"required\": [\"replicas\"],\n      \"properties\": {\n        \"availableReplicas\": {\n          \"description\": \"Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"collisionCount\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"conditions\": {\n          \"description\": \"Represents the latest available observations of a statefulset's current state.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1.StatefulSetCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"currentReplicas\": {\n          \"description\": \"currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"currentRevision\": {\n          \"description\": \"currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).\",\n          \"type\": \"string\"\n        },\n        \"observedGeneration\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"readyReplicas\": {\n          \"description\": \"readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"replicas is the number of Pods created by the StatefulSet controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"updateRevision\": {\n          \"description\": \"updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)\",\n          \"type\": \"string\"\n        },\n        \"updatedReplicas\": {\n          \"description\": \"updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1.StatefulSetUpdateStrategy\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"rollingUpdate\": {\n          \"description\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\"\n        },\n        \"type\": {\n          \"description\": \"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\\n\\nPossible enum values:\\n - `\\\"OnDelete\\\"` triggers the legacy behavior. Version tracking and ordered rolling restarts are disabled. Pods are recreated from the StatefulSetSpec when they are manually deleted. When a scale operation is performed with this strategy,specification version indicated by the StatefulSet's currentRevision.\\n - `\\\"RollingUpdate\\\"` indicates that update will be applied to all Pods in the StatefulSet with respect to the StatefulSet ordering constraints. When a scale operation is performed with this strategy, new Pods will be created from the specification version indicated by the StatefulSet's updateRevision.\",\n          \"type\": \"string\",\n          \"enum\": [\"OnDelete\", \"RollingUpdate\"]\n        }\n      }\n    },\n    \"io.k8s.api.authentication.v1.BoundObjectReference\": {\n      \"description\": \"BoundObjectReference is a reference to an object that a token is bound to.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"API version of the referent.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind of the referent. Valid kinds are 'Pod' and 'Secret'.\",\n          \"type\": \"string\"\n        },\n        \"name\": { \"description\": \"Name of the referent.\", \"type\": \"string\" },\n        \"uid\": { \"description\": \"UID of the referent.\", \"type\": \"string\" }\n      }\n    },\n    \"io.k8s.api.authentication.v1.TokenRequest\": {\n      \"description\": \"TokenRequest requests a token for a given service account.\",\n      \"type\": \"object\",\n      \"required\": [\"spec\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated\",\n          \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.TokenRequestSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the token can be authenticated.\",\n          \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.TokenRequestStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"TokenRequest\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authentication.v1.TokenRequestSpec\": {\n      \"description\": \"TokenRequestSpec contains client provided parameters of a token request.\",\n      \"type\": \"object\",\n      \"required\": [\"audiences\"],\n      \"properties\": {\n        \"audiences\": {\n          \"description\": \"Audiences are the intendend audiences of the token. A recipient of a token must identify 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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"boundObjectRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.BoundObjectReference\"\n        },\n        \"expirationSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      }\n    },\n    \"io.k8s.api.authentication.v1.TokenRequestStatus\": {\n      \"description\": \"TokenRequestStatus is the result of a token request.\",\n      \"type\": \"object\",\n      \"required\": [\"token\", \"expirationTimestamp\"],\n      \"properties\": {\n        \"expirationTimestamp\": {\n          \"description\": \"ExpirationTimestamp is the time of expiration of the returned token.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"token\": {\n          \"description\": \"Token is the opaque bearer token.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authentication.v1.TokenReview\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"spec\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated\",\n          \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request can be authenticated.\",\n          \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"TokenReview\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authentication.v1.TokenReviewSpec\": {\n      \"description\": \"TokenReviewSpec is a description of the token authentication request.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"audiences\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"token\": {\n          \"description\": \"Token is the opaque bearer token.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authentication.v1.TokenReviewStatus\": {\n      \"description\": \"TokenReviewStatus is the result of the token authentication request.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"audiences\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"authenticated\": {\n          \"description\": \"Authenticated indicates that the token was associated with a known user.\",\n          \"type\": \"boolean\"\n        },\n        \"error\": {\n          \"description\": \"Error indicates that the token couldn't be checked\",\n          \"type\": \"string\"\n        },\n        \"user\": {\n          \"description\": \"User is the UserInfo associated with the provided token.\",\n          \"$ref\": \"#/definitions/io.k8s.api.authentication.v1.UserInfo\"\n        }\n      }\n    },\n    \"io.k8s.api.authentication.v1.UserInfo\": {\n      \"description\": \"UserInfo holds the information about the user needed to implement the user.Info interface.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"extra\": {\n          \"description\": \"Any additional information provided by the authenticator.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"array\",\n            \"items\": { \"type\": \"string\" }\n          }\n        },\n        \"groups\": {\n          \"description\": \"The names of groups this user is a part of.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"uid\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"username\": {\n          \"description\": \"The name that uniquely identifies this user among all active users.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.LocalSubjectAccessReview\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"spec\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"LocalSubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1.NonResourceAttributes\": {\n      \"description\": \"NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"path\": {\n          \"description\": \"Path is the URL path of the request\",\n          \"type\": \"string\"\n        },\n        \"verb\": {\n          \"description\": \"Verb is the standard HTTP verb\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.NonResourceRule\": {\n      \"description\": \"NonResourceRule holds information that describes a rule for the non-resource\",\n      \"type\": \"object\",\n      \"required\": [\"verbs\"],\n      \"properties\": {\n        \"nonResourceURLs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"verbs\": {\n          \"description\": \"Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \\\"*\\\" means all.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.ResourceAttributes\": {\n      \"description\": \"ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"group\": {\n          \"description\": \"Group is the API Group of the Resource.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name is the name of the resource being requested for a \\\"get\\\" or deleted for a \\\"delete\\\". \\\"\\\" (empty) means all.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"resource\": {\n          \"description\": \"Resource is one of the existing resource types.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"subresource\": {\n          \"description\": \"Subresource is one of the existing resource types.  \\\"\\\" means none.\",\n          \"type\": \"string\"\n        },\n        \"verb\": {\n          \"description\": \"Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"version\": {\n          \"description\": \"Version is the API Version of the Resource.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.ResourceRule\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"verbs\"],\n      \"properties\": {\n        \"apiGroups\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"resourceNames\": {\n          \"description\": \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \\\"*\\\" means all.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"resources\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"verbs\": {\n          \"description\": \"Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.SelfSubjectAccessReview\": {\n      \"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\",\n      \"type\": \"object\",\n      \"required\": [\"spec\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated.  user and groups must be empty\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SelfSubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\": {\n      \"description\": \"SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"nonResourceAttributes\": {\n          \"description\": \"NonResourceAttributes describes information for a non-resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes\"\n        },\n        \"resourceAttributes\": {\n          \"description\": \"ResourceAuthorizationAttributes describes information for a resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.ResourceAttributes\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.SelfSubjectRulesReview\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"spec\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated.\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates the set of actions a user can perform.\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SelfSubjectRulesReview\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec\": {\n      \"description\": \"SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"namespace\": {\n          \"description\": \"Namespace to evaluate rules for. Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.SubjectAccessReview\": {\n      \"description\": \"SubjectAccessReview checks whether or not a user or group can perform an action.\",\n      \"type\": \"object\",\n      \"required\": [\"spec\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1.SubjectAccessReviewSpec\": {\n      \"description\": \"SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"extra\": {\n          \"description\": \"Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer it needs a reflection here.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"array\",\n            \"items\": { \"type\": \"string\" }\n          }\n        },\n        \"groups\": {\n          \"description\": \"Groups is the groups you're testing for.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"nonResourceAttributes\": {\n          \"description\": \"NonResourceAttributes describes information for a non-resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes\"\n        },\n        \"resourceAttributes\": {\n          \"description\": \"ResourceAuthorizationAttributes describes information for a resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.ResourceAttributes\"\n        },\n        \"uid\": {\n          \"description\": \"UID information about the requesting user.\",\n          \"type\": \"string\"\n        },\n        \"user\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.SubjectAccessReviewStatus\": {\n      \"description\": \"SubjectAccessReviewStatus\",\n      \"type\": \"object\",\n      \"required\": [\"allowed\"],\n      \"properties\": {\n        \"allowed\": {\n          \"description\": \"Allowed is required. True if the action would be allowed, false otherwise.\",\n          \"type\": \"boolean\"\n        },\n        \"denied\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"evaluationError\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"Reason is optional.  It indicates why a request was allowed or denied.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.SubjectRulesReviewStatus\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"resourceRules\", \"nonResourceRules\", \"incomplete\"],\n      \"properties\": {\n        \"evaluationError\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"incomplete\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"nonResourceRules\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.NonResourceRule\"\n          }\n        },\n        \"resourceRules\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.ResourceRule\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v1.CrossVersionObjectReference\": {\n      \"description\": \"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\n      \"type\": \"object\",\n      \"required\": [\"kind\", \"name\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"API version of the referent\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\": {\n      \"description\": \"configuration of a horizontal pod autoscaler.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\"\n        },\n        \"status\": {\n          \"description\": \"current information about the autoscaler.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList\": {\n      \"description\": \"list of horizontal pod autoscaler objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"list of horizontal pod autoscaler objects.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscalerList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\": {\n      \"description\": \"specification of a horizontal pod autoscaler.\",\n      \"type\": \"object\",\n      \"required\": [\"scaleTargetRef\", \"maxReplicas\"],\n      \"properties\": {\n        \"maxReplicas\": {\n          \"description\": \"upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"minReplicas\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"scaleTargetRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference\"\n        },\n        \"targetCPUUtilizationPercentage\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\": {\n      \"description\": \"current status of a horizontal pod autoscaler\",\n      \"type\": \"object\",\n      \"required\": [\"currentReplicas\", \"desiredReplicas\"],\n      \"properties\": {\n        \"currentCPUUtilizationPercentage\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"currentReplicas\": {\n          \"description\": \"current number of replicas of pods managed by this autoscaler.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"desiredReplicas\": {\n          \"description\": \"desired number of replicas of pods managed by this autoscaler.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"lastScaleTime\": {\n          \"description\": \"last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"observedGeneration\": {\n          \"description\": \"most recent generation observed by this autoscaler.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v1.Scale\": {\n      \"description\": \"Scale represents a scaling request for a resource.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec\"\n        },\n        \"status\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"autoscaling\", \"kind\": \"Scale\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.autoscaling.v1.ScaleSpec\": {\n      \"description\": \"ScaleSpec describes the attributes of a scale subresource.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"replicas\": {\n          \"description\": \"desired number of instances for the scaled object.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v1.ScaleStatus\": {\n      \"description\": \"ScaleStatus represents the current status of a scale subresource.\",\n      \"type\": \"object\",\n      \"required\": [\"replicas\"],\n      \"properties\": {\n        \"replicas\": {\n          \"description\": \"actual number of observed instances of the scaled object.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"selector\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.ContainerResourceMetricSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"target\", \"container\"],\n      \"properties\": {\n        \"container\": {\n          \"description\": \"container is the name of the container in the pods of the scaling target\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"name is the name of the resource in question.\",\n          \"type\": \"string\"\n        },\n        \"target\": {\n          \"description\": \"target specifies the target value for the given metric\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricTarget\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"current\", \"container\"],\n      \"properties\": {\n        \"container\": {\n          \"description\": \"Container is the name of the container in the pods of the scaling target\",\n          \"type\": \"string\"\n        },\n        \"current\": {\n          \"description\": \"current contains the current value for the given metric\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus\"\n        },\n        \"name\": {\n          \"description\": \"Name is the name of the resource in question.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.CrossVersionObjectReference\": {\n      \"description\": \"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\n      \"type\": \"object\",\n      \"required\": [\"kind\", \"name\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"API version of the referent\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.ExternalMetricSource\": {\n      \"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).\",\n      \"type\": \"object\",\n      \"required\": [\"metric\", \"target\"],\n      \"properties\": {\n        \"metric\": {\n          \"description\": \"metric identifies the target metric by name and selector\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier\"\n        },\n        \"target\": {\n          \"description\": \"target specifies the target value for the given metric\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricTarget\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.ExternalMetricStatus\": {\n      \"description\": \"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\n      \"type\": \"object\",\n      \"required\": [\"metric\", \"current\"],\n      \"properties\": {\n        \"current\": {\n          \"description\": \"current contains the current value for the given metric\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus\"\n        },\n        \"metric\": {\n          \"description\": \"metric identifies the target metric by name and selector\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.HPAScalingPolicy\": {\n      \"description\": \"HPAScalingPolicy is a single policy which must hold true for a specified past interval.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"value\", \"periodSeconds\"],\n      \"properties\": {\n        \"periodSeconds\": {\n          \"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).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"type\": {\n          \"description\": \"Type is used to specify the scaling policy.\",\n          \"type\": \"string\"\n        },\n        \"value\": {\n          \"description\": \"Value contains the amount of change which is permitted by the policy. It must be greater than zero\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.HPAScalingRules\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"policies\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HPAScalingPolicy\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"selectPolicy\": {\n          \"description\": \"selectPolicy is used to specify which policy should be used. If not set, the default value Max is used.\",\n          \"type\": \"string\"\n        },\n        \"stabilizationWindowSeconds\": {\n          \"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).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec\"\n        },\n        \"status\": {\n          \"description\": \"status is the current information about the autoscaler.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscaler\",\n          \"version\": \"v2\"\n        }\n      ]\n    },\n    \"io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior\": {\n      \"description\": \"HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"scaleDown\": {\n          \"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).\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HPAScalingRules\"\n        },\n        \"scaleUp\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HPAScalingRules\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition\": {\n      \"description\": \"HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"lastTransitionTime is the last time the condition transitioned from one status to another\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"message is a human-readable explanation containing details about the transition\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"reason is the reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"status is the status of the condition (True, False, Unknown)\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"type describes the current condition\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerList\": {\n      \"description\": \"HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"items is the list of horizontal pod autoscaler objects.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"metadata is the standard list metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"HorizontalPodAutoscalerList\",\n          \"version\": \"v2\"\n        }\n      ]\n    },\n    \"io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec\": {\n      \"description\": \"HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\",\n      \"type\": \"object\",\n      \"required\": [\"scaleTargetRef\", \"maxReplicas\"],\n      \"properties\": {\n        \"behavior\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior\"\n        },\n        \"maxReplicas\": {\n          \"description\": \"maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"metrics\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricSpec\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"minReplicas\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"scaleTargetRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.CrossVersionObjectReference\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus\": {\n      \"description\": \"HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\",\n      \"type\": \"object\",\n      \"required\": [\"desiredReplicas\"],\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"type\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"currentMetrics\": {\n          \"description\": \"currentMetrics is the last read state of the metrics used by this autoscaler.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricStatus\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"currentReplicas\": {\n          \"description\": \"currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"desiredReplicas\": {\n          \"description\": \"desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"lastScaleTime\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"observedGeneration\": {\n          \"description\": \"observedGeneration is the most recent generation observed by this autoscaler.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.MetricIdentifier\": {\n      \"description\": \"MetricIdentifier defines the name and optionally selector for a metric\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"name is the name of the given metric\",\n          \"type\": \"string\"\n        },\n        \"selector\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.MetricSpec\": {\n      \"description\": \"MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).\",\n      \"type\": \"object\",\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"containerResource\": {\n          \"description\": \"containerResource 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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.ContainerResourceMetricSource\"\n        },\n        \"external\": {\n          \"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).\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.ExternalMetricSource\"\n        },\n        \"object\": {\n          \"description\": \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.ObjectMetricSource\"\n        },\n        \"pods\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.PodsMetricSource\"\n        },\n        \"resource\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.ResourceMetricSource\"\n        },\n        \"type\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.MetricStatus\": {\n      \"description\": \"MetricStatus describes the last-read state of a single metric.\",\n      \"type\": \"object\",\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"containerResource\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus\"\n        },\n        \"external\": {\n          \"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).\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.ExternalMetricStatus\"\n        },\n        \"object\": {\n          \"description\": \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.ObjectMetricStatus\"\n        },\n        \"pods\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.PodsMetricStatus\"\n        },\n        \"resource\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.ResourceMetricStatus\"\n        },\n        \"type\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.MetricTarget\": {\n      \"description\": \"MetricTarget defines the target value, average value, or average utilization of a specific metric\",\n      \"type\": \"object\",\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"averageUtilization\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"averageValue\": {\n          \"description\": \"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        },\n        \"type\": {\n          \"description\": \"type represents whether the metric type is Utilization, Value, or AverageValue\",\n          \"type\": \"string\"\n        },\n        \"value\": {\n          \"description\": \"value is the target value of the metric (as a quantity).\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.MetricValueStatus\": {\n      \"description\": \"MetricValueStatus holds the current value for a metric\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"averageUtilization\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"averageValue\": {\n          \"description\": \"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        },\n        \"value\": {\n          \"description\": \"value is the current value of the metric (as a quantity).\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.ObjectMetricSource\": {\n      \"description\": \"ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n      \"type\": \"object\",\n      \"required\": [\"describedObject\", \"target\", \"metric\"],\n      \"properties\": {\n        \"describedObject\": {\n          \"description\": \"describedObject specifies the descriptions of a object,such as kind,name apiVersion\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.CrossVersionObjectReference\"\n        },\n        \"metric\": {\n          \"description\": \"metric identifies the target metric by name and selector\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier\"\n        },\n        \"target\": {\n          \"description\": \"target specifies the target value for the given metric\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricTarget\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.ObjectMetricStatus\": {\n      \"description\": \"ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n      \"type\": \"object\",\n      \"required\": [\"metric\", \"current\", \"describedObject\"],\n      \"properties\": {\n        \"current\": {\n          \"description\": \"current contains the current value for the given metric\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus\"\n        },\n        \"describedObject\": {\n          \"description\": \"DescribedObject specifies the descriptions of a object,such as kind,name apiVersion\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.CrossVersionObjectReference\"\n        },\n        \"metric\": {\n          \"description\": \"metric identifies the target metric by name and selector\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.PodsMetricSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"metric\", \"target\"],\n      \"properties\": {\n        \"metric\": {\n          \"description\": \"metric identifies the target metric by name and selector\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier\"\n        },\n        \"target\": {\n          \"description\": \"target specifies the target value for the given metric\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricTarget\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.PodsMetricStatus\": {\n      \"description\": \"PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).\",\n      \"type\": \"object\",\n      \"required\": [\"metric\", \"current\"],\n      \"properties\": {\n        \"current\": {\n          \"description\": \"current contains the current value for the given metric\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus\"\n        },\n        \"metric\": {\n          \"description\": \"metric identifies the target metric by name and selector\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricIdentifier\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.ResourceMetricSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"target\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"name is the name of the resource in question.\",\n          \"type\": \"string\"\n        },\n        \"target\": {\n          \"description\": \"target specifies the target value for the given metric\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricTarget\"\n        }\n      }\n    },\n    \"io.k8s.api.autoscaling.v2.ResourceMetricStatus\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"current\"],\n      \"properties\": {\n        \"current\": {\n          \"description\": \"current contains the current value for the given metric\",\n          \"$ref\": \"#/definitions/io.k8s.api.autoscaling.v2.MetricValueStatus\"\n        },\n        \"name\": {\n          \"description\": \"Name is the name of the resource in question.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.batch.v1.CronJob\": {\n      \"description\": \"CronJob represents the configuration of a single cron job.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJobSpec\"\n        },\n        \"status\": {\n          \"description\": \"Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJobStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"batch\", \"kind\": \"CronJob\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.batch.v1.CronJobList\": {\n      \"description\": \"CronJobList is a collection of cron jobs.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"items is the list of CronJobs.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.CronJob\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"batch\", \"kind\": \"CronJobList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.batch.v1.CronJobSpec\": {\n      \"description\": \"CronJobSpec describes how the job execution will look like and when it will actually run.\",\n      \"type\": \"object\",\n      \"required\": [\"schedule\", \"jobTemplate\"],\n      \"properties\": {\n        \"concurrencyPolicy\": {\n          \"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\\n\\nPossible enum values:\\n - `\\\"Allow\\\"` allows CronJobs to run concurrently.\\n - `\\\"Forbid\\\"` forbids concurrent runs, skipping next run if previous hasn't finished yet.\\n - `\\\"Replace\\\"` cancels currently running job and replaces it with a new one.\",\n          \"type\": \"string\",\n          \"enum\": [\"Allow\", \"Forbid\", \"Replace\"]\n        },\n        \"failedJobsHistoryLimit\": {\n          \"description\": \"The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"jobTemplate\": {\n          \"description\": \"Specifies the job that will be created when executing a CronJob.\",\n          \"$ref\": \"#/definitions/io.k8s.api.batch.v1.JobTemplateSpec\"\n        },\n        \"schedule\": {\n          \"description\": \"The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\",\n          \"type\": \"string\"\n        },\n        \"startingDeadlineSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"successfulJobsHistoryLimit\": {\n          \"description\": \"The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"suspend\": {\n          \"description\": \"This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"timeZone\": {\n          \"description\": \"The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified, this will default to the time zone of the kube-controller-manager process. The set of valid time zone names and the time zone offset is loaded from the system-wide time zone database by the API server during CronJob validation and the controller manager during execution. If no system-wide time zone database can be found a bundled version of the database is used instead. If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host configuration, the controller will stop creating new new Jobs and will create a system event with the reason UnknownTimeZone. More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones This is beta field and must be enabled via the `CronJobTimeZone` feature gate.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.batch.v1.CronJobStatus\": {\n      \"description\": \"CronJobStatus represents the current state of a cron job.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"active\": {\n          \"description\": \"A list of pointers to currently running jobs.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"lastScheduleTime\": {\n          \"description\": \"Information when was the last time the job was successfully scheduled.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastSuccessfulTime\": {\n          \"description\": \"Information when was the last time the job successfully completed.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        }\n      }\n    },\n    \"io.k8s.api.batch.v1.Job\": {\n      \"description\": \"Job represents the configuration of a single job.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.batch.v1.JobSpec\"\n        },\n        \"status\": {\n          \"description\": \"Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.batch.v1.JobStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"batch\", \"kind\": \"Job\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.batch.v1.JobCondition\": {\n      \"description\": \"JobCondition describes current state of a job.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastProbeTime\": {\n          \"description\": \"Last time the condition was checked.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transit from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"Human readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"(brief) reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of job condition, Complete or Failed.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.batch.v1.JobList\": {\n      \"description\": \"JobList is a collection of jobs.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"items is the list of Jobs.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.Job\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"batch\", \"kind\": \"JobList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.batch.v1.JobSpec\": {\n      \"description\": \"JobSpec describes how the job execution will look like.\",\n      \"type\": \"object\",\n      \"required\": [\"template\"],\n      \"properties\": {\n        \"activeDeadlineSeconds\": {\n          \"description\": \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"backoffLimit\": {\n          \"description\": \"Specifies the number of retries before marking this job failed. Defaults to 6\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"completionMode\": {\n          \"description\": \"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. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`.\\n\\nMore completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller skips updates for the Job.\",\n          \"type\": \"string\"\n        },\n        \"completions\": {\n          \"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/\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"manualSelector\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"parallelism\": {\n          \"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/\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"podFailurePolicy\": {\n          \"description\": \"Specifies the policy of handling failed pods. In particular, it allows to specify the set of actions and conditions which need to be satisfied to take the associated action. If empty, the default behaviour applies - the counter of failed pods, represented by the jobs's .status.failed field, is incremented and it is checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure.\\n\\nThis field is alpha-level. To use this field, you must enable the `JobPodFailurePolicy` feature gate (disabled by default).\",\n          \"$ref\": \"#/definitions/io.k8s.api.batch.v1.PodFailurePolicy\"\n        },\n        \"selector\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"suspend\": {\n          \"description\": \"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. Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"template\": {\n          \"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/\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        },\n        \"ttlSecondsAfterFinished\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.batch.v1.JobStatus\": {\n      \"description\": \"JobStatus represents the current state of a Job.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"active\": {\n          \"description\": \"The number of pending and running pods.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"completedIndexes\": {\n          \"description\": \"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\\\".\",\n          \"type\": \"string\"\n        },\n        \"completionTime\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"conditions\": {\n          \"description\": \"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/\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.batch.v1.JobCondition\" },\n          \"x-kubernetes-list-type\": \"atomic\",\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"failed\": {\n          \"description\": \"The number of pods which reached phase Failed.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"ready\": {\n          \"description\": \"The number of pods which have a Ready condition.\\n\\nThis field is beta-level. The job controller populates the field when the feature gate JobReadyPods is enabled (enabled by default).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"startTime\": {\n          \"description\": \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"succeeded\": {\n          \"description\": \"The number of pods which reached phase Succeeded.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"uncountedTerminatedPods\": {\n          \"description\": \"UncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.\\n\\nThe job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status: (1) Add the pod UID to the arrays in this field. (2) Remove the pod finalizer. (3) Remove the pod UID from the arrays while increasing the corresponding\\n    counter.\\n\\nOld jobs might not be tracked using this field, in which case the field remains null.\",\n          \"$ref\": \"#/definitions/io.k8s.api.batch.v1.UncountedTerminatedPods\"\n        }\n      }\n    },\n    \"io.k8s.api.batch.v1.JobTemplateSpec\": {\n      \"description\": \"JobTemplateSpec describes the data a Job should have when created from a template\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"metadata\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.batch.v1.JobSpec\"\n        }\n      }\n    },\n    \"io.k8s.api.batch.v1.PodFailurePolicy\": {\n      \"description\": \"PodFailurePolicy describes how failed pods influence the backoffLimit.\",\n      \"type\": \"object\",\n      \"required\": [\"rules\"],\n      \"properties\": {\n        \"rules\": {\n          \"description\": \"A list of pod failure policy rules. The rules are evaluated in order. Once a rule matches a Pod failure, the remaining of the rules are ignored. When no rule matches the Pod failure, the default handling applies - the counter of pod failures is incremented and it is checked against the backoffLimit. At most 20 elements are allowed.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.batch.v1.PodFailurePolicyRule\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement\": {\n      \"description\": \"PodFailurePolicyOnExitCodesRequirement describes the requirement for handling a failed pod based on its container exit codes. In particular, it lookups the .state.terminated.exitCode for each app container and init container status, represented by the .status.containerStatuses and .status.initContainerStatuses fields in the Pod status, respectively. Containers completed with success (exit code 0) are excluded from the requirement check.\",\n      \"type\": \"object\",\n      \"required\": [\"operator\", \"values\"],\n      \"properties\": {\n        \"containerName\": {\n          \"description\": \"Restricts the check for exit codes to the container with the specified name. When null, the rule applies to all containers. When specified, it should match one the container or initContainer names in the pod template.\",\n          \"type\": \"string\"\n        },\n        \"operator\": {\n          \"description\": \"Represents the relationship between the container exit code(s) and the specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are: - In: the requirement is satisfied if at least one container exit code\\n  (might be multiple if there are multiple containers not restricted\\n  by the 'containerName' field) is in the set of specified values.\\n- NotIn: the requirement is satisfied if at least one container exit code\\n  (might be multiple if there are multiple containers not restricted\\n  by the 'containerName' field) is not in the set of specified values.\\nAdditional values are considered to be added in the future. Clients should react to an unknown operator by assuming the requirement is not satisfied.\\n\\nPossible enum values:\\n - `\\\"In\\\"`\\n - `\\\"NotIn\\\"`\",\n          \"type\": \"string\",\n          \"enum\": [\"In\", \"NotIn\"]\n        },\n        \"values\": {\n          \"description\": \"Specifies the set of values. Each returned container exit code (might be multiple in case of multiple containers) is checked against this set of values with respect to the operator. The list of values must be ordered and must not contain duplicates. Value '0' cannot be used for the In operator. At least one element is required. At most 255 elements are allowed.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"integer\", \"format\": \"int32\" },\n          \"x-kubernetes-list-type\": \"set\"\n        }\n      }\n    },\n    \"io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern\": {\n      \"description\": \"PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"status\": {\n          \"description\": \"Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.batch.v1.PodFailurePolicyRule\": {\n      \"description\": \"PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. One of OnExitCodes and onPodConditions, but not both, can be used in each rule.\",\n      \"type\": \"object\",\n      \"required\": [\"action\", \"onPodConditions\"],\n      \"properties\": {\n        \"action\": {\n          \"description\": \"Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are: - FailJob: indicates that the pod's job is marked as Failed and all\\n  running pods are terminated.\\n- Ignore: indicates that the counter towards the .backoffLimit is not\\n  incremented and a replacement pod is created.\\n- Count: indicates that the pod is handled in the default way - the\\n  counter towards the .backoffLimit is incremented.\\nAdditional values are considered to be added in the future. Clients should react to an unknown action by skipping the rule.\\n\\nPossible enum values:\\n - `\\\"Count\\\"` This is an action which might be taken on a pod failure - the pod failure is handled in the default way - the counter towards .backoffLimit, represented by the job's .status.failed field, is incremented.\\n - `\\\"FailJob\\\"` This is an action which might be taken on a pod failure - mark the pod's job as Failed and terminate all running pods.\\n - `\\\"Ignore\\\"` This is an action which might be taken on a pod failure - the counter towards .backoffLimit, represented by the job's .status.failed field, is not incremented and a replacement pod is created.\",\n          \"type\": \"string\",\n          \"enum\": [\"Count\", \"FailJob\", \"Ignore\"]\n        },\n        \"onExitCodes\": {\n          \"description\": \"Represents the requirement on the container exit codes.\",\n          \"$ref\": \"#/definitions/io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement\"\n        },\n        \"onPodConditions\": {\n          \"description\": \"Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. The requirement is satisfied if at least one pattern matches an actual pod condition. At most 20 elements are allowed.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.api.batch.v1.UncountedTerminatedPods\": {\n      \"description\": \"UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"failed\": {\n          \"description\": \"Failed holds UIDs of failed Pods.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        },\n        \"succeeded\": {\n          \"description\": \"Succeeded holds UIDs of succeeded Pods.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        }\n      }\n    },\n    \"io.k8s.api.certificates.v1.CertificateSigningRequest\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"spec\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users.\",\n          \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestSpec\"\n        },\n        \"status\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequest\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.certificates.v1.CertificateSigningRequestCondition\": {\n      \"description\": \"CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastUpdateTime\": {\n          \"description\": \"lastUpdateTime is the time of the last update to this condition\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"message contains a human readable message with details about the request state\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"reason indicates a brief reason for the request state\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \\\"False\\\" or \\\"Unknown\\\".\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.certificates.v1.CertificateSigningRequestList\": {\n      \"description\": \"CertificateSigningRequestList is a collection of CertificateSigningRequest objects\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"items is a collection of CertificateSigningRequest objects\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequest\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"CertificateSigningRequestList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.certificates.v1.CertificateSigningRequestSpec\": {\n      \"description\": \"CertificateSigningRequestSpec contains the certificate request.\",\n      \"type\": \"object\",\n      \"required\": [\"request\", \"signerName\"],\n      \"properties\": {\n        \"expirationSeconds\": {\n          \"description\": \"expirationSeconds is the requested duration of validity of the issued certificate. The certificate signer may issue a certificate with a different validity duration so a client must check the delta between the notBefore and and notAfter fields in the issued certificate to determine the actual duration.\\n\\nThe v1.22+ in-tree implementations of the well-known Kubernetes signers will honor this field as long as the requested duration is not greater than the maximum duration they will honor per the --cluster-signing-duration CLI flag to the Kubernetes controller manager.\\n\\nCertificate signers may not honor this field for various reasons:\\n\\n  1. Old signer that is unaware of the field (such as the in-tree\\n     implementations prior to v1.22)\\n  2. Signer whose configured maximum is shorter than the requested duration\\n  3. Signer whose configured minimum is longer than the requested duration\\n\\nThe minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"extra\": {\n          \"description\": \"extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"array\",\n            \"items\": { \"type\": \"string\" }\n          }\n        },\n        \"groups\": {\n          \"description\": \"groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"request\": {\n          \"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.\",\n          \"type\": \"string\",\n          \"format\": \"byte\",\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"signerName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"uid\": {\n          \"description\": \"uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.\",\n          \"type\": \"string\"\n        },\n        \"usages\": {\n          \"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\\\"\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"username\": {\n          \"description\": \"username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.certificates.v1.CertificateSigningRequestStatus\": {\n      \"description\": \"CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"certificate\": {\n          \"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    )\",\n          \"type\": \"string\",\n          \"format\": \"byte\",\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"conditions\": {\n          \"description\": \"conditions applied to the request. Known conditions are \\\"Approved\\\", \\\"Denied\\\", and \\\"Failed\\\".\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.certificates.v1.CertificateSigningRequestCondition\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"type\"],\n          \"x-kubernetes-list-type\": \"map\"\n        }\n      }\n    },\n    \"io.k8s.api.coordination.v1.Lease\": {\n      \"description\": \"Lease defines a lease concept.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.LeaseSpec\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"coordination.k8s.io\", \"kind\": \"Lease\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.coordination.v1.LeaseList\": {\n      \"description\": \"LeaseList is a list of Lease objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of schema objects.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.coordination.v1.Lease\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"coordination.k8s.io\", \"kind\": \"LeaseList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.coordination.v1.LeaseSpec\": {\n      \"description\": \"LeaseSpec is a specification of a Lease.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"acquireTime\": {\n          \"description\": \"acquireTime is a time when the current lease was acquired.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"\n        },\n        \"holderIdentity\": {\n          \"description\": \"holderIdentity contains the identity of the holder of a current lease.\",\n          \"type\": \"string\"\n        },\n        \"leaseDurationSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"leaseTransitions\": {\n          \"description\": \"leaseTransitions is the number of transitions of a lease between holders.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"renewTime\": {\n          \"description\": \"renewTime is a time when the current holder of a lease has last updated the lease.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"volumeID\"],\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n          \"type\": \"string\"\n        },\n        \"partition\": {\n          \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n          \"type\": \"boolean\"\n        },\n        \"volumeID\": {\n          \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Affinity\": {\n      \"description\": \"Affinity is a group of affinity scheduling rules.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"nodeAffinity\": {\n          \"description\": \"Describes node affinity scheduling rules for the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeAffinity\"\n        },\n        \"podAffinity\": {\n          \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAffinity\"\n        },\n        \"podAntiAffinity\": {\n          \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAntiAffinity\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AttachedVolume\": {\n      \"description\": \"AttachedVolume describes a volume attached to a node\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"devicePath\"],\n      \"properties\": {\n        \"devicePath\": {\n          \"description\": \"DevicePath represents the device path where the volume should be available\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the attached volume\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AzureDiskVolumeSource\": {\n      \"description\": \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n      \"type\": \"object\",\n      \"required\": [\"diskName\", \"diskURI\"],\n      \"properties\": {\n        \"cachingMode\": {\n          \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n          \"type\": \"string\"\n        },\n        \"diskName\": {\n          \"description\": \"diskName is the Name of the data disk in the blob storage\",\n          \"type\": \"string\"\n        },\n        \"diskURI\": {\n          \"description\": \"diskURI is the URI of data disk in the blob storage\",\n          \"type\": \"string\"\n        },\n        \"fsType\": {\n          \"description\": \"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AzureFilePersistentVolumeSource\": {\n      \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n      \"type\": \"object\",\n      \"required\": [\"secretName\", \"shareName\"],\n      \"properties\": {\n        \"readOnly\": {\n          \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretName\": {\n          \"description\": \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n          \"type\": \"string\"\n        },\n        \"secretNamespace\": {\n          \"description\": \"secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod\",\n          \"type\": \"string\"\n        },\n        \"shareName\": {\n          \"description\": \"shareName is the azure Share Name\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AzureFileVolumeSource\": {\n      \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n      \"type\": \"object\",\n      \"required\": [\"secretName\", \"shareName\"],\n      \"properties\": {\n        \"readOnly\": {\n          \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretName\": {\n          \"description\": \"secretName is the  name of secret that contains Azure Storage Account Name and Key\",\n          \"type\": \"string\"\n        },\n        \"shareName\": {\n          \"description\": \"shareName is the azure share Name\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Binding\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"target\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"target\": {\n          \"description\": \"The target object that you want to bind to the standard object.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"Binding\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.CSIPersistentVolumeSource\": {\n      \"description\": \"Represents storage that is managed by an external CSI volume driver (Beta feature)\",\n      \"type\": \"object\",\n      \"required\": [\"driver\", \"volumeHandle\"],\n      \"properties\": {\n        \"controllerExpandSecretRef\": {\n          \"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 beta 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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        },\n        \"controllerPublishSecretRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        },\n        \"driver\": {\n          \"description\": \"driver is the name of the driver to use for this volume. Required.\",\n          \"type\": \"string\"\n        },\n        \"fsType\": {\n          \"description\": \"fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\",\n          \"type\": \"string\"\n        },\n        \"nodeExpandSecretRef\": {\n          \"description\": \"nodeExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeExpandVolume call. This is an alpha field and requires enabling CSINodeExpandSecret feature gate. This field is optional, may be omitted if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        },\n        \"nodePublishSecretRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        },\n        \"nodeStageSecretRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).\",\n          \"type\": \"boolean\"\n        },\n        \"volumeAttributes\": {\n          \"description\": \"volumeAttributes of the volume to publish.\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" }\n        },\n        \"volumeHandle\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.CSIVolumeSource\": {\n      \"description\": \"Represents a source location of a volume to mount, managed by an external CSI driver\",\n      \"type\": \"object\",\n      \"required\": [\"driver\"],\n      \"properties\": {\n        \"driver\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"fsType\": {\n          \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n          \"type\": \"string\"\n        },\n        \"nodePublishSecretRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n          \"type\": \"boolean\"\n        },\n        \"volumeAttributes\": {\n          \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Capabilities\": {\n      \"description\": \"Adds and removes POSIX capabilities from running containers.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"add\": {\n          \"description\": \"Added capabilities\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"drop\": {\n          \"description\": \"Removed capabilities\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.CephFSPersistentVolumeSource\": {\n      \"description\": \"Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\"monitors\"],\n      \"properties\": {\n        \"monitors\": {\n          \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"path\": {\n          \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"boolean\"\n        },\n        \"secretFile\": {\n          \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"secretRef\": {\n          \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        },\n        \"user\": {\n          \"description\": \"user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.CephFSVolumeSource\": {\n      \"description\": \"Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\"monitors\"],\n      \"properties\": {\n        \"monitors\": {\n          \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"path\": {\n          \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"boolean\"\n        },\n        \"secretFile\": {\n          \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"secretRef\": {\n          \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"user\": {\n          \"description\": \"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.CinderPersistentVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"volumeID\"],\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        },\n        \"volumeID\": {\n          \"description\": \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.CinderVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"volumeID\"],\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"volumeID\": {\n          \"description\": \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ClaimSource\": {\n      \"description\": \"ClaimSource describes a reference to a ResourceClaim.\\n\\nExactly one of these fields should be set.  Consumers of this type must treat an empty object as if it has an unknown value.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"resourceClaimName\": {\n          \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same namespace as this pod.\",\n          \"type\": \"string\"\n        },\n        \"resourceClaimTemplateName\": {\n          \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod.\\n\\nThe template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The name of the ResourceClaim will be \\u003cpod name\\u003e-\\u003cresource name\\u003e, where \\u003cresource name\\u003e is the PodResourceClaim.Name. Pod validation will reject the pod if the concatenated name is not valid for a ResourceClaim (e.g. too long).\\n\\nAn existing ResourceClaim with that name that is not owned by the pod will not be used for the pod to avoid using an unrelated resource by mistake. Scheduling and pod startup are then blocked until the unrelated ResourceClaim is removed.\\n\\nThis field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ClientIPConfig\": {\n      \"description\": \"ClientIPConfig represents the configurations of Client IP based session affinity.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"timeoutSeconds\": {\n          \"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).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ComponentCondition\": {\n      \"description\": \"Information about the condition of a component.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"error\": {\n          \"description\": \"Condition error code for a component. For example, a health check error code.\",\n          \"type\": \"string\"\n        },\n        \"message\": {\n          \"description\": \"Message about the condition for a component. For example, information about a health check.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition for a component. Valid values for \\\"Healthy\\\": \\\"True\\\", \\\"False\\\", or \\\"Unknown\\\".\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of condition for a component. Valid value: \\\"Healthy\\\"\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ComponentStatus\": {\n      \"description\": \"ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"conditions\": {\n          \"description\": \"List of component conditions observed\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ComponentCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"ComponentStatus\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.ComponentStatusList\": {\n      \"description\": \"Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of ComponentStatus objects.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ComponentStatus\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"ComponentStatusList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.ConfigMap\": {\n      \"description\": \"ConfigMap holds configuration data for pods to consume.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"binaryData\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\", \"format\": \"byte\" }\n        },\n        \"data\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" }\n        },\n        \"immutable\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"ConfigMap\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.ConfigMapEnvSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the ConfigMap must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ConfigMapKeySelector\": {\n      \"description\": \"Selects a key from a ConfigMap.\",\n      \"type\": \"object\",\n      \"required\": [\"key\"],\n      \"properties\": {\n        \"key\": { \"description\": \"The key to select.\", \"type\": \"string\" },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n          \"type\": \"boolean\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.ConfigMapList\": {\n      \"description\": \"ConfigMapList is a resource containing a list of ConfigMap objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of ConfigMaps.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"ConfigMapList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.ConfigMapNodeConfigSource\": {\n      \"description\": \"ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration\",\n      \"type\": \"object\",\n      \"required\": [\"namespace\", \"name\", \"kubeletConfigKey\"],\n      \"properties\": {\n        \"kubeletConfigKey\": {\n          \"description\": \"KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.\",\n          \"type\": \"string\"\n        },\n        \"resourceVersion\": {\n          \"description\": \"ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.\",\n          \"type\": \"string\"\n        },\n        \"uid\": {\n          \"description\": \"UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ConfigMapProjection\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"items\": {\n          \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.KeyToPath\" }\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ConfigMapVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"defaultMode\": {\n          \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"items\": {\n          \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.KeyToPath\" }\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Container\": {\n      \"description\": \"A single application container that you want to run within a pod.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"args\": {\n          \"description\": \"Arguments to the entrypoint. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"command\": {\n          \"description\": \"Entrypoint array. Not executed within a shell. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"env\": {\n          \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.EnvVar\" },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"envFrom\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.EnvFromSource\" }\n        },\n        \"image\": {\n          \"description\": \"Container 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.\",\n          \"type\": \"string\"\n        },\n        \"imagePullPolicy\": {\n          \"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\\n\\nPossible enum values:\\n - `\\\"Always\\\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\\n - `\\\"IfNotPresent\\\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\\n - `\\\"Never\\\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present\",\n          \"type\": \"string\",\n          \"enum\": [\"Always\", \"IfNotPresent\", \"Never\"]\n        },\n        \"lifecycle\": {\n          \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Lifecycle\"\n        },\n        \"livenessProbe\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Probe\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"ports\": {\n          \"description\": \"List of ports to expose from the container. 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. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerPort\" },\n          \"x-kubernetes-list-map-keys\": [\"containerPort\", \"protocol\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"containerPort\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"readinessProbe\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Probe\"\n        },\n        \"resources\": {\n          \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"\n        },\n        \"securityContext\": {\n          \"description\": \"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecurityContext\"\n        },\n        \"startupProbe\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Probe\"\n        },\n        \"stdin\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"stdinOnce\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"terminationMessagePath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"terminationMessagePolicy\": {\n          \"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.\\n\\nPossible enum values:\\n - `\\\"FallbackToLogsOnError\\\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\\n - `\\\"File\\\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.\",\n          \"type\": \"string\",\n          \"enum\": [\"FallbackToLogsOnError\", \"File\"]\n        },\n        \"tty\": {\n          \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n          \"type\": \"boolean\"\n        },\n        \"volumeDevices\": {\n          \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.VolumeDevice\" },\n          \"x-kubernetes-patch-merge-key\": \"devicePath\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"volumeMounts\": {\n          \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.VolumeMount\" },\n          \"x-kubernetes-patch-merge-key\": \"mountPath\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"workingDir\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerImage\": {\n      \"description\": \"Describe a container image\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"names\": {\n          \"description\": \"Names by which this image is known. e.g. [\\\"kubernetes.example/hyperkube:v1.0.7\\\", \\\"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\\\"]\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"sizeBytes\": {\n          \"description\": \"The size of the image in bytes.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerPort\": {\n      \"description\": \"ContainerPort represents a network port in a single container.\",\n      \"type\": \"object\",\n      \"required\": [\"containerPort\"],\n      \"properties\": {\n        \"containerPort\": {\n          \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"hostIP\": {\n          \"description\": \"What host IP to bind the external port to.\",\n          \"type\": \"string\"\n        },\n        \"hostPort\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"protocol\": {\n          \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\n          \"type\": \"string\",\n          \"enum\": [\"SCTP\", \"TCP\", \"UDP\"]\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerState\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"running\": {\n          \"description\": \"Details about a running container\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStateRunning\"\n        },\n        \"terminated\": {\n          \"description\": \"Details about a terminated container\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStateTerminated\"\n        },\n        \"waiting\": {\n          \"description\": \"Details about a waiting container\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStateWaiting\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerStateRunning\": {\n      \"description\": \"ContainerStateRunning is a running state of a container.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"startedAt\": {\n          \"description\": \"Time at which the container was last (re-)started\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerStateTerminated\": {\n      \"description\": \"ContainerStateTerminated is a terminated state of a container.\",\n      \"type\": \"object\",\n      \"required\": [\"exitCode\"],\n      \"properties\": {\n        \"containerID\": {\n          \"description\": \"Container's ID in the format '\\u003ctype\\u003e://\\u003ccontainer_id\\u003e'\",\n          \"type\": \"string\"\n        },\n        \"exitCode\": {\n          \"description\": \"Exit status from the last termination of the container\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"finishedAt\": {\n          \"description\": \"Time at which the container last terminated\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"Message regarding the last termination of the container\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"(brief) reason from the last termination of the container\",\n          \"type\": \"string\"\n        },\n        \"signal\": {\n          \"description\": \"Signal from the last termination of the container\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"startedAt\": {\n          \"description\": \"Time at which previous execution of the container started\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerStateWaiting\": {\n      \"description\": \"ContainerStateWaiting is a waiting state of a container.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"message\": {\n          \"description\": \"Message regarding why the container is not yet running.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"(brief) reason the container is not yet running.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerStatus\": {\n      \"description\": \"ContainerStatus contains details for the current status of this container.\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"ready\", \"restartCount\", \"image\", \"imageID\"],\n      \"properties\": {\n        \"containerID\": {\n          \"description\": \"Container's ID in the format '\\u003ctype\\u003e://\\u003ccontainer_id\\u003e'.\",\n          \"type\": \"string\"\n        },\n        \"image\": {\n          \"description\": \"The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images.\",\n          \"type\": \"string\"\n        },\n        \"imageID\": {\n          \"description\": \"ImageID of the container's image.\",\n          \"type\": \"string\"\n        },\n        \"lastState\": {\n          \"description\": \"Details about the container's last termination condition.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerState\"\n        },\n        \"name\": {\n          \"description\": \"This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.\",\n          \"type\": \"string\"\n        },\n        \"ready\": {\n          \"description\": \"Specifies whether the container has passed its readiness probe.\",\n          \"type\": \"boolean\"\n        },\n        \"restartCount\": {\n          \"description\": \"The number of times the container has been restarted.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"started\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"state\": {\n          \"description\": \"Details about the container's current condition.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerState\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.DaemonEndpoint\": {\n      \"description\": \"DaemonEndpoint contains information about a single Daemon endpoint.\",\n      \"type\": \"object\",\n      \"required\": [\"Port\"],\n      \"properties\": {\n        \"Port\": {\n          \"description\": \"Port number of the given endpoint.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.DownwardAPIProjection\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"items\": {\n          \"description\": \"Items is a list of DownwardAPIVolume file\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.DownwardAPIVolumeFile\": {\n      \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n      \"type\": \"object\",\n      \"required\": [\"path\"],\n      \"properties\": {\n        \"fieldRef\": {\n          \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"\n        },\n        \"mode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"path\": {\n          \"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 '..'\",\n          \"type\": \"string\"\n        },\n        \"resourceFieldRef\": {\n          \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.DownwardAPIVolumeSource\": {\n      \"description\": \"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"defaultMode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of downward API volume file\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EmptyDirVolumeSource\": {\n      \"description\": \"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"medium\": {\n          \"description\": \"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n          \"type\": \"string\"\n        },\n        \"sizeLimit\": {\n          \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EndpointAddress\": {\n      \"description\": \"EndpointAddress is a tuple that describes single IP address.\",\n      \"type\": \"object\",\n      \"required\": [\"ip\"],\n      \"properties\": {\n        \"hostname\": {\n          \"description\": \"The Hostname of this endpoint\",\n          \"type\": \"string\"\n        },\n        \"ip\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"nodeName\": {\n          \"description\": \"Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\",\n          \"type\": \"string\"\n        },\n        \"targetRef\": {\n          \"description\": \"Reference to object providing the endpoint.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.EndpointPort\": {\n      \"description\": \"EndpointPort is a tuple that describes a single port.\",\n      \"type\": \"object\",\n      \"required\": [\"port\"],\n      \"properties\": {\n        \"appProtocol\": {\n          \"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 https://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"description\": \"The port number of the endpoint.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"protocol\": {\n          \"description\": \"The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\n          \"type\": \"string\",\n          \"enum\": [\"SCTP\", \"TCP\", \"UDP\"]\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.EndpointSubset\": {\n      \"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\\t{\\n\\t  Addresses: [{\\\"ip\\\": \\\"10.10.1.1\\\"}, {\\\"ip\\\": \\\"10.10.2.2\\\"}],\\n\\t  Ports:     [{\\\"name\\\": \\\"a\\\", \\\"port\\\": 8675}, {\\\"name\\\": \\\"b\\\", \\\"port\\\": 309}]\\n\\t}\\n\\nThe resulting set of endpoints can be viewed as:\\n\\n\\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\\n\\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"addresses\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointAddress\"\n          }\n        },\n        \"notReadyAddresses\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointAddress\"\n          }\n        },\n        \"ports\": {\n          \"description\": \"Port numbers available on the related IP addresses.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointPort\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Endpoints\": {\n      \"description\": \"Endpoints is a collection of endpoints that implement the actual service. Example:\\n\\n\\t Name: \\\"mysvc\\\",\\n\\t Subsets: [\\n\\t   {\\n\\t     Addresses: [{\\\"ip\\\": \\\"10.10.1.1\\\"}, {\\\"ip\\\": \\\"10.10.2.2\\\"}],\\n\\t     Ports: [{\\\"name\\\": \\\"a\\\", \\\"port\\\": 8675}, {\\\"name\\\": \\\"b\\\", \\\"port\\\": 309}]\\n\\t   },\\n\\t   {\\n\\t     Addresses: [{\\\"ip\\\": \\\"10.10.3.3\\\"}],\\n\\t     Ports: [{\\\"name\\\": \\\"a\\\", \\\"port\\\": 93}, {\\\"name\\\": \\\"b\\\", \\\"port\\\": 76}]\\n\\t   },\\n\\t]\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"subsets\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointSubset\" }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"Endpoints\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.EndpointsList\": {\n      \"description\": \"EndpointsList is a list of endpoints.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of endpoints.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"EndpointsList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.EnvFromSource\": {\n      \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"configMapRef\": {\n          \"description\": \"The ConfigMap to select from\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource\"\n        },\n        \"prefix\": {\n          \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n          \"type\": \"string\"\n        },\n        \"secretRef\": {\n          \"description\": \"The Secret to select from\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretEnvSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EnvVar\": {\n      \"description\": \"EnvVar represents an environment variable present in a Container.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n          \"type\": \"string\"\n        },\n        \"value\": {\n          \"description\": \"Variable references $(VAR_NAME) are expanded using the previously 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n          \"type\": \"string\"\n        },\n        \"valueFrom\": {\n          \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.EnvVarSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EnvVarSource\": {\n      \"description\": \"EnvVarSource represents a source for the value of an EnvVar.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"configMapKeyRef\": {\n          \"description\": \"Selects a key of a ConfigMap.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector\"\n        },\n        \"fieldRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"\n        },\n        \"resourceFieldRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"\n        },\n        \"secretKeyRef\": {\n          \"description\": \"Selects a key of a secret in the pod's namespace\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretKeySelector\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EphemeralContainer\": {\n      \"description\": \"An EphemeralContainer is a temporary container that you may add 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. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"args\": {\n          \"description\": \"Arguments to the entrypoint. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"command\": {\n          \"description\": \"Entrypoint array. Not executed within a shell. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"env\": {\n          \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.EnvVar\" },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"envFrom\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.EnvFromSource\" }\n        },\n        \"image\": {\n          \"description\": \"Container image name. More info: https://kubernetes.io/docs/concepts/containers/images\",\n          \"type\": \"string\"\n        },\n        \"imagePullPolicy\": {\n          \"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\\n\\nPossible enum values:\\n - `\\\"Always\\\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\\n - `\\\"IfNotPresent\\\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\\n - `\\\"Never\\\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present\",\n          \"type\": \"string\",\n          \"enum\": [\"Always\", \"IfNotPresent\", \"Never\"]\n        },\n        \"lifecycle\": {\n          \"description\": \"Lifecycle is not allowed for ephemeral containers.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Lifecycle\"\n        },\n        \"livenessProbe\": {\n          \"description\": \"Probes are not allowed for ephemeral containers.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Probe\"\n        },\n        \"name\": {\n          \"description\": \"Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.\",\n          \"type\": \"string\"\n        },\n        \"ports\": {\n          \"description\": \"Ports are not allowed for ephemeral containers.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerPort\" },\n          \"x-kubernetes-list-map-keys\": [\"containerPort\", \"protocol\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"containerPort\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"readinessProbe\": {\n          \"description\": \"Probes are not allowed for ephemeral containers.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Probe\"\n        },\n        \"resources\": {\n          \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"\n        },\n        \"securityContext\": {\n          \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecurityContext\"\n        },\n        \"startupProbe\": {\n          \"description\": \"Probes are not allowed for ephemeral containers.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Probe\"\n        },\n        \"stdin\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"stdinOnce\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"targetContainerName\": {\n          \"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 uses the namespaces configured in the Pod spec.\\n\\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\n          \"type\": \"string\"\n        },\n        \"terminationMessagePath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"terminationMessagePolicy\": {\n          \"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.\\n\\nPossible enum values:\\n - `\\\"FallbackToLogsOnError\\\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\\n - `\\\"File\\\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.\",\n          \"type\": \"string\",\n          \"enum\": [\"FallbackToLogsOnError\", \"File\"]\n        },\n        \"tty\": {\n          \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n          \"type\": \"boolean\"\n        },\n        \"volumeDevices\": {\n          \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.VolumeDevice\" },\n          \"x-kubernetes-patch-merge-key\": \"devicePath\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"volumeMounts\": {\n          \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.VolumeMount\" },\n          \"x-kubernetes-patch-merge-key\": \"mountPath\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"workingDir\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EphemeralVolumeSource\": {\n      \"description\": \"Represents an ephemeral volume that is handled by a normal storage driver.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"volumeClaimTemplate\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimTemplate\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Event\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"metadata\", \"involvedObject\"],\n      \"properties\": {\n        \"action\": {\n          \"description\": \"What action was taken/failed regarding to the Regarding object.\",\n          \"type\": \"string\"\n        },\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"count\": {\n          \"description\": \"The number of times this event has occurred.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"eventTime\": {\n          \"description\": \"Time when this Event was first observed.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"\n        },\n        \"firstTimestamp\": {\n          \"description\": \"The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"involvedObject\": {\n          \"description\": \"The object that this event is about.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"lastTimestamp\": {\n          \"description\": \"The time at which the most recent occurrence of this event was recorded.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"A human-readable description of the status of this operation.\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"reason\": {\n          \"description\": \"This should be a short, machine understandable string that gives the reason for the transition into the object's current status.\",\n          \"type\": \"string\"\n        },\n        \"related\": {\n          \"description\": \"Optional secondary object for more complex actions.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"reportingComponent\": {\n          \"description\": \"Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\",\n          \"type\": \"string\"\n        },\n        \"reportingInstance\": {\n          \"description\": \"ID of the controller instance, e.g. `kubelet-xyzf`.\",\n          \"type\": \"string\"\n        },\n        \"series\": {\n          \"description\": \"Data about the Event series this event represents or nil if it's a singleton Event.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.EventSeries\"\n        },\n        \"source\": {\n          \"description\": \"The component reporting this event. Should be a short machine understandable string.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.EventSource\"\n        },\n        \"type\": {\n          \"description\": \"Type of this event (Normal, Warning), new types could be added in the future\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"Event\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.EventList\": {\n      \"description\": \"EventList is a list of events.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of events\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"EventList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.EventSeries\": {\n      \"description\": \"EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"count\": {\n          \"description\": \"Number of occurrences in this series up to the last heartbeat time\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"lastObservedTime\": {\n          \"description\": \"Time of the last occurrence observed\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EventSource\": {\n      \"description\": \"EventSource contains information for an event.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"component\": {\n          \"description\": \"Component from which the event is generated.\",\n          \"type\": \"string\"\n        },\n        \"host\": {\n          \"description\": \"Node name on which the event is generated.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ExecAction\": {\n      \"description\": \"ExecAction describes a \\\"run in container\\\" action.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"command\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.FCVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n          \"type\": \"string\"\n        },\n        \"lun\": {\n          \"description\": \"lun is Optional: FC target lun number\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"targetWWNs\": {\n          \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"wwids\": {\n          \"description\": \"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.FlexPersistentVolumeSource\": {\n      \"description\": \"FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.\",\n      \"type\": \"object\",\n      \"required\": [\"driver\"],\n      \"properties\": {\n        \"driver\": {\n          \"description\": \"driver is the name of the driver to use for this volume.\",\n          \"type\": \"string\"\n        },\n        \"fsType\": {\n          \"description\": \"fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n          \"type\": \"string\"\n        },\n        \"options\": {\n          \"description\": \"options is Optional: this field holds extra command options if any.\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" }\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.FlexVolumeSource\": {\n      \"description\": \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n      \"type\": \"object\",\n      \"required\": [\"driver\"],\n      \"properties\": {\n        \"driver\": {\n          \"description\": \"driver is the name of the driver to use for this volume.\",\n          \"type\": \"string\"\n        },\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n          \"type\": \"string\"\n        },\n        \"options\": {\n          \"description\": \"options is Optional: this field holds extra command options if any.\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" }\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.FlockerVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"datasetName\": {\n          \"description\": \"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n          \"type\": \"string\"\n        },\n        \"datasetUUID\": {\n          \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"pdName\"],\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n          \"type\": \"string\"\n        },\n        \"partition\": {\n          \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"pdName\": {\n          \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.GRPCAction\": {\n      \"type\": \"object\",\n      \"required\": [\"port\"],\n      \"properties\": {\n        \"port\": {\n          \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"service\": {\n          \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.GitRepoVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"repository\"],\n      \"properties\": {\n        \"directory\": {\n          \"description\": \"directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n          \"type\": \"string\"\n        },\n        \"repository\": {\n          \"description\": \"repository is the URL\",\n          \"type\": \"string\"\n        },\n        \"revision\": {\n          \"description\": \"revision is the commit hash for the specified revision.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\": {\n      \"description\": \"Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\"endpoints\", \"path\"],\n      \"properties\": {\n        \"endpoints\": {\n          \"description\": \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n          \"type\": \"string\"\n        },\n        \"endpointsNamespace\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"path\": {\n          \"description\": \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"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\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.GlusterfsVolumeSource\": {\n      \"description\": \"Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\"endpoints\", \"path\"],\n      \"properties\": {\n        \"endpoints\": {\n          \"description\": \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n          \"type\": \"string\"\n        },\n        \"path\": {\n          \"description\": \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"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\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.HTTPGetAction\": {\n      \"description\": \"HTTPGetAction describes an action based on HTTP Get requests.\",\n      \"type\": \"object\",\n      \"required\": [\"port\"],\n      \"properties\": {\n        \"host\": {\n          \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n          \"type\": \"string\"\n        },\n        \"httpHeaders\": {\n          \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.HTTPHeader\" }\n        },\n        \"path\": {\n          \"description\": \"Path to access on the HTTP server.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        },\n        \"scheme\": {\n          \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\\n\\nPossible enum values:\\n - `\\\"HTTP\\\"` means that the scheme used will be http://\\n - `\\\"HTTPS\\\"` means that the scheme used will be https://\",\n          \"type\": \"string\",\n          \"enum\": [\"HTTP\", \"HTTPS\"]\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.HTTPHeader\": {\n      \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"value\"],\n      \"properties\": {\n        \"name\": { \"description\": \"The header field name\", \"type\": \"string\" },\n        \"value\": { \"description\": \"The header field value\", \"type\": \"string\" }\n      }\n    },\n    \"io.k8s.api.core.v1.HostAlias\": {\n      \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"hostnames\": {\n          \"description\": \"Hostnames for the above IP address.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"ip\": {\n          \"description\": \"IP address of the host file entry.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.HostPathVolumeSource\": {\n      \"description\": \"Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\"path\"],\n      \"properties\": {\n        \"path\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ISCSIPersistentVolumeSource\": {\n      \"description\": \"ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\"targetPortal\", \"iqn\", \"lun\"],\n      \"properties\": {\n        \"chapAuthDiscovery\": {\n          \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n          \"type\": \"boolean\"\n        },\n        \"chapAuthSession\": {\n          \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n          \"type\": \"boolean\"\n        },\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\n          \"type\": \"string\"\n        },\n        \"initiatorName\": {\n          \"description\": \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n          \"type\": \"string\"\n        },\n        \"iqn\": {\n          \"description\": \"iqn is Target iSCSI Qualified Name.\",\n          \"type\": \"string\"\n        },\n        \"iscsiInterface\": {\n          \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n          \"type\": \"string\"\n        },\n        \"lun\": {\n          \"description\": \"lun is iSCSI Target Lun number.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"portals\": {\n          \"description\": \"portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        },\n        \"targetPortal\": {\n          \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ISCSIVolumeSource\": {\n      \"description\": \"Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\"targetPortal\", \"iqn\", \"lun\"],\n      \"properties\": {\n        \"chapAuthDiscovery\": {\n          \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n          \"type\": \"boolean\"\n        },\n        \"chapAuthSession\": {\n          \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n          \"type\": \"boolean\"\n        },\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\n          \"type\": \"string\"\n        },\n        \"initiatorName\": {\n          \"description\": \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\n          \"type\": \"string\"\n        },\n        \"iqn\": {\n          \"description\": \"iqn is the target iSCSI Qualified Name.\",\n          \"type\": \"string\"\n        },\n        \"iscsiInterface\": {\n          \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n          \"type\": \"string\"\n        },\n        \"lun\": {\n          \"description\": \"lun represents iSCSI Target Lun number.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"portals\": {\n          \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"targetPortal\": {\n          \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.KeyToPath\": {\n      \"description\": \"Maps a string key to a path within a volume.\",\n      \"type\": \"object\",\n      \"required\": [\"key\", \"path\"],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"key is the key to project.\",\n          \"type\": \"string\"\n        },\n        \"mode\": {\n          \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"path\": {\n          \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Lifecycle\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"postStart\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LifecycleHandler\"\n        },\n        \"preStop\": {\n          \"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 Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). 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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LifecycleHandler\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LifecycleHandler\": {\n      \"description\": \"LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"exec\": {\n          \"description\": \"Exec specifies the action to take.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ExecAction\"\n        },\n        \"httpGet\": {\n          \"description\": \"HTTPGet specifies the http request to perform.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"\n        },\n        \"tcpSocket\": {\n          \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LimitRange\": {\n      \"description\": \"LimitRange sets resource usage limits for each kind of resource in a Namespace.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRangeSpec\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"LimitRange\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.LimitRangeItem\": {\n      \"description\": \"LimitRangeItem defines a min/max usage limit for any resource that matches on kind.\",\n      \"type\": \"object\",\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"default\": {\n          \"description\": \"Default resource requirement limit value by resource name if resource limit is omitted.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"defaultRequest\": {\n          \"description\": \"DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"max\": {\n          \"description\": \"Max usage constraints on this kind by resource name.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"maxLimitRequestRatio\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"min\": {\n          \"description\": \"Min usage constraints on this kind by resource name.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"type\": {\n          \"description\": \"Type of resource that this limit applies to.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LimitRangeList\": {\n      \"description\": \"LimitRangeList is a list of LimitRange items.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"LimitRangeList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.LimitRangeSpec\": {\n      \"description\": \"LimitRangeSpec defines a min/max usage limit for resources that match on kind.\",\n      \"type\": \"object\",\n      \"required\": [\"limits\"],\n      \"properties\": {\n        \"limits\": {\n          \"description\": \"Limits is the list of LimitRangeItem objects that are enforced.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRangeItem\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LoadBalancerIngress\": {\n      \"description\": \"LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"hostname\": {\n          \"description\": \"Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)\",\n          \"type\": \"string\"\n        },\n        \"ip\": {\n          \"description\": \"IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)\",\n          \"type\": \"string\"\n        },\n        \"ports\": {\n          \"description\": \"Ports is a list of records of service ports If used, every port defined in the service should have an entry in it\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PortStatus\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LoadBalancerStatus\": {\n      \"description\": \"LoadBalancerStatus represents the status of a load-balancer.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"ingress\": {\n          \"description\": \"Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LoadBalancerIngress\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LocalObjectReference\": {\n      \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.LocalVolumeSource\": {\n      \"description\": \"Local represents directly-attached storage with node affinity (Beta feature)\",\n      \"type\": \"object\",\n      \"required\": [\"path\"],\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default value is to auto-select a filesystem if unspecified.\",\n          \"type\": \"string\"\n        },\n        \"path\": {\n          \"description\": \"path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NFSVolumeSource\": {\n      \"description\": \"Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\"server\", \"path\"],\n      \"properties\": {\n        \"path\": {\n          \"description\": \"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"server\": {\n          \"description\": \"server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Namespace\": {\n      \"description\": \"Namespace provides a scope for Names. Use of multiple namespaces is optional.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NamespaceSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NamespaceStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"Namespace\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.NamespaceCondition\": {\n      \"description\": \"NamespaceCondition contains details about state of namespace.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": { \"type\": \"string\" },\n        \"reason\": { \"type\": \"string\" },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of namespace controller condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NamespaceList\": {\n      \"description\": \"NamespaceList is a list of Namespaces.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"NamespaceList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.NamespaceSpec\": {\n      \"description\": \"NamespaceSpec describes the attributes on a Namespace.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"finalizers\": {\n          \"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/\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NamespaceStatus\": {\n      \"description\": \"NamespaceStatus is information about the current status of a Namespace.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"Represents the latest available observations of a namespace's current state.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.NamespaceCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"phase\": {\n          \"description\": \"Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\\n\\nPossible enum values:\\n - `\\\"Active\\\"` means the namespace is available for use in the system\\n - `\\\"Terminating\\\"` means the namespace is undergoing graceful termination\",\n          \"type\": \"string\",\n          \"enum\": [\"Active\", \"Terminating\"]\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Node\": {\n      \"description\": \"Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"Node\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.NodeAddress\": {\n      \"description\": \"NodeAddress contains information for the node's address.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"address\"],\n      \"properties\": {\n        \"address\": { \"description\": \"The node address.\", \"type\": \"string\" },\n        \"type\": {\n          \"description\": \"Node address type, one of Hostname, ExternalIP or InternalIP.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeAffinity\": {\n      \"description\": \"Node affinity is a group of node affinity scheduling rules.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"preferredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm\"\n          }\n        },\n        \"requiredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelector\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeCondition\": {\n      \"description\": \"NodeCondition contains condition information for a node.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastHeartbeatTime\": {\n          \"description\": \"Last time we got an update on a given condition.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transit from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"Human readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"(brief) reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": { \"description\": \"Type of node condition.\", \"type\": \"string\" }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeConfigSource\": {\n      \"description\": \"NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"configMap\": {\n          \"description\": \"ConfigMap is a reference to a Node's ConfigMap\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeConfigStatus\": {\n      \"description\": \"NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"active\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"\n        },\n        \"assigned\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"\n        },\n        \"error\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"lastKnownGood\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeDaemonEndpoints\": {\n      \"description\": \"NodeDaemonEndpoints lists ports opened by daemons running on the Node.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"kubeletEndpoint\": {\n          \"description\": \"Endpoint on which Kubelet is listening.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.DaemonEndpoint\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeList\": {\n      \"description\": \"NodeList is the whole list of all Nodes which have been registered with master.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of nodes\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"NodeList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.NodeSelector\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"nodeSelectorTerms\"],\n      \"properties\": {\n        \"nodeSelectorTerms\": {\n          \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"\n          }\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.NodeSelectorRequirement\": {\n      \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n      \"type\": \"object\",\n      \"required\": [\"key\", \"operator\"],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"The label key that the selector applies to.\",\n          \"type\": \"string\"\n        },\n        \"operator\": {\n          \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\\n\\nPossible enum values:\\n - `\\\"DoesNotExist\\\"`\\n - `\\\"Exists\\\"`\\n - `\\\"Gt\\\"`\\n - `\\\"In\\\"`\\n - `\\\"Lt\\\"`\\n - `\\\"NotIn\\\"`\",\n          \"type\": \"string\",\n          \"enum\": [\"DoesNotExist\", \"Exists\", \"Gt\", \"In\", \"Lt\", \"NotIn\"]\n        },\n        \"values\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeSelectorTerm\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"matchExpressions\": {\n          \"description\": \"A list of node selector requirements by node's labels.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"\n          }\n        },\n        \"matchFields\": {\n          \"description\": \"A list of node selector requirements by node's fields.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"\n          }\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.NodeSpec\": {\n      \"description\": \"NodeSpec describes the attributes that a node is created with.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"configSource\": {\n          \"description\": \"Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"\n        },\n        \"externalID\": {\n          \"description\": \"Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966\",\n          \"type\": \"string\"\n        },\n        \"podCIDR\": {\n          \"description\": \"PodCIDR represents the pod IP range assigned to the node.\",\n          \"type\": \"string\"\n        },\n        \"podCIDRs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"providerID\": {\n          \"description\": \"ID of the node assigned by the cloud provider in the format: \\u003cProviderName\\u003e://\\u003cProviderSpecificNodeID\\u003e\",\n          \"type\": \"string\"\n        },\n        \"taints\": {\n          \"description\": \"If specified, the node's taints.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Taint\" }\n        },\n        \"unschedulable\": {\n          \"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\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeStatus\": {\n      \"description\": \"NodeStatus is information about the current status of a node.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"addresses\": {\n          \"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 https://pr.k8s.io/79391 for an example.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeAddress\" },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"allocatable\": {\n          \"description\": \"Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"capacity\": {\n          \"description\": \"Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"conditions\": {\n          \"description\": \"Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeCondition\" },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"config\": {\n          \"description\": \"Status of the config assigned to the node via the dynamic Kubelet config feature.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeConfigStatus\"\n        },\n        \"daemonEndpoints\": {\n          \"description\": \"Endpoints of daemons running on the Node.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints\"\n        },\n        \"images\": {\n          \"description\": \"List of container images on this node\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerImage\" }\n        },\n        \"nodeInfo\": {\n          \"description\": \"Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSystemInfo\"\n        },\n        \"phase\": {\n          \"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.\\n\\nPossible enum values:\\n - `\\\"Pending\\\"` means the node has been created/added by the system, but not configured.\\n - `\\\"Running\\\"` means the node has been configured and has Kubernetes components running.\\n - `\\\"Terminated\\\"` means the node has been removed from the cluster.\",\n          \"type\": \"string\",\n          \"enum\": [\"Pending\", \"Running\", \"Terminated\"]\n        },\n        \"volumesAttached\": {\n          \"description\": \"List of volumes that are attached to the node.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.AttachedVolume\" }\n        },\n        \"volumesInUse\": {\n          \"description\": \"List of attachable volumes in use (mounted) by the node.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeSystemInfo\": {\n      \"description\": \"NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"machineID\",\n        \"systemUUID\",\n        \"bootID\",\n        \"kernelVersion\",\n        \"osImage\",\n        \"containerRuntimeVersion\",\n        \"kubeletVersion\",\n        \"kubeProxyVersion\",\n        \"operatingSystem\",\n        \"architecture\"\n      ],\n      \"properties\": {\n        \"architecture\": {\n          \"description\": \"The Architecture reported by the node\",\n          \"type\": \"string\"\n        },\n        \"bootID\": {\n          \"description\": \"Boot ID reported by the node.\",\n          \"type\": \"string\"\n        },\n        \"containerRuntimeVersion\": {\n          \"description\": \"ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).\",\n          \"type\": \"string\"\n        },\n        \"kernelVersion\": {\n          \"description\": \"Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).\",\n          \"type\": \"string\"\n        },\n        \"kubeProxyVersion\": {\n          \"description\": \"KubeProxy Version reported by the node.\",\n          \"type\": \"string\"\n        },\n        \"kubeletVersion\": {\n          \"description\": \"Kubelet Version reported by the node.\",\n          \"type\": \"string\"\n        },\n        \"machineID\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"operatingSystem\": {\n          \"description\": \"The Operating System reported by the node\",\n          \"type\": \"string\"\n        },\n        \"osImage\": {\n          \"description\": \"OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).\",\n          \"type\": \"string\"\n        },\n        \"systemUUID\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ObjectFieldSelector\": {\n      \"description\": \"ObjectFieldSelector selects an APIVersioned field of an object.\",\n      \"type\": \"object\",\n      \"required\": [\"fieldPath\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n          \"type\": \"string\"\n        },\n        \"fieldPath\": {\n          \"description\": \"Path of the field to select in the specified API version.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.ObjectReference\": {\n      \"description\": \"ObjectReference contains enough information to let you inspect or modify the referred object.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"API version of the referent.\",\n          \"type\": \"string\"\n        },\n        \"fieldPath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n          \"type\": \"string\"\n        },\n        \"resourceVersion\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"uid\": {\n          \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.PersistentVolume\": {\n      \"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\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"PersistentVolume\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaim\": {\n      \"description\": \"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"PersistentVolumeClaim\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimCondition\": {\n      \"description\": \"PersistentVolumeClaimCondition contails details about state of pvc\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastProbeTime\": {\n          \"description\": \"lastProbeTime is the time we probed the condition.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastTransitionTime\": {\n          \"description\": \"lastTransitionTime is the time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"message is the human-readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"reason is a 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.\",\n          \"type\": \"string\"\n        },\n        \"status\": { \"type\": \"string\" },\n        \"type\": { \"type\": \"string\" }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimList\": {\n      \"description\": \"PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"items is a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"PersistentVolumeClaimList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimSpec\": {\n      \"description\": \"PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"accessModes\": {\n          \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"dataSource\": {\n          \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference\"\n        },\n        \"dataSourceRef\": {\n          \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef\\n  allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n  preserves all values, and generates an error if a disallowed value is\\n  specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n  in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.TypedObjectReference\"\n        },\n        \"resources\": {\n          \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"\n        },\n        \"selector\": {\n          \"description\": \"selector is a label query over volumes to consider for binding.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"storageClassName\": {\n          \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n          \"type\": \"string\"\n        },\n        \"volumeMode\": {\n          \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n          \"type\": \"string\"\n        },\n        \"volumeName\": {\n          \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimStatus\": {\n      \"description\": \"PersistentVolumeClaimStatus is the current status of a persistent volume claim.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"accessModes\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"allocatedResources\": {\n          \"description\": \"allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"capacity\": {\n          \"description\": \"capacity represents the actual resources of the underlying volume.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"conditions\": {\n          \"description\": \"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"phase\": {\n          \"description\": \"phase represents the current phase of PersistentVolumeClaim.\\n\\nPossible enum values:\\n - `\\\"Bound\\\"` used for PersistentVolumeClaims that are bound\\n - `\\\"Lost\\\"` used for PersistentVolumeClaims that lost their underlying PersistentVolume. The claim was bound to a PersistentVolume and this volume does not exist any longer and all data on it was lost.\\n - `\\\"Pending\\\"` used for PersistentVolumeClaims that are not yet bound\",\n          \"type\": \"string\",\n          \"enum\": [\"Bound\", \"Lost\", \"Pending\"]\n        },\n        \"resizeStatus\": {\n          \"description\": \"resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimTemplate\": {\n      \"description\": \"PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\",\n      \"type\": \"object\",\n      \"required\": [\"spec\"],\n      \"properties\": {\n        \"metadata\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\": {\n      \"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).\",\n      \"type\": \"object\",\n      \"required\": [\"claimName\"],\n      \"properties\": {\n        \"claimName\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeList\": {\n      \"description\": \"PersistentVolumeList is a list of PersistentVolume items.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"items is a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"PersistentVolumeList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeSpec\": {\n      \"description\": \"PersistentVolumeSpec is the specification of a persistent volume.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"accessModes\": {\n          \"description\": \"accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"awsElasticBlockStore\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"\n        },\n        \"azureDisk\": {\n          \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"\n        },\n        \"azureFile\": {\n          \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource\"\n        },\n        \"capacity\": {\n          \"description\": \"capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"cephfs\": {\n          \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource\"\n        },\n        \"cinder\": {\n          \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource\"\n        },\n        \"claimRef\": {\n          \"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\",\n          \"x-kubernetes-map-type\": \"granular\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"csi\": {\n          \"description\": \"csi represents storage that is handled by an external CSI driver (Beta feature).\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource\"\n        },\n        \"fc\": {\n          \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"\n        },\n        \"flexVolume\": {\n          \"description\": \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource\"\n        },\n        \"flocker\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"\n        },\n        \"gcePersistentDisk\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"\n        },\n        \"glusterfs\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\"\n        },\n        \"hostPath\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"\n        },\n        \"iscsi\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource\"\n        },\n        \"local\": {\n          \"description\": \"local represents directly-attached storage with node affinity\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalVolumeSource\"\n        },\n        \"mountOptions\": {\n          \"description\": \"mountOptions is the 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\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"nfs\": {\n          \"description\": \"nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"\n        },\n        \"nodeAffinity\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity\"\n        },\n        \"persistentVolumeReclaimPolicy\": {\n          \"description\": \"persistentVolumeReclaimPolicy defines 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\\n\\nPossible enum values:\\n - `\\\"Delete\\\"` means the volume will be deleted from Kubernetes on release from its claim. The volume plugin must support Deletion.\\n - `\\\"Recycle\\\"` means the volume will be recycled back into the pool of unbound persistent volumes on release from its claim. The volume plugin must support Recycling.\\n - `\\\"Retain\\\"` means the volume will be left in its current phase (Released) for manual reclamation by the administrator. The default policy is Retain.\",\n          \"type\": \"string\",\n          \"enum\": [\"Delete\", \"Recycle\", \"Retain\"]\n        },\n        \"photonPersistentDisk\": {\n          \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"\n        },\n        \"portworxVolume\": {\n          \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"\n        },\n        \"quobyte\": {\n          \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"\n        },\n        \"rbd\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource\"\n        },\n        \"scaleIO\": {\n          \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\"\n        },\n        \"storageClassName\": {\n          \"description\": \"storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.\",\n          \"type\": \"string\"\n        },\n        \"storageos\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource\"\n        },\n        \"volumeMode\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"vsphereVolume\": {\n          \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeStatus\": {\n      \"description\": \"PersistentVolumeStatus is the current status of a persistent volume.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"message\": {\n          \"description\": \"message is a human-readable message indicating details about why the volume is in this state.\",\n          \"type\": \"string\"\n        },\n        \"phase\": {\n          \"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\\n\\nPossible enum values:\\n - `\\\"Available\\\"` used for PersistentVolumes that are not yet bound Available volumes are held by the binder and matched to PersistentVolumeClaims\\n - `\\\"Bound\\\"` used for PersistentVolumes that are bound\\n - `\\\"Failed\\\"` used for PersistentVolumes that failed to be correctly recycled or deleted after being released from a claim\\n - `\\\"Pending\\\"` used for PersistentVolumes that are not available\\n - `\\\"Released\\\"` used for PersistentVolumes where the bound PersistentVolumeClaim was deleted released volumes must be recycled before becoming available again this phase is used by the persistent volume claim binder to signal to another process to reclaim the resource\",\n          \"type\": \"string\",\n          \"enum\": [\"Available\", \"Bound\", \"Failed\", \"Pending\", \"Released\"]\n        },\n        \"reason\": {\n          \"description\": \"reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\": {\n      \"description\": \"Represents a Photon Controller persistent disk resource.\",\n      \"type\": \"object\",\n      \"required\": [\"pdID\"],\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n          \"type\": \"string\"\n        },\n        \"pdID\": {\n          \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Pod\": {\n      \"description\": \"Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"Pod\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.PodAffinity\": {\n      \"description\": \"Pod affinity is a group of inter pod affinity scheduling rules.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"preferredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"\n          }\n        },\n        \"requiredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodAffinityTerm\": {\n      \"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\",\n      \"type\": \"object\",\n      \"required\": [\"topologyKey\"],\n      \"properties\": {\n        \"labelSelector\": {\n          \"description\": \"A label query over a set of resources, in this case pods.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"namespaceSelector\": {\n          \"description\": \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"namespaces\": {\n          \"description\": \"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\\\".\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"topologyKey\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodAntiAffinity\": {\n      \"description\": \"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"preferredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"\n          }\n        },\n        \"requiredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodCondition\": {\n      \"description\": \"PodCondition contains details for the current condition of this pod.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastProbeTime\": {\n          \"description\": \"Last time we probed the condition.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"Human-readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"Unique, one-word, CamelCase reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodDNSConfig\": {\n      \"description\": \"PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"nameservers\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"options\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodDNSConfigOption\"\n          }\n        },\n        \"searches\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodDNSConfigOption\": {\n      \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"name\": { \"description\": \"Required.\", \"type\": \"string\" },\n        \"value\": { \"type\": \"string\" }\n      }\n    },\n    \"io.k8s.api.core.v1.PodIP\": {\n      \"description\": \"IP address information for entries in the (plural) PodIPs field. Each entry includes:\\n\\n\\tIP: An IP address allocated to the pod. Routable at least within the cluster.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"ip\": {\n          \"description\": \"ip is an IP address (IPv4 or IPv6) assigned to the pod\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodList\": {\n      \"description\": \"PodList is a list of Pods.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"PodList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.PodOS\": {\n      \"description\": \"PodOS defines the OS parameters of a pod.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodReadinessGate\": {\n      \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n      \"type\": \"object\",\n      \"required\": [\"conditionType\"],\n      \"properties\": {\n        \"conditionType\": {\n          \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodResourceClaim\": {\n      \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource. It adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.\",\n          \"type\": \"string\"\n        },\n        \"source\": {\n          \"description\": \"Source describes where to find the ResourceClaim.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ClaimSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodSchedulingGate\": {\n      \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the scheduling gate. Each scheduling gate must have a unique name field.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodSecurityContext\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"fsGroup\": {\n          \"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. Note that this field cannot be set when spec.os.name is windows.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"fsGroupChangePolicy\": {\n          \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\n          \"type\": \"string\"\n        },\n        \"runAsGroup\": {\n          \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"runAsNonRoot\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"runAsUser\": {\n          \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"seLinuxOptions\": {\n          \"description\": \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"\n        },\n        \"seccompProfile\": {\n          \"description\": \"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SeccompProfile\"\n        },\n        \"supplementalGroups\": {\n          \"description\": \"A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"integer\", \"format\": \"int64\" }\n        },\n        \"sysctls\": {\n          \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Sysctl\" }\n        },\n        \"windowsOptions\": {\n          \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodSpec\": {\n      \"description\": \"PodSpec is a description of a pod.\",\n      \"type\": \"object\",\n      \"required\": [\"containers\"],\n      \"properties\": {\n        \"activeDeadlineSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"affinity\": {\n          \"description\": \"If specified, the pod's scheduling constraints\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Affinity\"\n        },\n        \"automountServiceAccountToken\": {\n          \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n          \"type\": \"boolean\"\n        },\n        \"containers\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Container\" },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"dnsConfig\": {\n          \"description\": \"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodDNSConfig\"\n        },\n        \"dnsPolicy\": {\n          \"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'.\\n\\nPossible enum values:\\n - `\\\"ClusterFirst\\\"` indicates that the pod should use cluster DNS first unless hostNetwork is true, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\\n - `\\\"ClusterFirstWithHostNet\\\"` indicates that the pod should use cluster DNS first, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\\n - `\\\"Default\\\"` indicates that the pod should use the default (as determined by kubelet) DNS settings.\\n - `\\\"None\\\"` indicates that the pod should use empty DNS settings. DNS parameters such as nameservers and search paths should be defined via DNSConfig.\",\n          \"type\": \"string\",\n          \"enum\": [\"ClusterFirst\", \"ClusterFirstWithHostNet\", \"Default\", \"None\"]\n        },\n        \"enableServiceLinks\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"ephemeralContainers\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EphemeralContainer\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"hostAliases\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.HostAlias\" },\n          \"x-kubernetes-patch-merge-key\": \"ip\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"hostIPC\": {\n          \"description\": \"Use the host's ipc namespace. Optional: Default to false.\",\n          \"type\": \"boolean\"\n        },\n        \"hostNetwork\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"hostPID\": {\n          \"description\": \"Use the host's pid namespace. Optional: Default to false.\",\n          \"type\": \"boolean\"\n        },\n        \"hostUsers\": {\n          \"description\": \"Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n          \"type\": \"boolean\"\n        },\n        \"hostname\": {\n          \"description\": \"Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.\",\n          \"type\": \"string\"\n        },\n        \"imagePullSecrets\": {\n          \"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. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"initContainers\": {\n          \"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/\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Container\" },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"nodeName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"nodeSelector\": {\n          \"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/\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" },\n          \"x-kubernetes-map-type\": \"atomic\"\n        },\n        \"os\": {\n          \"description\": \"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\\n\\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\\n\\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodOS\"\n        },\n        \"overhead\": {\n          \"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/688-pod-overhead/README.md\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"preemptionPolicy\": {\n          \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\n          \"type\": \"string\"\n        },\n        \"priority\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"priorityClassName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"readinessGates\": {\n          \"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/580-pod-readiness-gates\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodReadinessGate\"\n          }\n        },\n        \"resourceClaims\": {\n          \"description\": \"ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\\n\\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\\n\\nThis field is immutable.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodResourceClaim\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"name\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge,retainKeys\"\n        },\n        \"restartPolicy\": {\n          \"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\\n\\nPossible enum values:\\n - `\\\"Always\\\"`\\n - `\\\"Never\\\"`\\n - `\\\"OnFailure\\\"`\",\n          \"type\": \"string\",\n          \"enum\": [\"Always\", \"Never\", \"OnFailure\"]\n        },\n        \"runtimeClassName\": {\n          \"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/585-runtime-class\",\n          \"type\": \"string\"\n        },\n        \"schedulerName\": {\n          \"description\": \"If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.\",\n          \"type\": \"string\"\n        },\n        \"schedulingGates\": {\n          \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod. More info:  https://git.k8s.io/enhancements/keps/sig-scheduling/3521-pod-scheduling-readiness.\\n\\nThis is an alpha-level feature enabled by PodSchedulingReadiness feature gate.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodSchedulingGate\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"name\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"securityContext\": {\n          \"description\": \"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodSecurityContext\"\n        },\n        \"serviceAccount\": {\n          \"description\": \"DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.\",\n          \"type\": \"string\"\n        },\n        \"serviceAccountName\": {\n          \"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/\",\n          \"type\": \"string\"\n        },\n        \"setHostnameAsFQDN\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"shareProcessNamespace\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"subdomain\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"terminationGracePeriodSeconds\": {\n          \"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 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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"tolerations\": {\n          \"description\": \"If specified, the pod's tolerations.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Toleration\" }\n        },\n        \"topologySpreadConstraints\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.TopologySpreadConstraint\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"topologyKey\", \"whenUnsatisfiable\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"topologyKey\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"volumes\": {\n          \"description\": \"List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Volume\" },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge,retainKeys\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodStatus\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodCondition\" },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"containerStatuses\": {\n          \"description\": \"The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStatus\"\n          }\n        },\n        \"ephemeralContainerStatuses\": {\n          \"description\": \"Status for any ephemeral containers that have run in this pod.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStatus\"\n          }\n        },\n        \"hostIP\": {\n          \"description\": \"IP address of the host to which the pod is assigned. Empty if not yet scheduled.\",\n          \"type\": \"string\"\n        },\n        \"initContainerStatuses\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStatus\"\n          }\n        },\n        \"message\": {\n          \"description\": \"A human readable message indicating details about why the pod is in this condition.\",\n          \"type\": \"string\"\n        },\n        \"nominatedNodeName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"phase\": {\n          \"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\\n\\nPossible enum values:\\n - `\\\"Failed\\\"` means that all containers in the pod have terminated, and at least one container has terminated in a failure (exited with a non-zero exit code or was stopped by the system).\\n - `\\\"Pending\\\"` means the pod has been accepted by the system, but one or more of the containers has not been started. This includes time before being bound to a node, as well as time spent pulling images onto the host.\\n - `\\\"Running\\\"` means the pod has been bound to a node and all of the containers have been started. At least one container is still running or is in the process of being restarted.\\n - `\\\"Succeeded\\\"` means that all containers in the pod have voluntarily terminated with a container exit code of 0, and the system is not going to restart any of these containers.\\n - `\\\"Unknown\\\"` means that 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. Deprecated: It isn't being set since 2015 (74da3b14b0c0f658b3bb8d2def5094686d0e9095)\",\n          \"type\": \"string\",\n          \"enum\": [\"Failed\", \"Pending\", \"Running\", \"Succeeded\", \"Unknown\"]\n        },\n        \"podIP\": {\n          \"description\": \"IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.\",\n          \"type\": \"string\"\n        },\n        \"podIPs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodIP\" },\n          \"x-kubernetes-patch-merge-key\": \"ip\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"qosClass\": {\n          \"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\\n\\nPossible enum values:\\n - `\\\"BestEffort\\\"` is the BestEffort qos class.\\n - `\\\"Burstable\\\"` is the Burstable qos class.\\n - `\\\"Guaranteed\\\"` is the Guaranteed qos class.\",\n          \"type\": \"string\",\n          \"enum\": [\"BestEffort\", \"Burstable\", \"Guaranteed\"]\n        },\n        \"reason\": {\n          \"description\": \"A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'\",\n          \"type\": \"string\"\n        },\n        \"startTime\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodTemplate\": {\n      \"description\": \"PodTemplate describes a template for creating copies of a predefined pod.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"template\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"PodTemplate\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.PodTemplateList\": {\n      \"description\": \"PodTemplateList is a list of PodTemplates.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of pod templates\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"PodTemplateList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.PodTemplateSpec\": {\n      \"description\": \"PodTemplateSpec describes the data a pod should have when created from a template\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodSpec\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PortStatus\": {\n      \"type\": \"object\",\n      \"required\": [\"port\", \"protocol\"],\n      \"properties\": {\n        \"error\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"description\": \"Port is the port number of the service port of which status is recorded here\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"protocol\": {\n          \"description\": \"Protocol is the protocol of the service port of which status is recorded here The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\n          \"type\": \"string\",\n          \"enum\": [\"SCTP\", \"TCP\", \"UDP\"]\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PortworxVolumeSource\": {\n      \"description\": \"PortworxVolumeSource represents a Portworx volume resource.\",\n      \"type\": \"object\",\n      \"required\": [\"volumeID\"],\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"volumeID\": {\n          \"description\": \"volumeID uniquely identifies a Portworx volume\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PreferredSchedulingTerm\": {\n      \"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).\",\n      \"type\": \"object\",\n      \"required\": [\"weight\", \"preference\"],\n      \"properties\": {\n        \"preference\": {\n          \"description\": \"A node selector term, associated with the corresponding weight.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"\n        },\n        \"weight\": {\n          \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Probe\": {\n      \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"exec\": {\n          \"description\": \"Exec specifies the action to take.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ExecAction\"\n        },\n        \"failureThreshold\": {\n          \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"grpc\": {\n          \"description\": \"GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GRPCAction\"\n        },\n        \"httpGet\": {\n          \"description\": \"HTTPGet specifies the http request to perform.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"\n        },\n        \"initialDelaySeconds\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"periodSeconds\": {\n          \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"successThreshold\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"tcpSocket\": {\n          \"description\": \"TCPSocket specifies an action involving a TCP port.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"\n        },\n        \"terminationGracePeriodSeconds\": {\n          \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"timeoutSeconds\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ProjectedVolumeSource\": {\n      \"description\": \"Represents a projected volume source\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"defaultMode\": {\n          \"description\": \"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"sources\": {\n          \"description\": \"sources is the list of volume projections\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.VolumeProjection\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.QuobyteVolumeSource\": {\n      \"description\": \"Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\"registry\", \"volume\"],\n      \"properties\": {\n        \"group\": {\n          \"description\": \"group to map volume access to Default is no group\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"registry\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"tenant\": {\n          \"description\": \"tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n          \"type\": \"string\"\n        },\n        \"user\": {\n          \"description\": \"user to map volume access to Defaults to serivceaccount user\",\n          \"type\": \"string\"\n        },\n        \"volume\": {\n          \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.RBDPersistentVolumeSource\": {\n      \"description\": \"Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\"monitors\", \"image\"],\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\n          \"type\": \"string\"\n        },\n        \"image\": {\n          \"description\": \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"keyring\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"monitors\": {\n          \"description\": \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"pool\": {\n          \"description\": \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        },\n        \"user\": {\n          \"description\": \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.RBDVolumeSource\": {\n      \"description\": \"Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\"monitors\", \"image\"],\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\n          \"type\": \"string\"\n        },\n        \"image\": {\n          \"description\": \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"keyring\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"monitors\": {\n          \"description\": \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"pool\": {\n          \"description\": \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"user\": {\n          \"description\": \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ReplicationController\": {\n      \"description\": \"ReplicationController represents the configuration of a replication controller.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"ReplicationController\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.ReplicationControllerCondition\": {\n      \"description\": \"ReplicationControllerCondition describes the state of a replication controller at a certain point.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"The last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"A human readable message indicating details about the transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"The reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of replication controller condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ReplicationControllerList\": {\n      \"description\": \"ReplicationControllerList is a collection of replication controllers.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"ReplicationControllerList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.ReplicationControllerSpec\": {\n      \"description\": \"ReplicationControllerSpec is the specification of a replication controller.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"minReadySeconds\": {\n          \"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)\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"selector\": {\n          \"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\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" },\n          \"x-kubernetes-map-type\": \"atomic\"\n        },\n        \"template\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ReplicationControllerStatus\": {\n      \"description\": \"ReplicationControllerStatus represents the current status of a replication controller.\",\n      \"type\": \"object\",\n      \"required\": [\"replicas\"],\n      \"properties\": {\n        \"availableReplicas\": {\n          \"description\": \"The number of available replicas (ready for at least minReadySeconds) for this replication controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"conditions\": {\n          \"description\": \"Represents the latest available observations of a replication controller's current state.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"fullyLabeledReplicas\": {\n          \"description\": \"The number of pods that have labels matching the labels of the pod template of the replication controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"observedGeneration\": {\n          \"description\": \"ObservedGeneration reflects the generation of the most recently observed replication controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"readyReplicas\": {\n          \"description\": \"The number of ready replicas for this replication controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ResourceClaim\": {\n      \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ResourceFieldSelector\": {\n      \"description\": \"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\n      \"type\": \"object\",\n      \"required\": [\"resource\"],\n      \"properties\": {\n        \"containerName\": {\n          \"description\": \"Container name: required for volumes, optional for env vars\",\n          \"type\": \"string\"\n        },\n        \"divisor\": {\n          \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        },\n        \"resource\": {\n          \"description\": \"Required: resource to select\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.ResourceQuota\": {\n      \"description\": \"ResourceQuota sets aggregate quota restrictions enforced per namespace\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"ResourceQuota\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.ResourceQuotaList\": {\n      \"description\": \"ResourceQuotaList is a list of ResourceQuota items.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"ResourceQuotaList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.ResourceQuotaSpec\": {\n      \"description\": \"ResourceQuotaSpec defines the desired hard limits to enforce for Quota.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"hard\": {\n          \"description\": \"hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"scopeSelector\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ScopeSelector\"\n        },\n        \"scopes\": {\n          \"description\": \"A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ResourceQuotaStatus\": {\n      \"description\": \"ResourceQuotaStatus defines the enforced hard limits and observed use.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"hard\": {\n          \"description\": \"Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"used\": {\n          \"description\": \"Used is the current observed total usage of the resource in the namespace.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ResourceRequirements\": {\n      \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"claims\": {\n          \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.\\n\\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\\n\\nThis field is immutable.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceClaim\" },\n          \"x-kubernetes-list-type\": \"set\"\n        },\n        \"limits\": {\n          \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"requests\": {\n          \"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-resources-containers/\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SELinuxOptions\": {\n      \"description\": \"SELinuxOptions are the labels to be applied to the container\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"level\": {\n          \"description\": \"Level is SELinux level label that applies to the container.\",\n          \"type\": \"string\"\n        },\n        \"role\": {\n          \"description\": \"Role is a SELinux role label that applies to the container.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type is a SELinux type label that applies to the container.\",\n          \"type\": \"string\"\n        },\n        \"user\": {\n          \"description\": \"User is a SELinux user label that applies to the container.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\": {\n      \"description\": \"ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\",\n      \"type\": \"object\",\n      \"required\": [\"gateway\", \"system\", \"secretRef\"],\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\"\",\n          \"type\": \"string\"\n        },\n        \"gateway\": {\n          \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n          \"type\": \"string\"\n        },\n        \"protectionDomain\": {\n          \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        },\n        \"sslEnabled\": {\n          \"description\": \"sslEnabled is the flag to enable/disable SSL communication with Gateway, default false\",\n          \"type\": \"boolean\"\n        },\n        \"storageMode\": {\n          \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n          \"type\": \"string\"\n        },\n        \"storagePool\": {\n          \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n          \"type\": \"string\"\n        },\n        \"system\": {\n          \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n          \"type\": \"string\"\n        },\n        \"volumeName\": {\n          \"description\": \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ScaleIOVolumeSource\": {\n      \"description\": \"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\n      \"type\": \"object\",\n      \"required\": [\"gateway\", \"system\", \"secretRef\"],\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n          \"type\": \"string\"\n        },\n        \"gateway\": {\n          \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n          \"type\": \"string\"\n        },\n        \"protectionDomain\": {\n          \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"sslEnabled\": {\n          \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n          \"type\": \"boolean\"\n        },\n        \"storageMode\": {\n          \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n          \"type\": \"string\"\n        },\n        \"storagePool\": {\n          \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n          \"type\": \"string\"\n        },\n        \"system\": {\n          \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n          \"type\": \"string\"\n        },\n        \"volumeName\": {\n          \"description\": \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ScopeSelector\": {\n      \"description\": \"A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"matchExpressions\": {\n          \"description\": \"A list of scope selector requirements by scope of the resources.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement\"\n          }\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.ScopedResourceSelectorRequirement\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"scopeName\", \"operator\"],\n      \"properties\": {\n        \"operator\": {\n          \"description\": \"Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.\\n\\nPossible enum values:\\n - `\\\"DoesNotExist\\\"`\\n - `\\\"Exists\\\"`\\n - `\\\"In\\\"`\\n - `\\\"NotIn\\\"`\",\n          \"type\": \"string\",\n          \"enum\": [\"DoesNotExist\", \"Exists\", \"In\", \"NotIn\"]\n        },\n        \"scopeName\": {\n          \"description\": \"The name of the scope that the selector applies to.\\n\\nPossible enum values:\\n - `\\\"BestEffort\\\"` Match all pod objects that have best effort quality of service\\n - `\\\"CrossNamespacePodAffinity\\\"` Match all pod objects that have cross-namespace pod (anti)affinity mentioned.\\n - `\\\"NotBestEffort\\\"` Match all pod objects that do not have best effort quality of service\\n - `\\\"NotTerminating\\\"` Match all pod objects where spec.activeDeadlineSeconds is nil\\n - `\\\"PriorityClass\\\"` Match all pod objects that have priority class mentioned\\n - `\\\"Terminating\\\"` Match all pod objects where spec.activeDeadlineSeconds \\u003e=0\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"BestEffort\",\n            \"CrossNamespacePodAffinity\",\n            \"NotBestEffort\",\n            \"NotTerminating\",\n            \"PriorityClass\",\n            \"Terminating\"\n          ]\n        },\n        \"values\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SeccompProfile\": {\n      \"description\": \"SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.\",\n      \"type\": \"object\",\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"localhostProfile\": {\n          \"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\\\".\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"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.\\n\\nPossible enum values:\\n - `\\\"Localhost\\\"` indicates a profile defined in a file on the node should be used. The file's location relative to \\u003ckubelet-root-dir\\u003e/seccomp.\\n - `\\\"RuntimeDefault\\\"` represents the default container runtime seccomp profile.\\n - `\\\"Unconfined\\\"` indicates no seccomp profile is applied (A.K.A. unconfined).\",\n          \"type\": \"string\",\n          \"enum\": [\"Localhost\", \"RuntimeDefault\", \"Unconfined\"]\n        }\n      },\n      \"x-kubernetes-unions\": [\n        {\n          \"discriminator\": \"type\",\n          \"fields-to-discriminateBy\": { \"localhostProfile\": \"LocalhostProfile\" }\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.Secret\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"data\": {\n          \"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\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\", \"format\": \"byte\" }\n        },\n        \"immutable\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"stringData\": {\n          \"description\": \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" }\n        },\n        \"type\": {\n          \"description\": \"Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"Secret\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.SecretEnvSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the Secret must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecretKeySelector\": {\n      \"description\": \"SecretKeySelector selects a key of a Secret.\",\n      \"type\": \"object\",\n      \"required\": [\"key\"],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"The key of the secret to select from.  Must be a valid secret key.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the Secret or its key must be defined\",\n          \"type\": \"boolean\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.SecretList\": {\n      \"description\": \"SecretList is a list of Secret.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"SecretList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.SecretProjection\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"items\": {\n          \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.KeyToPath\" }\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"optional field specify whether the Secret or its key must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecretReference\": {\n      \"description\": \"SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"name is unique within a namespace to reference a secret resource.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"namespace defines the space within which the secret name must be unique.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.SecretVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"defaultMode\": {\n          \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"items\": {\n          \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.KeyToPath\" }\n        },\n        \"optional\": {\n          \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n          \"type\": \"boolean\"\n        },\n        \"secretName\": {\n          \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecurityContext\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"allowPrivilegeEscalation\": {\n          \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n          \"type\": \"boolean\"\n        },\n        \"capabilities\": {\n          \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Capabilities\"\n        },\n        \"privileged\": {\n          \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n          \"type\": \"boolean\"\n        },\n        \"procMount\": {\n          \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n          \"type\": \"string\"\n        },\n        \"readOnlyRootFilesystem\": {\n          \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n          \"type\": \"boolean\"\n        },\n        \"runAsGroup\": {\n          \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"runAsNonRoot\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"runAsUser\": {\n          \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"seLinuxOptions\": {\n          \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"\n        },\n        \"seccompProfile\": {\n          \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SeccompProfile\"\n        },\n        \"windowsOptions\": {\n          \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Service\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"Service\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.ServiceAccount\": {\n      \"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\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"automountServiceAccountToken\": {\n          \"description\": \"AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.\",\n          \"type\": \"boolean\"\n        },\n        \"imagePullSecrets\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"secrets\": {\n          \"description\": \"Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a \\\"kubernetes.io/enforce-mountable-secrets\\\" annotation set to \\\"true\\\". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"ServiceAccount\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.ServiceAccountList\": {\n      \"description\": \"ServiceAccountList is a list of ServiceAccount objects\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"ServiceAccountList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.ServiceAccountTokenProjection\": {\n      \"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).\",\n      \"type\": \"object\",\n      \"required\": [\"path\"],\n      \"properties\": {\n        \"audience\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"expirationSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"path\": {\n          \"description\": \"path is the path relative to the mount point of the file to project the token into.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ServiceList\": {\n      \"description\": \"ServiceList holds a list of services.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of services\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"ServiceList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.core.v1.ServicePort\": {\n      \"description\": \"ServicePort contains information on service's port.\",\n      \"type\": \"object\",\n      \"required\": [\"port\"],\n      \"properties\": {\n        \"appProtocol\": {\n          \"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 https://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"nodePort\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"port\": {\n          \"description\": \"The port that will be exposed by this service.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"protocol\": {\n          \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\". Default is TCP.\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\n          \"type\": \"string\",\n          \"enum\": [\"SCTP\", \"TCP\", \"UDP\"]\n        },\n        \"targetPort\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ServiceSpec\": {\n      \"description\": \"ServiceSpec describes the attributes that a user creates on a service.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"allocateLoadBalancerNodePorts\": {\n          \"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.  If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.\",\n          \"type\": \"boolean\"\n        },\n        \"clusterIP\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"clusterIPs\": {\n          \"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\\nThis 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\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"externalIPs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"externalName\": {\n          \"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 \\\"ExternalName\\\".\",\n          \"type\": \"string\"\n        },\n        \"externalTrafficPolicy\": {\n          \"description\": \"externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \\\"externally-facing\\\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \\\"Local\\\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \\\"Cluster\\\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.\\n\\nPossible enum values:\\n - `\\\"Cluster\\\"` routes traffic to all endpoints.\\n - `\\\"Local\\\"` preserves the source IP of the traffic by routing only to endpoints on the same node as the traffic was received on (dropping the traffic if there are no local endpoints).\",\n          \"type\": \"string\",\n          \"enum\": [\"Cluster\", \"Local\"]\n        },\n        \"healthCheckNodePort\": {\n          \"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). This field cannot be updated once set.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"internalTrafficPolicy\": {\n          \"description\": \"InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to \\\"Local\\\", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, \\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).\",\n          \"type\": \"string\"\n        },\n        \"ipFamilies\": {\n          \"description\": \"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. 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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"ipFamilyPolicy\": {\n          \"description\": \"IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. 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.\",\n          \"type\": \"string\"\n        },\n        \"loadBalancerClass\": {\n          \"description\": \"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.\",\n          \"type\": \"string\"\n        },\n        \"loadBalancerIP\": {\n          \"description\": \"Only applies to Service Type: LoadBalancer. 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. Deprecated: This field was under-specified and its meaning varies across implementations, and it cannot support dual-stack. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version.\",\n          \"type\": \"string\"\n        },\n        \"loadBalancerSourceRanges\": {\n          \"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/create-external-load-balancer/\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"ports\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServicePort\" },\n          \"x-kubernetes-list-map-keys\": [\"port\", \"protocol\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"port\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"publishNotReadyAddresses\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"selector\": {\n          \"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/\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" },\n          \"x-kubernetes-map-type\": \"atomic\"\n        },\n        \"sessionAffinity\": {\n          \"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\\n\\nPossible enum values:\\n - `\\\"ClientIP\\\"` is the Client IP based.\\n - `\\\"None\\\"` - no session affinity.\",\n          \"type\": \"string\",\n          \"enum\": [\"ClientIP\", \"None\"]\n        },\n        \"sessionAffinityConfig\": {\n          \"description\": \"sessionAffinityConfig contains the configurations of session affinity.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SessionAffinityConfig\"\n        },\n        \"type\": {\n          \"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\\n\\nPossible enum values:\\n - `\\\"ClusterIP\\\"` means a service will only be accessible inside the cluster, via the cluster IP.\\n - `\\\"ExternalName\\\"` means a service consists of only a reference to an external name that kubedns or equivalent will return as a CNAME record, with no exposing or proxying of any pods involved.\\n - `\\\"LoadBalancer\\\"` means a service will be exposed via an external load balancer (if the cloud provider supports it), in addition to 'NodePort' type.\\n - `\\\"NodePort\\\"` means a service will be exposed on one port of every node, in addition to 'ClusterIP' type.\",\n          \"type\": \"string\",\n          \"enum\": [\"ClusterIP\", \"ExternalName\", \"LoadBalancer\", \"NodePort\"]\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ServiceStatus\": {\n      \"description\": \"ServiceStatus represents the current status of a service.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"Current service state\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"type\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"loadBalancer\": {\n          \"description\": \"LoadBalancer contains the current status of the load-balancer, if one is present.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LoadBalancerStatus\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SessionAffinityConfig\": {\n      \"description\": \"SessionAffinityConfig represents the configurations of session affinity.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"clientIP\": {\n          \"description\": \"clientIP contains the configurations of Client IP based session affinity.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ClientIPConfig\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.StorageOSPersistentVolumeSource\": {\n      \"description\": \"Represents a StorageOS persistent volume resource.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"volumeName\": {\n          \"description\": \"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\n          \"type\": \"string\"\n        },\n        \"volumeNamespace\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.StorageOSVolumeSource\": {\n      \"description\": \"Represents a StorageOS persistent volume resource.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"volumeName\": {\n          \"description\": \"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\n          \"type\": \"string\"\n        },\n        \"volumeNamespace\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Sysctl\": {\n      \"description\": \"Sysctl defines a kernel parameter to be set\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"value\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of a property to set\",\n          \"type\": \"string\"\n        },\n        \"value\": {\n          \"description\": \"Value of a property to set\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.TCPSocketAction\": {\n      \"description\": \"TCPSocketAction describes an action based on opening a socket\",\n      \"type\": \"object\",\n      \"required\": [\"port\"],\n      \"properties\": {\n        \"host\": {\n          \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Taint\": {\n      \"description\": \"The node this Taint is attached to has the \\\"effect\\\" on any pod that does not tolerate the Taint.\",\n      \"type\": \"object\",\n      \"required\": [\"key\", \"effect\"],\n      \"properties\": {\n        \"effect\": {\n          \"description\": \"Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\\n\\nPossible enum values:\\n - `\\\"NoExecute\\\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\\n - `\\\"NoSchedule\\\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\\n - `\\\"PreferNoSchedule\\\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.\",\n          \"type\": \"string\",\n          \"enum\": [\"NoExecute\", \"NoSchedule\", \"PreferNoSchedule\"]\n        },\n        \"key\": {\n          \"description\": \"Required. The taint key to be applied to a node.\",\n          \"type\": \"string\"\n        },\n        \"timeAdded\": {\n          \"description\": \"TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"value\": {\n          \"description\": \"The taint value corresponding to the taint key.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Toleration\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"effect\": {\n          \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\\n\\nPossible enum values:\\n - `\\\"NoExecute\\\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\\n - `\\\"NoSchedule\\\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\\n - `\\\"PreferNoSchedule\\\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.\",\n          \"type\": \"string\",\n          \"enum\": [\"NoExecute\", \"NoSchedule\", \"PreferNoSchedule\"]\n        },\n        \"key\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"operator\": {\n          \"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.\\n\\nPossible enum values:\\n - `\\\"Equal\\\"`\\n - `\\\"Exists\\\"`\",\n          \"type\": \"string\",\n          \"enum\": [\"Equal\", \"Exists\"]\n        },\n        \"tolerationSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"value\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.TopologySelectorLabelRequirement\": {\n      \"description\": \"A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.\",\n      \"type\": \"object\",\n      \"required\": [\"key\", \"values\"],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"The label key that the selector applies to.\",\n          \"type\": \"string\"\n        },\n        \"values\": {\n          \"description\": \"An array of string values. One value must match the label to be selected. Each entry in Values is ORed.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.TopologySelectorTerm\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"matchLabelExpressions\": {\n          \"description\": \"A list of topology selector requirements by labels.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement\"\n          }\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.TopologySpreadConstraint\": {\n      \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n      \"type\": \"object\",\n      \"required\": [\"maxSkew\", \"topologyKey\", \"whenUnsatisfiable\"],\n      \"properties\": {\n        \"labelSelector\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"matchLabelKeys\": {\n          \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"maxSkew\": {\n          \"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. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | |  P P  |  P P  |   P   | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) 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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"minDomains\": {\n          \"description\": \"MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | |  P P  |  P P  |  P P  | The number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.\\n\\nThis is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"nodeAffinityPolicy\": {\n          \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n          \"type\": \"string\"\n        },\n        \"nodeTaintsPolicy\": {\n          \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n          \"type\": \"string\"\n        },\n        \"topologyKey\": {\n          \"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. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology. And, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology. It's a required field.\",\n          \"type\": \"string\"\n        },\n        \"whenUnsatisfiable\": {\n          \"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 assignment 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.\\n\\nPossible enum values:\\n - `\\\"DoNotSchedule\\\"` instructs the scheduler not to schedule the pod when constraints are not satisfied.\\n - `\\\"ScheduleAnyway\\\"` instructs the scheduler to schedule the pod even if constraints are not satisfied.\",\n          \"type\": \"string\",\n          \"enum\": [\"DoNotSchedule\", \"ScheduleAnyway\"]\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.TypedLocalObjectReference\": {\n      \"description\": \"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\n      \"type\": \"object\",\n      \"required\": [\"kind\", \"name\"],\n      \"properties\": {\n        \"apiGroup\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is the type of resource being referenced\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name is the name of resource being referenced\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.core.v1.TypedObjectReference\": {\n      \"type\": \"object\",\n      \"required\": [\"kind\", \"name\"],\n      \"properties\": {\n        \"apiGroup\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is the type of resource being referenced\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name is the name of resource being referenced\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Volume\": {\n      \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"awsElasticBlockStore\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"\n        },\n        \"azureDisk\": {\n          \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"\n        },\n        \"azureFile\": {\n          \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource\"\n        },\n        \"cephfs\": {\n          \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CephFSVolumeSource\"\n        },\n        \"cinder\": {\n          \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CinderVolumeSource\"\n        },\n        \"configMap\": {\n          \"description\": \"configMap represents a configMap that should populate this volume\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource\"\n        },\n        \"csi\": {\n          \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CSIVolumeSource\"\n        },\n        \"downwardAPI\": {\n          \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource\"\n        },\n        \"emptyDir\": {\n          \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource\"\n        },\n        \"ephemeral\": {\n          \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\\n\\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\\n   tracking are needed,\\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n   information on the connection between this volume type\\n   and PersistentVolumeClaim).\\n\\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\\n\\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.EphemeralVolumeSource\"\n        },\n        \"fc\": {\n          \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"\n        },\n        \"flexVolume\": {\n          \"description\": \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FlexVolumeSource\"\n        },\n        \"flocker\": {\n          \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"\n        },\n        \"gcePersistentDisk\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"\n        },\n        \"gitRepo\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource\"\n        },\n        \"glusterfs\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource\"\n        },\n        \"hostPath\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"\n        },\n        \"iscsi\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource\"\n        },\n        \"name\": {\n          \"description\": \"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"nfs\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"\n        },\n        \"persistentVolumeClaim\": {\n          \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"\n        },\n        \"photonPersistentDisk\": {\n          \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"\n        },\n        \"portworxVolume\": {\n          \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"\n        },\n        \"projected\": {\n          \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource\"\n        },\n        \"quobyte\": {\n          \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"\n        },\n        \"rbd\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.RBDVolumeSource\"\n        },\n        \"scaleIO\": {\n          \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource\"\n        },\n        \"secret\": {\n          \"description\": \"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretVolumeSource\"\n        },\n        \"storageos\": {\n          \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource\"\n        },\n        \"vsphereVolume\": {\n          \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.VolumeDevice\": {\n      \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"devicePath\"],\n      \"properties\": {\n        \"devicePath\": {\n          \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.VolumeMount\": {\n      \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"mountPath\"],\n      \"properties\": {\n        \"mountPath\": {\n          \"description\": \"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\n          \"type\": \"string\"\n        },\n        \"mountPropagation\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"This must match the Name of a Volume.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"subPath\": {\n          \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n          \"type\": \"string\"\n        },\n        \"subPathExpr\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.VolumeNodeAffinity\": {\n      \"description\": \"VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"required\": {\n          \"description\": \"required specifies hard node constraints that must be met.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelector\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.VolumeProjection\": {\n      \"description\": \"Projection that may be projected along with other supported volume types\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"configMap\": {\n          \"description\": \"configMap information about the configMap data to project\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapProjection\"\n        },\n        \"downwardAPI\": {\n          \"description\": \"downwardAPI information about the downwardAPI data to project\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.DownwardAPIProjection\"\n        },\n        \"secret\": {\n          \"description\": \"secret information about the secret data to project\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretProjection\"\n        },\n        \"serviceAccountToken\": {\n          \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\": {\n      \"description\": \"Represents a vSphere volume resource.\",\n      \"type\": \"object\",\n      \"required\": [\"volumePath\"],\n      \"properties\": {\n        \"fsType\": {\n          \"description\": \"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n          \"type\": \"string\"\n        },\n        \"storagePolicyID\": {\n          \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n          \"type\": \"string\"\n        },\n        \"storagePolicyName\": {\n          \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n          \"type\": \"string\"\n        },\n        \"volumePath\": {\n          \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.WeightedPodAffinityTerm\": {\n      \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n      \"type\": \"object\",\n      \"required\": [\"weight\", \"podAffinityTerm\"],\n      \"properties\": {\n        \"podAffinityTerm\": {\n          \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"\n        },\n        \"weight\": {\n          \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.WindowsSecurityContextOptions\": {\n      \"description\": \"WindowsSecurityContextOptions contain Windows-specific options and credentials.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"gmsaCredentialSpec\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"gmsaCredentialSpecName\": {\n          \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n          \"type\": \"string\"\n        },\n        \"hostProcess\": {\n          \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).  In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n          \"type\": \"boolean\"\n        },\n        \"runAsUserName\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.discovery.v1.Endpoint\": {\n      \"description\": \"Endpoint represents a single logical \\\"backend\\\" implementing a service.\",\n      \"type\": \"object\",\n      \"required\": [\"addresses\"],\n      \"properties\": {\n        \"addresses\": {\n          \"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. These are all assumed to be fungible and clients may choose to only use the first element. Refer to: https://issue.k8s.io/106267\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        },\n        \"conditions\": {\n          \"description\": \"conditions contains information about the current status of the endpoint.\",\n          \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointConditions\"\n        },\n        \"deprecatedTopology\": {\n          \"description\": \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" }\n        },\n        \"hints\": {\n          \"description\": \"hints contains information associated with how an endpoint should be consumed.\",\n          \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointHints\"\n        },\n        \"hostname\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"nodeName\": {\n          \"description\": \"nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node.\",\n          \"type\": \"string\"\n        },\n        \"targetRef\": {\n          \"description\": \"targetRef is a reference to a Kubernetes object that represents this endpoint.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"zone\": {\n          \"description\": \"zone is the name of the Zone this endpoint exists in.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.discovery.v1.EndpointConditions\": {\n      \"description\": \"EndpointConditions represents the current condition of an endpoint.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"ready\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"serving\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"terminating\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.discovery.v1.EndpointHints\": {\n      \"description\": \"EndpointHints provides hints describing how an endpoint should be consumed.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"forZones\": {\n          \"description\": \"forZones indicates the zone(s) this endpoint should be consumed by to enable topology aware routing.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.ForZone\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.api.discovery.v1.EndpointPort\": {\n      \"description\": \"EndpointPort represents a Port used by an EndpointSlice\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"appProtocol\": {\n          \"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 https://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"protocol\": {\n          \"description\": \"The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.discovery.v1.EndpointSlice\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"addressType\", \"endpoints\"],\n      \"properties\": {\n        \"addressType\": {\n          \"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.\\n\\nPossible enum values:\\n - `\\\"FQDN\\\"` represents a FQDN.\\n - `\\\"IPv4\\\"` represents an IPv4 Address.\\n - `\\\"IPv6\\\"` represents an IPv6 Address.\",\n          \"type\": \"string\",\n          \"enum\": [\"FQDN\", \"IPv4\", \"IPv6\"]\n        },\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"endpoints\": {\n          \"description\": \"endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.Endpoint\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"ports\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointPort\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSlice\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.discovery.v1.EndpointSliceList\": {\n      \"description\": \"EndpointSliceList represents a list of endpoint slices\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of endpoint slices\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.discovery.v1.EndpointSlice\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"EndpointSliceList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.discovery.v1.ForZone\": {\n      \"description\": \"ForZone provides information about which zones should consume this endpoint.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"name represents the name of the zone.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.events.v1.Event\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"eventTime\"],\n      \"properties\": {\n        \"action\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"deprecatedCount\": {\n          \"description\": \"deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"deprecatedFirstTimestamp\": {\n          \"description\": \"deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"deprecatedLastTimestamp\": {\n          \"description\": \"deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"deprecatedSource\": {\n          \"description\": \"deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.EventSource\"\n        },\n        \"eventTime\": {\n          \"description\": \"eventTime is the time when this Event was first observed. It is required.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"note\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"regarding\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"related\": {\n          \"description\": \"related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"reportingController\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"reportingInstance\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"series\": {\n          \"description\": \"series is data about the Event series this event represents or nil if it's a singleton Event.\",\n          \"$ref\": \"#/definitions/io.k8s.api.events.v1.EventSeries\"\n        },\n        \"type\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"events.k8s.io\", \"kind\": \"Event\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.events.v1.EventList\": {\n      \"description\": \"EventList is a list of Event objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"items is a list of schema objects.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.events.v1.Event\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"events.k8s.io\", \"kind\": \"EventList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.events.v1.EventSeries\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"count\", \"lastObservedTime\"],\n      \"properties\": {\n        \"count\": {\n          \"description\": \"count is the number of occurrences in this series up to the last heartbeat time.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"lastObservedTime\": {\n          \"description\": \"lastObservedTime is the time when last Event from the series was seen before last heartbeat.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.FlowDistinguisherMethod\": {\n      \"description\": \"FlowDistinguisherMethod specifies the method of a flow distinguisher.\",\n      \"type\": \"object\",\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"type\": {\n          \"description\": \"`type` is the type of flow distinguisher method The supported types are \\\"ByUser\\\" and \\\"ByNamespace\\\". Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.FlowSchema\": {\n      \"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\\\".\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchemaSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchemaStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta2\"\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.FlowSchemaCondition\": {\n      \"description\": \"FlowSchemaCondition describes conditions for a FlowSchema.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"`message` is a human-readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"`type` is the type of the condition. Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.FlowSchemaList\": {\n      \"description\": \"FlowSchemaList is a list of FlowSchema objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"`items` is a list of FlowSchemas.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchema\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchemaList\",\n          \"version\": \"v1beta2\"\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.FlowSchemaSpec\": {\n      \"description\": \"FlowSchemaSpec describes how the FlowSchema's specification looks like.\",\n      \"type\": \"object\",\n      \"required\": [\"priorityLevelConfiguration\"],\n      \"properties\": {\n        \"distinguisherMethod\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowDistinguisherMethod\"\n        },\n        \"matchingPrecedence\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"priorityLevelConfiguration\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationReference\"\n        },\n        \"rules\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PolicyRulesWithSubjects\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.FlowSchemaStatus\": {\n      \"description\": \"FlowSchemaStatus represents the current state of a FlowSchema.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"`conditions` is a list of the current states of FlowSchema.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.FlowSchemaCondition\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"type\"],\n          \"x-kubernetes-list-type\": \"map\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.GroupSubject\": {\n      \"description\": \"GroupSubject holds detailed information for group-kind subject.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.LimitResponse\": {\n      \"description\": \"LimitResponse defines how to handle requests that can not be executed right now.\",\n      \"type\": \"object\",\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"queuing\": {\n          \"description\": \"`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\\\"Queue\\\"`.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.QueuingConfiguration\"\n        },\n        \"type\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-unions\": [\n        {\n          \"discriminator\": \"type\",\n          \"fields-to-discriminateBy\": { \"queuing\": \"Queuing\" }\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.LimitedPriorityLevelConfiguration\": {\n      \"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?\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"assuredConcurrencyShares\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"borrowingLimitPercent\": {\n          \"description\": \"`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\\n\\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\\n\\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"lendablePercent\": {\n          \"description\": \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"limitResponse\": {\n          \"description\": \"`limitResponse` indicates what to do with requests that can not be executed right now\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.LimitResponse\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.NonResourcePolicyRule\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"verbs\", \"nonResourceURLs\"],\n      \"properties\": {\n        \"nonResourceURLs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        },\n        \"verbs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.PolicyRulesWithSubjects\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"subjects\"],\n      \"properties\": {\n        \"nonResourceRules\": {\n          \"description\": \"`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.NonResourcePolicyRule\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"resourceRules\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.ResourcePolicyRule\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"subjects\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.Subject\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\": {\n      \"description\": \"PriorityLevelConfiguration represents the configuration of a priority level.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta2\"\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationCondition\": {\n      \"description\": \"PriorityLevelConfigurationCondition defines the condition of priority level.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"`message` is a human-readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"`type` is the type of the condition. Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationList\": {\n      \"description\": \"PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"`items` is a list of request-priorities.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfigurationList\",\n          \"version\": \"v1beta2\"\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationReference\": {\n      \"description\": \"PriorityLevelConfigurationReference contains information that points to the \\\"request-priority\\\" being used.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"`name` is the name of the priority level configuration being referenced Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationSpec\": {\n      \"description\": \"PriorityLevelConfigurationSpec specifies the configuration of a priority level.\",\n      \"type\": \"object\",\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"limited\": {\n          \"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\\\"`.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.LimitedPriorityLevelConfiguration\"\n        },\n        \"type\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-unions\": [\n        {\n          \"discriminator\": \"type\",\n          \"fields-to-discriminateBy\": { \"limited\": \"Limited\" }\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationStatus\": {\n      \"description\": \"PriorityLevelConfigurationStatus represents the current state of a \\\"request-priority\\\".\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"`conditions` is the current state of \\\"request-priority\\\".\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationCondition\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"type\"],\n          \"x-kubernetes-list-type\": \"map\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.QueuingConfiguration\": {\n      \"description\": \"QueuingConfiguration holds the configuration parameters for queuing\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"handSize\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"queueLengthLimit\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"queues\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.ResourcePolicyRule\": {\n      \"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) either (d1) the request does not specify a namespace (i.e., `Namespace==\\\"\\\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.\",\n      \"type\": \"object\",\n      \"required\": [\"verbs\", \"apiGroups\", \"resources\"],\n      \"properties\": {\n        \"apiGroups\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        },\n        \"clusterScope\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"namespaces\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        },\n        \"resources\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        },\n        \"verbs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.ServiceAccountSubject\": {\n      \"description\": \"ServiceAccountSubject holds detailed information for service-account-kind subject.\",\n      \"type\": \"object\",\n      \"required\": [\"namespace\", \"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"`name` is the name of matching ServiceAccount objects, or \\\"*\\\" to match regardless of name. Required.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"`namespace` is the namespace of matching ServiceAccount objects. Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.Subject\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"kind\"],\n      \"properties\": {\n        \"group\": {\n          \"description\": \"`group` matches based on user group name.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.GroupSubject\"\n        },\n        \"kind\": {\n          \"description\": \"`kind` indicates which one of the other fields is non-empty. Required\",\n          \"type\": \"string\"\n        },\n        \"serviceAccount\": {\n          \"description\": \"`serviceAccount` matches ServiceAccounts.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.ServiceAccountSubject\"\n        },\n        \"user\": {\n          \"description\": \"`user` matches based on username.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta2.UserSubject\"\n        }\n      },\n      \"x-kubernetes-unions\": [\n        {\n          \"discriminator\": \"kind\",\n          \"fields-to-discriminateBy\": {\n            \"group\": \"Group\",\n            \"serviceAccount\": \"ServiceAccount\",\n            \"user\": \"User\"\n          }\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta2.UserSubject\": {\n      \"description\": \"UserSubject holds detailed information for user-kind subject.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"`name` is the username that matches, or \\\"*\\\" to match all usernames. Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.FlowDistinguisherMethod\": {\n      \"description\": \"FlowDistinguisherMethod specifies the method of a flow distinguisher.\",\n      \"type\": \"object\",\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"type\": {\n          \"description\": \"`type` is the type of flow distinguisher method The supported types are \\\"ByUser\\\" and \\\"ByNamespace\\\". Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.FlowSchema\": {\n      \"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\\\".\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchemaSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchemaStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchema\",\n          \"version\": \"v1beta3\"\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.FlowSchemaCondition\": {\n      \"description\": \"FlowSchemaCondition describes conditions for a FlowSchema.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"`message` is a human-readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"`type` is the type of the condition. Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.FlowSchemaList\": {\n      \"description\": \"FlowSchemaList is a list of FlowSchema objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"`items` is a list of FlowSchemas.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchema\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"FlowSchemaList\",\n          \"version\": \"v1beta3\"\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.FlowSchemaSpec\": {\n      \"description\": \"FlowSchemaSpec describes how the FlowSchema's specification looks like.\",\n      \"type\": \"object\",\n      \"required\": [\"priorityLevelConfiguration\"],\n      \"properties\": {\n        \"distinguisherMethod\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowDistinguisherMethod\"\n        },\n        \"matchingPrecedence\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"priorityLevelConfiguration\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationReference\"\n        },\n        \"rules\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PolicyRulesWithSubjects\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.FlowSchemaStatus\": {\n      \"description\": \"FlowSchemaStatus represents the current state of a FlowSchema.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"`conditions` is a list of the current states of FlowSchema.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.FlowSchemaCondition\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"type\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.GroupSubject\": {\n      \"description\": \"GroupSubject holds detailed information for group-kind subject.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.LimitResponse\": {\n      \"description\": \"LimitResponse defines how to handle requests that can not be executed right now.\",\n      \"type\": \"object\",\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"queuing\": {\n          \"description\": \"`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\\\"Queue\\\"`.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.QueuingConfiguration\"\n        },\n        \"type\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-unions\": [\n        {\n          \"discriminator\": \"type\",\n          \"fields-to-discriminateBy\": { \"queuing\": \"Queuing\" }\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.LimitedPriorityLevelConfiguration\": {\n      \"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?\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"borrowingLimitPercent\": {\n          \"description\": \"`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\\n\\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\\n\\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"lendablePercent\": {\n          \"description\": \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"limitResponse\": {\n          \"description\": \"`limitResponse` indicates what to do with requests that can not be executed right now\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.LimitResponse\"\n        },\n        \"nominalConcurrencyShares\": {\n          \"description\": \"`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values:\\n\\nNominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k)\\n\\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other Limited priority level. This field has a default value of 30.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.NonResourcePolicyRule\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"verbs\", \"nonResourceURLs\"],\n      \"properties\": {\n        \"nonResourceURLs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        },\n        \"verbs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.PolicyRulesWithSubjects\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"subjects\"],\n      \"properties\": {\n        \"nonResourceRules\": {\n          \"description\": \"`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.NonResourcePolicyRule\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"resourceRules\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.ResourcePolicyRule\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"subjects\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.Subject\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\": {\n      \"description\": \"PriorityLevelConfiguration represents the configuration of a priority level.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfiguration\",\n          \"version\": \"v1beta3\"\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationCondition\": {\n      \"description\": \"PriorityLevelConfigurationCondition defines the condition of priority level.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"`message` is a human-readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"`type` is the type of the condition. Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationList\": {\n      \"description\": \"PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"`items` is a list of request-priorities.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"PriorityLevelConfigurationList\",\n          \"version\": \"v1beta3\"\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationReference\": {\n      \"description\": \"PriorityLevelConfigurationReference contains information that points to the \\\"request-priority\\\" being used.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"`name` is the name of the priority level configuration being referenced Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationSpec\": {\n      \"description\": \"PriorityLevelConfigurationSpec specifies the configuration of a priority level.\",\n      \"type\": \"object\",\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"limited\": {\n          \"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\\\"`.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.LimitedPriorityLevelConfiguration\"\n        },\n        \"type\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-unions\": [\n        {\n          \"discriminator\": \"type\",\n          \"fields-to-discriminateBy\": { \"limited\": \"Limited\" }\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationStatus\": {\n      \"description\": \"PriorityLevelConfigurationStatus represents the current state of a \\\"request-priority\\\".\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"`conditions` is the current state of \\\"request-priority\\\".\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationCondition\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"type\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.QueuingConfiguration\": {\n      \"description\": \"QueuingConfiguration holds the configuration parameters for queuing\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"handSize\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"queueLengthLimit\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"queues\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.ResourcePolicyRule\": {\n      \"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) either (d1) the request does not specify a namespace (i.e., `Namespace==\\\"\\\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.\",\n      \"type\": \"object\",\n      \"required\": [\"verbs\", \"apiGroups\", \"resources\"],\n      \"properties\": {\n        \"apiGroups\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        },\n        \"clusterScope\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"namespaces\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        },\n        \"resources\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        },\n        \"verbs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.ServiceAccountSubject\": {\n      \"description\": \"ServiceAccountSubject holds detailed information for service-account-kind subject.\",\n      \"type\": \"object\",\n      \"required\": [\"namespace\", \"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"`name` is the name of matching ServiceAccount objects, or \\\"*\\\" to match regardless of name. Required.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"`namespace` is the namespace of matching ServiceAccount objects. Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.Subject\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"kind\"],\n      \"properties\": {\n        \"group\": {\n          \"description\": \"`group` matches based on user group name.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.GroupSubject\"\n        },\n        \"kind\": {\n          \"description\": \"`kind` indicates which one of the other fields is non-empty. Required\",\n          \"type\": \"string\"\n        },\n        \"serviceAccount\": {\n          \"description\": \"`serviceAccount` matches ServiceAccounts.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.ServiceAccountSubject\"\n        },\n        \"user\": {\n          \"description\": \"`user` matches based on username.\",\n          \"$ref\": \"#/definitions/io.k8s.api.flowcontrol.v1beta3.UserSubject\"\n        }\n      },\n      \"x-kubernetes-unions\": [\n        {\n          \"discriminator\": \"kind\",\n          \"fields-to-discriminateBy\": {\n            \"group\": \"Group\",\n            \"serviceAccount\": \"ServiceAccount\",\n            \"user\": \"User\"\n          }\n        }\n      ]\n    },\n    \"io.k8s.api.flowcontrol.v1beta3.UserSubject\": {\n      \"description\": \"UserSubject holds detailed information for user-kind subject.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"`name` is the username that matches, or \\\"*\\\" to match all usernames. Required.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.HTTPIngressPath\": {\n      \"description\": \"HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.\",\n      \"type\": \"object\",\n      \"required\": [\"pathType\", \"backend\"],\n      \"properties\": {\n        \"backend\": {\n          \"description\": \"Backend defines the referenced service endpoint to which the traffic will be forwarded to.\",\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressBackend\"\n        },\n        \"path\": {\n          \"description\": \"Path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \\\"path\\\" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value \\\"Exact\\\" or \\\"Prefix\\\".\",\n          \"type\": \"string\"\n        },\n        \"pathType\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.HTTPIngressRuleValue\": {\n      \"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 '#'.\",\n      \"type\": \"object\",\n      \"required\": [\"paths\"],\n      \"properties\": {\n        \"paths\": {\n          \"description\": \"A collection of paths that map requests to backends.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.HTTPIngressPath\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.IPBlock\": {\n      \"description\": \"IPBlock describes a particular CIDR (Ex. \\\"192.168.1.0/24\\\",\\\"2001:db8::/64\\\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.\",\n      \"type\": \"object\",\n      \"required\": [\"cidr\"],\n      \"properties\": {\n        \"cidr\": {\n          \"description\": \"CIDR is a string representing the IP Block Valid examples are \\\"192.168.1.0/24\\\" or \\\"2001:db8::/64\\\"\",\n          \"type\": \"string\"\n        },\n        \"except\": {\n          \"description\": \"Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \\\"192.168.1.0/24\\\" or \\\"2001:db8::/64\\\" Except values will be rejected if they are outside the CIDR range\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.Ingress\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"networking.k8s.io\", \"kind\": \"Ingress\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.networking.v1.IngressBackend\": {\n      \"description\": \"IngressBackend describes all endpoints for a given service and port.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"resource\": {\n          \"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\\\".\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference\"\n        },\n        \"service\": {\n          \"description\": \"Service references a Service as a Backend. This is a mutually exclusive setting with \\\"Resource\\\".\",\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressServiceBackend\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.IngressClass\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClassSpec\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"IngressClass\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.networking.v1.IngressClassList\": {\n      \"description\": \"IngressClassList is a collection of IngressClasses.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of IngressClasses.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClass\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"IngressClassList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.networking.v1.IngressClassParametersReference\": {\n      \"description\": \"IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource.\",\n      \"type\": \"object\",\n      \"required\": [\"kind\", \"name\"],\n      \"properties\": {\n        \"apiGroup\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is the type of resource being referenced.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name is the name of resource being referenced.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"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\\\".\",\n          \"type\": \"string\"\n        },\n        \"scope\": {\n          \"description\": \"Scope represents if this refers to a cluster or namespace scoped resource. This may be set to \\\"Cluster\\\" (default) or \\\"Namespace\\\".\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.IngressClassSpec\": {\n      \"description\": \"IngressClassSpec provides information about the class of an Ingress.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"controller\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"parameters\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressClassParametersReference\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.IngressList\": {\n      \"description\": \"IngressList is a collection of Ingress.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of Ingress.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.networking.v1.Ingress\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"networking.k8s.io\", \"kind\": \"IngressList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.networking.v1.IngressLoadBalancerIngress\": {\n      \"description\": \"IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"hostname\": {\n          \"description\": \"Hostname is set for load-balancer ingress points that are DNS based.\",\n          \"type\": \"string\"\n        },\n        \"ip\": {\n          \"description\": \"IP is set for load-balancer ingress points that are IP based.\",\n          \"type\": \"string\"\n        },\n        \"ports\": {\n          \"description\": \"Ports provides information about the ports exposed by this LoadBalancer.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressPortStatus\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.IngressLoadBalancerStatus\": {\n      \"description\": \"IngressLoadBalancerStatus represents the status of a load-balancer.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"ingress\": {\n          \"description\": \"Ingress is a list containing ingress points for the load-balancer.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressLoadBalancerIngress\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.IngressPortStatus\": {\n      \"description\": \"IngressPortStatus represents the error condition of a service port\",\n      \"type\": \"object\",\n      \"required\": [\"port\", \"protocol\"],\n      \"properties\": {\n        \"error\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"description\": \"Port is the port number of the ingress port.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"protocol\": {\n          \"description\": \"Protocol is the protocol of the ingress port. The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\\n\\nPossible enum values:\\n - `\\\"SCTP\\\"` is the SCTP protocol.\\n - `\\\"TCP\\\"` is the TCP protocol.\\n - `\\\"UDP\\\"` is the UDP protocol.\",\n          \"type\": \"string\",\n          \"enum\": [\"SCTP\", \"TCP\", \"UDP\"]\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.IngressRule\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"host\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"http\": {\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.HTTPIngressRuleValue\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.IngressServiceBackend\": {\n      \"description\": \"IngressServiceBackend references a Kubernetes Service as a Backend.\",\n      \"type\": \"object\",\n      \"required\": [\"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name is the referenced service. The service must exist in the same namespace as the Ingress object.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"description\": \"Port of the referenced service. A port name or port number is required for a IngressServiceBackend.\",\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.ServiceBackendPort\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.IngressSpec\": {\n      \"description\": \"IngressSpec describes the Ingress the user wishes to exist.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"defaultBackend\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressBackend\"\n        },\n        \"ingressClassName\": {\n          \"description\": \"IngressClassName is the name of an IngressClass cluster resource. Ingress controller implementations use this field to know whether they should be serving this Ingress resource, by a transitive connection (controller -\\u003e IngressClass -\\u003e Ingress resource). Although the `kubernetes.io/ingress.class` annotation (simple constant name) was never formally defined, it was widely supported by Ingress controllers to create a direct binding between Ingress controller and Ingress resources. Newly created Ingress resources should prefer using the field. However, even though the annotation is officially deprecated, for backwards compatibility reasons, ingress controllers should still honor that annotation if present.\",\n          \"type\": \"string\"\n        },\n        \"rules\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressRule\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"tls\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressTLS\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.IngressStatus\": {\n      \"description\": \"IngressStatus describe the current state of the Ingress.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"loadBalancer\": {\n          \"description\": \"LoadBalancer contains the current status of the load-balancer.\",\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IngressLoadBalancerStatus\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.IngressTLS\": {\n      \"description\": \"IngressTLS describes the transport layer security associated with an Ingress.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"hosts\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"secretName\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.NetworkPolicy\": {\n      \"description\": \"NetworkPolicy describes what network traffic is allowed for a set of Pods\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Specification of the desired behavior for this NetworkPolicy.\",\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is the current state of the NetworkPolicy. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicyStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicy\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.networking.v1.NetworkPolicyEgressRule\": {\n      \"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\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"ports\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort\"\n          }\n        },\n        \"to\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.NetworkPolicyIngressRule\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"from\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer\"\n          }\n        },\n        \"ports\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.NetworkPolicyList\": {\n      \"description\": \"NetworkPolicyList is a list of NetworkPolicy objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of schema objects.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"NetworkPolicyList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.networking.v1.NetworkPolicyPeer\": {\n      \"description\": \"NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"ipBlock\": {\n          \"description\": \"IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.\",\n          \"$ref\": \"#/definitions/io.k8s.api.networking.v1.IPBlock\"\n        },\n        \"namespaceSelector\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"podSelector\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.NetworkPolicyPort\": {\n      \"description\": \"NetworkPolicyPort describes a port to allow traffic on\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"endPort\": {\n          \"description\": \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"port\": {\n          \"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. If present, only traffic on the specified protocol AND port will be matched.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        },\n        \"protocol\": {\n          \"description\": \"The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.NetworkPolicySpec\": {\n      \"description\": \"NetworkPolicySpec provides the specification of a NetworkPolicy\",\n      \"type\": \"object\",\n      \"required\": [\"podSelector\"],\n      \"properties\": {\n        \"egress\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule\"\n          }\n        },\n        \"ingress\": {\n          \"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)\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule\"\n          }\n        },\n        \"podSelector\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"policyTypes\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.NetworkPolicyStatus\": {\n      \"description\": \"NetworkPolicyStatus describe the current state of the NetworkPolicy.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy. Current service state\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"type\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        }\n      }\n    },\n    \"io.k8s.api.networking.v1.ServiceBackendPort\": {\n      \"description\": \"ServiceBackendPort is the service port being referenced.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name is the name of the port on the Service. This is a mutually exclusive setting with \\\"Number\\\".\",\n          \"type\": \"string\"\n        },\n        \"number\": {\n          \"description\": \"Number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with \\\"Name\\\".\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.node.v1.Overhead\": {\n      \"description\": \"Overhead structure represents the resource overhead associated with running a pod.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"podFixed\": {\n          \"description\": \"PodFixed represents the fixed resource overhead associated with running a pod.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.node.v1.RuntimeClass\": {\n      \"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/\",\n      \"type\": \"object\",\n      \"required\": [\"handler\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"handler\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"overhead\": {\n          \"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/\",\n          \"$ref\": \"#/definitions/io.k8s.api.node.v1.Overhead\"\n        },\n        \"scheduling\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.node.v1.Scheduling\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"node.k8s.io\", \"kind\": \"RuntimeClass\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.node.v1.RuntimeClassList\": {\n      \"description\": \"RuntimeClassList is a list of RuntimeClass objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of schema objects.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.node.v1.RuntimeClass\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"node.k8s.io\", \"kind\": \"RuntimeClassList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.node.v1.Scheduling\": {\n      \"description\": \"Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"nodeSelector\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" },\n          \"x-kubernetes-map-type\": \"atomic\"\n        },\n        \"tolerations\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.core.v1.Toleration\" },\n          \"x-kubernetes-list-type\": \"atomic\"\n        }\n      }\n    },\n    \"io.k8s.api.policy.v1.Eviction\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"deleteOptions\": {\n          \"description\": \"DeleteOptions may be provided\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"ObjectMeta describes the pod that is being evicted.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"policy\", \"kind\": \"Eviction\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.policy.v1.PodDisruptionBudget\": {\n      \"description\": \"PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Specification of the desired behavior of the PodDisruptionBudget.\",\n          \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudgetSpec\"\n        },\n        \"status\": {\n          \"description\": \"Most recently observed status of the PodDisruptionBudget.\",\n          \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudgetStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"policy\", \"kind\": \"PodDisruptionBudget\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.policy.v1.PodDisruptionBudgetList\": {\n      \"description\": \"PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of PodDisruptionBudgets\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.policy.v1.PodDisruptionBudget\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"policy\",\n          \"kind\": \"PodDisruptionBudgetList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.policy.v1.PodDisruptionBudgetSpec\": {\n      \"description\": \"PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"maxUnavailable\": {\n          \"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\\\".\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        },\n        \"minAvailable\": {\n          \"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%\\\".\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        },\n        \"selector\": {\n          \"description\": \"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.\",\n          \"x-kubernetes-patch-strategy\": \"replace\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"unhealthyPodEvictionPolicy\": {\n          \"description\": \"UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods should be considered for eviction. Current implementation considers healthy pods, as pods that have status.conditions item with type=\\\"Ready\\\",status=\\\"True\\\".\\n\\nValid policies are IfHealthyBudget and AlwaysAllow. If no policy is specified, the default behavior will be used, which corresponds to the IfHealthyBudget policy.\\n\\nIfHealthyBudget policy means that running pods (status.phase=\\\"Running\\\"), but not yet healthy can be evicted only if the guarded application is not disrupted (status.currentHealthy is at least equal to status.desiredHealthy). Healthy pods will be subject to the PDB for eviction.\\n\\nAlwaysAllow policy means that all running pods (status.phase=\\\"Running\\\"), but not yet healthy are considered disrupted and can be evicted regardless of whether the criteria in a PDB is met. This means perspective running pods of a disrupted application might not get a chance to become healthy. Healthy pods will be subject to the PDB for eviction.\\n\\nAdditional policies may be added in the future. Clients making eviction decisions should disallow eviction of unhealthy pods if they encounter an unrecognized policy in this field.\\n\\nThis field is alpha-level. The eviction API uses this field when the feature gate PDBUnhealthyPodEvictionPolicy is enabled (disabled by default).\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.policy.v1.PodDisruptionBudgetStatus\": {\n      \"description\": \"PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"disruptionsAllowed\",\n        \"currentHealthy\",\n        \"desiredHealthy\",\n        \"expectedPods\"\n      ],\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"type\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"currentHealthy\": {\n          \"description\": \"current number of healthy pods\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"desiredHealthy\": {\n          \"description\": \"minimum desired number of healthy pods\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"disruptedPods\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n          }\n        },\n        \"disruptionsAllowed\": {\n          \"description\": \"Number of pod disruptions that are currently allowed.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"expectedPods\": {\n          \"description\": \"total number of pods counted by this disruption budget\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"observedGeneration\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      }\n    },\n    \"io.k8s.api.rbac.v1.AggregationRule\": {\n      \"description\": \"AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"clusterRoleSelectors\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.rbac.v1.ClusterRole\": {\n      \"description\": \"ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"aggregationRule\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.AggregationRule\"\n        },\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"rules\": {\n          \"description\": \"Rules holds all the PolicyRules for this ClusterRole\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.PolicyRule\" }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRole\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.rbac.v1.ClusterRoleBinding\": {\n      \"description\": \"ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace, and adds who information via Subject.\",\n      \"type\": \"object\",\n      \"required\": [\"roleRef\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"roleRef\": {\n          \"description\": \"RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n          \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleRef\"\n        },\n        \"subjects\": {\n          \"description\": \"Subjects holds references to the objects the role applies to.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Subject\" }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRoleBinding\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.rbac.v1.ClusterRoleBindingList\": {\n      \"description\": \"ClusterRoleBindingList is a collection of ClusterRoleBindings\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of ClusterRoleBindings\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRoleBindingList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.rbac.v1.ClusterRoleList\": {\n      \"description\": \"ClusterRoleList is a collection of ClusterRoles\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of ClusterRoles\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.ClusterRole\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"ClusterRoleList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.rbac.v1.PolicyRule\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"verbs\"],\n      \"properties\": {\n        \"apiGroups\": {\n          \"description\": \"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \\\"\\\" represents the core API group and \\\"*\\\" represents all API groups.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"nonResourceURLs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"resourceNames\": {\n          \"description\": \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"resources\": {\n          \"description\": \"Resources is a list of resources this rule applies to. '*' represents all resources.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"verbs\": {\n          \"description\": \"Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.rbac.v1.Role\": {\n      \"description\": \"Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"rules\": {\n          \"description\": \"Rules holds all the PolicyRules for this Role\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.PolicyRule\" }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"Role\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.rbac.v1.RoleBinding\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"roleRef\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"roleRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleRef\"\n        },\n        \"subjects\": {\n          \"description\": \"Subjects holds references to the objects the role applies to.\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Subject\" }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBinding\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.rbac.v1.RoleBindingList\": {\n      \"description\": \"RoleBindingList is a collection of RoleBindings\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of RoleBindings\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.RoleBinding\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleBindingList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.rbac.v1.RoleList\": {\n      \"description\": \"RoleList is a collection of Roles\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of Roles\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.rbac.v1.Role\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"RoleList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.rbac.v1.RoleRef\": {\n      \"description\": \"RoleRef contains information that points to the role being used\",\n      \"type\": \"object\",\n      \"required\": [\"apiGroup\", \"kind\", \"name\"],\n      \"properties\": {\n        \"apiGroup\": {\n          \"description\": \"APIGroup is the group for the resource being referenced\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is the type of resource being referenced\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name is the name of resource being referenced\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.rbac.v1.Subject\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"kind\", \"name\"],\n      \"properties\": {\n        \"apiGroup\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the object being referenced.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.api.scheduling.v1.PriorityClass\": {\n      \"description\": \"PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.\",\n      \"type\": \"object\",\n      \"required\": [\"value\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"description\": \"description is an arbitrary string that usually provides guidelines on when this priority class should be used.\",\n          \"type\": \"string\"\n        },\n        \"globalDefault\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"preemptionPolicy\": {\n          \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\n          \"type\": \"string\"\n        },\n        \"value\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"PriorityClass\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.scheduling.v1.PriorityClassList\": {\n      \"description\": \"PriorityClassList is a collection of priority classes.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"items is the list of PriorityClasses\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.scheduling.v1.PriorityClass\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"PriorityClassList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.storage.v1.CSIDriver\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"spec\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Specification of the CSI Driver.\",\n          \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriverSpec\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"storage.k8s.io\", \"kind\": \"CSIDriver\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.storage.v1.CSIDriverList\": {\n      \"description\": \"CSIDriverList is a collection of CSIDriver objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"items is the list of CSIDriver\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIDriver\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"storage.k8s.io\", \"kind\": \"CSIDriverList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.storage.v1.CSIDriverSpec\": {\n      \"description\": \"CSIDriverSpec is the specification of a CSIDriver.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"attachRequired\": {\n          \"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.\\n\\nThis field is immutable.\",\n          \"type\": \"boolean\"\n        },\n        \"fsGroupPolicy\": {\n          \"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.\\n\\nThis field is immutable.\\n\\nDefaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce.\",\n          \"type\": \"string\"\n        },\n        \"podInfoOnMount\": {\n          \"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\\\" 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.\",\n          \"type\": \"boolean\"\n        },\n        \"requiresRepublish\": {\n          \"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          \"type\": \"boolean\"\n        },\n        \"seLinuxMount\": {\n          \"description\": \"SELinuxMount specifies if the CSI driver supports \\\"-o context\\\" mount option.\\n\\nWhen \\\"true\\\", the CSI driver must ensure that all volumes provided by this CSI driver can be mounted separately with different `-o context` options. This is typical for storage backends that provide volumes as filesystems on block devices or as independent shared volumes. Kubernetes will call NodeStage / NodePublish with \\\"-o context=xyz\\\" mount option when mounting a ReadWriteOncePod volume used in Pod that has explicitly set SELinux context. In the future, it may be expanded to other volume AccessModes. In any case, Kubernetes will ensure that the volume is mounted only with a single SELinux context.\\n\\nWhen \\\"false\\\", Kubernetes won't pass any special SELinux mount options to the driver. This is typical for volumes that represent subdirectories of a bigger shared filesystem.\\n\\nDefault is \\\"false\\\".\",\n          \"type\": \"boolean\"\n        },\n        \"storageCapacity\": {\n          \"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 field was immutable in Kubernetes \\u003c= 1.22 and now is mutable.\",\n          \"type\": \"boolean\"\n        },\n        \"tokenRequests\": {\n          \"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          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.storage.v1.TokenRequest\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"volumeLifecycleModes\": {\n          \"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.\\n\\nThis field is immutable.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-list-type\": \"set\"\n        }\n      }\n    },\n    \"io.k8s.api.storage.v1.CSINode\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"spec\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"metadata.name must be the Kubernetes node name.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"spec is the specification of CSINode\",\n          \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINodeSpec\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"storage.k8s.io\", \"kind\": \"CSINode\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.storage.v1.CSINodeDriver\": {\n      \"description\": \"CSINodeDriver holds information about the specification of one CSI driver installed on a node\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"nodeID\"],\n      \"properties\": {\n        \"allocatable\": {\n          \"description\": \"allocatable represents the volume resources of a node that are available for scheduling. This field is beta.\",\n          \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeNodeResources\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"nodeID\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"topologyKeys\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.api.storage.v1.CSINodeList\": {\n      \"description\": \"CSINodeList is a collection of CSINode objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"items is the list of CSINode\",\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINode\" }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"storage.k8s.io\", \"kind\": \"CSINodeList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.storage.v1.CSINodeSpec\": {\n      \"description\": \"CSINodeSpec holds information about the specification of all CSI drivers installed on a node\",\n      \"type\": \"object\",\n      \"required\": [\"drivers\"],\n      \"properties\": {\n        \"drivers\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSINodeDriver\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        }\n      }\n    },\n    \"io.k8s.api.storage.v1.CSIStorageCapacity\": {\n      \"description\": \"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 when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.\",\n      \"type\": \"object\",\n      \"required\": [\"storageClassName\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"capacity\": {\n          \"description\": \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"maximumVolumeSize\": {\n          \"description\": \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        },\n        \"metadata\": {\n          \"description\": \"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-\\u003cuuid\\u003e, 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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"nodeTopology\": {\n          \"description\": \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"storageClassName\": {\n          \"description\": \"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.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.storage.v1.CSIStorageCapacityList\": {\n      \"description\": \"CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of CSIStorageCapacity objects.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"name\"],\n          \"x-kubernetes-list-type\": \"map\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacityList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.storage.v1.StorageClass\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"provisioner\"],\n      \"properties\": {\n        \"allowVolumeExpansion\": {\n          \"description\": \"AllowVolumeExpansion shows whether the storage class allow volume expand\",\n          \"type\": \"boolean\"\n        },\n        \"allowedTopologies\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.TopologySelectorTerm\"\n          },\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"mountOptions\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"parameters\": {\n          \"description\": \"Parameters holds the parameters for the provisioner that should create volumes of this storage class.\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" }\n        },\n        \"provisioner\": {\n          \"description\": \"Provisioner indicates the type of the provisioner.\",\n          \"type\": \"string\"\n        },\n        \"reclaimPolicy\": {\n          \"description\": \"Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.\",\n          \"type\": \"string\"\n        },\n        \"volumeBindingMode\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"storage.k8s.io\", \"kind\": \"StorageClass\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.api.storage.v1.StorageClassList\": {\n      \"description\": \"StorageClassList is a collection of storage classes.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of StorageClasses\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.storage.v1.StorageClass\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"StorageClassList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.storage.v1.TokenRequest\": {\n      \"description\": \"TokenRequest contains parameters of a service account token.\",\n      \"type\": \"object\",\n      \"required\": [\"audience\"],\n      \"properties\": {\n        \"audience\": {\n          \"description\": \"Audience is the intended audience of the token in \\\"TokenRequestSpec\\\". It will default to the audiences of kube apiserver.\",\n          \"type\": \"string\"\n        },\n        \"expirationSeconds\": {\n          \"description\": \"ExpirationSeconds is the duration of validity of the token in \\\"TokenRequestSpec\\\". It has the same default value of \\\"ExpirationSeconds\\\" in \\\"TokenRequestSpec\\\".\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      }\n    },\n    \"io.k8s.api.storage.v1.VolumeAttachment\": {\n      \"description\": \"VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\\n\\nVolumeAttachment objects are non-namespaced.\",\n      \"type\": \"object\",\n      \"required\": [\"spec\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.\",\n          \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.\",\n          \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachmentStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachment\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.storage.v1.VolumeAttachmentList\": {\n      \"description\": \"VolumeAttachmentList is a collection of VolumeAttachment objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of VolumeAttachments\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"VolumeAttachmentList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.storage.v1.VolumeAttachmentSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"inlineVolumeSpec\": {\n          \"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 beta-level and is only honored by servers that enabled the CSIMigration feature.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec\"\n        },\n        \"persistentVolumeName\": {\n          \"description\": \"Name of the persistent volume to attach.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.storage.v1.VolumeAttachmentSpec\": {\n      \"description\": \"VolumeAttachmentSpec is the specification of a VolumeAttachment request.\",\n      \"type\": \"object\",\n      \"required\": [\"attacher\", \"source\", \"nodeName\"],\n      \"properties\": {\n        \"attacher\": {\n          \"description\": \"Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().\",\n          \"type\": \"string\"\n        },\n        \"nodeName\": {\n          \"description\": \"The node that the volume should be attached to.\",\n          \"type\": \"string\"\n        },\n        \"source\": {\n          \"description\": \"Source represents the volume that should be attached.\",\n          \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSource\"\n        }\n      }\n    },\n    \"io.k8s.api.storage.v1.VolumeAttachmentStatus\": {\n      \"description\": \"VolumeAttachmentStatus is the status of a VolumeAttachment request.\",\n      \"type\": \"object\",\n      \"required\": [\"attached\"],\n      \"properties\": {\n        \"attachError\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeError\"\n        },\n        \"attached\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"attachmentMetadata\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" }\n        },\n        \"detachError\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.storage.v1.VolumeError\"\n        }\n      }\n    },\n    \"io.k8s.api.storage.v1.VolumeError\": {\n      \"description\": \"VolumeError captures an error encountered during a volume operation.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"message\": {\n          \"description\": \"String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.\",\n          \"type\": \"string\"\n        },\n        \"time\": {\n          \"description\": \"Time the error was encountered.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        }\n      }\n    },\n    \"io.k8s.api.storage.v1.VolumeNodeResources\": {\n      \"description\": \"VolumeNodeResources is a set of resource limits for scheduling of volumes.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"count\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.storage.v1beta1.CSIStorageCapacity\": {\n      \"description\": \"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 when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.\",\n      \"type\": \"object\",\n      \"required\": [\"storageClassName\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"capacity\": {\n          \"description\": \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"maximumVolumeSize\": {\n          \"description\": \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        },\n        \"metadata\": {\n          \"description\": \"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-\\u003cuuid\\u003e, 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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"nodeTopology\": {\n          \"description\": \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"storageClassName\": {\n          \"description\": \"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.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacity\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.storage.v1beta1.CSIStorageCapacityList\": {\n      \"description\": \"CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of CSIStorageCapacity objects.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.storage.v1beta1.CSIStorageCapacity\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"name\"],\n          \"x-kubernetes-list-type\": \"map\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"CSIStorageCapacityList\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\": {\n      \"description\": \"CustomResourceColumnDefinition specifies a column for server side printing.\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"type\", \"jsonPath\"],\n      \"properties\": {\n        \"description\": {\n          \"description\": \"description is a human readable description of this column.\",\n          \"type\": \"string\"\n        },\n        \"format\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"jsonPath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"name is a human readable name for the column.\",\n          \"type\": \"string\"\n        },\n        \"priority\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"type\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\": {\n      \"description\": \"CustomResourceConversion describes how to convert different versions of a CR.\",\n      \"type\": \"object\",\n      \"required\": [\"strategy\"],\n      \"properties\": {\n        \"strategy\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"webhook\": {\n          \"description\": \"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"spec\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"spec describes how the user wants the resources to appear\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"\n        },\n        \"status\": {\n          \"description\": \"status indicates the actual state of the CustomResourceDefinition\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\": {\n      \"description\": \"CustomResourceDefinitionCondition contains details for the current condition of this pod.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"lastTransitionTime last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"message is a human-readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"reason is a unique, one-word, CamelCase reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"status is the status of the condition. Can be True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\": {\n      \"description\": \"CustomResourceDefinitionList is a list of CustomResourceDefinition objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"items list individual CustomResourceDefinition objects\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinitionList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\": {\n      \"description\": \"CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\",\n      \"type\": \"object\",\n      \"required\": [\"plural\", \"kind\"],\n      \"properties\": {\n        \"categories\": {\n          \"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`.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"kind\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"listKind\": {\n          \"description\": \"listKind is the serialized kind of the list for this resource. Defaults to \\\"`kind`List\\\".\",\n          \"type\": \"string\"\n        },\n        \"plural\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"shortNames\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"singular\": {\n          \"description\": \"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\": {\n      \"description\": \"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\n      \"type\": \"object\",\n      \"required\": [\"group\", \"names\", \"scope\", \"versions\"],\n      \"properties\": {\n        \"conversion\": {\n          \"description\": \"conversion defines conversion settings for the CRD.\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"\n        },\n        \"group\": {\n          \"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`).\",\n          \"type\": \"string\"\n        },\n        \"names\": {\n          \"description\": \"names specify the resource and kind names for the custom resource.\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"\n        },\n        \"preserveUnknownFields\": {\n          \"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/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning for details.\",\n          \"type\": \"boolean\"\n        },\n        \"scope\": {\n          \"description\": \"scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.\",\n          \"type\": \"string\"\n        },\n        \"versions\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"\n          }\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\": {\n      \"description\": \"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"acceptedNames\": {\n          \"description\": \"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"\n        },\n        \"conditions\": {\n          \"description\": \"conditions indicate state for particular aspects of a CustomResourceDefinition\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"type\"],\n          \"x-kubernetes-list-type\": \"map\"\n        },\n        \"storedVersions\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\": {\n      \"description\": \"CustomResourceDefinitionVersion describes a version for CRD.\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"served\", \"storage\"],\n      \"properties\": {\n        \"additionalPrinterColumns\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"\n          }\n        },\n        \"deprecated\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"deprecationWarning\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"schema\": {\n          \"description\": \"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"\n        },\n        \"served\": {\n          \"description\": \"served is a flag enabling/disabling this version from being served via REST APIs\",\n          \"type\": \"boolean\"\n        },\n        \"storage\": {\n          \"description\": \"storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.\",\n          \"type\": \"boolean\"\n        },\n        \"subresources\": {\n          \"description\": \"subresources specify what subresources this version of the defined custom resource have.\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\": {\n      \"description\": \"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\n      \"type\": \"object\",\n      \"required\": [\"specReplicasPath\", \"statusReplicasPath\"],\n      \"properties\": {\n        \"labelSelectorPath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"specReplicasPath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"statusReplicasPath\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\": {\n      \"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\",\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\": {\n      \"description\": \"CustomResourceSubresources defines the status and scale subresources for CustomResources.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"scale\": {\n          \"description\": \"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"\n        },\n        \"status\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\": {\n      \"description\": \"CustomResourceValidation is a list of validation methods for CustomResources.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"openAPIV3Schema\": {\n          \"description\": \"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\": {\n      \"description\": \"ExternalDocumentation allows referencing an external resource for extended documentation.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"description\": { \"type\": \"string\" },\n        \"url\": { \"type\": \"string\" }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\": {\n      \"description\": \"JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\": {\n      \"description\": \"JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"$ref\": { \"type\": \"string\" },\n        \"$schema\": { \"type\": \"string\" },\n        \"additionalItems\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\"\n        },\n        \"additionalProperties\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\"\n        },\n        \"allOf\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n          }\n        },\n        \"anyOf\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n          }\n        },\n        \"default\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"\n        },\n        \"definitions\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n          }\n        },\n        \"dependencies\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"\n          }\n        },\n        \"description\": { \"type\": \"string\" },\n        \"enum\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"\n          }\n        },\n        \"example\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"\n        },\n        \"exclusiveMaximum\": { \"type\": \"boolean\" },\n        \"exclusiveMinimum\": { \"type\": \"boolean\" },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\"\n        },\n        \"format\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"id\": { \"type\": \"string\" },\n        \"items\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray\"\n        },\n        \"maxItems\": { \"type\": \"integer\", \"format\": \"int64\" },\n        \"maxLength\": { \"type\": \"integer\", \"format\": \"int64\" },\n        \"maxProperties\": { \"type\": \"integer\", \"format\": \"int64\" },\n        \"maximum\": { \"type\": \"number\", \"format\": \"double\" },\n        \"minItems\": { \"type\": \"integer\", \"format\": \"int64\" },\n        \"minLength\": { \"type\": \"integer\", \"format\": \"int64\" },\n        \"minProperties\": { \"type\": \"integer\", \"format\": \"int64\" },\n        \"minimum\": { \"type\": \"number\", \"format\": \"double\" },\n        \"multipleOf\": { \"type\": \"number\", \"format\": \"double\" },\n        \"not\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n        },\n        \"nullable\": { \"type\": \"boolean\" },\n        \"oneOf\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n          }\n        },\n        \"pattern\": { \"type\": \"string\" },\n        \"patternProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n          }\n        },\n        \"properties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n          }\n        },\n        \"required\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } },\n        \"title\": { \"type\": \"string\" },\n        \"type\": { \"type\": \"string\" },\n        \"uniqueItems\": { \"type\": \"boolean\" },\n        \"x-kubernetes-embedded-resource\": {\n          \"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).\",\n          \"type\": \"boolean\"\n        },\n        \"x-kubernetes-int-or-string\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"x-kubernetes-list-map-keys\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"x-kubernetes-list-type\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"x-kubernetes-map-type\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"x-kubernetes-preserve-unknown-fields\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"x-kubernetes-validations\": {\n          \"description\": \"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"rule\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"rule\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray\": {\n      \"description\": \"JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\": {\n      \"description\": \"JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\": {\n      \"description\": \"JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\": {\n      \"description\": \"ServiceReference holds a reference to Service.legacy.k8s.io\",\n      \"type\": \"object\",\n      \"required\": [\"namespace\", \"name\"],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"name is the name of the service. Required\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"namespace is the namespace of the service. Required\",\n          \"type\": \"string\"\n        },\n        \"path\": {\n          \"description\": \"path is an optional URL path at which the webhook will be contacted.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\": {\n      \"description\": \"ValidationRule describes a validation rule written in the CEL expression language.\",\n      \"type\": \"object\",\n      \"required\": [\"rule\"],\n      \"properties\": {\n        \"message\": {\n          \"description\": \"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\n          \"type\": \"string\"\n        },\n        \"rule\": {\n          \"description\": \"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\": {\n      \"description\": \"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"caBundle\": {\n          \"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.\",\n          \"type\": \"string\",\n          \"format\": \"byte\"\n        },\n        \"service\": {\n          \"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`.\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"\n        },\n        \"url\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\": {\n      \"description\": \"WebhookConversion describes how to call a conversion webhook\",\n      \"type\": \"object\",\n      \"required\": [\"conversionReviewVersions\"],\n      \"properties\": {\n        \"clientConfig\": {\n          \"description\": \"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"\n        },\n        \"conversionReviewVersions\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.api.resource.Quantity\": {\n      \"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\\n\\t(Note that \\u003csuffix\\u003e may be empty, from the \\\"\\\" case in \\u003cdecimalSI\\u003e.)\\n\\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\\n\\t(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\\n\\n\\u003cdecimalSI\\u003e       ::= m | \\\"\\\" | k | M | G | T | P | E\\n\\n\\t(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\\n\\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\\n- No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.\\n\\nThe sign will be omitted unless the number is negative.\\n\\nExamples:\\n\\n- 1.5 will be serialized as \\\"1500m\\\" - 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.\",\n      \"type\": \"string\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\": {\n      \"description\": \"APIGroup contains the name, the supported versions, and the preferred version of a group.\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"versions\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"name is the name of the group.\",\n          \"type\": \"string\"\n        },\n        \"preferredVersion\": {\n          \"description\": \"preferredVersion is the version preferred by the API server, which probably is the storage version.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"\n        },\n        \"serverAddressByClientCIDRs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\"\n          }\n        },\n        \"versions\": {\n          \"description\": \"versions are the versions supported in this group.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"\n          }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"APIGroup\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList\": {\n      \"description\": \"APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.\",\n      \"type\": \"object\",\n      \"required\": [\"groups\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"groups\": {\n          \"description\": \"groups is a list of APIGroup.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"APIGroupList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\": {\n      \"description\": \"APIResource specifies the name of a resource and whether it is namespaced.\",\n      \"type\": \"object\",\n      \"required\": [\"name\", \"singularName\", \"namespaced\", \"kind\", \"verbs\"],\n      \"properties\": {\n        \"categories\": {\n          \"description\": \"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"group\": {\n          \"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\\\".\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"name is the plural name of the resource.\",\n          \"type\": \"string\"\n        },\n        \"namespaced\": {\n          \"description\": \"namespaced indicates if a resource is namespaced or not.\",\n          \"type\": \"boolean\"\n        },\n        \"shortNames\": {\n          \"description\": \"shortNames is a list of suggested short names of the resource.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"singularName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"storageVersionHash\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"verbs\": {\n          \"description\": \"verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"version\": {\n          \"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)\\\".\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"groupVersion\", \"resources\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"groupVersion\": {\n          \"description\": \"groupVersion is the group and version this APIResourceList is for.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"resources\": {\n          \"description\": \"resources contains the name of the resources and if they are namespaced.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"\n          }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"APIResourceList\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"versions\", \"serverAddressByClientCIDRs\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"serverAddressByClientCIDRs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\"\n          }\n        },\n        \"versions\": {\n          \"description\": \"versions are the api versions that are available.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"APIVersions\", \"version\": \"v1\" }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Condition\": {\n      \"description\": \"Condition contains details for one aspect of the current state of this API Resource.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\", \"lastTransitionTime\", \"reason\", \"message\"],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"message is a human readable message indicating details about the transition. This may be an empty string.\",\n          \"type\": \"string\"\n        },\n        \"observedGeneration\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"reason\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"type of condition in CamelCase or in foo.example.com/CamelCase.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\": {\n      \"description\": \"DeleteOptions may be provided when deleting an API object.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"dryRun\": {\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"gracePeriodSeconds\": {\n          \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"orphanDependents\": {\n          \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n          \"type\": \"boolean\"\n        },\n        \"preconditions\": {\n          \"description\": \"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"\n        },\n        \"propagationPolicy\": {\n          \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"DeleteOptions\", \"version\": \"v1\" },\n        {\n          \"group\": \"admission.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"admission.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"apiregistration.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"apiregistration.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"apps\", \"kind\": \"DeleteOptions\", \"version\": \"v1\" },\n        { \"group\": \"apps\", \"kind\": \"DeleteOptions\", \"version\": \"v1beta1\" },\n        { \"group\": \"apps\", \"kind\": \"DeleteOptions\", \"version\": \"v1beta2\" },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"autoscaling\", \"kind\": \"DeleteOptions\", \"version\": \"v1\" },\n        { \"group\": \"autoscaling\", \"kind\": \"DeleteOptions\", \"version\": \"v2\" },\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v2beta1\"\n        },\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v2beta2\"\n        },\n        { \"group\": \"batch\", \"kind\": \"DeleteOptions\", \"version\": \"v1\" },\n        { \"group\": \"batch\", \"kind\": \"DeleteOptions\", \"version\": \"v1beta1\" },\n        {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"events.k8s.io\", \"kind\": \"DeleteOptions\", \"version\": \"v1\" },\n        {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"extensions\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta2\"\n        },\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta3\"\n        },\n        {\n          \"group\": \"imagepolicy.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"internal.apiserver.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"node.k8s.io\", \"kind\": \"DeleteOptions\", \"version\": \"v1\" },\n        {\n          \"group\": \"node.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"node.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"policy\", \"kind\": \"DeleteOptions\", \"version\": \"v1\" },\n        { \"group\": \"policy\", \"kind\": \"DeleteOptions\", \"version\": \"v1beta1\" },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"resource.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"storage.k8s.io\", \"kind\": \"DeleteOptions\", \"version\": \"v1\" },\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\": {\n      \"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\",\n      \"type\": \"object\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\": {\n      \"description\": \"GroupVersion contains the \\\"group/version\\\" and \\\"version\\\" string of a version. It is made a struct to keep extensibility.\",\n      \"type\": \"object\",\n      \"required\": [\"groupVersion\", \"version\"],\n      \"properties\": {\n        \"groupVersion\": {\n          \"description\": \"groupVersion specifies the API group and version in the form \\\"group/version\\\"\",\n          \"type\": \"string\"\n        },\n        \"version\": {\n          \"description\": \"version specifies the version in the form of \\\"version\\\". This is to save the clients the trouble of splitting the GroupVersion.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"matchExpressions\": {\n          \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"\n          }\n        },\n        \"matchLabels\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" }\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\": {\n      \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n      \"type\": \"object\",\n      \"required\": [\"key\", \"operator\"],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"key is the label key that the selector applies to.\",\n          \"type\": \"string\",\n          \"x-kubernetes-patch-merge-key\": \"key\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"operator\": {\n          \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n          \"type\": \"string\"\n        },\n        \"values\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\": {\n      \"description\": \"ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"continue\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"remainingItemCount\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"resourceVersion\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"selfLink\": {\n          \"description\": \"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\": {\n      \"description\": \"ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"fieldsType\": {\n          \"description\": \"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\n          \"type\": \"string\"\n        },\n        \"fieldsV1\": {\n          \"description\": \"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"\n        },\n        \"manager\": {\n          \"description\": \"Manager is an identifier of the workflow managing these fields.\",\n          \"type\": \"string\"\n        },\n        \"operation\": {\n          \"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'.\",\n          \"type\": \"string\"\n        },\n        \"subresource\": {\n          \"description\": \"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\n          \"type\": \"string\"\n        },\n        \"time\": {\n          \"description\": \"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\": {\n      \"description\": \"MicroTime is version of Time with microsecond level precision.\",\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\": {\n      \"description\": \"ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"annotations\": {\n          \"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\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" }\n        },\n        \"creationTimestamp\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"deletionGracePeriodSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"deletionTimestamp\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"finalizers\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" },\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"generateName\": {\n          \"description\": \"GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\\n\\nIf this field is specified and the generated name exists, the server will return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\n          \"type\": \"string\"\n        },\n        \"generation\": {\n          \"description\": \"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"labels\": {\n          \"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\",\n          \"type\": \"object\",\n          \"additionalProperties\": { \"type\": \"string\" }\n        },\n        \"managedFields\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"\n          }\n        },\n        \"name\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"ownerReferences\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"uid\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"resourceVersion\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"selfLink\": {\n          \"description\": \"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\n          \"type\": \"string\"\n        },\n        \"uid\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\"apiVersion\", \"kind\", \"name\", \"uid\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"API version of the referent.\",\n          \"type\": \"string\"\n        },\n        \"blockOwnerDeletion\": {\n          \"description\": \"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\n          \"type\": \"boolean\"\n        },\n        \"controller\": {\n          \"description\": \"If true, this reference points to the managing controller.\",\n          \"type\": \"boolean\"\n        },\n        \"kind\": {\n          \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n          \"type\": \"string\"\n        },\n        \"uid\": {\n          \"description\": \"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Patch\": {\n      \"description\": \"Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.\",\n      \"type\": \"object\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\": {\n      \"description\": \"Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"resourceVersion\": {\n          \"description\": \"Specifies the target ResourceVersion\",\n          \"type\": \"string\"\n        },\n        \"uid\": { \"description\": \"Specifies the target UID.\", \"type\": \"string\" }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\": {\n      \"description\": \"ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.\",\n      \"type\": \"object\",\n      \"required\": [\"clientCIDR\", \"serverAddress\"],\n      \"properties\": {\n        \"clientCIDR\": {\n          \"description\": \"The CIDR with which clients can match their IP to figure out the server address that they should use.\",\n          \"type\": \"string\"\n        },\n        \"serverAddress\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Status\": {\n      \"description\": \"Status is a return value for calls that don't return other objects.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"code\": {\n          \"description\": \"Suggested HTTP return code for this status, 0 if not set.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"details\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"message\": {\n          \"description\": \"A human-readable description of the status of this operation.\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        },\n        \"reason\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"Status\", \"version\": \"v1\" },\n        { \"group\": \"resource.k8s.io\", \"kind\": \"Status\", \"version\": \"v1alpha1\" }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\": {\n      \"description\": \"StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"field\": {\n          \"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\\\"\",\n          \"type\": \"string\"\n        },\n        \"message\": {\n          \"description\": \"A human-readable description of the cause of the error.  This field may be presented as-is to a reader.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"A machine-readable description of the cause of the error. If this value is empty there is no information available.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"causes\": {\n          \"description\": \"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"\n          }\n        },\n        \"group\": {\n          \"description\": \"The group attribute of the resource associated with the status StatusReason.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).\",\n          \"type\": \"string\"\n        },\n        \"retryAfterSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"uid\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Time\": {\n      \"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.\",\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\": {\n      \"description\": \"Event represents a single event to a watched resource.\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"object\"],\n      \"properties\": {\n        \"object\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"\n        },\n        \"type\": { \"type\": \"string\" }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        { \"group\": \"\", \"kind\": \"WatchEvent\", \"version\": \"v1\" },\n        { \"group\": \"admission.k8s.io\", \"kind\": \"WatchEvent\", \"version\": \"v1\" },\n        {\n          \"group\": \"admission.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"apiregistration.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"apiregistration.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"apps\", \"kind\": \"WatchEvent\", \"version\": \"v1\" },\n        { \"group\": \"apps\", \"kind\": \"WatchEvent\", \"version\": \"v1beta1\" },\n        { \"group\": \"apps\", \"kind\": \"WatchEvent\", \"version\": \"v1beta2\" },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"autoscaling\", \"kind\": \"WatchEvent\", \"version\": \"v1\" },\n        { \"group\": \"autoscaling\", \"kind\": \"WatchEvent\", \"version\": \"v2\" },\n        { \"group\": \"autoscaling\", \"kind\": \"WatchEvent\", \"version\": \"v2beta1\" },\n        { \"group\": \"autoscaling\", \"kind\": \"WatchEvent\", \"version\": \"v2beta2\" },\n        { \"group\": \"batch\", \"kind\": \"WatchEvent\", \"version\": \"v1\" },\n        { \"group\": \"batch\", \"kind\": \"WatchEvent\", \"version\": \"v1beta1\" },\n        {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"coordination.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"discovery.k8s.io\", \"kind\": \"WatchEvent\", \"version\": \"v1\" },\n        {\n          \"group\": \"discovery.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"events.k8s.io\", \"kind\": \"WatchEvent\", \"version\": \"v1\" },\n        {\n          \"group\": \"events.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"extensions\", \"kind\": \"WatchEvent\", \"version\": \"v1beta1\" },\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta2\"\n        },\n        {\n          \"group\": \"flowcontrol.apiserver.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta3\"\n        },\n        {\n          \"group\": \"imagepolicy.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"internal.apiserver.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        { \"group\": \"networking.k8s.io\", \"kind\": \"WatchEvent\", \"version\": \"v1\" },\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"node.k8s.io\", \"kind\": \"WatchEvent\", \"version\": \"v1\" },\n        { \"group\": \"node.k8s.io\", \"kind\": \"WatchEvent\", \"version\": \"v1alpha1\" },\n        { \"group\": \"node.k8s.io\", \"kind\": \"WatchEvent\", \"version\": \"v1beta1\" },\n        { \"group\": \"policy\", \"kind\": \"WatchEvent\", \"version\": \"v1\" },\n        { \"group\": \"policy\", \"kind\": \"WatchEvent\", \"version\": \"v1beta1\" },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"resource.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        { \"group\": \"scheduling.k8s.io\", \"kind\": \"WatchEvent\", \"version\": \"v1\" },\n        {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        { \"group\": \"storage.k8s.io\", \"kind\": \"WatchEvent\", \"version\": \"v1\" },\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.runtime.RawExtension\": {\n      \"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:\\n\\n\\ttype MyAPIObject struct {\\n\\t\\truntime.TypeMeta `json:\\\",inline\\\"`\\n\\t\\tMyPlugin runtime.Object `json:\\\"myPlugin\\\"`\\n\\t}\\n\\n\\ttype PluginA struct {\\n\\t\\tAOption string `json:\\\"aOption\\\"`\\n\\t}\\n\\n// External package:\\n\\n\\ttype MyAPIObject struct {\\n\\t\\truntime.TypeMeta `json:\\\",inline\\\"`\\n\\t\\tMyPlugin runtime.RawExtension `json:\\\"myPlugin\\\"`\\n\\t}\\n\\n\\ttype PluginA struct {\\n\\t\\tAOption string `json:\\\"aOption\\\"`\\n\\t}\\n\\n// On the wire, the JSON will look something like this:\\n\\n\\t{\\n\\t\\t\\\"kind\\\":\\\"MyAPIObject\\\",\\n\\t\\t\\\"apiVersion\\\":\\\"v1\\\",\\n\\t\\t\\\"myPlugin\\\": {\\n\\t\\t\\t\\\"kind\\\":\\\"PluginA\\\",\\n\\t\\t\\t\\\"aOption\\\":\\\"foo\\\",\\n\\t\\t},\\n\\t}\\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.)\",\n      \"type\": \"object\"\n    },\n    \"io.k8s.apimachinery.pkg.util.intstr.IntOrString\": {\n      \"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.\",\n      \"type\": \"string\",\n      \"format\": \"int-or-string\"\n    },\n    \"io.k8s.apimachinery.pkg.version.Info\": {\n      \"description\": \"Info contains versioning information. how we'll want to distribute that information.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"major\",\n        \"minor\",\n        \"gitVersion\",\n        \"gitCommit\",\n        \"gitTreeState\",\n        \"buildDate\",\n        \"goVersion\",\n        \"compiler\",\n        \"platform\"\n      ],\n      \"properties\": {\n        \"buildDate\": { \"type\": \"string\" },\n        \"compiler\": { \"type\": \"string\" },\n        \"gitCommit\": { \"type\": \"string\" },\n        \"gitTreeState\": { \"type\": \"string\" },\n        \"gitVersion\": { \"type\": \"string\" },\n        \"goVersion\": { \"type\": \"string\" },\n        \"major\": { \"type\": \"string\" },\n        \"minor\": { \"type\": \"string\" },\n        \"platform\": { \"type\": \"string\" }\n      }\n    },\n    \"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\": {\n      \"description\": \"APIService represents a server for a particular GroupVersion. Name must be \\\"version.group\\\".\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec contains information for locating and communicating with a server\",\n          \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status contains derived information about an API server\",\n          \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apiregistration.k8s.io\",\n          \"kind\": \"APIService\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition\": {\n      \"description\": \"APIServiceCondition describes the state of an APIService at a particular point\",\n      \"type\": \"object\",\n      \"required\": [\"type\", \"status\"],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"Human-readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"Unique, one-word, CamelCase reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status is the status of the condition. Can be True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type is the type of the condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList\": {\n      \"description\": \"APIServiceList is a list of APIService objects.\",\n      \"type\": \"object\",\n      \"required\": [\"items\"],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of APIService\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apiregistration.k8s.io\",\n          \"kind\": \"APIServiceList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec\": {\n      \"description\": \"APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.\",\n      \"type\": \"object\",\n      \"required\": [\"groupPriorityMinimum\", \"versionPriority\"],\n      \"properties\": {\n        \"caBundle\": {\n          \"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.\",\n          \"type\": \"string\",\n          \"format\": \"byte\",\n          \"x-kubernetes-list-type\": \"atomic\"\n        },\n        \"group\": {\n          \"description\": \"Group is the API group name this server hosts\",\n          \"type\": \"string\"\n        },\n        \"groupPriorityMinimum\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"insecureSkipTLSVerify\": {\n          \"description\": \"InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged.  You should use the CABundle instead.\",\n          \"type\": \"boolean\"\n        },\n        \"service\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference\"\n        },\n        \"version\": {\n          \"description\": \"Version is the API version this server hosts.  For example, \\\"v1\\\"\",\n          \"type\": \"string\"\n        },\n        \"versionPriority\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus\": {\n      \"description\": \"APIServiceStatus contains derived information about an API server\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"Current service state of apiService.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition\"\n          },\n          \"x-kubernetes-list-map-keys\": [\"type\"],\n          \"x-kubernetes-list-type\": \"map\",\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        }\n      }\n    },\n    \"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference\": {\n      \"description\": \"ServiceReference holds a reference to Service.legacy.k8s.io\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name is the name of the service\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"Namespace is the namespace of the service\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"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).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    }\n  },\n  \"securityDefinitions\": {\n    \"BearerToken\": {\n      \"description\": \"Bearer Token authentication\",\n      \"type\": \"apiKey\",\n      \"name\": \"authorization\",\n      \"in\": \"header\"\n    }\n  },\n  \"security\": [{ \"BearerToken\": [] }]\n}\n"
  },
  {
    "path": "pkg/schemamutation/walker.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemamutation\n\nimport (\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Walker runs callback functions on all references of an OpenAPI spec,\n// replacing the values when visiting corresponding types.\ntype Walker struct {\n\t// SchemaCallback will be called on each schema, taking the original schema,\n\t// and before any other callbacks of the Walker.\n\t// If the schema needs to be mutated, DO NOT mutate it in-place,\n\t// always create a copy, mutate, and return it.\n\tSchemaCallback func(schema *spec.Schema) *spec.Schema\n\n\t// RefCallback will be called on each ref.\n\t// If the ref needs to be mutated, DO NOT mutate it in-place,\n\t// always create a copy, mutate, and return it.\n\tRefCallback func(ref *spec.Ref) *spec.Ref\n}\n\ntype SchemaCallbackFunc func(schema *spec.Schema) *spec.Schema\ntype RefCallbackFunc func(ref *spec.Ref) *spec.Ref\n\nvar SchemaCallBackNoop SchemaCallbackFunc = func(schema *spec.Schema) *spec.Schema {\n\treturn schema\n}\nvar RefCallbackNoop RefCallbackFunc = func(ref *spec.Ref) *spec.Ref {\n\treturn ref\n}\n\n// ReplaceReferences rewrites the references without mutating the input.\n// The output might share data with the input.\nfunc ReplaceReferences(walkRef func(ref *spec.Ref) *spec.Ref, sp *spec.Swagger) *spec.Swagger {\n\twalker := &Walker{RefCallback: walkRef, SchemaCallback: SchemaCallBackNoop}\n\treturn walker.WalkRoot(sp)\n}\n\nfunc (w *Walker) WalkSchema(schema *spec.Schema) *spec.Schema {\n\tif schema == nil {\n\t\treturn nil\n\t}\n\n\torig := schema\n\tclone := func() {\n\t\tif orig == schema {\n\t\t\tschema = &spec.Schema{}\n\t\t\t*schema = *orig\n\t\t}\n\t}\n\n\t// Always run callback on the whole schema first\n\t// so that SchemaCallback can take the original schema as input.\n\tschema = w.SchemaCallback(schema)\n\n\tif r := w.RefCallback(&schema.Ref); r != &schema.Ref {\n\t\tclone()\n\t\tschema.Ref = *r\n\t}\n\n\tdefinitionsCloned := false\n\tfor k, v := range schema.Definitions {\n\t\tif s := w.WalkSchema(&v); s != &v {\n\t\t\tif !definitionsCloned {\n\t\t\t\tdefinitionsCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.Definitions = make(spec.Definitions, len(orig.Definitions))\n\t\t\t\tfor k2, v2 := range orig.Definitions {\n\t\t\t\t\tschema.Definitions[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tschema.Definitions[k] = *s\n\t\t}\n\t}\n\n\tpropertiesCloned := false\n\tfor k, v := range schema.Properties {\n\t\tif s := w.WalkSchema(&v); s != &v {\n\t\t\tif !propertiesCloned {\n\t\t\t\tpropertiesCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.Properties = make(map[string]spec.Schema, len(orig.Properties))\n\t\t\t\tfor k2, v2 := range orig.Properties {\n\t\t\t\t\tschema.Properties[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tschema.Properties[k] = *s\n\t\t}\n\t}\n\n\tpatternPropertiesCloned := false\n\tfor k, v := range schema.PatternProperties {\n\t\tif s := w.WalkSchema(&v); s != &v {\n\t\t\tif !patternPropertiesCloned {\n\t\t\t\tpatternPropertiesCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.PatternProperties = make(map[string]spec.Schema, len(orig.PatternProperties))\n\t\t\t\tfor k2, v2 := range orig.PatternProperties {\n\t\t\t\t\tschema.PatternProperties[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tschema.PatternProperties[k] = *s\n\t\t}\n\t}\n\n\tallOfCloned := false\n\tfor i := range schema.AllOf {\n\t\tif s := w.WalkSchema(&schema.AllOf[i]); s != &schema.AllOf[i] {\n\t\t\tif !allOfCloned {\n\t\t\t\tallOfCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.AllOf = make([]spec.Schema, len(orig.AllOf))\n\t\t\t\tcopy(schema.AllOf, orig.AllOf)\n\t\t\t}\n\t\t\tschema.AllOf[i] = *s\n\t\t}\n\t}\n\n\tanyOfCloned := false\n\tfor i := range schema.AnyOf {\n\t\tif s := w.WalkSchema(&schema.AnyOf[i]); s != &schema.AnyOf[i] {\n\t\t\tif !anyOfCloned {\n\t\t\t\tanyOfCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.AnyOf = make([]spec.Schema, len(orig.AnyOf))\n\t\t\t\tcopy(schema.AnyOf, orig.AnyOf)\n\t\t\t}\n\t\t\tschema.AnyOf[i] = *s\n\t\t}\n\t}\n\n\toneOfCloned := false\n\tfor i := range schema.OneOf {\n\t\tif s := w.WalkSchema(&schema.OneOf[i]); s != &schema.OneOf[i] {\n\t\t\tif !oneOfCloned {\n\t\t\t\toneOfCloned = true\n\t\t\t\tclone()\n\t\t\t\tschema.OneOf = make([]spec.Schema, len(orig.OneOf))\n\t\t\t\tcopy(schema.OneOf, orig.OneOf)\n\t\t\t}\n\t\t\tschema.OneOf[i] = *s\n\t\t}\n\t}\n\n\tif schema.Not != nil {\n\t\tif s := w.WalkSchema(schema.Not); s != schema.Not {\n\t\t\tclone()\n\t\t\tschema.Not = s\n\t\t}\n\t}\n\n\tif schema.AdditionalProperties != nil && schema.AdditionalProperties.Schema != nil {\n\t\tif s := w.WalkSchema(schema.AdditionalProperties.Schema); s != schema.AdditionalProperties.Schema {\n\t\t\tclone()\n\t\t\tschema.AdditionalProperties = &spec.SchemaOrBool{Schema: s, Allows: schema.AdditionalProperties.Allows}\n\t\t}\n\t}\n\n\tif schema.AdditionalItems != nil && schema.AdditionalItems.Schema != nil {\n\t\tif s := w.WalkSchema(schema.AdditionalItems.Schema); s != schema.AdditionalItems.Schema {\n\t\t\tclone()\n\t\t\tschema.AdditionalItems = &spec.SchemaOrBool{Schema: s, Allows: schema.AdditionalItems.Allows}\n\t\t}\n\t}\n\n\tif schema.Items != nil {\n\t\tif schema.Items.Schema != nil {\n\t\t\tif s := w.WalkSchema(schema.Items.Schema); s != schema.Items.Schema {\n\t\t\t\tclone()\n\t\t\t\tschema.Items = &spec.SchemaOrArray{Schema: s}\n\t\t\t}\n\t\t} else {\n\t\t\titemsCloned := false\n\t\t\tfor i := range schema.Items.Schemas {\n\t\t\t\tif s := w.WalkSchema(&schema.Items.Schemas[i]); s != &schema.Items.Schemas[i] {\n\t\t\t\t\tif !itemsCloned {\n\t\t\t\t\t\tclone()\n\t\t\t\t\t\tschema.Items = &spec.SchemaOrArray{\n\t\t\t\t\t\t\tSchemas: make([]spec.Schema, len(orig.Items.Schemas)),\n\t\t\t\t\t\t}\n\t\t\t\t\t\titemsCloned = true\n\t\t\t\t\t\tcopy(schema.Items.Schemas, orig.Items.Schemas)\n\t\t\t\t\t}\n\t\t\t\t\tschema.Items.Schemas[i] = *s\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn schema\n}\n\nfunc (w *Walker) walkParameter(param *spec.Parameter) *spec.Parameter {\n\tif param == nil {\n\t\treturn nil\n\t}\n\n\torig := param\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tparam = &spec.Parameter{}\n\t\t\t*param = *orig\n\t\t}\n\t}\n\n\tif r := w.RefCallback(&param.Ref); r != &param.Ref {\n\t\tclone()\n\t\tparam.Ref = *r\n\t}\n\tif s := w.WalkSchema(param.Schema); s != param.Schema {\n\t\tclone()\n\t\tparam.Schema = s\n\t}\n\tif param.Items != nil {\n\t\tif r := w.RefCallback(&param.Items.Ref); r != &param.Items.Ref {\n\t\t\tparam.Items.Ref = *r\n\t\t}\n\t}\n\n\treturn param\n}\n\nfunc (w *Walker) walkParameters(params []spec.Parameter) ([]spec.Parameter, bool) {\n\tif params == nil {\n\t\treturn nil, false\n\t}\n\n\torig := params\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tparams = make([]spec.Parameter, len(params))\n\t\t\tcopy(params, orig)\n\t\t}\n\t}\n\n\tfor i := range params {\n\t\tif s := w.walkParameter(&params[i]); s != &params[i] {\n\t\t\tclone()\n\t\t\tparams[i] = *s\n\t\t}\n\t}\n\n\treturn params, cloned\n}\n\nfunc (w *Walker) walkResponse(resp *spec.Response) *spec.Response {\n\tif resp == nil {\n\t\treturn nil\n\t}\n\n\torig := resp\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tresp = &spec.Response{}\n\t\t\t*resp = *orig\n\t\t}\n\t}\n\n\tif r := w.RefCallback(&resp.Ref); r != &resp.Ref {\n\t\tclone()\n\t\tresp.Ref = *r\n\t}\n\tif s := w.WalkSchema(resp.Schema); s != resp.Schema {\n\t\tclone()\n\t\tresp.Schema = s\n\t}\n\n\treturn resp\n}\n\nfunc (w *Walker) walkResponses(resps *spec.Responses) *spec.Responses {\n\tif resps == nil {\n\t\treturn nil\n\t}\n\n\torig := resps\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tresps = &spec.Responses{}\n\t\t\t*resps = *orig\n\t\t}\n\t}\n\n\tif r := w.walkResponse(resps.ResponsesProps.Default); r != resps.ResponsesProps.Default {\n\t\tclone()\n\t\tresps.Default = r\n\t}\n\n\tresponsesCloned := false\n\tfor k, v := range resps.ResponsesProps.StatusCodeResponses {\n\t\tif r := w.walkResponse(&v); r != &v {\n\t\t\tif !responsesCloned {\n\t\t\t\tresponsesCloned = true\n\t\t\t\tclone()\n\t\t\t\tresps.ResponsesProps.StatusCodeResponses = make(map[int]spec.Response, len(orig.StatusCodeResponses))\n\t\t\t\tfor k2, v2 := range orig.StatusCodeResponses {\n\t\t\t\t\tresps.ResponsesProps.StatusCodeResponses[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tresps.ResponsesProps.StatusCodeResponses[k] = *r\n\t\t}\n\t}\n\n\treturn resps\n}\n\nfunc (w *Walker) walkOperation(op *spec.Operation) *spec.Operation {\n\tif op == nil {\n\t\treturn nil\n\t}\n\n\torig := op\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\top = &spec.Operation{}\n\t\t\t*op = *orig\n\t\t}\n\t}\n\n\tparametersCloned := false\n\tfor i := range op.Parameters {\n\t\tif s := w.walkParameter(&op.Parameters[i]); s != &op.Parameters[i] {\n\t\t\tif !parametersCloned {\n\t\t\t\tparametersCloned = true\n\t\t\t\tclone()\n\t\t\t\top.Parameters = make([]spec.Parameter, len(orig.Parameters))\n\t\t\t\tcopy(op.Parameters, orig.Parameters)\n\t\t\t}\n\t\t\top.Parameters[i] = *s\n\t\t}\n\t}\n\n\tif r := w.walkResponses(op.Responses); r != op.Responses {\n\t\tclone()\n\t\top.Responses = r\n\t}\n\n\treturn op\n}\n\nfunc (w *Walker) walkPathItem(pathItem *spec.PathItem) *spec.PathItem {\n\tif pathItem == nil {\n\t\treturn nil\n\t}\n\n\torig := pathItem\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tpathItem = &spec.PathItem{}\n\t\t\t*pathItem = *orig\n\t\t}\n\t}\n\n\tif p, changed := w.walkParameters(pathItem.Parameters); changed {\n\t\tclone()\n\t\tpathItem.Parameters = p\n\t}\n\tif op := w.walkOperation(pathItem.Get); op != pathItem.Get {\n\t\tclone()\n\t\tpathItem.Get = op\n\t}\n\tif op := w.walkOperation(pathItem.Head); op != pathItem.Head {\n\t\tclone()\n\t\tpathItem.Head = op\n\t}\n\tif op := w.walkOperation(pathItem.Delete); op != pathItem.Delete {\n\t\tclone()\n\t\tpathItem.Delete = op\n\t}\n\tif op := w.walkOperation(pathItem.Options); op != pathItem.Options {\n\t\tclone()\n\t\tpathItem.Options = op\n\t}\n\tif op := w.walkOperation(pathItem.Patch); op != pathItem.Patch {\n\t\tclone()\n\t\tpathItem.Patch = op\n\t}\n\tif op := w.walkOperation(pathItem.Post); op != pathItem.Post {\n\t\tclone()\n\t\tpathItem.Post = op\n\t}\n\tif op := w.walkOperation(pathItem.Put); op != pathItem.Put {\n\t\tclone()\n\t\tpathItem.Put = op\n\t}\n\n\treturn pathItem\n}\n\nfunc (w *Walker) walkPaths(paths *spec.Paths) *spec.Paths {\n\tif paths == nil {\n\t\treturn nil\n\t}\n\n\torig := paths\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tpaths = &spec.Paths{}\n\t\t\t*paths = *orig\n\t\t}\n\t}\n\n\tpathsCloned := false\n\tfor k, v := range paths.Paths {\n\t\tif p := w.walkPathItem(&v); p != &v {\n\t\t\tif !pathsCloned {\n\t\t\t\tpathsCloned = true\n\t\t\t\tclone()\n\t\t\t\tpaths.Paths = make(map[string]spec.PathItem, len(orig.Paths))\n\t\t\t\tfor k2, v2 := range orig.Paths {\n\t\t\t\t\tpaths.Paths[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tpaths.Paths[k] = *p\n\t\t}\n\t}\n\n\treturn paths\n}\n\nfunc (w *Walker) WalkRoot(swagger *spec.Swagger) *spec.Swagger {\n\tif swagger == nil {\n\t\treturn nil\n\t}\n\n\torig := swagger\n\tcloned := false\n\tclone := func() {\n\t\tif !cloned {\n\t\t\tcloned = true\n\t\t\tswagger = &spec.Swagger{}\n\t\t\t*swagger = *orig\n\t\t}\n\t}\n\n\tparametersCloned := false\n\tfor k, v := range swagger.Parameters {\n\t\tif p := w.walkParameter(&v); p != &v {\n\t\t\tif !parametersCloned {\n\t\t\t\tparametersCloned = true\n\t\t\t\tclone()\n\t\t\t\tswagger.Parameters = make(map[string]spec.Parameter, len(orig.Parameters))\n\t\t\t\tfor k2, v2 := range orig.Parameters {\n\t\t\t\t\tswagger.Parameters[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tswagger.Parameters[k] = *p\n\t\t}\n\t}\n\n\tresponsesCloned := false\n\tfor k, v := range swagger.Responses {\n\t\tif r := w.walkResponse(&v); r != &v {\n\t\t\tif !responsesCloned {\n\t\t\t\tresponsesCloned = true\n\t\t\t\tclone()\n\t\t\t\tswagger.Responses = make(map[string]spec.Response, len(orig.Responses))\n\t\t\t\tfor k2, v2 := range orig.Responses {\n\t\t\t\t\tswagger.Responses[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tswagger.Responses[k] = *r\n\t\t}\n\t}\n\n\tdefinitionsCloned := false\n\tfor k, v := range swagger.Definitions {\n\t\tif s := w.WalkSchema(&v); s != &v {\n\t\t\tif !definitionsCloned {\n\t\t\t\tdefinitionsCloned = true\n\t\t\t\tclone()\n\t\t\t\tswagger.Definitions = make(spec.Definitions, len(orig.Definitions))\n\t\t\t\tfor k2, v2 := range orig.Definitions {\n\t\t\t\t\tswagger.Definitions[k2] = v2\n\t\t\t\t}\n\t\t\t}\n\t\t\tswagger.Definitions[k] = *s\n\t\t}\n\t}\n\n\tif swagger.Paths != nil {\n\t\tif p := w.walkPaths(swagger.Paths); p != swagger.Paths {\n\t\t\tclone()\n\t\t\tswagger.Paths = p\n\t\t}\n\t}\n\n\treturn swagger\n}\n"
  },
  {
    "path": "pkg/schemamutation/walker_test.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemamutation\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"math\"\n\t\"math/rand\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/util/sets\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"sigs.k8s.io/randfill\"\n)\n\nfunc fuzzFuncs(f *randfill.Filler, refFunc func(ref *spec.Ref, c randfill.Continue, visible bool)) {\n\tinvisible := 0 // == 0 means visible, > 0 means invisible\n\tdepth := 0\n\tmaxDepth := 3\n\tnilChance := func(depth int) float64 {\n\t\treturn math.Pow(0.9, math.Max(0.0, float64(maxDepth-depth)))\n\t}\n\tupdateFuzzer := func(depth int) {\n\t\tf.NilChance(nilChance(depth))\n\t\tf.NumElements(0, max(0, maxDepth-depth))\n\t}\n\tupdateFuzzer(depth)\n\tenter := func(o interface{}, recursive bool, c randfill.Continue) {\n\t\tif recursive {\n\t\t\tdepth++\n\t\t\tupdateFuzzer(depth)\n\t\t}\n\n\t\tinvisible++\n\t\tc.FillNoCustom(o)\n\t\tinvisible--\n\t}\n\tleave := func(recursive bool) {\n\t\tif recursive {\n\t\t\tdepth--\n\t\t\tupdateFuzzer(depth)\n\t\t}\n\t}\n\tf.Funcs(\n\t\tfunc(ref *spec.Ref, c randfill.Continue) {\n\t\t\trefFunc(ref, c, invisible == 0)\n\t\t},\n\t\tfunc(sa *spec.SchemaOrStringArray, c randfill.Continue) {\n\t\t\t*sa = spec.SchemaOrStringArray{}\n\t\t\tif c.Bool() {\n\t\t\t\tc.Fill(&sa.Schema)\n\t\t\t} else {\n\t\t\t\tc.Fill(&sa.Property)\n\t\t\t}\n\t\t\tif sa.Schema == nil && len(sa.Property) == 0 {\n\t\t\t\t*sa = spec.SchemaOrStringArray{Schema: &spec.Schema{}}\n\t\t\t}\n\t\t},\n\t\tfunc(url *spec.SchemaURL, c randfill.Continue) {\n\t\t\t*url = spec.SchemaURL(\"http://url\")\n\t\t},\n\t\tfunc(s *spec.Swagger, c randfill.Continue) {\n\t\t\tenter(s, false, c)\n\t\t\tdefer leave(false)\n\n\t\t\t// only fuzz those fields we walk into with invisible==false\n\t\t\tc.Fill(&s.Parameters)\n\t\t\tc.Fill(&s.Responses)\n\t\t\tc.Fill(&s.Definitions)\n\t\t\tc.Fill(&s.Paths)\n\t\t},\n\t\tfunc(p *spec.PathItem, c randfill.Continue) {\n\t\t\tenter(p, false, c)\n\t\t\tdefer leave(false)\n\n\t\t\t// only fuzz those fields we walk into with invisible==false\n\t\t\tc.Fill(&p.Parameters)\n\t\t\tc.Fill(&p.Delete)\n\t\t\tc.Fill(&p.Get)\n\t\t\tc.Fill(&p.Head)\n\t\t\tc.Fill(&p.Options)\n\t\t\tc.Fill(&p.Patch)\n\t\t\tc.Fill(&p.Post)\n\t\t\tc.Fill(&p.Put)\n\t\t},\n\t\tfunc(p *spec.Parameter, c randfill.Continue) {\n\t\t\tenter(p, false, c)\n\t\t\tdefer leave(false)\n\n\t\t\t// only fuzz those fields we walk into with invisible==false\n\t\t\tc.Fill(&p.Ref)\n\t\t\tc.Fill(&p.Schema)\n\t\t\tif c.Bool() {\n\t\t\t\tp.Items = &spec.Items{}\n\t\t\t\tc.Fill(&p.Items.Ref)\n\t\t\t} else {\n\t\t\t\tp.Items = nil\n\t\t\t}\n\t\t},\n\t\tfunc(s *spec.Response, c randfill.Continue) {\n\t\t\tenter(s, false, c)\n\t\t\tdefer leave(false)\n\n\t\t\t// only fuzz those fields we walk into with invisible==false\n\t\t\tc.Fill(&s.Ref)\n\t\t\tc.Fill(&s.Description)\n\t\t\tc.Fill(&s.Schema)\n\t\t\tc.Fill(&s.Examples)\n\t\t},\n\t\tfunc(s *spec.Dependencies, c randfill.Continue) {\n\t\t\tenter(s, false, c)\n\t\t\tdefer leave(false)\n\n\t\t\t// and nothing with invisible==false\n\t\t},\n\t\tfunc(p *spec.SimpleSchema, c randfill.Continue) {\n\t\t\t// randfill is broken and calls this even for *SimpleSchema fields, ignoring NilChance, leading to infinite recursion\n\t\t\tif c.Float64() > nilChance(depth) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tenter(p, true, c)\n\t\t\tdefer leave(true)\n\n\t\t\tc.FillNoCustom(p)\n\t\t},\n\t\tfunc(s *spec.SchemaProps, c randfill.Continue) {\n\t\t\t// randfill is broken and calls this even for *SchemaProps fields, ignoring NilChance, leading to infinite recursion\n\t\t\tif c.Float64() > nilChance(depth) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tenter(s, true, c)\n\t\t\tdefer leave(true)\n\n\t\t\tc.FillNoCustom(s)\n\t\t},\n\t\tfunc(i *interface{}, c randfill.Continue) {\n\t\t\t// do nothing for examples and defaults. These are free form JSON fields.\n\t\t},\n\t)\n}\n\nfunc TestReplaceReferences(t *testing.T) {\n\tvisibleRE, err := regexp.Compile(\"\\\"\\\\$ref\\\":\\\"(http://ref-[^\\\"]*)\\\"\")\n\tif err != nil {\n\t\tt.Fatalf(\"failed to compile ref regex: %v\", err)\n\t}\n\tinvisibleRE, err := regexp.Compile(\"\\\"\\\\$ref\\\":\\\"(http://invisible-[^\\\"]*)\\\"\")\n\tif err != nil {\n\t\tt.Fatalf(\"failed to compile ref regex: %v\", err)\n\t}\n\n\tfor i := 0; i < 1000; i++ {\n\t\tvar visibleRefs, invisibleRefs sets.String\n\t\tvar seed int64\n\t\tvar randSource rand.Source\n\t\tvar s *spec.Swagger\n\t\tfor {\n\t\t\tvisibleRefs = sets.NewString()\n\t\t\tinvisibleRefs = sets.NewString()\n\n\t\t\tf := randfill.New()\n\t\t\tseed = time.Now().UnixNano()\n\t\t\t//seed = int64(1549012506261785182)\n\t\t\trandSource = rand.New(rand.NewSource(seed))\n\t\t\tf.RandSource(randSource)\n\n\t\t\tvisibleRefsNum := 0\n\t\t\tinvisibleRefsNum := 0\n\t\t\tfuzzFuncs(f,\n\t\t\t\tfunc(ref *spec.Ref, c randfill.Continue, visible bool) {\n\t\t\t\t\tvar url string\n\t\t\t\t\tif visible {\n\t\t\t\t\t\t// this is a ref that is seen by the walker (we have some exceptions where we don't walk into)\n\t\t\t\t\t\turl = fmt.Sprintf(\"http://ref-%d\", visibleRefsNum)\n\t\t\t\t\t\tvisibleRefsNum++\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// this is a ref that is not seen by the walker (we have some exceptions where we don't walk into)\n\t\t\t\t\t\turl = fmt.Sprintf(\"http://invisible-%d\", invisibleRefsNum)\n\t\t\t\t\t\tinvisibleRefsNum++\n\t\t\t\t\t}\n\n\t\t\t\t\tr, err := spec.NewRef(url)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tt.Fatalf(\"failed to fuzz ref: %v\", err)\n\t\t\t\t\t}\n\t\t\t\t\t*ref = r\n\t\t\t\t},\n\t\t\t)\n\n\t\t\t// create random swagger spec with random URL references, but at least one ref\n\t\t\ts = &spec.Swagger{}\n\t\t\tf.Fill(s)\n\n\t\t\t// clone spec to normalize (fuzz might generate objects which do not roundtrip json marshalling\n\t\t\tvar err error\n\t\t\ts, err = cloneSwagger(s)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"failed to normalize swagger after fuzzing: %v\", err)\n\t\t\t}\n\n\t\t\t// find refs\n\t\t\tbs, err := s.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"failed to marshal swagger: %v\", err)\n\t\t\t}\n\t\t\tfor _, m := range invisibleRE.FindAllStringSubmatch(string(bs), -1) {\n\t\t\t\tinvisibleRefs.Insert(m[1])\n\t\t\t}\n\t\t\tif res := visibleRE.FindAllStringSubmatch(string(bs), -1); len(res) > 0 {\n\t\t\t\tfor _, m := range res {\n\t\t\t\t\tvisibleRefs.Insert(m[1])\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tt.Run(fmt.Sprintf(\"iteration %d\", i), func(t *testing.T) {\n\t\t\tmutatedRefs := sets.NewString()\n\t\t\tmutationProbability := rand.New(randSource).Float64()\n\t\t\tfor _, vr := range visibleRefs.List() {\n\t\t\t\tif rand.New(randSource).Float64() > mutationProbability {\n\t\t\t\t\tmutatedRefs.Insert(vr)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\torigString, err := s.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"failed to marshal swagger: %v\", err)\n\t\t\t}\n\t\t\tt.Logf(\"created schema with %d walked refs, %d invisible refs, mutating %v, seed %d: %s\", visibleRefs.Len(), invisibleRefs.Len(), mutatedRefs.List(), seed, string(origString))\n\n\t\t\t// convert to json string, replace one of the refs, and unmarshal back\n\t\t\tmutatedString := string(origString)\n\t\t\tfor _, r := range mutatedRefs.List() {\n\t\t\t\tmr := strings.Replace(r, \"ref\", \"mutated\", -1)\n\t\t\t\tmutatedString = strings.Replace(mutatedString, \"\\\"\"+r+\"\\\"\", \"\\\"\"+mr+\"\\\"\", -1)\n\t\t\t}\n\t\t\tmutatedViaJSON := &spec.Swagger{}\n\t\t\tif err := json.Unmarshal([]byte(mutatedString), mutatedViaJSON); err != nil {\n\t\t\t\tt.Fatalf(\"failed to unmarshal mutated spec: %v\", err)\n\t\t\t}\n\n\t\t\t// replay the same mutation using the mutating walker\n\t\t\tseenRefs := sets.NewString()\n\t\t\twalker := Walker{\n\t\t\t\tRefCallback: func(ref *spec.Ref) *spec.Ref {\n\t\t\t\t\tseenRefs.Insert(ref.String())\n\t\t\t\t\tif mutatedRefs.Has(ref.String()) {\n\t\t\t\t\t\tr, err := spec.NewRef(strings.Replace(ref.String(), \"ref\", \"mutated\", -1))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\tt.Fatalf(\"failed to create ref: %v\", err)\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn &r\n\t\t\t\t\t}\n\t\t\t\t\treturn ref\n\t\t\t\t},\n\t\t\t\tSchemaCallback: SchemaCallBackNoop,\n\t\t\t}\n\t\t\tmutatedViaWalker := walker.WalkRoot(s)\n\n\t\t\t// compare that we got the same\n\t\t\tif !reflect.DeepEqual(mutatedViaJSON, mutatedViaWalker) {\n\t\t\t\tt.Errorf(\"mutation via walker differ from JSON text replacement (got A, expected B): %s\", objectDiff(mutatedViaWalker, mutatedViaJSON))\n\t\t\t}\n\t\t\tif !seenRefs.HasAll(visibleRefs.List()...) {\n\t\t\t\tt.Errorf(\"expected to see the same refs in the walker as during fuzzing. Not seen: %v\", visibleRefs.Difference(seenRefs).List())\n\t\t\t}\n\t\t\tif shouldNotSee := seenRefs.Intersection(invisibleRefs); shouldNotSee.Len() > 0 {\n\t\t\t\tt.Errorf(\"refs seen that the walker is not expected to see: %v\", shouldNotSee.List())\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestReplaceSchema(t *testing.T) {\n\tfor i := 0; i < 1000; i++ {\n\t\tt.Run(fmt.Sprintf(\"iteration-%d\", i), func(t *testing.T) {\n\t\t\tseed := time.Now().UnixNano()\n\t\t\tf := randfill.NewWithSeed(seed).NilChance(0).MaxDepth(5)\n\t\t\trootSchema := &spec.Schema{}\n\t\t\tf.Funcs(func(s *spec.Schema, c randfill.Continue) {\n\t\t\t\tc.Fill(&s.Description)\n\t\t\t\ts.Description += \" original\"\n\t\t\t\tif c.Bool() {\n\t\t\t\t\t// append enums\n\t\t\t\t\tvar enums []string\n\t\t\t\t\tc.Fill(&enums)\n\t\t\t\t\tfor _, enum := range enums {\n\t\t\t\t\t\ts.Enum = append(s.Enum, enum)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif c.Bool() {\n\t\t\t\t\tc.Fill(&s.Properties)\n\t\t\t\t}\n\t\t\t\tif c.Bool() {\n\t\t\t\t\tc.Fill(&s.AdditionalProperties)\n\t\t\t\t}\n\t\t\t\tif c.Bool() {\n\t\t\t\t\tc.Fill(&s.PatternProperties)\n\t\t\t\t}\n\t\t\t\tif c.Bool() {\n\t\t\t\t\tc.Fill(&s.AdditionalItems)\n\t\t\t\t}\n\t\t\t\tif c.Bool() {\n\t\t\t\t\tc.Fill(&s.AnyOf)\n\t\t\t\t}\n\t\t\t\tif c.Bool() {\n\t\t\t\t\tc.Fill(&s.AllOf)\n\t\t\t\t}\n\t\t\t\tif c.Bool() {\n\t\t\t\t\tc.Fill(&s.OneOf)\n\t\t\t\t}\n\t\t\t\tif c.Bool() {\n\t\t\t\t\tc.Fill(&s.Not)\n\t\t\t\t}\n\t\t\t\tif c.Bool() {\n\t\t\t\t\tc.Fill(&s.Definitions)\n\t\t\t\t}\n\t\t\t\tif c.Bool() {\n\t\t\t\t\titems := new(spec.SchemaOrArray)\n\t\t\t\t\tif c.Bool() {\n\t\t\t\t\t\tc.Fill(&items.Schema)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tc.Fill(&items.Schemas)\n\t\t\t\t\t}\n\t\t\t\t\ts.Items = items\n\t\t\t\t}\n\t\t\t})\n\t\t\tf.Fill(rootSchema)\n\t\t\tw := &Walker{SchemaCallback: func(schema *spec.Schema) *spec.Schema {\n\t\t\t\ts := *schema\n\t\t\t\ts.Description = strings.Replace(s.Description, \"original\", \"modified\", -1)\n\t\t\t\treturn &s\n\t\t\t}, RefCallback: RefCallbackNoop}\n\t\t\tnewSchema := w.WalkSchema(rootSchema)\n\t\t\torigBytes, err := json.Marshal(rootSchema)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"cannot marshal original schema: %v\", err)\n\t\t\t}\n\t\t\torigJSON := string(origBytes)\n\t\t\tmutatedWithString := strings.Replace(origJSON, \"original\", \"modified\", -1)\n\t\t\tnewBytes, err := json.Marshal(newSchema)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"cannot marshal mutated schema: %v\", err)\n\t\t\t}\n\t\t\tif err := jsontesting.JsonCompare(newBytes, []byte(mutatedWithString)); err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t}\n\t\t\tif !strings.Contains(origJSON, `\"enum\":[`) {\n\t\t\t\tt.Logf(\"did not contain enum, skipping enum checks\")\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// test enum removal\n\t\t\tw = &Walker{SchemaCallback: func(schema *spec.Schema) *spec.Schema {\n\t\t\t\ts := *schema\n\t\t\t\ts.Enum = nil\n\t\t\t\treturn &s\n\t\t\t}, RefCallback: RefCallbackNoop}\n\t\t\tnewSchema = w.WalkSchema(rootSchema)\n\t\t\tnewBytes, err = json.Marshal(newSchema)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"cannot marshal mutated schema: %v\", err)\n\t\t\t}\n\t\t\tif strings.Contains(string(newBytes), `\"enum\":[`) {\n\t\t\t\tt.Errorf(\"enum still exists in %q\", newBytes)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc cloneSwagger(orig *spec.Swagger) (*spec.Swagger, error) {\n\tbs, err := orig.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error marshaling: %v\", err)\n\t}\n\ts := &spec.Swagger{}\n\tif err := json.Unmarshal(bs, s); err != nil {\n\t\treturn nil, fmt.Errorf(\"error unmarshaling: %v\", err)\n\t}\n\treturn s, nil\n}\n\n// stringDiff diffs a and b and returns a human readable diff.\nfunc stringDiff(a, b string) string {\n\tba := []byte(a)\n\tbb := []byte(b)\n\tout := []byte{}\n\ti := 0\n\tfor ; i < len(ba) && i < len(bb); i++ {\n\t\tif ba[i] != bb[i] {\n\t\t\tbreak\n\t\t}\n\t\tout = append(out, ba[i])\n\t}\n\tout = append(out, []byte(\"\\n\\nA: \")...)\n\tout = append(out, ba[i:]...)\n\tout = append(out, []byte(\"\\n\\nB: \")...)\n\tout = append(out, bb[i:]...)\n\tout = append(out, []byte(\"\\n\\n\")...)\n\treturn string(out)\n}\n\n// objectDiff writes the two objects out as JSON and prints out the identical part of\n// the objects followed by the remaining part of 'a' and finally the remaining part of 'b'.\n// For debugging tests.\nfunc objectDiff(a, b interface{}) string {\n\tab, err := json.Marshal(a)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"a: %v\", err))\n\t}\n\tbb, err := json.Marshal(b)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"b: %v\", err))\n\t}\n\treturn stringDiff(string(ab), string(bb))\n}\n\nfunc max(i, j int) int {\n\tif i > j {\n\t\treturn i\n\t}\n\treturn j\n}\n"
  },
  {
    "path": "pkg/spec3/benchmark_serialization_test.go",
    "content": "package spec3\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"sigs.k8s.io/randfill\"\n)\n\n// cmp.Diff panics when reflecting unexported fields under jsonreference.Ref\n// a custom comparator is required\nvar swaggerDiffOptions = []cmp.Option{cmp.Comparer(func(a spec.Ref, b spec.Ref) bool {\n\treturn a.String() == b.String()\n})}\n\nfunc TestOpenAPIV3RoundTrip(t *testing.T) {\n\tvar fuzzer *randfill.Filler\n\tfuzzer = randfill.NewWithSeed(1646791953)\n\t// Make sure we have enough depth such that maps do not yield nil elements\n\tfuzzer.MaxDepth(22).NilChance(0.5).NumElements(1, 7)\n\tfuzzer.Funcs(OpenAPIV3FuzzFuncs...)\n\texpected := &OpenAPI{}\n\tfuzzer.Fill(expected)\n\n\tj, err := json.Marshal(expected)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tvar actual *OpenAPI\n\terr = json.Unmarshal(j, &actual)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif !reflect.DeepEqual(expected, actual) {\n\t\tt.Fatal(cmp.Diff(expected, actual, swaggerDiffOptions...))\n\t}\n}\n\nfunc TestOpenAPIV3Deserialize(t *testing.T) {\n\tswagFile, err := os.Open(\"./testdata/appsv1spec.json\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tdefer swagFile.Close()\n\toriginalJSON, err := io.ReadAll(swagFile)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tinternal.UseOptimizedJSONUnmarshalingV3 = false\n\n\tvar result1 *OpenAPI\n\n\tif err := json.Unmarshal(originalJSON, &result1); err != nil {\n\t\tt.Fatal(err)\n\t}\n\tinternal.UseOptimizedJSONUnmarshalingV3 = true\n\tvar result2 *OpenAPI\n\tif err := json.Unmarshal(originalJSON, &result2); err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tif !reflect.DeepEqual(result1, result2) {\n\t\tt.Fatal(cmp.Diff(result1, result2, swaggerDiffOptions...))\n\t}\n}\n\nfunc TestOpenAPIV3Serialize(t *testing.T) {\n\tswagFile, err := os.Open(\"./testdata/appsv1spec.json\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tdefer swagFile.Close()\n\toriginalJSON, err := io.ReadAll(swagFile)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tvar openapi *OpenAPI\n\tif err := json.Unmarshal(originalJSON, &openapi); err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tinternal.UseOptimizedJSONUnmarshalingV3 = false\n\twant, err := json.Marshal(openapi)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tinternal.UseOptimizedJSONUnmarshalingV3 = true\n\tgot, err := openapi.MarshalJSON()\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif err := jsontesting.JsonCompare(want, got); err != nil {\n\t\tt.Errorf(\"marshal doesn't match: %v\", err)\n\t}\n}\n\nfunc TestOpenAPIV3SerializeFuzzed(t *testing.T) {\n\tvar fuzzer *randfill.Filler\n\tfuzzer = randfill.NewWithSeed(1646791953)\n\tfuzzer.MaxDepth(13).NilChance(0.075).NumElements(1, 2)\n\tfuzzer.Funcs(OpenAPIV3FuzzFuncs...)\n\n\tfor i := 0; i < 100; i++ {\n\t\topenapi := &OpenAPI{}\n\t\tfuzzer.Fill(openapi)\n\n\t\tinternal.UseOptimizedJSONUnmarshalingV3 = false\n\t\twant, err := json.Marshal(openapi)\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\t\tinternal.UseOptimizedJSONUnmarshalingV3 = true\n\t\tgot, err := openapi.MarshalJSON()\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\t\tif err := jsontesting.JsonCompare(want, got); err != nil {\n\t\t\tt.Errorf(\"fuzzed marshal doesn't match: %v\", err)\n\t\t}\n\t}\n}\n\nfunc TestOpenAPIV3SerializeStable(t *testing.T) {\n\tswagFile, err := os.Open(\"./testdata/appsv1spec.json\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tdefer swagFile.Close()\n\toriginalJSON, err := io.ReadAll(swagFile)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tvar openapi *OpenAPI\n\tif err := json.Unmarshal(originalJSON, &openapi); err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tinternal.UseOptimizedJSONUnmarshalingV3 = true\n\tfor i := 0; i < 5; i++ {\n\t\tt.Run(fmt.Sprintf(\"%d\", i), func(t *testing.T) {\n\t\t\twant, err := openapi.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tgot, err := openapi.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tif err := jsontesting.JsonCompare(want, got); err != nil {\n\t\t\t\tt.Errorf(\"marshal doesn't match: %v\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc BenchmarkOpenAPIV3Deserialize(b *testing.B) {\n\tbenchcases := []struct {\n\t\tfile string\n\t}{\n\t\t{\n\t\t\tfile: \"appsv1spec.json\",\n\t\t},\n\t\t{\n\t\t\tfile: \"authorizationv1spec.json\",\n\t\t},\n\t}\n\tfor _, bc := range benchcases {\n\t\tswagFile, err := os.Open(\"./testdata/\" + bc.file)\n\t\tif err != nil {\n\t\t\tb.Fatal(err)\n\t\t}\n\t\tdefer swagFile.Close()\n\t\toriginalJSON, err := io.ReadAll(swagFile)\n\t\tif err != nil {\n\t\t\tb.Fatal(err)\n\t\t}\n\t\tb.ResetTimer()\n\t\tb.Run(fmt.Sprintf(\"%s jsonv1\", bc.file), func(b2 *testing.B) {\n\t\t\tb2.ReportAllocs()\n\t\t\tinternal.UseOptimizedJSONUnmarshaling = false\n\t\t\tinternal.UseOptimizedJSONUnmarshalingV3 = false\n\t\t\tfor i := 0; i < b2.N; i++ {\n\t\t\t\tvar result *OpenAPI\n\t\t\t\tif err := json.Unmarshal(originalJSON, &result); err != nil {\n\t\t\t\t\tb2.Fatal(err)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tb.Run(fmt.Sprintf(\"%s jsonv2 via jsonv1 schema only\", bc.file), func(b2 *testing.B) {\n\t\t\tb2.ReportAllocs()\n\t\t\tinternal.UseOptimizedJSONUnmarshaling = true\n\t\t\tinternal.UseOptimizedJSONUnmarshalingV3 = false\n\t\t\tfor i := 0; i < b2.N; i++ {\n\t\t\t\tvar result *OpenAPI\n\t\t\t\tif err := json.Unmarshal(originalJSON, &result); err != nil {\n\t\t\t\t\tb2.Fatal(err)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tb.Run(fmt.Sprintf(\"%s jsonv2 via jsonv1 full spec\", bc.file), func(b2 *testing.B) {\n\t\t\tb2.ReportAllocs()\n\t\t\tinternal.UseOptimizedJSONUnmarshaling = true\n\t\t\tinternal.UseOptimizedJSONUnmarshalingV3 = true\n\t\t\tfor i := 0; i < b2.N; i++ {\n\t\t\t\tvar result *OpenAPI\n\t\t\t\tif err := json.Unmarshal(originalJSON, &result); err != nil {\n\t\t\t\t\tb2.Fatal(err)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tb.Run(\"jsonv2\", func(b2 *testing.B) {\n\t\t\tb2.ReportAllocs()\n\t\t\tinternal.UseOptimizedJSONUnmarshaling = true\n\t\t\tinternal.UseOptimizedJSONUnmarshalingV3 = true\n\t\t\tfor i := 0; i < b2.N; i++ {\n\t\t\t\tvar result *OpenAPI\n\t\t\t\tif err := result.UnmarshalJSON(originalJSON); err != nil {\n\t\t\t\t\tb2.Fatal(err)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc BenchmarkOpenAPIV3Serialize(b *testing.B) {\n\tbenchcases := []struct {\n\t\tfile string\n\t}{\n\t\t{\n\t\t\tfile: \"appsv1spec.json\",\n\t\t},\n\t\t{\n\t\t\tfile: \"authorizationv1spec.json\",\n\t\t},\n\t}\n\tfor _, bc := range benchcases {\n\t\tswagFile, err := os.Open(\"./testdata/\" + bc.file)\n\t\tif err != nil {\n\t\t\tb.Fatal(err)\n\t\t}\n\t\tdefer swagFile.Close()\n\t\toriginalJSON, err := io.ReadAll(swagFile)\n\t\tif err != nil {\n\t\t\tb.Fatal(err)\n\t\t}\n\t\tvar openapi *OpenAPI\n\t\tif err := json.Unmarshal(originalJSON, &openapi); err != nil {\n\t\t\tb.Fatal(err)\n\t\t}\n\t\tb.ResetTimer()\n\t\tb.Run(fmt.Sprintf(\"%s jsonv1\", bc.file), func(b2 *testing.B) {\n\t\t\tb2.ReportAllocs()\n\t\t\tinternal.UseOptimizedJSONMarshalingV3 = false\n\t\t\tfor i := 0; i < b2.N; i++ {\n\t\t\t\tif _, err := json.Marshal(openapi); err != nil {\n\t\t\t\t\tb2.Fatal(err)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tb.Run(fmt.Sprintf(\"%s jsonv2 via jsonv1 full spec\", bc.file), func(b2 *testing.B) {\n\t\t\tb2.ReportAllocs()\n\t\t\tinternal.UseOptimizedJSONMarshalingV3 = true\n\t\t\tfor i := 0; i < b2.N; i++ {\n\t\t\t\tif _, err := json.Marshal(openapi); err != nil {\n\t\t\t\t\tb2.Fatal(err)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tb.Run(\"jsonv2\", func(b2 *testing.B) {\n\t\t\tb2.ReportAllocs()\n\t\t\tinternal.UseOptimizedJSONMarshalingV3 = true\n\t\t\tfor i := 0; i < b2.N; i++ {\n\t\t\t\tif _, err := openapi.MarshalJSON(); err != nil {\n\t\t\t\t\tb2.Fatal(err)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/component.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport \"k8s.io/kube-openapi/pkg/validation/spec\"\n\n// Components holds a set of reusable objects for different aspects of the OAS.\n// All objects defined within the components object will have no effect on the API\n// unless they are explicitly referenced from properties outside the components object.\n//\n// more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#componentsObject\ntype Components struct {\n\t// Schemas holds reusable Schema Objects\n\tSchemas map[string]*spec.Schema `json:\"schemas,omitempty\"`\n\t// SecuritySchemes holds reusable Security Scheme Objects, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#securitySchemeObject\n\tSecuritySchemes SecuritySchemes `json:\"securitySchemes,omitempty\"`\n\t// Responses holds reusable Responses Objects\n\tResponses map[string]*Response `json:\"responses,omitempty\"`\n\t// Parameters holds reusable Parameters Objects\n\tParameters map[string]*Parameter `json:\"parameters,omitempty\"`\n\t// Example holds reusable Example objects\n\tExamples map[string]*Example `json:\"examples,omitempty\"`\n\t// RequestBodies holds reusable Request Body objects\n\tRequestBodies map[string]*RequestBody `json:\"requestBodies,omitempty\"`\n\t// Links is a map of operations links that can be followed from the response\n\tLinks map[string]*Link `json:\"links,omitempty\"`\n\t// Headers holds a maps of a headers name to its definition\n\tHeaders map[string]*Header `json:\"headers,omitempty\"`\n\t// all fields are defined at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#componentsObject\n}\n\n// SecuritySchemes holds reusable Security Scheme Objects, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#securitySchemeObject\ntype SecuritySchemes map[string]*SecurityScheme\n"
  },
  {
    "path": "pkg/spec3/component_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\n\t\"reflect\"\n\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n)\n\nfunc TestSchemasJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         spec3.Components\n\t\texpectedOutput string\n\t}{\n\t\t{\n\t\t\tname: \"scenario1: smoke test serialization of spec3.Components.Schemas\",\n\t\t\ttarget: spec3.Components{\n\t\t\t\tSchemas: map[string]*spec.Schema{\n\t\t\t\t\t\"io.k8s.api.admissionregistration.v1beta1.MutatingWebhook\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDescription: \"MutatingWebhook describes an admission webhook and the resources and operations it applies to.\",\n\t\t\t\t\t\t\tType:        []string{\"object\"},\n\t\t\t\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\t\t\t\"name\": {\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDescription: \"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.\",\n\t\t\t\t\t\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:      \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"clientConfig\": {\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDescription: \"ClientConfig defines how to communicate with the hook. Required\",\n\t\t\t\t\t\t\t\t\t\tRef:         spec.MustCreateRef(\"k8s.io/api/admissionregistration/v1beta1.WebhookClientConfig\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"rules\": {\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDescription: \"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.\",\n\t\t\t\t\t\t\t\t\t\tType:        []string{\"array\"},\n\t\t\t\t\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\t\t\t\tRef: spec.MustCreateRef(\"k8s.io/api/admissionregistration/v1beta1.RuleWithOperations\"),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"failurePolicy\": {\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDescription: \"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.\",\n\t\t\t\t\t\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:      \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"matchPolicy\": {\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDescription: \"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\\\"\",\n\t\t\t\t\t\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:      \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"namespaceSelector\": {\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDescription: \"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.\",\n\t\t\t\t\t\t\t\t\t\tRef:         spec.MustCreateRef(\"k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"objectSelector\": {\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDescription: \"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.\",\n\t\t\t\t\t\t\t\t\t\tRef:         spec.MustCreateRef(\"k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"sideEffects\": {\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDescription: \"SideEffects states whether this webhookk 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.\",\n\t\t\t\t\t\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:      \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"timeoutSeconds\": {\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDescription: \"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.\",\n\t\t\t\t\t\t\t\t\t\tType:        []string{\"integer\"},\n\t\t\t\t\t\t\t\t\t\tFormat:      \"int32\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"admissionReviewVersions\": {\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDescription: \"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'].\",\n\t\t\t\t\t\t\t\t\t\tType:        []string{\"array\"},\n\t\t\t\t\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\t\t\t\tType:   []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\t\t\t\tFormat: \"\",\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"reinvocationPolicy\": {\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDescription: \"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\\\".\",\n\t\t\t\t\t\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:      \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tRequired: []string{\"name\", \"clientConfig\"},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"schemas\":{\"io.k8s.api.admissionregistration.v1beta1.MutatingWebhook\":{\"description\":\"MutatingWebhook describes an admission webhook and the resources and operations it applies to.\",\"type\":\"object\",\"required\":[\"name\",\"clientConfig\"],\"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'].\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"clientConfig\":{\"description\":\"ClientConfig defines how to communicate with the hook. Required\",\"$ref\":\"k8s.io/api/admissionregistration/v1beta1.WebhookClientConfig\"},\"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\":{\"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.\",\"$ref\":\"k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector\"},\"objectSelector\":{\"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.\",\"$ref\":\"k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"k8s.io/api/admissionregistration/v1beta1.RuleWithOperations\"}},\"sideEffects\":{\"description\":\"SideEffects states whether this webhookk 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.\",\"type\":\"integer\",\"format\":\"int32\"}}}}}`,\n\t\t},\n\n\t\t// scenario 2\n\t\t{\n\t\t\tname: \"scenario2: schema can be defined as a ref, see: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#componentsObject\",\n\t\t\ttarget: spec3.Components{\n\t\t\t\tSchemas: map[string]*spec.Schema{\n\t\t\t\t\t\"io.k8s.api.admissionregistration.v1beta1.MutatingWebhook\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tRef: spec.MustCreateRef(\"k8s.io/api/admissionregistration/v1beta1.WebhookClientConfig\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"schemas\":{\"io.k8s.api.admissionregistration.v1beta1.MutatingWebhook\":{\"$ref\":\"k8s.io/api/admissionregistration/v1beta1.WebhookClientConfig\"}}}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tif err := jsontesting.JsonCompare([]byte(tc.expectedOutput), rawTarget); err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t}\n\n\t\t\tvar expected spec3.Components\n\t\t\tjson.Unmarshal(rawTarget, &expected)\n\n\t\t\tif !reflect.DeepEqual(expected, tc.target) {\n\t\t\t\tt.Fatalf(\"round trip error %s\", tc.name)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/encoding.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\ntype Encoding struct {\n\tEncodingProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Encoding as JSON\nfunc (e *Encoding) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(e)\n\t}\n\tb1, err := json.Marshal(e.EncodingProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(e.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (e *Encoding) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tEncodingProps encodingPropsOmitZero `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Extensions = internal.SanitizeExtensions(e.Extensions)\n\tx.EncodingProps = encodingPropsOmitZero(e.EncodingProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (e *Encoding) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, e)\n\t}\n\tif err := json.Unmarshal(data, &e.EncodingProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &e.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (e *Encoding) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tEncodingProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\n\te.Extensions = internal.SanitizeExtensions(x.Extensions)\n\te.EncodingProps = x.EncodingProps\n\treturn nil\n}\n\ntype EncodingProps struct {\n\t// Content Type for encoding a specific property\n\tContentType string `json:\"contentType,omitempty\"`\n\t// A map allowing additional information to be provided as headers\n\tHeaders map[string]*Header `json:\"headers,omitempty\"`\n\t// Describes how a specific property value will be serialized depending on its type\n\tStyle string `json:\"style,omitempty\"`\n\t// When this is true, property values of type array or object generate separate parameters for each value of the array, or key-value-pair of the map. For other types of properties this property has no effect\n\tExplode bool `json:\"explode,omitempty\"`\n\t// AllowReserved determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986\n\tAllowReserved bool `json:\"allowReserved,omitempty\"`\n}\n\ntype encodingPropsOmitZero struct {\n\tContentType   string             `json:\"contentType,omitempty\"`\n\tHeaders       map[string]*Header `json:\"headers,omitempty\"`\n\tStyle         string             `json:\"style,omitempty\"`\n\tExplode       bool               `json:\"explode,omitzero\"`\n\tAllowReserved bool               `json:\"allowReserved,omitzero\"`\n}\n"
  },
  {
    "path": "pkg/spec3/encoding_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/require\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestEncodingRoundtrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Roundtrip\",\n\t\t\tObject: &spec3.Encoding{\n\t\t\t\tspec3.EncodingProps{\n\t\t\t\t\tContentType: \"image/png\",\n\t\t\t\t},\n\t\t\t\tspec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.Encoding{}))\n\t\t})\n\t}\n}\n\nfunc TestEncodingJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         *spec3.Encoding\n\t\texpectedOutput string\n\t}{\n\t\t// scenario 1\n\t\t{\n\t\t\tname: \"basic\",\n\t\t\ttarget: &spec3.Encoding{\n\t\t\t\tEncodingProps: spec3.EncodingProps{\n\t\t\t\t\tContentType: \"image/png\",\n\t\t\t\t\tHeaders: map[string]*spec3.Header{\n\t\t\t\t\t\t\"X-Rate-Limit-Limit\": {\n\t\t\t\t\t\t\tHeaderProps: spec3.HeaderProps{\n\t\t\t\t\t\t\t\tDescription: \"The number of allowed requests in the current period\",\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tType: []string{\"integer\"},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"contentType\":\"image/png\",\"headers\":{\"X-Rate-Limit-Limit\":{\"description\":\"The number of allowed requests in the current period\",\"schema\":{\"type\":\"integer\"}}}}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tserializedTarget := string(rawTarget)\n\t\t\tif !cmp.Equal(serializedTarget, tc.expectedOutput) {\n\t\t\t\tt.Fatalf(\"diff %s\", cmp.Diff(serializedTarget, tc.expectedOutput))\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/example.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Example https://swagger.io/specification/#example-object\n\ntype Example struct {\n\tspec.Refable\n\tExampleProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode RequestBody as JSON\nfunc (e *Example) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(e)\n\t}\n\tb1, err := json.Marshal(e.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(e.ExampleProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(e.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\nfunc (e *Example) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef          string `json:\"$ref,omitempty\"`\n\t\tExampleProps `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Ref = e.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(e.Extensions)\n\tx.ExampleProps = e.ExampleProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (e *Example) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, e)\n\t}\n\tif err := json.Unmarshal(data, &e.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &e.ExampleProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &e.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (e *Example) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tExampleProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&e.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\te.Extensions = internal.SanitizeExtensions(x.Extensions)\n\te.ExampleProps = x.ExampleProps\n\n\treturn nil\n}\n\ntype ExampleProps struct {\n\t// Summary holds a short description of the example\n\tSummary string `json:\"summary,omitempty\"`\n\t// Description holds a long description of the example\n\tDescription string `json:\"description,omitempty\"`\n\t// Embedded literal example.\n\tValue interface{} `json:\"value,omitempty\"`\n\t// A URL that points to the literal example. This provides the capability to reference examples that cannot easily be included in JSON or YAML documents.\n\tExternalValue string `json:\"externalValue,omitempty\"`\n}\n"
  },
  {
    "path": "pkg/spec3/example_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/require\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestExampleRoundtrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Roundtrip\",\n\t\t\tObject: &spec3.Example{\n\t\t\t\tspec.Refable{Ref: spec.MustCreateRef(\"Dog\")},\n\t\t\t\tspec3.ExampleProps{\n\t\t\t\t\tDescription: \"foo\",\n\t\t\t\t},\n\t\t\t\tspec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.Example{}))\n\t\t})\n\t}\n}\n\nfunc TestExampleJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         *spec3.Example\n\t\texpectedOutput string\n\t}{\n\t\t{\n\t\t\tname: \"basic\",\n\t\t\ttarget: &spec3.Example{\n\t\t\t\tExampleProps: spec3.ExampleProps{\n\t\t\t\t\tSummary: \"An example\",\n\t\t\t\t\tValue:   map[string]string{\"foo\": \"bar\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"summary\":\"An example\",\"value\":{\"foo\":\"bar\"}}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tserializedTarget := string(rawTarget)\n\t\t\tif !cmp.Equal(serializedTarget, tc.expectedOutput) {\n\t\t\t\tt.Fatalf(\"diff %s\", cmp.Diff(serializedTarget, tc.expectedOutput))\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/external_documentation.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\ntype ExternalDocumentation struct {\n\tExternalDocumentationProps\n\tspec.VendorExtensible\n}\n\ntype ExternalDocumentationProps struct {\n\t// Description is a short description of the target documentation. CommonMark syntax MAY be used for rich text representation.\n\tDescription string `json:\"description,omitempty\"`\n\t// URL is the URL for the target documentation.\n\tURL string `json:\"url\"`\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Responses as JSON\nfunc (e *ExternalDocumentation) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(e)\n\t}\n\tb1, err := json.Marshal(e.ExternalDocumentationProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(e.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (e *ExternalDocumentation) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExternalDocumentationProps `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Extensions = internal.SanitizeExtensions(e.Extensions)\n\tx.ExternalDocumentationProps = e.ExternalDocumentationProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (e *ExternalDocumentation) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, e)\n\t}\n\tif err := json.Unmarshal(data, &e.ExternalDocumentationProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &e.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (e *ExternalDocumentation) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tExternalDocumentationProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\te.Extensions = internal.SanitizeExtensions(x.Extensions)\n\te.ExternalDocumentationProps = x.ExternalDocumentationProps\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/spec3/external_documentation_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/require\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestExternalDocumentationRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Roundtrip\",\n\t\t\tObject: &spec3.ExternalDocumentation{\n\t\t\t\tspec3.ExternalDocumentationProps{\n\t\t\t\t\tDescription: \"foo\",\n\t\t\t\t},\n\t\t\t\tspec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.ExternalDocumentation{}))\n\t\t})\n\t}\n}\n\nfunc TestExternalDocumentationJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         *spec3.ExternalDocumentation\n\t\texpectedOutput string\n\t}{\n\t\t// scenario 1\n\t\t{\n\t\t\tname: \"basic\",\n\t\t\ttarget: &spec3.ExternalDocumentation{\n\t\t\t\tExternalDocumentationProps: spec3.ExternalDocumentationProps{\n\t\t\t\t\tDescription: \"Find more info here\",\n\t\t\t\t\tURL:         \"https://example.com\",\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"description\":\"Find more info here\",\"url\":\"https://example.com\"}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tserializedTarget := string(rawTarget)\n\t\t\tif !cmp.Equal(serializedTarget, tc.expectedOutput) {\n\t\t\t\tt.Fatalf(\"diff %s\", cmp.Diff(serializedTarget, tc.expectedOutput))\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/fuzz.go",
    "content": "package spec3\n\nimport (\n\t\"math/rand\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/randfill\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// refChance is the chance that a particular component will use a $ref\n// instead of fuzzed. Expressed as a fraction 1/n, currently there is\n// a 1/3 chance that a ref will be used.\nconst refChance = 3\n\nconst alphaNumChars = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n\nfunc randAlphanumString() string {\n\tarr := make([]string, rand.Intn(10)+5)\n\tfor i := 0; i < len(arr); i++ {\n\t\tarr[i] = string(alphaNumChars[rand.Intn(len(alphaNumChars))])\n\t}\n\treturn strings.Join(arr, \"\")\n}\n\nvar OpenAPIV3FuzzFuncs []interface{} = []interface{}{\n\tfunc(s *string, c randfill.Continue) {\n\t\t// All OpenAPI V3 map keys must follow the corresponding\n\t\t// regex. Note that this restricts the range for all other\n\t\t// string values as well.\n\t\tstr := randAlphanumString()\n\t\t*s = str\n\t},\n\tfunc(o *OpenAPI, c randfill.Continue) {\n\t\tc.FillNoCustom(o)\n\t\to.Version = \"3.0.0\"\n\t\tfor i, val := range o.SecurityRequirement {\n\t\t\tif val == nil {\n\t\t\t\to.SecurityRequirement[i] = make(map[string][]string)\n\t\t\t}\n\n\t\t\tfor k, v := range val {\n\t\t\t\tif v == nil {\n\t\t\t\t\tval[k] = make([]string, 0)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t},\n\tfunc(r *interface{}, c randfill.Continue) {\n\t\tswitch c.Intn(3) {\n\t\tcase 0:\n\t\t\t*r = nil\n\t\tcase 1:\n\t\t\tn := c.String(0) + \"x\"\n\t\t\t*r = n\n\t\tcase 2:\n\t\t\tn := c.Float64()\n\t\t\t*r = n\n\t\t}\n\t},\n\tfunc(v **spec.Info, c randfill.Continue) {\n\t\t// Info is never nil\n\t\t*v = &spec.Info{}\n\t\tc.FillNoCustom(*v)\n\t\t(*v).Title = c.String(0) + \"x\"\n\t},\n\tfunc(v *Paths, c randfill.Continue) {\n\t\tc.Fill(&v.VendorExtensible)\n\t\tnum := c.Intn(5)\n\t\tif num > 0 {\n\t\t\tv.Paths = make(map[string]*Path)\n\t\t}\n\t\tfor i := 0; i < num; i++ {\n\t\t\tval := Path{}\n\t\t\tc.Fill(&val)\n\t\t\tv.Paths[\"/\"+c.String(0)] = &val\n\t\t}\n\t},\n\tfunc(v *SecurityScheme, c randfill.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fill(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tswitch c.Intn(4) {\n\t\tcase 0:\n\t\t\tv.Type = \"apiKey\"\n\t\t\tv.Name = c.String(0) + \"x\"\n\t\t\tswitch c.Intn(3) {\n\t\t\tcase 0:\n\t\t\t\tv.In = \"query\"\n\t\t\tcase 1:\n\t\t\t\tv.In = \"header\"\n\t\t\tcase 2:\n\t\t\t\tv.In = \"cookie\"\n\t\t\t}\n\t\tcase 1:\n\t\t\tv.Type = \"http\"\n\t\tcase 2:\n\t\t\tv.Type = \"oauth2\"\n\t\t\tv.Flows = make(map[string]*OAuthFlow)\n\t\t\tflow := OAuthFlow{}\n\t\t\tflow.AuthorizationUrl = c.String(0) + \"x\"\n\t\t\tv.Flows[\"implicit\"] = &flow\n\t\t\tflow.Scopes = make(map[string]string)\n\t\t\tflow.Scopes[\"foo\"] = \"bar\"\n\t\tcase 3:\n\t\t\tv.Type = \"openIdConnect\"\n\t\t\tv.OpenIdConnectUrl = \"https://\" + c.String(0)\n\t\t}\n\t\tv.Scheme = \"basic\"\n\t},\n\tfunc(v *spec.Ref, c randfill.Continue) {\n\t\tswitch c.Intn(7) {\n\t\tcase 0:\n\t\t\t*v = spec.MustCreateRef(\"#/components/schemas/\" + randAlphanumString())\n\t\tcase 1:\n\t\t\t*v = spec.MustCreateRef(\"#/components/responses/\" + randAlphanumString())\n\t\tcase 2:\n\t\t\t*v = spec.MustCreateRef(\"#/components/headers/\" + randAlphanumString())\n\t\tcase 3:\n\t\t\t*v = spec.MustCreateRef(\"#/components/securitySchemes/\" + randAlphanumString())\n\t\tcase 5:\n\t\t\t*v = spec.MustCreateRef(\"#/components/parameters/\" + randAlphanumString())\n\t\tcase 6:\n\t\t\t*v = spec.MustCreateRef(\"#/components/requestBodies/\" + randAlphanumString())\n\t\t}\n\t},\n\tfunc(v *Parameter, c randfill.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fill(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tc.Fill(&v.ParameterProps)\n\t\tc.Fill(&v.VendorExtensible)\n\n\t\tswitch c.Intn(3) {\n\t\tcase 0:\n\t\t\t// Header param\n\t\t\tv.In = \"query\"\n\t\tcase 1:\n\t\t\tv.In = \"header\"\n\t\tcase 2:\n\t\t\tv.In = \"cookie\"\n\t\t}\n\t},\n\tfunc(v *RequestBody, c randfill.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fill(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tc.Fill(&v.RequestBodyProps)\n\t\tc.Fill(&v.VendorExtensible)\n\t},\n\tfunc(v *Header, c randfill.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fill(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tc.Fill(&v.HeaderProps)\n\t\tc.Fill(&v.VendorExtensible)\n\t},\n\tfunc(v *ResponsesProps, c randfill.Continue) {\n\t\tc.Fill(&v.Default)\n\t\tn := c.Intn(5)\n\t\tfor i := 0; i < n; i++ {\n\t\t\tr2 := Response{}\n\t\t\tc.Fill(&r2)\n\t\t\t// HTTP Status code in 100-599 Range\n\t\t\tcode := c.Intn(500) + 100\n\t\t\tv.StatusCodeResponses = make(map[int]*Response)\n\t\t\tv.StatusCodeResponses[code] = &r2\n\t\t}\n\t},\n\tfunc(v *Response, c randfill.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fill(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tc.Fill(&v.ResponseProps)\n\t\tc.Fill(&v.VendorExtensible)\n\t},\n\tfunc(v *Operation, c randfill.Continue) {\n\t\tc.FillNoCustom(v)\n\t\t// Do not fuzz null values into the array.\n\t\tfor i, val := range v.SecurityRequirement {\n\t\t\tif val == nil {\n\t\t\t\tv.SecurityRequirement[i] = make(map[string][]string)\n\t\t\t}\n\n\t\t\tfor k, v := range val {\n\t\t\t\tif v == nil {\n\t\t\t\t\tval[k] = make([]string, 0)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v *spec.Extensions, c randfill.Continue) {\n\t\tnumChildren := c.Intn(5)\n\t\tfor i := 0; i < numChildren; i++ {\n\t\t\tif *v == nil {\n\t\t\t\t*v = spec.Extensions{}\n\t\t\t}\n\t\t\t(*v)[\"x-\"+c.String(0)] = c.String(0)\n\t\t}\n\t},\n\tfunc(v *spec.ExternalDocumentation, c randfill.Continue) {\n\t\tc.Fill(&v.Description)\n\t\tv.URL = \"https://\" + randAlphanumString()\n\t},\n\tfunc(v *spec.SchemaURL, c randfill.Continue) {\n\t\t*v = spec.SchemaURL(\"https://\" + randAlphanumString())\n\t},\n\tfunc(v *spec.SchemaOrBool, c randfill.Continue) {\n\t\t*v = spec.SchemaOrBool{}\n\n\t\tif c.Bool() {\n\t\t\tv.Allows = c.Bool()\n\t\t} else {\n\t\t\tv.Schema = &spec.Schema{}\n\t\t\tv.Allows = true\n\t\t\tc.Fill(&v.Schema)\n\t\t}\n\t},\n\tfunc(v *spec.SchemaOrArray, c randfill.Continue) {\n\t\t*v = spec.SchemaOrArray{}\n\t\tif c.Bool() {\n\t\t\tschema := spec.Schema{}\n\t\t\tc.Fill(&schema)\n\t\t\tv.Schema = &schema\n\t\t} else {\n\t\t\tv.Schemas = []spec.Schema{}\n\t\t\tnumChildren := c.Intn(5)\n\t\t\tfor i := 0; i < numChildren; i++ {\n\t\t\t\tschema := spec.Schema{}\n\t\t\t\tc.Fill(&schema)\n\t\t\t\tv.Schemas = append(v.Schemas, schema)\n\t\t\t}\n\n\t\t}\n\n\t},\n\tfunc(v *spec.SchemaOrStringArray, c randfill.Continue) {\n\t\tif c.Bool() {\n\t\t\t*v = spec.SchemaOrStringArray{}\n\t\t\tif c.Bool() {\n\t\t\t\tc.Fill(&v.Property)\n\t\t\t} else {\n\t\t\t\tc.Fill(&v.Schema)\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v *spec.Schema, c randfill.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fill(&v.Ref)\n\t\t\treturn\n\t\t}\n\t\tif c.Bool() {\n\t\t\t// file schema\n\t\t\tc.Fill(&v.Default)\n\t\t\tc.Fill(&v.Description)\n\t\t\tc.Fill(&v.Example)\n\t\t\tc.Fill(&v.ExternalDocs)\n\n\t\t\tc.Fill(&v.Format)\n\t\t\tc.Fill(&v.ReadOnly)\n\t\t\tc.Fill(&v.Required)\n\t\t\tc.Fill(&v.Title)\n\t\t\tv.Type = spec.StringOrArray{\"file\"}\n\n\t\t} else {\n\t\t\t// normal schema\n\t\t\tc.Fill(&v.SchemaProps)\n\t\t\tc.Fill(&v.SwaggerSchemaProps)\n\t\t\tc.Fill(&v.VendorExtensible)\n\t\t\tc.Fill(&v.ExtraProps)\n\t\t}\n\n\t},\n}\n"
  },
  {
    "path": "pkg/spec3/header.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Header a struct that describes a single operation parameter, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#parameterObject\n//\n// Note that this struct is actually a thin wrapper around HeaderProps to make it referable and extensible\ntype Header struct {\n\tspec.Refable\n\tHeaderProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Header as JSON\nfunc (h *Header) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(h)\n\t}\n\tb1, err := json.Marshal(h.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(h.HeaderProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(h.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (h *Header) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef         string              `json:\"$ref,omitempty\"`\n\t\tHeaderProps headerPropsOmitZero `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Ref = h.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(h.Extensions)\n\tx.HeaderProps = headerPropsOmitZero(h.HeaderProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (h *Header) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, h)\n\t}\n\tif err := json.Unmarshal(data, &h.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.HeaderProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (h *Header) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tHeaderProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&h.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\th.Extensions = internal.SanitizeExtensions(x.Extensions)\n\th.HeaderProps = x.HeaderProps\n\treturn nil\n}\n\n// HeaderProps a struct that describes a header object\ntype HeaderProps struct {\n\t// Description holds a brief description of the parameter\n\tDescription string `json:\"description,omitempty\"`\n\t// Required determines whether this parameter is mandatory\n\tRequired bool `json:\"required,omitempty\"`\n\t// Deprecated declares this operation to be deprecated\n\tDeprecated bool `json:\"deprecated,omitempty\"`\n\t// AllowEmptyValue sets the ability to pass empty-valued parameters\n\tAllowEmptyValue bool `json:\"allowEmptyValue,omitempty\"`\n\t// Style describes how the parameter value will be serialized depending on the type of the parameter value\n\tStyle string `json:\"style,omitempty\"`\n\t// Explode when true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map\n\tExplode bool `json:\"explode,omitempty\"`\n\t// AllowReserved determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986\n\tAllowReserved bool `json:\"allowReserved,omitempty\"`\n\t// Schema holds the schema defining the type used for the parameter\n\tSchema *spec.Schema `json:\"schema,omitempty\"`\n\t// Content holds a map containing the representations for the parameter\n\tContent map[string]*MediaType `json:\"content,omitempty\"`\n\t// Example of the header\n\tExample interface{} `json:\"example,omitempty\"`\n\t// Examples of the header\n\tExamples map[string]*Example `json:\"examples,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype headerPropsOmitZero struct {\n\tDescription     string                `json:\"description,omitempty\"`\n\tRequired        bool                  `json:\"required,omitzero\"`\n\tDeprecated      bool                  `json:\"deprecated,omitzero\"`\n\tAllowEmptyValue bool                  `json:\"allowEmptyValue,omitzero\"`\n\tStyle           string                `json:\"style,omitempty\"`\n\tExplode         bool                  `json:\"explode,omitzero\"`\n\tAllowReserved   bool                  `json:\"allowReserved,omitzero\"`\n\tSchema          *spec.Schema          `json:\"schema,omitzero\"`\n\tContent         map[string]*MediaType `json:\"content,omitempty\"`\n\tExample         interface{}           `json:\"example,omitempty\"`\n\tExamples        map[string]*Example   `json:\"examples,omitempty\"`\n}\n"
  },
  {
    "path": "pkg/spec3/header_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/require\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestHeaderRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Roundtrip\",\n\t\t\tObject: &spec3.Header{\n\t\t\t\tspec.Refable{Ref: spec.MustCreateRef(\"Dog\")},\n\t\t\t\tspec3.HeaderProps{\n\t\t\t\t\tDescription: \"foo\",\n\t\t\t\t},\n\t\t\t\tspec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.Header{}))\n\t\t})\n\t}\n}\n\nfunc TestHeaderJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         *spec3.Header\n\t\texpectedOutput string\n\t}{\n\t\t// scenario 1\n\t\t{\n\t\t\tname: \"basic\",\n\t\t\ttarget: &spec3.Header{\n\t\t\t\tHeaderProps: spec3.HeaderProps{\n\t\t\t\t\tDescription: \"The number of allowed requests in the current period\",\n\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType: []string{\"integer\"},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"description\":\"The number of allowed requests in the current period\",\"schema\":{\"type\":\"integer\"}}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tserializedTarget := string(rawTarget)\n\t\t\tif !cmp.Equal(serializedTarget, tc.expectedOutput) {\n\t\t\t\tt.Fatalf(\"diff %s\", cmp.Diff(serializedTarget, tc.expectedOutput))\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/media_type.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// MediaType a struct that allows you to specify content format, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#mediaTypeObject\n//\n// Note that this struct is actually a thin wrapper around MediaTypeProps to make it referable and extensible\ntype MediaType struct {\n\tMediaTypeProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode MediaType as JSON\nfunc (m *MediaType) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(m)\n\t}\n\tb1, err := json.Marshal(m.MediaTypeProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(m.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (e *MediaType) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tMediaTypeProps mediaTypePropsOmitZero `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Extensions = internal.SanitizeExtensions(e.Extensions)\n\tx.MediaTypeProps = mediaTypePropsOmitZero(e.MediaTypeProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (m *MediaType) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, m)\n\t}\n\tif err := json.Unmarshal(data, &m.MediaTypeProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &m.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (m *MediaType) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tMediaTypeProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tm.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tm.MediaTypeProps = x.MediaTypeProps\n\n\treturn nil\n}\n\n// MediaTypeProps a struct that allows you to specify content format, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#mediaTypeObject\ntype MediaTypeProps struct {\n\t// Schema holds the schema defining the type used for the media type\n\tSchema *spec.Schema `json:\"schema,omitempty\"`\n\t// Example of the media type\n\tExample interface{} `json:\"example,omitempty\"`\n\t// Examples of the media type. Each example object should match the media type and specific schema if present\n\tExamples map[string]*Example `json:\"examples,omitempty\"`\n\t// A map between a property name and its encoding information. The key, being the property name, MUST exist in the schema as a property. The encoding object SHALL only apply to requestBody objects when the media type is multipart or application/x-www-form-urlencoded\n\tEncoding map[string]*Encoding `json:\"encoding,omitempty\"`\n}\n\ntype mediaTypePropsOmitZero struct {\n\tSchema   *spec.Schema         `json:\"schema,omitzero\"`\n\tExample  interface{}          `json:\"example,omitempty\"`\n\tExamples map[string]*Example  `json:\"examples,omitempty\"`\n\tEncoding map[string]*Encoding `json:\"encoding,omitempty\"`\n}\n"
  },
  {
    "path": "pkg/spec3/media_type_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/require\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestMediaTypeRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Roundtrip\",\n\t\t\tObject: &spec3.MediaType{\n\t\t\t\tspec3.MediaTypeProps{\n\t\t\t\t\tExample: \"default\",\n\t\t\t\t},\n\t\t\t\tspec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.MediaType{}))\n\t\t})\n\t}\n}\n\nfunc TestMediaTypeJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         *spec3.MediaType\n\t\texpectedOutput string\n\t}{\n\t\t{\n\t\t\tname: \"basic\",\n\t\t\ttarget: &spec3.MediaType{\n\t\t\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tRef: spec.MustCreateRef(\"#/components/schemas/Pet\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"schema\":{\"$ref\":\"#/components/schemas/Pet\"}}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tserializedTarget := string(rawTarget)\n\t\t\tif !cmp.Equal(serializedTarget, tc.expectedOutput) {\n\t\t\t\tt.Fatalf(\"diff %s\", cmp.Diff(serializedTarget, tc.expectedOutput))\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/operation.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Operation describes a single API operation on a path, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#operationObject\n//\n// Note that this struct is actually a thin wrapper around OperationProps to make it referable and extensible\ntype Operation struct {\n\tOperationProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Operation as JSON\nfunc (o *Operation) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(o)\n\t}\n\tb1, err := json.Marshal(o.OperationProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(o.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (o *Operation) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tOperationProps operationPropsOmitZero `json:\",inline\"`\n\t}\n\tx.Extensions = internal.SanitizeExtensions(o.Extensions)\n\tx.OperationProps = operationPropsOmitZero(o.OperationProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (o *Operation) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, o)\n\t}\n\tif err := json.Unmarshal(data, &o.OperationProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &o.VendorExtensible)\n}\n\nfunc (o *Operation) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tOperationProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\to.Extensions = internal.SanitizeExtensions(x.Extensions)\n\to.OperationProps = x.OperationProps\n\treturn nil\n}\n\n// OperationProps describes a single API operation on a path, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#operationObject\ntype OperationProps struct {\n\t// Tags holds a list of tags for API documentation control\n\tTags []string `json:\"tags,omitempty\"`\n\t// Summary holds a short summary of what the operation does\n\tSummary string `json:\"summary,omitempty\"`\n\t// Description holds a verbose explanation of the operation behavior\n\tDescription string `json:\"description,omitempty\"`\n\t// ExternalDocs holds additional external documentation for this operation\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n\t// OperationId holds a unique string used to identify the operation\n\tOperationId string `json:\"operationId,omitempty\"`\n\t// Parameters a list of parameters that are applicable for this operation\n\tParameters []*Parameter `json:\"parameters,omitempty\"`\n\t// RequestBody holds the request body applicable for this operation\n\tRequestBody *RequestBody `json:\"requestBody,omitempty\"`\n\t// Responses holds the list of possible responses as they are returned from executing this operation\n\tResponses *Responses `json:\"responses,omitempty\"`\n\t// Deprecated declares this operation to be deprecated\n\tDeprecated bool `json:\"deprecated,omitempty\"`\n\t// SecurityRequirement holds a declaration of which security mechanisms can be used for this operation\n\tSecurityRequirement []map[string][]string `json:\"security,omitempty\"`\n\t// Servers contains an alternative server array to service this operation\n\tServers []*Server `json:\"servers,omitempty\"`\n}\n\ntype operationPropsOmitZero struct {\n\tTags                []string               `json:\"tags,omitempty\"`\n\tSummary             string                 `json:\"summary,omitempty\"`\n\tDescription         string                 `json:\"description,omitempty\"`\n\tExternalDocs        *ExternalDocumentation `json:\"externalDocs,omitzero\"`\n\tOperationId         string                 `json:\"operationId,omitempty\"`\n\tParameters          []*Parameter           `json:\"parameters,omitempty\"`\n\tRequestBody         *RequestBody           `json:\"requestBody,omitzero\"`\n\tResponses           *Responses             `json:\"responses,omitzero\"`\n\tDeprecated          bool                   `json:\"deprecated,omitzero\"`\n\tSecurityRequirement []map[string][]string  `json:\"security,omitempty\"`\n\tServers             []*Server              `json:\"servers,omitempty\"`\n}\n"
  },
  {
    "path": "pkg/spec3/operation_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\t\"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestOperationRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Roundtrip\",\n\t\t\tObject: &spec3.Operation{\n\t\t\t\tspec3.OperationProps{\n\t\t\t\t\tDescription: \"foo\",\n\t\t\t\t},\n\t\t\t\tspec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.Operation{}))\n\t\t})\n\t}\n}\n\nfunc TestOperationJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         *spec3.Operation\n\t\texpectedOutput string\n\t}{\n\t\t{\n\t\t\tname: \"basic\",\n\t\t\ttarget: &spec3.Operation{\n\t\t\t\tOperationProps: spec3.OperationProps{\n\t\t\t\t\tTags:        []string{\"pet\"},\n\t\t\t\t\tSummary:     \"Updates a pet in the store with form data\",\n\t\t\t\t\tOperationId: \"updatePetWithForm\",\n\t\t\t\t\tParameters: []*spec3.Parameter{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tParameterProps: spec3.ParameterProps{\n\t\t\t\t\t\t\t\tName:        \"petId\",\n\t\t\t\t\t\t\t\tIn:          \"path\",\n\t\t\t\t\t\t\t\tDescription: \"ID of pet that needs to be updated\",\n\t\t\t\t\t\t\t\tRequired:    true,\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tType: []string{\"string\"},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tRequestBody: &spec3.RequestBody{\n\t\t\t\t\t\tRequestBodyProps: spec3.RequestBodyProps{\n\t\t\t\t\t\t\tContent: map[string]*spec3.MediaType{\n\t\t\t\t\t\t\t\t\"application/x-www-form-urlencoded\": {\n\t\t\t\t\t\t\t\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\t\t\tType: []string{\"object\"},\n\t\t\t\t\t\t\t\t\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"name\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDescription: \"Updated name of the pet\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"status\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDescription: \"Updated status of the pet\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tResponses: &spec3.Responses{\n\t\t\t\t\t\tResponsesProps: spec3.ResponsesProps{\n\t\t\t\t\t\t\tStatusCodeResponses: map[int]*spec3.Response{\n\t\t\t\t\t\t\t\t200: {\n\t\t\t\t\t\t\t\t\tResponseProps: spec3.ResponseProps{\n\t\t\t\t\t\t\t\t\t\tDescription: \"Pet updated.\",\n\t\t\t\t\t\t\t\t\t\tContent: map[string]*spec3.MediaType{\n\t\t\t\t\t\t\t\t\t\t\t\"application/json\": {},\n\t\t\t\t\t\t\t\t\t\t\t\"application/xml\":  {},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"tags\":[\"pet\"],\"summary\":\"Updates a pet in the store with form data\",\"operationId\":\"updatePetWithForm\",\"parameters\":[{\"name\":\"petId\",\"in\":\"path\",\"description\":\"ID of pet that needs to be updated\",\"required\":true,\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"content\":{\"application/x-www-form-urlencoded\":{\"schema\":{\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Updated name of the pet\",\"type\":\"string\"},\"status\":{\"description\":\"Updated status of the pet\",\"type\":\"string\"}}}}}},\"responses\":{\"200\":{\"description\":\"Pet updated.\",\"content\":{\"application/json\":{},\"application/xml\":{}}}}}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tserializedTarget := string(rawTarget)\n\t\t\tif err := jsontesting.JsonCompare([]byte(tc.expectedOutput), []byte(serializedTarget)); err != nil {\n\t\t\t\tt.Fatalf(\"diff %s\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/parameter.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Parameter a struct that describes a single operation parameter, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#parameterObject\n//\n// Note that this struct is actually a thin wrapper around ParameterProps to make it referable and extensible\ntype Parameter struct {\n\tspec.Refable\n\tParameterProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Parameter as JSON\nfunc (p *Parameter) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb1, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(p.ParameterProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (p *Parameter) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef            string                 `json:\"$ref,omitempty\"`\n\t\tParameterProps parameterPropsOmitZero `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Ref = p.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(p.Extensions)\n\tx.ParameterProps = parameterPropsOmitZero(p.ParameterProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (p *Parameter) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.ParameterProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (p *Parameter) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tParameterProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&p.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tp.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tp.ParameterProps = x.ParameterProps\n\treturn nil\n}\n\n// ParameterProps a struct that describes a single operation parameter, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#parameterObject\ntype ParameterProps struct {\n\t// Name holds the name of the parameter\n\tName string `json:\"name,omitempty\"`\n\t// In holds the location of the parameter\n\tIn string `json:\"in,omitempty\"`\n\t// Description holds a brief description of the parameter\n\tDescription string `json:\"description,omitempty\"`\n\t// Required determines whether this parameter is mandatory\n\tRequired bool `json:\"required,omitempty\"`\n\t// Deprecated declares this operation to be deprecated\n\tDeprecated bool `json:\"deprecated,omitempty\"`\n\t// AllowEmptyValue sets the ability to pass empty-valued parameters\n\tAllowEmptyValue bool `json:\"allowEmptyValue,omitempty\"`\n\t// Style describes how the parameter value will be serialized depending on the type of the parameter value\n\tStyle string `json:\"style,omitempty\"`\n\t// Explode when true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map\n\tExplode bool `json:\"explode,omitempty\"`\n\t// AllowReserved determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986\n\tAllowReserved bool `json:\"allowReserved,omitempty\"`\n\t// Schema holds the schema defining the type used for the parameter\n\tSchema *spec.Schema `json:\"schema,omitempty\"`\n\t// Content holds a map containing the representations for the parameter\n\tContent map[string]*MediaType `json:\"content,omitempty\"`\n\t// Example of the parameter's potential value\n\tExample interface{} `json:\"example,omitempty\"`\n\t// Examples of the parameter's potential value. Each example SHOULD contain a value in the correct format as specified in the parameter encoding\n\tExamples map[string]*Example `json:\"examples,omitempty\"`\n}\n\ntype parameterPropsOmitZero struct {\n\tName            string                `json:\"name,omitempty\"`\n\tIn              string                `json:\"in,omitempty\"`\n\tDescription     string                `json:\"description,omitempty\"`\n\tRequired        bool                  `json:\"required,omitzero\"`\n\tDeprecated      bool                  `json:\"deprecated,omitzero\"`\n\tAllowEmptyValue bool                  `json:\"allowEmptyValue,omitzero\"`\n\tStyle           string                `json:\"style,omitempty\"`\n\tExplode         bool                  `json:\"explode,omitzero\"`\n\tAllowReserved   bool                  `json:\"allowReserved,omitzero\"`\n\tSchema          *spec.Schema          `json:\"schema,omitzero\"`\n\tContent         map[string]*MediaType `json:\"content,omitempty\"`\n\tExample         interface{}           `json:\"example,omitempty\"`\n\tExamples        map[string]*Example   `json:\"examples,omitempty\"`\n}\n"
  },
  {
    "path": "pkg/spec3/parameter_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/require\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestParameterRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Roundtrip\",\n\t\t\tObject: &spec3.Parameter{\n\t\t\t\tspec.Refable{Ref: spec.MustCreateRef(\"Dog\")},\n\t\t\t\tspec3.ParameterProps{\n\t\t\t\t\tDescription: \"foo\",\n\t\t\t\t},\n\t\t\t\tspec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.Parameter{}))\n\t\t})\n\t}\n}\n\nfunc TestParameterJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         *spec3.Parameter\n\t\texpectedOutput string\n\t}{\n\t\t{\n\t\t\tname: \"header parameter\",\n\t\t\ttarget: &spec3.Parameter{\n\t\t\t\tParameterProps: spec3.ParameterProps{\n\t\t\t\t\tName:        \"token\",\n\t\t\t\t\tIn:          \"header\",\n\t\t\t\t\tDescription: \"token to be passed as a header\",\n\t\t\t\t\tRequired:    true,\n\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int64\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tStyle: \"simple\",\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"name\":\"token\",\"in\":\"header\",\"description\":\"token to be passed as a header\",\"required\":true,\"style\":\"simple\",\"schema\":{\"type\":\"integer\",\"format\":\"int64\"}}`,\n\t\t},\n\t\t{\n\t\t\tname: \"path parameter\",\n\t\t\ttarget: &spec3.Parameter{\n\t\t\t\tParameterProps: spec3.ParameterProps{\n\t\t\t\t\tName:        \"username\",\n\t\t\t\t\tIn:          \"path\",\n\t\t\t\t\tDescription: \"username to fetch\",\n\t\t\t\t\tRequired:    true,\n\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType: []string{\"string\"},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"name\":\"username\",\"in\":\"path\",\"description\":\"username to fetch\",\"required\":true,\"schema\":{\"type\":\"string\"}}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tserializedTarget := string(rawTarget)\n\t\t\tif !cmp.Equal(serializedTarget, tc.expectedOutput) {\n\t\t\t\tt.Fatalf(\"diff %s\", cmp.Diff(serializedTarget, tc.expectedOutput))\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/path.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Paths describes the available paths and operations for the API, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#pathsObject\ntype Paths struct {\n\tPaths map[string]*Path\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Paths as JSON\nfunc (p *Paths) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb1, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpths := make(map[string]*Path)\n\tfor k, v := range p.Paths {\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tpths[k] = v\n\t\t}\n\t}\n\tb2, err := json.Marshal(pths)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\nfunc (p *Paths) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tm := make(map[string]any, len(p.Extensions)+len(p.Paths))\n\tfor k, v := range p.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tm[k] = v\n\t\t}\n\t}\n\tfor k, v := range p.Paths {\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tm[k] = v\n\t\t}\n\t}\n\treturn opts.MarshalNext(enc, m)\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *Paths) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range res {\n\t\tif strings.HasPrefix(strings.ToLower(k), \"x-\") {\n\t\t\tif p.Extensions == nil {\n\t\t\t\tp.Extensions = make(map[string]interface{})\n\t\t\t}\n\t\t\tvar d interface{}\n\t\t\tif err := json.Unmarshal(v, &d); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Extensions[k] = d\n\t\t}\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tif p.Paths == nil {\n\t\t\t\tp.Paths = make(map[string]*Path)\n\t\t\t}\n\t\t\tvar pi *Path\n\t\t\tif err := json.Unmarshal(v, &pi); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Paths[k] = pi\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (p *Paths) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tswitch k := tok.Kind(); k {\n\tcase 'n':\n\t\t*p = Paths{}\n\t\treturn nil\n\tcase '{':\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif tok.Kind() == '}' {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tswitch k := tok.String(); {\n\t\t\tcase internal.IsExtensionKey(k):\n\t\t\t\tvar ext any\n\t\t\t\tif err := opts.UnmarshalNext(dec, &ext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif p.Extensions == nil {\n\t\t\t\t\tp.Extensions = make(map[string]any)\n\t\t\t\t}\n\t\t\t\tp.Extensions[k] = ext\n\t\t\tcase len(k) > 0 && k[0] == '/':\n\t\t\t\tpi := Path{}\n\t\t\t\tif err := opts.UnmarshalNext(dec, &pi); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif p.Paths == nil {\n\t\t\t\t\tp.Paths = make(map[string]*Path)\n\t\t\t\t}\n\t\t\t\tp.Paths[k] = &pi\n\t\t\tdefault:\n\t\t\t\t_, err := dec.ReadValue() // skip value\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown JSON kind: %v\", k)\n\t}\n}\n\n// Path describes the operations available on a single path, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#pathItemObject\n//\n// Note that this struct is actually a thin wrapper around PathProps to make it referable and extensible\ntype Path struct {\n\tspec.Refable\n\tPathProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Path as JSON\nfunc (p *Path) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb1, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(p.PathProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (p *Path) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef string `json:\"$ref,omitempty\"`\n\t\tspec.Extensions\n\t\tPathProps\n\t}\n\tx.Ref = p.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(p.Extensions)\n\tx.PathProps = p.PathProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (p *Path) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.PathProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (p *Path) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tPathProps\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&p.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tp.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tp.PathProps = x.PathProps\n\n\treturn nil\n}\n\n// PathProps describes the operations available on a single path, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#pathItemObject\ntype PathProps struct {\n\t// Summary holds a summary for all operations in this path\n\tSummary string `json:\"summary,omitempty\"`\n\t// Description holds a description for all operations in this path\n\tDescription string `json:\"description,omitempty\"`\n\t// Get defines GET operation\n\tGet *Operation `json:\"get,omitempty\"`\n\t// Put defines PUT operation\n\tPut *Operation `json:\"put,omitempty\"`\n\t// Post defines POST operation\n\tPost *Operation `json:\"post,omitempty\"`\n\t// Delete defines DELETE operation\n\tDelete *Operation `json:\"delete,omitempty\"`\n\t// Options defines OPTIONS operation\n\tOptions *Operation `json:\"options,omitempty\"`\n\t// Head defines HEAD operation\n\tHead *Operation `json:\"head,omitempty\"`\n\t// Patch defines PATCH operation\n\tPatch *Operation `json:\"patch,omitempty\"`\n\t// Trace defines TRACE operation\n\tTrace *Operation `json:\"trace,omitempty\"`\n\t// Servers is an alternative server array to service all operations in this path\n\tServers []*Server `json:\"servers,omitempty\"`\n\t// Parameters a list of parameters that are applicable for this operation\n\tParameters []*Parameter `json:\"parameters,omitempty\"`\n}\n"
  },
  {
    "path": "pkg/spec3/path_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/require\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestPathRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Roundtrip\",\n\t\t\tObject: &spec3.Path{\n\t\t\t\tspec.Refable{Ref: spec.MustCreateRef(\"Dog\")},\n\t\t\t\tspec3.PathProps{\n\t\t\t\t\tDescription: \"foo\",\n\t\t\t\t},\n\t\t\t\tspec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.Path{}))\n\t\t})\n\t}\n}\n\nfunc TestPathJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         *spec3.Path\n\t\texpectedOutput string\n\t}{\n\t\t{\n\t\t\tname: \"basic\",\n\t\t\ttarget: &spec3.Path{\n\t\t\t\tPathProps: spec3.PathProps{\n\t\t\t\t\tGet: &spec3.Operation{\n\t\t\t\t\t\tOperationProps: spec3.OperationProps{\n\t\t\t\t\t\t\tDescription: \"Returns pets based on ID\",\n\t\t\t\t\t\t\tSummary:     \"Find pets by ID\",\n\t\t\t\t\t\t\tOperationId: \"getPetsById\",\n\t\t\t\t\t\t\tResponses: &spec3.Responses{\n\t\t\t\t\t\t\t\tResponsesProps: spec3.ResponsesProps{\n\t\t\t\t\t\t\t\t\tStatusCodeResponses: map[int]*spec3.Response{\n\t\t\t\t\t\t\t\t\t\t200: {\n\t\t\t\t\t\t\t\t\t\t\tResponseProps: spec3.ResponseProps{\n\t\t\t\t\t\t\t\t\t\t\t\tDescription: \"Pet response\",\n\t\t\t\t\t\t\t\t\t\t\t\tContent: map[string]*spec3.MediaType{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"*/*\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tType: []string{\"array\"},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tRef: spec.MustCreateRef(\"#/components/schemas/Pet\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tParameters: []*spec3.Parameter{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tParameterProps: spec3.ParameterProps{\n\t\t\t\t\t\t\t\tName:        \"id\",\n\t\t\t\t\t\t\t\tIn:          \"path\",\n\t\t\t\t\t\t\t\tDescription: \"ID of the pet to use\",\n\t\t\t\t\t\t\t\tRequired:    true,\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tType: []string{\"array\"},\n\t\t\t\t\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\t\t\t\tRef: spec.MustCreateRef(\"#/components/schemas/Pet\"),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"get\":{\"summary\":\"Find pets by ID\",\"description\":\"Returns pets based on ID\",\"operationId\":\"getPetsById\",\"responses\":{\"200\":{\"description\":\"Pet response\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/Pet\"}}}}}}},\"parameters\":[{\"name\":\"id\",\"in\":\"path\",\"description\":\"ID of the pet to use\",\"required\":true,\"schema\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/Pet\"}}}]}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tserializedTarget := string(rawTarget)\n\t\t\tif !cmp.Equal(serializedTarget, tc.expectedOutput) {\n\t\t\t\tt.Fatalf(\"%s\", serializedTarget)\n\t\t\t\tt.Fatalf(\"diff %s\", cmp.Diff(serializedTarget, tc.expectedOutput))\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestPathsNullUnmarshal(t *testing.T) {\n\tnullByte := []byte(`null`)\n\n\texpected := spec3.Paths{}\n\ttest := spec3.Paths{\n\t\tPaths: map[string]*spec3.Path{\"/path\": {}},\n\t}\n\tjsonv2.Unmarshal(nullByte, &test)\n\tif !reflect.DeepEqual(test, expected) {\n\t\tt.Error(\"Expected unmarshal of null to reset the Paths struct\")\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/request_body.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// RequestBody describes a single request body, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#requestBodyObject\n//\n// Note that this struct is actually a thin wrapper around RequestBodyProps to make it referable and extensible\ntype RequestBody struct {\n\tspec.Refable\n\tRequestBodyProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode RequestBody as JSON\nfunc (r *RequestBody) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.RequestBodyProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (r *RequestBody) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef              string                   `json:\"$ref,omitempty\"`\n\t\tRequestBodyProps requestBodyPropsOmitZero `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Ref = r.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(r.Extensions)\n\tx.RequestBodyProps = requestBodyPropsOmitZero(r.RequestBodyProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (r *RequestBody) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.RequestBodyProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// RequestBodyProps describes a single request body, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#requestBodyObject\ntype RequestBodyProps struct {\n\t// Description holds a brief description of the request body\n\tDescription string `json:\"description,omitempty\"`\n\t// Content is the content of the request body. The key is a media type or media type range and the value describes it\n\tContent map[string]*MediaType `json:\"content,omitempty\"`\n\t// Required determines if the request body is required in the request\n\tRequired bool `json:\"required,omitempty\"`\n}\n\ntype requestBodyPropsOmitZero struct {\n\tDescription string                `json:\"description,omitempty\"`\n\tContent     map[string]*MediaType `json:\"content,omitempty\"`\n\tRequired    bool                  `json:\"required,omitzero\"`\n}\n\nfunc (r *RequestBody) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tRequestBodyProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&r.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tr.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tr.RequestBodyProps = x.RequestBodyProps\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/spec3/request_body_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/require\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestRequestBodyRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Roundtrip\",\n\t\t\tObject: &spec3.RequestBody{\n\t\t\t\tspec.Refable{Ref: spec.MustCreateRef(\"Dog\")},\n\t\t\t\tspec3.RequestBodyProps{\n\t\t\t\t\tDescription: \"foo\",\n\t\t\t\t},\n\t\t\t\tspec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.RequestBody{}))\n\t\t})\n\t}\n}\n\nfunc TestRequestBodyJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         *spec3.RequestBody\n\t\texpectedOutput string\n\t}{\n\t\t{\n\t\t\tname: \"basic\",\n\t\t\ttarget: &spec3.RequestBody{\n\t\t\t\tRequestBodyProps: spec3.RequestBodyProps{\n\t\t\t\t\tDescription: \"user to add to the system\",\n\t\t\t\t\tContent: map[string]*spec3.MediaType{\n\t\t\t\t\t\t\"application/json\": {\n\t\t\t\t\t\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tRef: spec.MustCreateRef(\"#/components/schemas/User\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"description\":\"user to add to the system\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/User\"}}}}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tserializedTarget := string(rawTarget)\n\t\t\tif !cmp.Equal(serializedTarget, tc.expectedOutput) {\n\t\t\t\tt.Fatalf(\"diff %s\", cmp.Diff(serializedTarget, tc.expectedOutput))\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/response.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strconv\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Responses holds the list of possible responses as they are returned from executing this operation\n//\n// Note that this struct is actually a thin wrapper around ResponsesProps to make it referable and extensible\ntype Responses struct {\n\tResponsesProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Responses as JSON\nfunc (r *Responses) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.ResponsesProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (r Responses) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\ttype ArbitraryKeys map[string]interface{}\n\tvar x struct {\n\t\tArbitraryKeys\n\t\tDefault *Response `json:\"default,omitzero\"`\n\t}\n\tx.ArbitraryKeys = make(map[string]any, len(r.Extensions)+len(r.StatusCodeResponses))\n\tfor k, v := range r.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tx.ArbitraryKeys[k] = v\n\t\t}\n\t}\n\tfor k, v := range r.StatusCodeResponses {\n\t\tx.ArbitraryKeys[strconv.Itoa(k)] = v\n\t}\n\tx.Default = r.Default\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (r *Responses) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tif err := json.Unmarshal(data, &r.ResponsesProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// ResponsesProps holds the list of possible responses as they are returned from executing this operation\ntype ResponsesProps struct {\n\t// Default holds the documentation of responses other than the ones declared for specific HTTP response codes. Use this field to cover undeclared responses\n\tDefault *Response `json:\"-\"`\n\t// StatusCodeResponses holds a map of any HTTP status code to the response definition\n\tStatusCodeResponses map[int]*Response `json:\"-\"`\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode ResponsesProps as JSON\nfunc (r ResponsesProps) MarshalJSON() ([]byte, error) {\n\ttoser := map[string]*Response{}\n\tif r.Default != nil {\n\t\ttoser[\"default\"] = r.Default\n\t}\n\tfor k, v := range r.StatusCodeResponses {\n\t\ttoser[strconv.Itoa(k)] = v\n\t}\n\treturn json.Marshal(toser)\n}\n\n// UnmarshalJSON unmarshals responses from JSON\nfunc (r *ResponsesProps) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tif v, ok := res[\"default\"]; ok {\n\t\tvalue := Response{}\n\t\tif err := json.Unmarshal(v, &value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tr.Default = &value\n\t\tdelete(res, \"default\")\n\t}\n\tfor k, v := range res {\n\t\t// Take all integral keys\n\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\tr.StatusCodeResponses = map[int]*Response{}\n\t\t\t}\n\t\t\tvalue := Response{}\n\t\t\tif err := json.Unmarshal(v, &value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tr.StatusCodeResponses[nk] = &value\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *Responses) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) (err error) {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tswitch k := tok.Kind(); k {\n\tcase 'n':\n\t\t*r = Responses{}\n\t\treturn nil\n\tcase '{':\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif tok.Kind() == '}' {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tswitch k := tok.String(); {\n\t\t\tcase internal.IsExtensionKey(k):\n\t\t\t\tvar ext any\n\t\t\t\tif err := opts.UnmarshalNext(dec, &ext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif r.Extensions == nil {\n\t\t\t\t\tr.Extensions = make(map[string]any)\n\t\t\t\t}\n\t\t\t\tr.Extensions[k] = ext\n\t\t\tcase k == \"default\":\n\t\t\t\tresp := Response{}\n\t\t\t\tif err := opts.UnmarshalNext(dec, &resp); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tr.ResponsesProps.Default = &resp\n\t\t\tdefault:\n\t\t\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\t\t\tresp := Response{}\n\t\t\t\t\tif err := opts.UnmarshalNext(dec, &resp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\n\t\t\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\t\t\tr.StatusCodeResponses = map[int]*Response{}\n\t\t\t\t\t}\n\t\t\t\t\tr.StatusCodeResponses[nk] = &resp\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown JSON kind: %v\", k)\n\t}\n}\n\n// Response describes a single response from an API Operation, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject\n//\n// Note that this struct is actually a thin wrapper around ResponseProps to make it referable and extensible\ntype Response struct {\n\tspec.Refable\n\tResponseProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Response as JSON\nfunc (r *Response) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.ResponseProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (r Response) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef string `json:\"$ref,omitempty\"`\n\t\tspec.Extensions\n\t\tResponseProps `json:\",inline\"`\n\t}\n\tx.Ref = r.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(r.Extensions)\n\tx.ResponseProps = r.ResponseProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (r *Response) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.ResponseProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (r *Response) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tResponseProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&r.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tr.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tr.ResponseProps = x.ResponseProps\n\treturn nil\n}\n\n// ResponseProps describes a single response from an API Operation, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject\ntype ResponseProps struct {\n\t// Description holds a short description of the response\n\tDescription string `json:\"description,omitempty\"`\n\t// Headers holds a maps of a headers name to its definition\n\tHeaders map[string]*Header `json:\"headers,omitempty\"`\n\t// Content holds a map containing descriptions of potential response payloads\n\tContent map[string]*MediaType `json:\"content,omitempty\"`\n\t// Links is a map of operations links that can be followed from the response\n\tLinks map[string]*Link `json:\"links,omitempty\"`\n}\n\n// Link represents a possible design-time link for a response, more at https://swagger.io/specification/#link-object\ntype Link struct {\n\tspec.Refable\n\tLinkProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Link as JSON\nfunc (r *Link) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.LinkProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (r *Link) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef string `json:\"$ref,omitempty\"`\n\t\tspec.Extensions\n\t\tLinkProps `json:\",inline\"`\n\t}\n\tx.Ref = r.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(r.Extensions)\n\tx.LinkProps = r.LinkProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (r *Link) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.LinkProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (l *Link) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tLinkProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&l.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tl.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tl.LinkProps = x.LinkProps\n\treturn nil\n}\n\n// LinkProps describes a single response from an API Operation, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject\ntype LinkProps struct {\n\t// OperationId is the name of an existing, resolvable OAS operation\n\tOperationId string `json:\"operationId,omitempty\"`\n\t// Parameters is a map representing parameters to pass to an operation as specified with operationId or identified via operationRef\n\tParameters map[string]interface{} `json:\"parameters,omitempty\"`\n\t// Description holds a description of the link\n\tDescription string `json:\"description,omitempty\"`\n\t// RequestBody is a literal value or expresion to use as a request body when calling the target operation\n\tRequestBody interface{} `json:\"requestBody,omitempty\"`\n\t// Server holds a server object used by the target operation\n\tServer *Server `json:\"server,omitempty\"`\n}\n"
  },
  {
    "path": "pkg/spec3/response_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/require\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestResponsesRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Test With Extensions\",\n\t\t\tObject: &spec3.Responses{\n\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tResponsesProps: spec3.ResponsesProps{\n\t\t\t\t\tDefault: &spec3.Response{\n\t\t\t\t\t\tRefable: spec.Refable{Ref: spec.MustCreateRef(\"/components/some/ref.foo\")},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.Responses{}))\n\t\t})\n\t}\n}\n\nfunc TestResponseRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Roundtrip\",\n\t\t\tObject: &spec3.Response{\n\t\t\t\tspec.Refable{Ref: spec.MustCreateRef(\"Dog\")},\n\t\t\t\tspec3.ResponseProps{\n\t\t\t\t\tDescription: \"foo\",\n\t\t\t\t},\n\t\t\t\tspec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.Response{}))\n\t\t})\n\t}\n}\n\nfunc TestResponseJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         *spec3.Response\n\t\texpectedOutput string\n\t}{\n\t\t// scenario 1\n\t\t{\n\t\t\tname: \"basic\",\n\t\t\ttarget: &spec3.Response{\n\t\t\t\tResponseProps: spec3.ResponseProps{\n\t\t\t\t\tContent: map[string]*spec3.MediaType{\n\t\t\t\t\t\t\"text/plain\": {\n\t\t\t\t\t\t\tMediaTypeProps: spec3.MediaTypeProps{\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tType: []string{\"string\"},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"content\":{\"text/plain\":{\"schema\":{\"type\":\"string\"}}}}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tserializedTarget := string(rawTarget)\n\t\t\tif !cmp.Equal(serializedTarget, tc.expectedOutput) {\n\t\t\t\tt.Fatalf(\"diff %s\", cmp.Diff(serializedTarget, tc.expectedOutput))\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestResponsesNullUnmarshal(t *testing.T) {\n\tnullByte := []byte(`null`)\n\n\texpected := spec3.Responses{}\n\ttest := spec3.Responses{\n\t\tResponsesProps: spec3.ResponsesProps{\n\t\t\tDefault: &spec3.Response{},\n\t\t},\n\t}\n\tjsonv2.Unmarshal(nullByte, &test)\n\tif !reflect.DeepEqual(test, expected) {\n\t\tt.Error(\"Expected unmarshal of null to reset the Responses struct\")\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/security_scheme.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// SecurityScheme defines reusable Security Scheme Object, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#securitySchemeObject\ntype SecurityScheme struct {\n\tspec.Refable\n\tSecuritySchemeProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode SecurityScheme as JSON\nfunc (s *SecurityScheme) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.SecuritySchemeProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(s.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (s *SecurityScheme) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef                 string `json:\"$ref,omitempty\"`\n\t\tSecuritySchemeProps `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Ref = s.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(s.Extensions)\n\tx.SecuritySchemeProps = s.SecuritySchemeProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (s *SecurityScheme) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &s.SecuritySchemeProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &s.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &s.Refable)\n}\n\n// SecuritySchemeProps defines a security scheme that can be used by the operations\ntype SecuritySchemeProps struct {\n\t// Type of the security scheme\n\tType string `json:\"type,omitempty\"`\n\t// Description holds a short description for security scheme\n\tDescription string `json:\"description,omitempty\"`\n\t// Name holds the name of the header, query or cookie parameter to be used\n\tName string `json:\"name,omitempty\"`\n\t// In holds the location of the API key\n\tIn string `json:\"in,omitempty\"`\n\t// Scheme holds the name of the HTTP Authorization scheme to be used in the Authorization header\n\tScheme string `json:\"scheme,omitempty\"`\n\t// BearerFormat holds a hint to the client to identify how the bearer token is formatted\n\tBearerFormat string `json:\"bearerFormat,omitempty\"`\n\t// Flows contains configuration information for the flow types supported.\n\tFlows map[string]*OAuthFlow `json:\"flows,omitempty\"`\n\t// OpenIdConnectUrl holds an url to discover OAuth2 configuration values from\n\tOpenIdConnectUrl string `json:\"openIdConnectUrl,omitempty\"`\n}\n\n// OAuthFlow contains configuration information for the flow types supported.\ntype OAuthFlow struct {\n\tOAuthFlowProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode OAuthFlow as JSON\nfunc (o *OAuthFlow) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(o.OAuthFlowProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(o.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (o *OAuthFlow) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &o.OAuthFlowProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &o.VendorExtensible)\n}\n\n// OAuthFlowProps holds configuration details for a supported OAuth Flow\ntype OAuthFlowProps struct {\n\t// AuthorizationUrl hold the authorization URL to be used for this flow\n\tAuthorizationUrl string `json:\"authorizationUrl,omitempty\"`\n\t// TokenUrl holds the token URL to be used for this flow\n\tTokenUrl string `json:\"tokenUrl,omitempty\"`\n\t// RefreshUrl holds the URL to be used for obtaining refresh tokens\n\tRefreshUrl string `json:\"refreshUrl,omitempty\"`\n\t// Scopes holds the available scopes for the OAuth2 security scheme\n\tScopes map[string]string `json:\"scopes,omitempty\"`\n}\n"
  },
  {
    "path": "pkg/spec3/security_scheme_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestSecuritySchemeRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Roundtrip\",\n\t\t\tObject: &spec3.SecurityScheme{\n\t\t\t\tspec.Refable{Ref: spec.MustCreateRef(\"Dog\")},\n\t\t\t\tspec3.SecuritySchemeProps{\n\t\t\t\t\tDescription: \"foo\",\n\t\t\t\t},\n\t\t\t\tspec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.SecurityScheme{}))\n\t\t})\n\t}\n}\n\nfunc TestSecuritySchemaJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         *spec3.SecurityScheme\n\t\texpectedOutput string\n\t}{\n\t\t// scenario 1\n\t\t{\n\t\t\tname: \"scenario1: basic authentication\",\n\t\t\ttarget: &spec3.SecurityScheme{\n\t\t\t\tSecuritySchemeProps: spec3.SecuritySchemeProps{\n\t\t\t\t\tType:   \"http\",\n\t\t\t\t\tScheme: \"basic\",\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"type\":\"http\",\"scheme\":\"basic\"}`,\n\t\t},\n\n\t\t// scenario 2\n\t\t{\n\t\t\tname: \"scenario2: JWT Bearer\",\n\t\t\ttarget: &spec3.SecurityScheme{\n\t\t\t\tSecuritySchemeProps: spec3.SecuritySchemeProps{\n\t\t\t\t\tType:         \"http\",\n\t\t\t\t\tScheme:       \"basic\",\n\t\t\t\t\tBearerFormat: \"JWT\",\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"type\":\"http\",\"scheme\":\"basic\",\"bearerFormat\":\"JWT\"}`,\n\t\t},\n\n\t\t// scenario 3\n\t\t{\n\t\t\tname: \"scenario3: implicit OAuth2\",\n\t\t\ttarget: &spec3.SecurityScheme{\n\t\t\t\tSecuritySchemeProps: spec3.SecuritySchemeProps{\n\t\t\t\t\tType: \"oauth2\",\n\t\t\t\t\tFlows: map[string]*spec3.OAuthFlow{\n\t\t\t\t\t\t\"implicit\": {\n\t\t\t\t\t\t\tOAuthFlowProps: spec3.OAuthFlowProps{\n\t\t\t\t\t\t\t\tAuthorizationUrl: \"https://example.com/api/oauth/dialog\",\n\t\t\t\t\t\t\t\tScopes: map[string]string{\n\t\t\t\t\t\t\t\t\t\"write:pets\": \"modify pets in your account\",\n\t\t\t\t\t\t\t\t\t\"read:pets\":  \"read your pets\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"type\":\"oauth2\",\"flows\":{\"implicit\":{\"authorizationUrl\":\"https://example.com/api/oauth/dialog\",\"scopes\":{\"read:pets\":\"read your pets\",\"write:pets\":\"modify pets in your account\"}}}}`,\n\t\t},\n\n\t\t// scenario 4\n\t\t{\n\t\t\tname: \"scenario4: reference Object\",\n\t\t\ttarget: &spec3.SecurityScheme{\n\t\t\t\tRefable: spec.Refable{Ref: spec.MustCreateRef(\"k8s.io/api/foo/v1beta1b.bar\")},\n\t\t\t},\n\t\t\texpectedOutput: `{\"$ref\":\"k8s.io/api/foo/v1beta1b.bar\"}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tserializedTarget := string(rawTarget)\n\t\t\tif !cmp.Equal(serializedTarget, tc.expectedOutput) {\n\t\t\t\tt.Fatalf(\"diff %s\", cmp.Diff(serializedTarget, tc.expectedOutput))\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/server.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\ntype Server struct {\n\tServerProps\n\tspec.VendorExtensible\n}\n\ntype ServerProps struct {\n\t// Description is a short description of the target documentation. CommonMark syntax MAY be used for rich text representation.\n\tDescription string `json:\"description,omitempty\"`\n\t// URL is the URL for the target documentation.\n\tURL string `json:\"url\"`\n\t// Variables contains a map between a variable name and its value. The value is used for substitution in the server's URL templeate\n\tVariables map[string]*ServerVariable `json:\"variables,omitempty\"`\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Responses as JSON\nfunc (s *Server) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.ServerProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (s *Server) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tServerProps `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Extensions = internal.SanitizeExtensions(s.Extensions)\n\tx.ServerProps = s.ServerProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (s *Server) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tif err := json.Unmarshal(data, &s.ServerProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &s.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (s *Server) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tServerProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.ServerProps = x.ServerProps\n\n\treturn nil\n}\n\ntype ServerVariable struct {\n\tServerVariableProps\n\tspec.VendorExtensible\n}\n\ntype ServerVariableProps struct {\n\t// Enum is an enumeration of string values to be used if the substitution options are from a limited set\n\tEnum []string `json:\"enum,omitempty\"`\n\t// Default is the default value to use for substitution, which SHALL be sent if an alternate value is not supplied\n\tDefault string `json:\"default\"`\n\t// Description is a description for the server variable\n\tDescription string `json:\"description,omitempty\"`\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Responses as JSON\nfunc (s *ServerVariable) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.ServerVariableProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (s *ServerVariable) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tServerVariableProps `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Extensions = internal.SanitizeExtensions(s.Extensions)\n\tx.ServerVariableProps = s.ServerVariableProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (s *ServerVariable) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\tif err := json.Unmarshal(data, &s.ServerVariableProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &s.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (s *ServerVariable) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tServerVariableProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.ServerVariableProps = x.ServerVariableProps\n\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/spec3/server_test.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3_test\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestServerRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\tName: \"Basic Roundtrip\",\n\t\t\tObject: &spec3.Server{\n\t\t\t\tspec3.ServerProps{\n\t\t\t\t\tDescription: \"foo\",\n\t\t\t\t},\n\t\t\t\tspec.VendorExtensible{Extensions: spec.Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&spec3.Server{}))\n\t\t})\n\t}\n}\n\nfunc TestServerJSONSerialization(t *testing.T) {\n\tcases := []struct {\n\t\tname           string\n\t\ttarget         *spec3.Server\n\t\texpectedOutput string\n\t}{\n\t\t// scenario 1\n\t\t{\n\t\t\tname: \"basic\",\n\t\t\ttarget: &spec3.Server{\n\t\t\t\tServerProps: spec3.ServerProps{\n\t\t\t\t\tURL:         \"https://development.gigantic-server.com/v1\",\n\t\t\t\t\tDescription: \"Development server\",\n\t\t\t\t},\n\t\t\t},\n\t\t\texpectedOutput: `{\"description\":\"Development server\",\"url\":\"https://development.gigantic-server.com/v1\"}`,\n\t\t},\n\t}\n\tfor _, tc := range cases {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\trawTarget, err := json.Marshal(tc.target)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatal(err)\n\t\t\t}\n\t\t\tserializedTarget := string(rawTarget)\n\t\t\tif !cmp.Equal(serializedTarget, tc.expectedOutput) {\n\t\t\t\tt.Fatalf(\"diff %s\", cmp.Diff(serializedTarget, tc.expectedOutput))\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/spec3/spec.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// OpenAPI is an object that describes an API and conforms to the OpenAPI Specification.\ntype OpenAPI struct {\n\t// Version represents the semantic version number of the OpenAPI Specification that this document uses\n\tVersion string `json:\"openapi\"`\n\t// Info provides metadata about the API\n\tInfo *spec.Info `json:\"info\"`\n\t// Paths holds the available target and operations for the API\n\tPaths *Paths `json:\"paths,omitempty\"`\n\t// Servers is an array of Server objects which provide connectivity information to a target server\n\tServers []*Server `json:\"servers,omitempty\"`\n\t// Components hold various schemas for the specification\n\tComponents *Components `json:\"components,omitempty\"`\n\t// SecurityRequirement holds a declaration of which security mechanisms can be used across the API\n\tSecurityRequirement []map[string][]string `json:\"security,omitempty\"`\n\t// ExternalDocs holds additional external documentation\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n}\n\nfunc (o *OpenAPI) UnmarshalJSON(data []byte) error {\n\ttype OpenAPIWithNoFunctions OpenAPI\n\tp := (*OpenAPIWithNoFunctions)(o)\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, &p)\n\t}\n\treturn json.Unmarshal(data, &p)\n}\n\nfunc (o *OpenAPI) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(o)\n\t}\n\ttype OpenAPIWithNoFunctions OpenAPI\n\tp := (*OpenAPIWithNoFunctions)(o)\n\treturn json.Marshal(&p)\n}\n\nfunc (o *OpenAPI) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\ttype OpenAPIOmitZero struct {\n\t\tVersion             string                 `json:\"openapi\"`\n\t\tInfo                *spec.Info             `json:\"info\"`\n\t\tPaths               *Paths                 `json:\"paths,omitzero\"`\n\t\tServers             []*Server              `json:\"servers,omitempty\"`\n\t\tComponents          *Components            `json:\"components,omitzero\"`\n\t\tSecurityRequirement []map[string][]string  `json:\"security,omitempty\"`\n\t\tExternalDocs        *ExternalDocumentation `json:\"externalDocs,omitzero\"`\n\t}\n\tx := (*OpenAPIOmitZero)(o)\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "pkg/spec3/testdata/appsv1spec.json",
    "content": "{\n  \"components\": {\n    \"schemas\": {\n      \"io.k8s.api.apps.v1.ControllerRevision\": {\n        \"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.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"data\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Data is the serialized representation of the state.\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          },\n          \"revision\": {\n            \"default\": 0,\n            \"description\": \"Revision indicates the revision of the state represented by Data.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          }\n        },\n        \"required\": [\n          \"revision\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"apps\",\n            \"kind\": \"ControllerRevision\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.apps.v1.ControllerRevisionList\": {\n        \"description\": \"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"items\": {\n            \"description\": \"Items is the list of ControllerRevisions\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          }\n        },\n        \"required\": [\n          \"items\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"apps\",\n            \"kind\": \"ControllerRevisionList\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.apps.v1.DaemonSet\": {\n        \"description\": \"DaemonSet represents the configuration of a daemon set.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          },\n          \"spec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetSpec\"\n              }\n            ],\n            \"default\": {},\n            \"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\"\n          },\n          \"status\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetStatus\"\n              }\n            ],\n            \"default\": {},\n            \"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\"\n          }\n        },\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"apps\",\n            \"kind\": \"DaemonSet\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.apps.v1.DaemonSetCondition\": {\n        \"description\": \"DaemonSetCondition describes the state of a DaemonSet at a certain point.\",\n        \"properties\": {\n          \"lastTransitionTime\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Last time the condition transitioned from one status to another.\"\n          },\n          \"message\": {\n            \"description\": \"A human readable message indicating details about the transition.\",\n            \"type\": \"string\"\n          },\n          \"reason\": {\n            \"description\": \"The reason for the condition's last transition.\",\n            \"type\": \"string\"\n          },\n          \"status\": {\n            \"default\": \"\",\n            \"description\": \"Status of the condition, one of True, False, Unknown.\",\n            \"type\": \"string\"\n          },\n          \"type\": {\n            \"default\": \"\",\n            \"description\": \"Type of DaemonSet condition.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"type\",\n          \"status\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.DaemonSetList\": {\n        \"description\": \"DaemonSetList is a collection of daemon sets.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"items\": {\n            \"description\": \"A list of daemon sets.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          }\n        },\n        \"required\": [\n          \"items\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"apps\",\n            \"kind\": \"DaemonSetList\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.apps.v1.DaemonSetSpec\": {\n        \"description\": \"DaemonSetSpec is the specification of a daemon set.\",\n        \"properties\": {\n          \"minReadySeconds\": {\n            \"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).\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"revisionHistoryLimit\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"selector\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n              }\n            ],\n            \"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\"\n          },\n          \"template\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"\n              }\n            ],\n            \"default\": {},\n            \"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\"\n          },\n          \"updateStrategy\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetUpdateStrategy\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"An update strategy to replace existing DaemonSet pods with new pods.\"\n          }\n        },\n        \"required\": [\n          \"selector\",\n          \"template\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.DaemonSetStatus\": {\n        \"description\": \"DaemonSetStatus represents the current status of a daemon set.\",\n        \"properties\": {\n          \"collisionCount\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"conditions\": {\n            \"description\": \"Represents the latest available observations of a DaemonSet's current state.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetCondition\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"type\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"currentNumberScheduled\": {\n            \"default\": 0,\n            \"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/\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"desiredNumberScheduled\": {\n            \"default\": 0,\n            \"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/\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"numberAvailable\": {\n            \"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)\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"numberMisscheduled\": {\n            \"default\": 0,\n            \"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/\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"numberReady\": {\n            \"default\": 0,\n            \"description\": \"numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"numberUnavailable\": {\n            \"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)\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"observedGeneration\": {\n            \"description\": \"The most recent generation observed by the daemon set controller.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"updatedNumberScheduled\": {\n            \"description\": \"The total number of nodes that are running updated daemon pod\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          }\n        },\n        \"required\": [\n          \"currentNumberScheduled\",\n          \"numberMisscheduled\",\n          \"desiredNumberScheduled\",\n          \"numberReady\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.DaemonSetUpdateStrategy\": {\n        \"description\": \"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\n        \"properties\": {\n          \"rollingUpdate\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.RollingUpdateDaemonSet\"\n              }\n            ],\n            \"description\": \"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\"\n          },\n          \"type\": {\n            \"description\": \"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.Deployment\": {\n        \"description\": \"Deployment enables declarative updates for Pods and ReplicaSets.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          },\n          \"spec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentSpec\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Specification of the desired behavior of the Deployment.\"\n          },\n          \"status\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentStatus\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Most recently observed status of the Deployment.\"\n          }\n        },\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"apps\",\n            \"kind\": \"Deployment\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.apps.v1.DeploymentCondition\": {\n        \"description\": \"DeploymentCondition describes the state of a deployment at a certain point.\",\n        \"properties\": {\n          \"lastTransitionTime\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Last time the condition transitioned from one status to another.\"\n          },\n          \"lastUpdateTime\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"The last time this condition was updated.\"\n          },\n          \"message\": {\n            \"description\": \"A human readable message indicating details about the transition.\",\n            \"type\": \"string\"\n          },\n          \"reason\": {\n            \"description\": \"The reason for the condition's last transition.\",\n            \"type\": \"string\"\n          },\n          \"status\": {\n            \"default\": \"\",\n            \"description\": \"Status of the condition, one of True, False, Unknown.\",\n            \"type\": \"string\"\n          },\n          \"type\": {\n            \"default\": \"\",\n            \"description\": \"Type of deployment condition.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"type\",\n          \"status\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.DeploymentList\": {\n        \"description\": \"DeploymentList is a list of Deployments.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"items\": {\n            \"description\": \"Items is the list of Deployments.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard list metadata.\"\n          }\n        },\n        \"required\": [\n          \"items\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"apps\",\n            \"kind\": \"DeploymentList\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.apps.v1.DeploymentSpec\": {\n        \"description\": \"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\n        \"properties\": {\n          \"minReadySeconds\": {\n            \"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)\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"paused\": {\n            \"description\": \"Indicates that the deployment is paused.\",\n            \"type\": \"boolean\"\n          },\n          \"progressDeadlineSeconds\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"replicas\": {\n            \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"revisionHistoryLimit\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"selector\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n              }\n            ],\n            \"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.\"\n          },\n          \"strategy\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentStrategy\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"The deployment strategy to use to replace existing pods with new ones.\",\n            \"x-kubernetes-patch-strategy\": \"retainKeys\"\n          },\n          \"template\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Template describes the pods that will be created.\"\n          }\n        },\n        \"required\": [\n          \"selector\",\n          \"template\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.DeploymentStatus\": {\n        \"description\": \"DeploymentStatus is the most recently observed status of the Deployment.\",\n        \"properties\": {\n          \"availableReplicas\": {\n            \"description\": \"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"collisionCount\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"conditions\": {\n            \"description\": \"Represents the latest available observations of a deployment's current state.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentCondition\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"type\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"observedGeneration\": {\n            \"description\": \"The generation observed by the deployment controller.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"readyReplicas\": {\n            \"description\": \"readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"replicas\": {\n            \"description\": \"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"unavailableReplicas\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"updatedReplicas\": {\n            \"description\": \"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.DeploymentStrategy\": {\n        \"description\": \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n        \"properties\": {\n          \"rollingUpdate\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.RollingUpdateDeployment\"\n              }\n            ],\n            \"description\": \"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\"\n          },\n          \"type\": {\n            \"description\": \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.ReplicaSet\": {\n        \"description\": \"ReplicaSet ensures that a specified number of pod replicas are running at any given time.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"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\"\n          },\n          \"spec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetSpec\"\n              }\n            ],\n            \"default\": {},\n            \"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\"\n          },\n          \"status\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetStatus\"\n              }\n            ],\n            \"default\": {},\n            \"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\"\n          }\n        },\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"apps\",\n            \"kind\": \"ReplicaSet\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.apps.v1.ReplicaSetCondition\": {\n        \"description\": \"ReplicaSetCondition describes the state of a replica set at a certain point.\",\n        \"properties\": {\n          \"lastTransitionTime\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"The last time the condition transitioned from one status to another.\"\n          },\n          \"message\": {\n            \"description\": \"A human readable message indicating details about the transition.\",\n            \"type\": \"string\"\n          },\n          \"reason\": {\n            \"description\": \"The reason for the condition's last transition.\",\n            \"type\": \"string\"\n          },\n          \"status\": {\n            \"default\": \"\",\n            \"description\": \"Status of the condition, one of True, False, Unknown.\",\n            \"type\": \"string\"\n          },\n          \"type\": {\n            \"default\": \"\",\n            \"description\": \"Type of replica set condition.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"type\",\n          \"status\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.ReplicaSetList\": {\n        \"description\": \"ReplicaSetList is a collection of ReplicaSets.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"items\": {\n            \"description\": \"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\"\n          }\n        },\n        \"required\": [\n          \"items\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"apps\",\n            \"kind\": \"ReplicaSetList\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.apps.v1.ReplicaSetSpec\": {\n        \"description\": \"ReplicaSetSpec is the specification of a ReplicaSet.\",\n        \"properties\": {\n          \"minReadySeconds\": {\n            \"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)\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"replicas\": {\n            \"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\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"selector\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n              }\n            ],\n            \"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\"\n          },\n          \"template\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"\n              }\n            ],\n            \"default\": {},\n            \"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\"\n          }\n        },\n        \"required\": [\n          \"selector\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.ReplicaSetStatus\": {\n        \"description\": \"ReplicaSetStatus represents the current status of a ReplicaSet.\",\n        \"properties\": {\n          \"availableReplicas\": {\n            \"description\": \"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"conditions\": {\n            \"description\": \"Represents the latest available observations of a replica set's current state.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetCondition\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"type\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"fullyLabeledReplicas\": {\n            \"description\": \"The number of pods that have labels matching the labels of the pod template of the replicaset.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"observedGeneration\": {\n            \"description\": \"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"readyReplicas\": {\n            \"description\": \"readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"replicas\": {\n            \"default\": 0,\n            \"description\": \"Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          }\n        },\n        \"required\": [\n          \"replicas\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.RollingUpdateDaemonSet\": {\n        \"description\": \"Spec to control the desired behavior of daemon set rolling update.\",\n        \"properties\": {\n          \"maxSurge\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n              }\n            ],\n            \"description\": \"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.\"\n          },\n          \"maxUnavailable\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n              }\n            ],\n            \"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 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.\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.RollingUpdateDeployment\": {\n        \"description\": \"Spec to control the desired behavior of rolling update.\",\n        \"properties\": {\n          \"maxSurge\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n              }\n            ],\n            \"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.\"\n          },\n          \"maxUnavailable\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n              }\n            ],\n            \"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.\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\": {\n        \"description\": \"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\n        \"properties\": {\n          \"maxUnavailable\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n              }\n            ],\n            \"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 up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.\"\n          },\n          \"partition\": {\n            \"description\": \"Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.StatefulSet\": {\n        \"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.\\n\\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          },\n          \"spec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetSpec\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Spec defines the desired identities of pods in this set.\"\n          },\n          \"status\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetStatus\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\"\n          }\n        },\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"apps\",\n            \"kind\": \"StatefulSet\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.apps.v1.StatefulSetCondition\": {\n        \"description\": \"StatefulSetCondition describes the state of a statefulset at a certain point.\",\n        \"properties\": {\n          \"lastTransitionTime\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Last time the condition transitioned from one status to another.\"\n          },\n          \"message\": {\n            \"description\": \"A human readable message indicating details about the transition.\",\n            \"type\": \"string\"\n          },\n          \"reason\": {\n            \"description\": \"The reason for the condition's last transition.\",\n            \"type\": \"string\"\n          },\n          \"status\": {\n            \"default\": \"\",\n            \"description\": \"Status of the condition, one of True, False, Unknown.\",\n            \"type\": \"string\"\n          },\n          \"type\": {\n            \"default\": \"\",\n            \"description\": \"Type of statefulset condition.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"type\",\n          \"status\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.StatefulSetList\": {\n        \"description\": \"StatefulSetList is a collection of StatefulSets.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"items\": {\n            \"description\": \"Items is the list of stateful sets.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          }\n        },\n        \"required\": [\n          \"items\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"apps\",\n            \"kind\": \"StatefulSetList\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.apps.v1.StatefulSetOrdinals\": {\n        \"description\": \"StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.\",\n        \"properties\": {\n          \"start\": {\n            \"default\": 0,\n            \"description\": \"start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range:\\n  [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\\nIf unset, defaults to 0. Replica indices will be in the range:\\n  [0, .spec.replicas).\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\": {\n        \"description\": \"StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.\",\n        \"properties\": {\n          \"whenDeleted\": {\n            \"description\": \"WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.\",\n            \"type\": \"string\"\n          },\n          \"whenScaled\": {\n            \"description\": \"WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.StatefulSetSpec\": {\n        \"description\": \"A StatefulSetSpec is the specification of a StatefulSet.\",\n        \"properties\": {\n          \"minReadySeconds\": {\n            \"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)\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"ordinals\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetOrdinals\"\n              }\n            ],\n            \"description\": \"ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a \\\"0\\\" index to the first replica and increments the index by one for each additional replica requested. Using the ordinals field requires the StatefulSetStartOrdinal feature gate to be enabled, which is alpha.\"\n          },\n          \"persistentVolumeClaimRetentionPolicy\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\"\n              }\n            ],\n            \"description\": \"persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.  +optional\"\n          },\n          \"podManagementPolicy\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"replicas\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"revisionHistoryLimit\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"selector\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n              }\n            ],\n            \"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\"\n          },\n          \"serviceName\": {\n            \"default\": \"\",\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"template\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"\n              }\n            ],\n            \"default\": {},\n            \"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. Each pod will be named with the format <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named \\\"web\\\" with index number \\\"3\\\" would be named \\\"web-3\\\".\"\n          },\n          \"updateStrategy\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetUpdateStrategy\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\"\n          },\n          \"volumeClaimTemplates\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"required\": [\n          \"selector\",\n          \"template\",\n          \"serviceName\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.StatefulSetStatus\": {\n        \"description\": \"StatefulSetStatus represents the current state of a StatefulSet.\",\n        \"properties\": {\n          \"availableReplicas\": {\n            \"default\": 0,\n            \"description\": \"Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"collisionCount\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"conditions\": {\n            \"description\": \"Represents the latest available observations of a statefulset's current state.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetCondition\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"type\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"currentReplicas\": {\n            \"description\": \"currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"currentRevision\": {\n            \"description\": \"currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).\",\n            \"type\": \"string\"\n          },\n          \"observedGeneration\": {\n            \"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.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"readyReplicas\": {\n            \"description\": \"readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"replicas\": {\n            \"default\": 0,\n            \"description\": \"replicas is the number of Pods created by the StatefulSet controller.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"updateRevision\": {\n            \"description\": \"updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)\",\n            \"type\": \"string\"\n          },\n          \"updatedReplicas\": {\n            \"description\": \"updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          }\n        },\n        \"required\": [\n          \"replicas\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.apps.v1.StatefulSetUpdateStrategy\": {\n        \"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.\",\n        \"properties\": {\n          \"rollingUpdate\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\"\n              }\n            ],\n            \"description\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\"\n          },\n          \"type\": {\n            \"description\": \"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.autoscaling.v1.Scale\": {\n        \"description\": \"Scale represents a scaling request for a resource.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\"\n          },\n          \"spec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.ScaleSpec\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\"\n          },\n          \"status\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.ScaleStatus\"\n              }\n            ],\n            \"default\": {},\n            \"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.\"\n          }\n        },\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"autoscaling\",\n            \"kind\": \"Scale\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.autoscaling.v1.ScaleSpec\": {\n        \"description\": \"ScaleSpec describes the attributes of a scale subresource.\",\n        \"properties\": {\n          \"replicas\": {\n            \"description\": \"desired number of instances for the scaled object.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.autoscaling.v1.ScaleStatus\": {\n        \"description\": \"ScaleStatus represents the current status of a scale subresource.\",\n        \"properties\": {\n          \"replicas\": {\n            \"default\": 0,\n            \"description\": \"actual number of observed instances of the scaled object.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"selector\": {\n            \"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\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"replicas\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\": {\n        \"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.\",\n        \"properties\": {\n          \"fsType\": {\n            \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n            \"type\": \"string\"\n          },\n          \"partition\": {\n            \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n            \"type\": \"boolean\"\n          },\n          \"volumeID\": {\n            \"default\": \"\",\n            \"description\": \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"volumeID\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.Affinity\": {\n        \"description\": \"Affinity is a group of affinity scheduling rules.\",\n        \"properties\": {\n          \"nodeAffinity\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.NodeAffinity\"\n              }\n            ],\n            \"description\": \"Describes node affinity scheduling rules for the pod.\"\n          },\n          \"podAffinity\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodAffinity\"\n              }\n            ],\n            \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\"\n          },\n          \"podAntiAffinity\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodAntiAffinity\"\n              }\n            ],\n            \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.AzureDiskVolumeSource\": {\n        \"description\": \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n        \"properties\": {\n          \"cachingMode\": {\n            \"description\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n            \"type\": \"string\"\n          },\n          \"diskName\": {\n            \"default\": \"\",\n            \"description\": \"diskName is the Name of the data disk in the blob storage\",\n            \"type\": \"string\"\n          },\n          \"diskURI\": {\n            \"default\": \"\",\n            \"description\": \"diskURI is the URI of data disk in the blob storage\",\n            \"type\": \"string\"\n          },\n          \"fsType\": {\n            \"description\": \"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n            \"type\": \"boolean\"\n          }\n        },\n        \"required\": [\n          \"diskName\",\n          \"diskURI\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.AzureFileVolumeSource\": {\n        \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n        \"properties\": {\n          \"readOnly\": {\n            \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n            \"type\": \"boolean\"\n          },\n          \"secretName\": {\n            \"default\": \"\",\n            \"description\": \"secretName is the  name of secret that contains Azure Storage Account Name and Key\",\n            \"type\": \"string\"\n          },\n          \"shareName\": {\n            \"default\": \"\",\n            \"description\": \"shareName is the azure share Name\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"secretName\",\n          \"shareName\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.CSIVolumeSource\": {\n        \"description\": \"Represents a source location of a volume to mount, managed by an external CSI driver\",\n        \"properties\": {\n          \"driver\": {\n            \"default\": \"\",\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"fsType\": {\n            \"description\": \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n            \"type\": \"string\"\n          },\n          \"nodePublishSecretRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"\n              }\n            ],\n            \"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.\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n            \"type\": \"boolean\"\n          },\n          \"volumeAttributes\": {\n            \"additionalProperties\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"description\": \"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n            \"type\": \"object\"\n          }\n        },\n        \"required\": [\n          \"driver\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.Capabilities\": {\n        \"description\": \"Adds and removes POSIX capabilities from running containers.\",\n        \"properties\": {\n          \"add\": {\n            \"description\": \"Added capabilities\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"drop\": {\n            \"description\": \"Removed capabilities\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.CephFSVolumeSource\": {\n        \"description\": \"Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\",\n        \"properties\": {\n          \"monitors\": {\n            \"description\": \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"path\": {\n            \"description\": \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n            \"type\": \"boolean\"\n          },\n          \"secretFile\": {\n            \"description\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n            \"type\": \"string\"\n          },\n          \"secretRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"\n              }\n            ],\n            \"description\": \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\"\n          },\n          \"user\": {\n            \"description\": \"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"monitors\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.CinderVolumeSource\": {\n        \"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.\",\n        \"properties\": {\n          \"fsType\": {\n            \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n            \"type\": \"boolean\"\n          },\n          \"secretRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"\n              }\n            ],\n            \"description\": \"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\"\n          },\n          \"volumeID\": {\n            \"default\": \"\",\n            \"description\": \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"volumeID\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.ClaimSource\": {\n        \"description\": \"ClaimSource describes a reference to a ResourceClaim.\\n\\nExactly one of these fields should be set.  Consumers of this type must treat an empty object as if it has an unknown value.\",\n        \"properties\": {\n          \"resourceClaimName\": {\n            \"description\": \"ResourceClaimName is the name of a ResourceClaim object in the same namespace as this pod.\",\n            \"type\": \"string\"\n          },\n          \"resourceClaimTemplateName\": {\n            \"description\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod.\\n\\nThe template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The name of the ResourceClaim will be <pod name>-<resource name>, where <resource name> is the PodResourceClaim.Name. Pod validation will reject the pod if the concatenated name is not valid for a ResourceClaim (e.g. too long).\\n\\nAn existing ResourceClaim with that name that is not owned by the pod will not be used for the pod to avoid using an unrelated resource by mistake. Scheduling and pod startup are then blocked until the unrelated ResourceClaim is removed.\\n\\nThis field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.ConfigMapEnvSource\": {\n        \"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.\",\n        \"properties\": {\n          \"name\": {\n            \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n            \"type\": \"string\"\n          },\n          \"optional\": {\n            \"description\": \"Specify whether the ConfigMap must be defined\",\n            \"type\": \"boolean\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.ConfigMapKeySelector\": {\n        \"description\": \"Selects a key from a ConfigMap.\",\n        \"properties\": {\n          \"key\": {\n            \"default\": \"\",\n            \"description\": \"The key to select.\",\n            \"type\": \"string\"\n          },\n          \"name\": {\n            \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n            \"type\": \"string\"\n          },\n          \"optional\": {\n            \"description\": \"Specify whether the ConfigMap or its key must be defined\",\n            \"type\": \"boolean\"\n          }\n        },\n        \"required\": [\n          \"key\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"io.k8s.api.core.v1.ConfigMapProjection\": {\n        \"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.\",\n        \"properties\": {\n          \"items\": {\n            \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"name\": {\n            \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n            \"type\": \"string\"\n          },\n          \"optional\": {\n            \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n            \"type\": \"boolean\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.ConfigMapVolumeSource\": {\n        \"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.\",\n        \"properties\": {\n          \"defaultMode\": {\n            \"description\": \"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"items\": {\n            \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"name\": {\n            \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n            \"type\": \"string\"\n          },\n          \"optional\": {\n            \"description\": \"optional specify whether the ConfigMap or its keys must be defined\",\n            \"type\": \"boolean\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.Container\": {\n        \"description\": \"A single application container that you want to run within a pod.\",\n        \"properties\": {\n          \"args\": {\n            \"description\": \"Arguments to the entrypoint. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"command\": {\n            \"description\": \"Entrypoint array. Not executed within a shell. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"env\": {\n            \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.EnvVar\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"name\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"envFrom\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"image\": {\n            \"description\": \"Container 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.\",\n            \"type\": \"string\"\n          },\n          \"imagePullPolicy\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"lifecycle\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"\n              }\n            ],\n            \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\"\n          },\n          \"livenessProbe\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Probe\"\n              }\n            ],\n            \"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\"\n          },\n          \"name\": {\n            \"default\": \"\",\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"ports\": {\n            \"description\": \"List of ports to expose from the container. 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. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-list-map-keys\": [\n              \"containerPort\",\n              \"protocol\"\n            ],\n            \"x-kubernetes-list-type\": \"map\",\n            \"x-kubernetes-patch-merge-key\": \"containerPort\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"readinessProbe\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Probe\"\n              }\n            ],\n            \"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\"\n          },\n          \"resources\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\"\n          },\n          \"securityContext\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"\n              }\n            ],\n            \"description\": \"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\"\n          },\n          \"startupProbe\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Probe\"\n              }\n            ],\n            \"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\"\n          },\n          \"stdin\": {\n            \"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.\",\n            \"type\": \"boolean\"\n          },\n          \"stdinOnce\": {\n            \"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\",\n            \"type\": \"boolean\"\n          },\n          \"terminationMessagePath\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"terminationMessagePolicy\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"tty\": {\n            \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n            \"type\": \"boolean\"\n          },\n          \"volumeDevices\": {\n            \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"devicePath\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"volumeMounts\": {\n            \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"mountPath\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"workingDir\": {\n            \"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.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"name\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.ContainerPort\": {\n        \"description\": \"ContainerPort represents a network port in a single container.\",\n        \"properties\": {\n          \"containerPort\": {\n            \"default\": 0,\n            \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"hostIP\": {\n            \"description\": \"What host IP to bind the external port to.\",\n            \"type\": \"string\"\n          },\n          \"hostPort\": {\n            \"description\": \"Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"name\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"protocol\": {\n            \"default\": \"TCP\",\n            \"description\": \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"containerPort\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.DownwardAPIProjection\": {\n        \"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.\",\n        \"properties\": {\n          \"items\": {\n            \"description\": \"Items is a list of DownwardAPIVolume file\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.DownwardAPIVolumeFile\": {\n        \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n        \"properties\": {\n          \"fieldRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"\n              }\n            ],\n            \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\"\n          },\n          \"mode\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"path\": {\n            \"default\": \"\",\n            \"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 '..'\",\n            \"type\": \"string\"\n          },\n          \"resourceFieldRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"\n              }\n            ],\n            \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\"\n          }\n        },\n        \"required\": [\n          \"path\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.DownwardAPIVolumeSource\": {\n        \"description\": \"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\n        \"properties\": {\n          \"defaultMode\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"items\": {\n            \"description\": \"Items is a list of downward API volume file\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.EmptyDirVolumeSource\": {\n        \"description\": \"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\n        \"properties\": {\n          \"medium\": {\n            \"description\": \"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n            \"type\": \"string\"\n          },\n          \"sizeLimit\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n              }\n            ],\n            \"description\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.EnvFromSource\": {\n        \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n        \"properties\": {\n          \"configMapRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ConfigMapEnvSource\"\n              }\n            ],\n            \"description\": \"The ConfigMap to select from\"\n          },\n          \"prefix\": {\n            \"description\": \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n            \"type\": \"string\"\n          },\n          \"secretRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.SecretEnvSource\"\n              }\n            ],\n            \"description\": \"The Secret to select from\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.EnvVar\": {\n        \"description\": \"EnvVar represents an environment variable present in a Container.\",\n        \"properties\": {\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n            \"type\": \"string\"\n          },\n          \"value\": {\n            \"description\": \"Variable references $(VAR_NAME) are expanded using the previously 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n            \"type\": \"string\"\n          },\n          \"valueFrom\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.EnvVarSource\"\n              }\n            ],\n            \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\"\n          }\n        },\n        \"required\": [\n          \"name\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.EnvVarSource\": {\n        \"description\": \"EnvVarSource represents a source for the value of an EnvVar.\",\n        \"properties\": {\n          \"configMapKeyRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ConfigMapKeySelector\"\n              }\n            ],\n            \"description\": \"Selects a key of a ConfigMap.\"\n          },\n          \"fieldRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"\n              }\n            ],\n            \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\"\n          },\n          \"resourceFieldRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"\n              }\n            ],\n            \"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.\"\n          },\n          \"secretKeyRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.SecretKeySelector\"\n              }\n            ],\n            \"description\": \"Selects a key of a secret in the pod's namespace\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.EphemeralContainer\": {\n        \"description\": \"An EphemeralContainer is a temporary container that you may add 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. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\",\n        \"properties\": {\n          \"args\": {\n            \"description\": \"Arguments to the entrypoint. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"command\": {\n            \"description\": \"Entrypoint array. Not executed within a shell. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"env\": {\n            \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.EnvVar\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"name\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"envFrom\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"image\": {\n            \"description\": \"Container image name. More info: https://kubernetes.io/docs/concepts/containers/images\",\n            \"type\": \"string\"\n          },\n          \"imagePullPolicy\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"lifecycle\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"\n              }\n            ],\n            \"description\": \"Lifecycle is not allowed for ephemeral containers.\"\n          },\n          \"livenessProbe\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Probe\"\n              }\n            ],\n            \"description\": \"Probes are not allowed for ephemeral containers.\"\n          },\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.\",\n            \"type\": \"string\"\n          },\n          \"ports\": {\n            \"description\": \"Ports are not allowed for ephemeral containers.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-list-map-keys\": [\n              \"containerPort\",\n              \"protocol\"\n            ],\n            \"x-kubernetes-list-type\": \"map\",\n            \"x-kubernetes-patch-merge-key\": \"containerPort\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"readinessProbe\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Probe\"\n              }\n            ],\n            \"description\": \"Probes are not allowed for ephemeral containers.\"\n          },\n          \"resources\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\"\n          },\n          \"securityContext\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"\n              }\n            ],\n            \"description\": \"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\"\n          },\n          \"startupProbe\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Probe\"\n              }\n            ],\n            \"description\": \"Probes are not allowed for ephemeral containers.\"\n          },\n          \"stdin\": {\n            \"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.\",\n            \"type\": \"boolean\"\n          },\n          \"stdinOnce\": {\n            \"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\",\n            \"type\": \"boolean\"\n          },\n          \"targetContainerName\": {\n            \"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 uses the namespaces configured in the Pod spec.\\n\\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\n            \"type\": \"string\"\n          },\n          \"terminationMessagePath\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"terminationMessagePolicy\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"tty\": {\n            \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n            \"type\": \"boolean\"\n          },\n          \"volumeDevices\": {\n            \"description\": \"volumeDevices is the list of block devices to be used by the container.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"devicePath\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"volumeMounts\": {\n            \"description\": \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"mountPath\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"workingDir\": {\n            \"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.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"name\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.EphemeralVolumeSource\": {\n        \"description\": \"Represents an ephemeral volume that is handled by a normal storage driver.\",\n        \"properties\": {\n          \"volumeClaimTemplate\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimTemplate\"\n              }\n            ],\n            \"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 `<pod name>-<volume name>` where `<volume name>` 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.\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.ExecAction\": {\n        \"description\": \"ExecAction describes a \\\"run in container\\\" action.\",\n        \"properties\": {\n          \"command\": {\n            \"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.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.FCVolumeSource\": {\n        \"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.\",\n        \"properties\": {\n          \"fsType\": {\n            \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n            \"type\": \"string\"\n          },\n          \"lun\": {\n            \"description\": \"lun is Optional: FC target lun number\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n            \"type\": \"boolean\"\n          },\n          \"targetWWNs\": {\n            \"description\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"wwids\": {\n            \"description\": \"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.FlexVolumeSource\": {\n        \"description\": \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n        \"properties\": {\n          \"driver\": {\n            \"default\": \"\",\n            \"description\": \"driver is the name of the driver to use for this volume.\",\n            \"type\": \"string\"\n          },\n          \"fsType\": {\n            \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n            \"type\": \"string\"\n          },\n          \"options\": {\n            \"additionalProperties\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"description\": \"options is Optional: this field holds extra command options if any.\",\n            \"type\": \"object\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n            \"type\": \"boolean\"\n          },\n          \"secretRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"\n              }\n            ],\n            \"description\": \"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\"\n          }\n        },\n        \"required\": [\n          \"driver\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.FlockerVolumeSource\": {\n        \"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.\",\n        \"properties\": {\n          \"datasetName\": {\n            \"description\": \"datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated\",\n            \"type\": \"string\"\n          },\n          \"datasetUUID\": {\n            \"description\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\": {\n        \"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.\",\n        \"properties\": {\n          \"fsType\": {\n            \"description\": \"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n            \"type\": \"string\"\n          },\n          \"partition\": {\n            \"description\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"pdName\": {\n            \"default\": \"\",\n            \"description\": \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n            \"type\": \"boolean\"\n          }\n        },\n        \"required\": [\n          \"pdName\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.GRPCAction\": {\n        \"properties\": {\n          \"port\": {\n            \"default\": 0,\n            \"description\": \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"service\": {\n            \"default\": \"\",\n            \"description\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"port\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.GitRepoVolumeSource\": {\n        \"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.\",\n        \"properties\": {\n          \"directory\": {\n            \"description\": \"directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n            \"type\": \"string\"\n          },\n          \"repository\": {\n            \"default\": \"\",\n            \"description\": \"repository is the URL\",\n            \"type\": \"string\"\n          },\n          \"revision\": {\n            \"description\": \"revision is the commit hash for the specified revision.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"repository\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.GlusterfsVolumeSource\": {\n        \"description\": \"Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.\",\n        \"properties\": {\n          \"endpoints\": {\n            \"default\": \"\",\n            \"description\": \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n            \"type\": \"string\"\n          },\n          \"path\": {\n            \"default\": \"\",\n            \"description\": \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"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\",\n            \"type\": \"boolean\"\n          }\n        },\n        \"required\": [\n          \"endpoints\",\n          \"path\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.HTTPGetAction\": {\n        \"description\": \"HTTPGetAction describes an action based on HTTP Get requests.\",\n        \"properties\": {\n          \"host\": {\n            \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n            \"type\": \"string\"\n          },\n          \"httpHeaders\": {\n            \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.HTTPHeader\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"path\": {\n            \"description\": \"Path to access on the HTTP server.\",\n            \"type\": \"string\"\n          },\n          \"port\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n              }\n            ],\n            \"default\": {},\n            \"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.\"\n          },\n          \"scheme\": {\n            \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"port\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.HTTPHeader\": {\n        \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n        \"properties\": {\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"The header field name\",\n            \"type\": \"string\"\n          },\n          \"value\": {\n            \"default\": \"\",\n            \"description\": \"The header field value\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"name\",\n          \"value\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.HostAlias\": {\n        \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.\",\n        \"properties\": {\n          \"hostnames\": {\n            \"description\": \"Hostnames for the above IP address.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"ip\": {\n            \"description\": \"IP address of the host file entry.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.HostPathVolumeSource\": {\n        \"description\": \"Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.\",\n        \"properties\": {\n          \"path\": {\n            \"default\": \"\",\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"type\": {\n            \"description\": \"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"path\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.ISCSIVolumeSource\": {\n        \"description\": \"Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.\",\n        \"properties\": {\n          \"chapAuthDiscovery\": {\n            \"description\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n            \"type\": \"boolean\"\n          },\n          \"chapAuthSession\": {\n            \"description\": \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n            \"type\": \"boolean\"\n          },\n          \"fsType\": {\n            \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\n            \"type\": \"string\"\n          },\n          \"initiatorName\": {\n            \"description\": \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.\",\n            \"type\": \"string\"\n          },\n          \"iqn\": {\n            \"default\": \"\",\n            \"description\": \"iqn is the target iSCSI Qualified Name.\",\n            \"type\": \"string\"\n          },\n          \"iscsiInterface\": {\n            \"description\": \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n            \"type\": \"string\"\n          },\n          \"lun\": {\n            \"default\": 0,\n            \"description\": \"lun represents iSCSI Target Lun number.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"portals\": {\n            \"description\": \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n            \"type\": \"boolean\"\n          },\n          \"secretRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"\n              }\n            ],\n            \"description\": \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\"\n          },\n          \"targetPortal\": {\n            \"default\": \"\",\n            \"description\": \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"targetPortal\",\n          \"iqn\",\n          \"lun\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.KeyToPath\": {\n        \"description\": \"Maps a string key to a path within a volume.\",\n        \"properties\": {\n          \"key\": {\n            \"default\": \"\",\n            \"description\": \"key is the key to project.\",\n            \"type\": \"string\"\n          },\n          \"mode\": {\n            \"description\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"path\": {\n            \"default\": \"\",\n            \"description\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"key\",\n          \"path\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.Lifecycle\": {\n        \"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.\",\n        \"properties\": {\n          \"postStart\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"\n              }\n            ],\n            \"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\"\n          },\n          \"preStop\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"\n              }\n            ],\n            \"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 Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). 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\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.LifecycleHandler\": {\n        \"description\": \"LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\",\n        \"properties\": {\n          \"exec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ExecAction\"\n              }\n            ],\n            \"description\": \"Exec specifies the action to take.\"\n          },\n          \"httpGet\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"\n              }\n            ],\n            \"description\": \"HTTPGet specifies the http request to perform.\"\n          },\n          \"tcpSocket\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"\n              }\n            ],\n            \"description\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.LocalObjectReference\": {\n        \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n        \"properties\": {\n          \"name\": {\n            \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\",\n        \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"io.k8s.api.core.v1.NFSVolumeSource\": {\n        \"description\": \"Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.\",\n        \"properties\": {\n          \"path\": {\n            \"default\": \"\",\n            \"description\": \"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"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\",\n            \"type\": \"boolean\"\n          },\n          \"server\": {\n            \"default\": \"\",\n            \"description\": \"server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"server\",\n          \"path\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.NodeAffinity\": {\n        \"description\": \"Node affinity is a group of node affinity scheduling rules.\",\n        \"properties\": {\n          \"preferredDuringSchedulingIgnoredDuringExecution\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PreferredSchedulingTerm\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"requiredDuringSchedulingIgnoredDuringExecution\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.NodeSelector\"\n              }\n            ],\n            \"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.\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.NodeSelector\": {\n        \"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.\",\n        \"properties\": {\n          \"nodeSelectorTerms\": {\n            \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"required\": [\n          \"nodeSelectorTerms\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"io.k8s.api.core.v1.NodeSelectorRequirement\": {\n        \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n        \"properties\": {\n          \"key\": {\n            \"default\": \"\",\n            \"description\": \"The label key that the selector applies to.\",\n            \"type\": \"string\"\n          },\n          \"operator\": {\n            \"default\": \"\",\n            \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n            \"type\": \"string\"\n          },\n          \"values\": {\n            \"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.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"required\": [\n          \"key\",\n          \"operator\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.NodeSelectorTerm\": {\n        \"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.\",\n        \"properties\": {\n          \"matchExpressions\": {\n            \"description\": \"A list of node selector requirements by node's labels.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"matchFields\": {\n            \"description\": \"A list of node selector requirements by node's fields.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"type\": \"object\",\n        \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"io.k8s.api.core.v1.ObjectFieldSelector\": {\n        \"description\": \"ObjectFieldSelector selects an APIVersioned field of an object.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n            \"type\": \"string\"\n          },\n          \"fieldPath\": {\n            \"default\": \"\",\n            \"description\": \"Path of the field to select in the specified API version.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"fieldPath\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"io.k8s.api.core.v1.PersistentVolumeClaim\": {\n        \"description\": \"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          },\n          \"spec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"\n              }\n            ],\n            \"default\": {},\n            \"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\"\n          },\n          \"status\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimStatus\"\n              }\n            ],\n            \"default\": {},\n            \"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\"\n          }\n        },\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"\",\n            \"kind\": \"PersistentVolumeClaim\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.core.v1.PersistentVolumeClaimCondition\": {\n        \"description\": \"PersistentVolumeClaimCondition contails details about state of pvc\",\n        \"properties\": {\n          \"lastProbeTime\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"lastProbeTime is the time we probed the condition.\"\n          },\n          \"lastTransitionTime\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"lastTransitionTime is the time the condition transitioned from one status to another.\"\n          },\n          \"message\": {\n            \"description\": \"message is the human-readable message indicating details about last transition.\",\n            \"type\": \"string\"\n          },\n          \"reason\": {\n            \"description\": \"reason is a 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.\",\n            \"type\": \"string\"\n          },\n          \"status\": {\n            \"default\": \"\",\n            \"type\": \"string\"\n          },\n          \"type\": {\n            \"default\": \"\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"type\",\n          \"status\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PersistentVolumeClaimSpec\": {\n        \"description\": \"PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes\",\n        \"properties\": {\n          \"accessModes\": {\n            \"description\": \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"dataSource\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"\n              }\n            ],\n            \"description\": \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\"\n          },\n          \"dataSourceRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.TypedObjectReference\"\n              }\n            ],\n            \"description\": \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef\\n  allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n  preserves all values, and generates an error if a disallowed value is\\n  specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n  in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\"\n          },\n          \"resources\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\"\n          },\n          \"selector\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n              }\n            ],\n            \"description\": \"selector is a label query over volumes to consider for binding.\"\n          },\n          \"storageClassName\": {\n            \"description\": \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n            \"type\": \"string\"\n          },\n          \"volumeMode\": {\n            \"description\": \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n            \"type\": \"string\"\n          },\n          \"volumeName\": {\n            \"description\": \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PersistentVolumeClaimStatus\": {\n        \"description\": \"PersistentVolumeClaimStatus is the current status of a persistent volume claim.\",\n        \"properties\": {\n          \"accessModes\": {\n            \"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\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"allocatedResources\": {\n            \"additionalProperties\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"description\": \"allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n            \"type\": \"object\"\n          },\n          \"capacity\": {\n            \"additionalProperties\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"description\": \"capacity represents the actual resources of the underlying volume.\",\n            \"type\": \"object\"\n          },\n          \"conditions\": {\n            \"description\": \"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimCondition\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"type\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"phase\": {\n            \"description\": \"phase represents the current phase of PersistentVolumeClaim.\",\n            \"type\": \"string\"\n          },\n          \"resizeStatus\": {\n            \"description\": \"resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PersistentVolumeClaimTemplate\": {\n        \"description\": \"PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\",\n        \"properties\": {\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"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.\"\n          },\n          \"spec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"\n              }\n            ],\n            \"default\": {},\n            \"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.\"\n          }\n        },\n        \"required\": [\n          \"spec\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\": {\n        \"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).\",\n        \"properties\": {\n          \"claimName\": {\n            \"default\": \"\",\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\n            \"type\": \"boolean\"\n          }\n        },\n        \"required\": [\n          \"claimName\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\": {\n        \"description\": \"Represents a Photon Controller persistent disk resource.\",\n        \"properties\": {\n          \"fsType\": {\n            \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n            \"type\": \"string\"\n          },\n          \"pdID\": {\n            \"default\": \"\",\n            \"description\": \"pdID is the ID that identifies Photon Controller persistent disk\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"pdID\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PodAffinity\": {\n        \"description\": \"Pod affinity is a group of inter pod affinity scheduling rules.\",\n        \"properties\": {\n          \"preferredDuringSchedulingIgnoredDuringExecution\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"requiredDuringSchedulingIgnoredDuringExecution\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PodAffinityTerm\": {\n        \"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 <topologyKey> matches that of any node on which a pod of the set of pods is running\",\n        \"properties\": {\n          \"labelSelector\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n              }\n            ],\n            \"description\": \"A label query over a set of resources, in this case pods.\"\n          },\n          \"namespaceSelector\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n              }\n            ],\n            \"description\": \"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.\"\n          },\n          \"namespaces\": {\n            \"description\": \"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\\\".\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"topologyKey\": {\n            \"default\": \"\",\n            \"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.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"topologyKey\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PodAntiAffinity\": {\n        \"description\": \"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\n        \"properties\": {\n          \"preferredDuringSchedulingIgnoredDuringExecution\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"requiredDuringSchedulingIgnoredDuringExecution\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PodDNSConfig\": {\n        \"description\": \"PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\",\n        \"properties\": {\n          \"nameservers\": {\n            \"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.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"options\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodDNSConfigOption\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"searches\": {\n            \"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.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PodDNSConfigOption\": {\n        \"description\": \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n        \"properties\": {\n          \"name\": {\n            \"description\": \"Required.\",\n            \"type\": \"string\"\n          },\n          \"value\": {\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PodOS\": {\n        \"description\": \"PodOS defines the OS parameters of a pod.\",\n        \"properties\": {\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"name\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PodReadinessGate\": {\n        \"description\": \"PodReadinessGate contains the reference to a pod condition\",\n        \"properties\": {\n          \"conditionType\": {\n            \"default\": \"\",\n            \"description\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"conditionType\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PodResourceClaim\": {\n        \"description\": \"PodResourceClaim references exactly one ResourceClaim through a ClaimSource. It adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name.\",\n        \"properties\": {\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.\",\n            \"type\": \"string\"\n          },\n          \"source\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ClaimSource\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Source describes where to find the ResourceClaim.\"\n          }\n        },\n        \"required\": [\n          \"name\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PodSchedulingGate\": {\n        \"description\": \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n        \"properties\": {\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"Name of the scheduling gate. Each scheduling gate must have a unique name field.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"name\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PodSecurityContext\": {\n        \"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.\",\n        \"properties\": {\n          \"fsGroup\": {\n            \"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. Note that this field cannot be set when spec.os.name is windows.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"fsGroupChangePolicy\": {\n            \"description\": \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\n            \"type\": \"string\"\n          },\n          \"runAsGroup\": {\n            \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"runAsNonRoot\": {\n            \"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.\",\n            \"type\": \"boolean\"\n          },\n          \"runAsUser\": {\n            \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"seLinuxOptions\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"\n              }\n            ],\n            \"description\": \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\"\n          },\n          \"seccompProfile\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"\n              }\n            ],\n            \"description\": \"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\"\n          },\n          \"supplementalGroups\": {\n            \"description\": \"A list of groups applied to the first process run in each container, in addition to the container's primary GID, the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. If unspecified, no additional groups are added to any container. Note that group memberships defined in the container image for the uid of the container process are still effective, even if they are not included in this list. Note that this field cannot be set when spec.os.name is windows.\",\n            \"items\": {\n              \"default\": 0,\n              \"format\": \"int64\",\n              \"type\": \"integer\"\n            },\n            \"type\": \"array\"\n          },\n          \"sysctls\": {\n            \"description\": \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Sysctl\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"windowsOptions\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"\n              }\n            ],\n            \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PodSpec\": {\n        \"description\": \"PodSpec is a description of a pod.\",\n        \"properties\": {\n          \"activeDeadlineSeconds\": {\n            \"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.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"affinity\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Affinity\"\n              }\n            ],\n            \"description\": \"If specified, the pod's scheduling constraints\"\n          },\n          \"automountServiceAccountToken\": {\n            \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n            \"type\": \"boolean\"\n          },\n          \"containers\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Container\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"name\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"dnsConfig\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodDNSConfig\"\n              }\n            ],\n            \"description\": \"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\"\n          },\n          \"dnsPolicy\": {\n            \"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'.\",\n            \"type\": \"string\"\n          },\n          \"enableServiceLinks\": {\n            \"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.\",\n            \"type\": \"boolean\"\n          },\n          \"ephemeralContainers\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.EphemeralContainer\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"name\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"hostAliases\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.HostAlias\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"ip\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"hostIPC\": {\n            \"description\": \"Use the host's ipc namespace. Optional: Default to false.\",\n            \"type\": \"boolean\"\n          },\n          \"hostNetwork\": {\n            \"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.\",\n            \"type\": \"boolean\"\n          },\n          \"hostPID\": {\n            \"description\": \"Use the host's pid namespace. Optional: Default to false.\",\n            \"type\": \"boolean\"\n          },\n          \"hostUsers\": {\n            \"description\": \"Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n            \"type\": \"boolean\"\n          },\n          \"hostname\": {\n            \"description\": \"Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.\",\n            \"type\": \"string\"\n          },\n          \"imagePullSecrets\": {\n            \"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. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"name\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"initContainers\": {\n            \"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/\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Container\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"name\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"nodeName\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"nodeSelector\": {\n            \"additionalProperties\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"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/\",\n            \"type\": \"object\",\n            \"x-kubernetes-map-type\": \"atomic\"\n          },\n          \"os\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodOS\"\n              }\n            ],\n            \"description\": \"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\\n\\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\\n\\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup\"\n          },\n          \"overhead\": {\n            \"additionalProperties\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"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/688-pod-overhead/README.md\",\n            \"type\": \"object\"\n          },\n          \"preemptionPolicy\": {\n            \"description\": \"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\n            \"type\": \"string\"\n          },\n          \"priority\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"priorityClassName\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"readinessGates\": {\n            \"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/580-pod-readiness-gates\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodReadinessGate\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"resourceClaims\": {\n            \"description\": \"ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\\n\\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\\n\\nThis field is immutable.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodResourceClaim\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-list-map-keys\": [\n              \"name\"\n            ],\n            \"x-kubernetes-list-type\": \"map\",\n            \"x-kubernetes-patch-merge-key\": \"name\",\n            \"x-kubernetes-patch-strategy\": \"merge,retainKeys\"\n          },\n          \"restartPolicy\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"runtimeClassName\": {\n            \"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/585-runtime-class\",\n            \"type\": \"string\"\n          },\n          \"schedulerName\": {\n            \"description\": \"If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.\",\n            \"type\": \"string\"\n          },\n          \"schedulingGates\": {\n            \"description\": \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod. More info:  https://git.k8s.io/enhancements/keps/sig-scheduling/3521-pod-scheduling-readiness.\\n\\nThis is an alpha-level feature enabled by PodSchedulingReadiness feature gate.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodSchedulingGate\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-list-map-keys\": [\n              \"name\"\n            ],\n            \"x-kubernetes-list-type\": \"map\",\n            \"x-kubernetes-patch-merge-key\": \"name\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"securityContext\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodSecurityContext\"\n              }\n            ],\n            \"description\": \"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\"\n          },\n          \"serviceAccount\": {\n            \"description\": \"DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.\",\n            \"type\": \"string\"\n          },\n          \"serviceAccountName\": {\n            \"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/\",\n            \"type\": \"string\"\n          },\n          \"setHostnameAsFQDN\": {\n            \"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.\",\n            \"type\": \"boolean\"\n          },\n          \"shareProcessNamespace\": {\n            \"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.\",\n            \"type\": \"boolean\"\n          },\n          \"subdomain\": {\n            \"description\": \"If specified, the fully qualified Pod hostname will be \\\"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\\\". If not specified, the pod will not have a domainname at all.\",\n            \"type\": \"string\"\n          },\n          \"terminationGracePeriodSeconds\": {\n            \"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 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.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"tolerations\": {\n            \"description\": \"If specified, the pod's tolerations.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Toleration\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"topologySpreadConstraints\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.TopologySpreadConstraint\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-list-map-keys\": [\n              \"topologyKey\",\n              \"whenUnsatisfiable\"\n            ],\n            \"x-kubernetes-list-type\": \"map\",\n            \"x-kubernetes-patch-merge-key\": \"topologyKey\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"volumes\": {\n            \"description\": \"List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Volume\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"name\",\n            \"x-kubernetes-patch-strategy\": \"merge,retainKeys\"\n          }\n        },\n        \"required\": [\n          \"containers\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PodTemplateSpec\": {\n        \"description\": \"PodTemplateSpec describes the data a pod should have when created from a template\",\n        \"properties\": {\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          },\n          \"spec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodSpec\"\n              }\n            ],\n            \"default\": {},\n            \"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\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PortworxVolumeSource\": {\n        \"description\": \"PortworxVolumeSource represents a Portworx volume resource.\",\n        \"properties\": {\n          \"fsType\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n            \"type\": \"boolean\"\n          },\n          \"volumeID\": {\n            \"default\": \"\",\n            \"description\": \"volumeID uniquely identifies a Portworx volume\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"volumeID\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.PreferredSchedulingTerm\": {\n        \"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).\",\n        \"properties\": {\n          \"preference\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"A node selector term, associated with the corresponding weight.\"\n          },\n          \"weight\": {\n            \"default\": 0,\n            \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          }\n        },\n        \"required\": [\n          \"weight\",\n          \"preference\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.Probe\": {\n        \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n        \"properties\": {\n          \"exec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ExecAction\"\n              }\n            ],\n            \"description\": \"Exec specifies the action to take.\"\n          },\n          \"failureThreshold\": {\n            \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"grpc\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.GRPCAction\"\n              }\n            ],\n            \"description\": \"GRPC specifies an action involving a GRPC port. This is a beta field and requires enabling GRPCContainerProbe feature gate.\"\n          },\n          \"httpGet\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"\n              }\n            ],\n            \"description\": \"HTTPGet specifies the http request to perform.\"\n          },\n          \"initialDelaySeconds\": {\n            \"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\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"periodSeconds\": {\n            \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"successThreshold\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"tcpSocket\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"\n              }\n            ],\n            \"description\": \"TCPSocket specifies an action involving a TCP port.\"\n          },\n          \"terminationGracePeriodSeconds\": {\n            \"description\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"timeoutSeconds\": {\n            \"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\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.ProjectedVolumeSource\": {\n        \"description\": \"Represents a projected volume source\",\n        \"properties\": {\n          \"defaultMode\": {\n            \"description\": \"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"sources\": {\n            \"description\": \"sources is the list of volume projections\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.VolumeProjection\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.QuobyteVolumeSource\": {\n        \"description\": \"Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.\",\n        \"properties\": {\n          \"group\": {\n            \"description\": \"group to map volume access to Default is no group\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n            \"type\": \"boolean\"\n          },\n          \"registry\": {\n            \"default\": \"\",\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"tenant\": {\n            \"description\": \"tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n            \"type\": \"string\"\n          },\n          \"user\": {\n            \"description\": \"user to map volume access to Defaults to serivceaccount user\",\n            \"type\": \"string\"\n          },\n          \"volume\": {\n            \"default\": \"\",\n            \"description\": \"volume is a string that references an already created Quobyte volume by name.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"registry\",\n          \"volume\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.RBDVolumeSource\": {\n        \"description\": \"Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.\",\n        \"properties\": {\n          \"fsType\": {\n            \"description\": \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\n            \"type\": \"string\"\n          },\n          \"image\": {\n            \"default\": \"\",\n            \"description\": \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n            \"type\": \"string\"\n          },\n          \"keyring\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"monitors\": {\n            \"description\": \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"pool\": {\n            \"description\": \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"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\",\n            \"type\": \"boolean\"\n          },\n          \"secretRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"\n              }\n            ],\n            \"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\"\n          },\n          \"user\": {\n            \"description\": \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"monitors\",\n          \"image\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.ResourceClaim\": {\n        \"description\": \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n        \"properties\": {\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"name\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.ResourceFieldSelector\": {\n        \"description\": \"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\n        \"properties\": {\n          \"containerName\": {\n            \"description\": \"Container name: required for volumes, optional for env vars\",\n            \"type\": \"string\"\n          },\n          \"divisor\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\"\n          },\n          \"resource\": {\n            \"default\": \"\",\n            \"description\": \"Required: resource to select\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"resource\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"io.k8s.api.core.v1.ResourceRequirements\": {\n        \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n        \"properties\": {\n          \"claims\": {\n            \"description\": \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.\\n\\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\\n\\nThis field is immutable.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ResourceClaim\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-list-map-keys\": [\n              \"name\"\n            ],\n            \"x-kubernetes-list-type\": \"map\"\n          },\n          \"limits\": {\n            \"additionalProperties\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n            \"type\": \"object\"\n          },\n          \"requests\": {\n            \"additionalProperties\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"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-resources-containers/\",\n            \"type\": \"object\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.SELinuxOptions\": {\n        \"description\": \"SELinuxOptions are the labels to be applied to the container\",\n        \"properties\": {\n          \"level\": {\n            \"description\": \"Level is SELinux level label that applies to the container.\",\n            \"type\": \"string\"\n          },\n          \"role\": {\n            \"description\": \"Role is a SELinux role label that applies to the container.\",\n            \"type\": \"string\"\n          },\n          \"type\": {\n            \"description\": \"Type is a SELinux type label that applies to the container.\",\n            \"type\": \"string\"\n          },\n          \"user\": {\n            \"description\": \"User is a SELinux user label that applies to the container.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.ScaleIOVolumeSource\": {\n        \"description\": \"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\n        \"properties\": {\n          \"fsType\": {\n            \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n            \"type\": \"string\"\n          },\n          \"gateway\": {\n            \"default\": \"\",\n            \"description\": \"gateway is the host address of the ScaleIO API Gateway.\",\n            \"type\": \"string\"\n          },\n          \"protectionDomain\": {\n            \"description\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n            \"type\": \"boolean\"\n          },\n          \"secretRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"\n              }\n            ],\n            \"description\": \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\"\n          },\n          \"sslEnabled\": {\n            \"description\": \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n            \"type\": \"boolean\"\n          },\n          \"storageMode\": {\n            \"description\": \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n            \"type\": \"string\"\n          },\n          \"storagePool\": {\n            \"description\": \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n            \"type\": \"string\"\n          },\n          \"system\": {\n            \"default\": \"\",\n            \"description\": \"system is the name of the storage system as configured in ScaleIO.\",\n            \"type\": \"string\"\n          },\n          \"volumeName\": {\n            \"description\": \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"gateway\",\n          \"system\",\n          \"secretRef\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.SeccompProfile\": {\n        \"description\": \"SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.\",\n        \"properties\": {\n          \"localhostProfile\": {\n            \"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\\\".\",\n            \"type\": \"string\"\n          },\n          \"type\": {\n            \"default\": \"\",\n            \"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.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"type\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-unions\": [\n          {\n            \"discriminator\": \"type\",\n            \"fields-to-discriminateBy\": {\n              \"localhostProfile\": \"LocalhostProfile\"\n            }\n          }\n        ]\n      },\n      \"io.k8s.api.core.v1.SecretEnvSource\": {\n        \"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.\",\n        \"properties\": {\n          \"name\": {\n            \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n            \"type\": \"string\"\n          },\n          \"optional\": {\n            \"description\": \"Specify whether the Secret must be defined\",\n            \"type\": \"boolean\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.SecretKeySelector\": {\n        \"description\": \"SecretKeySelector selects a key of a Secret.\",\n        \"properties\": {\n          \"key\": {\n            \"default\": \"\",\n            \"description\": \"The key of the secret to select from.  Must be a valid secret key.\",\n            \"type\": \"string\"\n          },\n          \"name\": {\n            \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n            \"type\": \"string\"\n          },\n          \"optional\": {\n            \"description\": \"Specify whether the Secret or its key must be defined\",\n            \"type\": \"boolean\"\n          }\n        },\n        \"required\": [\n          \"key\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"io.k8s.api.core.v1.SecretProjection\": {\n        \"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.\",\n        \"properties\": {\n          \"items\": {\n            \"description\": \"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"name\": {\n            \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n            \"type\": \"string\"\n          },\n          \"optional\": {\n            \"description\": \"optional field specify whether the Secret or its key must be defined\",\n            \"type\": \"boolean\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.SecretVolumeSource\": {\n        \"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.\",\n        \"properties\": {\n          \"defaultMode\": {\n            \"description\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"items\": {\n            \"description\": \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"optional\": {\n            \"description\": \"optional field specify whether the Secret or its keys must be defined\",\n            \"type\": \"boolean\"\n          },\n          \"secretName\": {\n            \"description\": \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.SecurityContext\": {\n        \"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.\",\n        \"properties\": {\n          \"allowPrivilegeEscalation\": {\n            \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n            \"type\": \"boolean\"\n          },\n          \"capabilities\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.Capabilities\"\n              }\n            ],\n            \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\"\n          },\n          \"privileged\": {\n            \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n            \"type\": \"boolean\"\n          },\n          \"procMount\": {\n            \"description\": \"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n            \"type\": \"string\"\n          },\n          \"readOnlyRootFilesystem\": {\n            \"description\": \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n            \"type\": \"boolean\"\n          },\n          \"runAsGroup\": {\n            \"description\": \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"runAsNonRoot\": {\n            \"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.\",\n            \"type\": \"boolean\"\n          },\n          \"runAsUser\": {\n            \"description\": \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"seLinuxOptions\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"\n              }\n            ],\n            \"description\": \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\"\n          },\n          \"seccompProfile\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"\n              }\n            ],\n            \"description\": \"The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\"\n          },\n          \"windowsOptions\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"\n              }\n            ],\n            \"description\": \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.ServiceAccountTokenProjection\": {\n        \"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).\",\n        \"properties\": {\n          \"audience\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"expirationSeconds\": {\n            \"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.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"path\": {\n            \"default\": \"\",\n            \"description\": \"path is the path relative to the mount point of the file to project the token into.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"path\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.StorageOSVolumeSource\": {\n        \"description\": \"Represents a StorageOS persistent volume resource.\",\n        \"properties\": {\n          \"fsType\": {\n            \"description\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"description\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n            \"type\": \"boolean\"\n          },\n          \"secretRef\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"\n              }\n            ],\n            \"description\": \"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\"\n          },\n          \"volumeName\": {\n            \"description\": \"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\n            \"type\": \"string\"\n          },\n          \"volumeNamespace\": {\n            \"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.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.Sysctl\": {\n        \"description\": \"Sysctl defines a kernel parameter to be set\",\n        \"properties\": {\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"Name of a property to set\",\n            \"type\": \"string\"\n          },\n          \"value\": {\n            \"default\": \"\",\n            \"description\": \"Value of a property to set\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"name\",\n          \"value\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.TCPSocketAction\": {\n        \"description\": \"TCPSocketAction describes an action based on opening a socket\",\n        \"properties\": {\n          \"host\": {\n            \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n            \"type\": \"string\"\n          },\n          \"port\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n              }\n            ],\n            \"default\": {},\n            \"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.\"\n          }\n        },\n        \"required\": [\n          \"port\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.Toleration\": {\n        \"description\": \"The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.\",\n        \"properties\": {\n          \"effect\": {\n            \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n            \"type\": \"string\"\n          },\n          \"key\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"operator\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"tolerationSeconds\": {\n            \"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.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"value\": {\n            \"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.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.TopologySpreadConstraint\": {\n        \"description\": \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n        \"properties\": {\n          \"labelSelector\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n              }\n            ],\n            \"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.\"\n          },\n          \"matchLabelKeys\": {\n            \"description\": \"MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-list-type\": \"atomic\"\n          },\n          \"maxSkew\": {\n            \"default\": 0,\n            \"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. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | |  P P  |  P P  |   P   | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) 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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"minDomains\": {\n            \"description\": \"MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | |  P P  |  P P  |  P P  | The number of domains is less than 5(MinDomains), so \\\"global minimum\\\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.\\n\\nThis is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default).\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"nodeAffinityPolicy\": {\n            \"description\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n            \"type\": \"string\"\n          },\n          \"nodeTaintsPolicy\": {\n            \"description\": \"NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n            \"type\": \"string\"\n          },\n          \"topologyKey\": {\n            \"default\": \"\",\n            \"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 <key, value> as a \\\"bucket\\\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology. And, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology. It's a required field.\",\n            \"type\": \"string\"\n          },\n          \"whenUnsatisfiable\": {\n            \"default\": \"\",\n            \"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 assignment 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.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"maxSkew\",\n          \"topologyKey\",\n          \"whenUnsatisfiable\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.TypedLocalObjectReference\": {\n        \"description\": \"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\n        \"properties\": {\n          \"apiGroup\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"default\": \"\",\n            \"description\": \"Kind is the type of resource being referenced\",\n            \"type\": \"string\"\n          },\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"Name is the name of resource being referenced\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"kind\",\n          \"name\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"io.k8s.api.core.v1.TypedObjectReference\": {\n        \"properties\": {\n          \"apiGroup\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"default\": \"\",\n            \"description\": \"Kind is the type of resource being referenced\",\n            \"type\": \"string\"\n          },\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"Name is the name of resource being referenced\",\n            \"type\": \"string\"\n          },\n          \"namespace\": {\n            \"description\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"kind\",\n          \"name\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.Volume\": {\n        \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n        \"properties\": {\n          \"awsElasticBlockStore\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"\n              }\n            ],\n            \"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\"\n          },\n          \"azureDisk\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.AzureDiskVolumeSource\"\n              }\n            ],\n            \"description\": \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\"\n          },\n          \"azureFile\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.AzureFileVolumeSource\"\n              }\n            ],\n            \"description\": \"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\"\n          },\n          \"cephfs\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.CephFSVolumeSource\"\n              }\n            ],\n            \"description\": \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\"\n          },\n          \"cinder\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.CinderVolumeSource\"\n              }\n            ],\n            \"description\": \"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\"\n          },\n          \"configMap\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ConfigMapVolumeSource\"\n              }\n            ],\n            \"description\": \"configMap represents a configMap that should populate this volume\"\n          },\n          \"csi\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.CSIVolumeSource\"\n              }\n            ],\n            \"description\": \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\"\n          },\n          \"downwardAPI\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeSource\"\n              }\n            ],\n            \"description\": \"downwardAPI represents downward API about the pod that should populate this volume\"\n          },\n          \"emptyDir\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.EmptyDirVolumeSource\"\n              }\n            ],\n            \"description\": \"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\"\n          },\n          \"ephemeral\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.EphemeralVolumeSource\"\n              }\n            ],\n            \"description\": \"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\\n\\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\\n   tracking are needed,\\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n   information on the connection between this volume type\\n   and PersistentVolumeClaim).\\n\\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\\n\\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.\"\n          },\n          \"fc\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.FCVolumeSource\"\n              }\n            ],\n            \"description\": \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\"\n          },\n          \"flexVolume\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.FlexVolumeSource\"\n              }\n            ],\n            \"description\": \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\"\n          },\n          \"flocker\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.FlockerVolumeSource\"\n              }\n            ],\n            \"description\": \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\"\n          },\n          \"gcePersistentDisk\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"\n              }\n            ],\n            \"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\"\n          },\n          \"gitRepo\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.GitRepoVolumeSource\"\n              }\n            ],\n            \"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.\"\n          },\n          \"glusterfs\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.GlusterfsVolumeSource\"\n              }\n            ],\n            \"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\"\n          },\n          \"hostPath\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.HostPathVolumeSource\"\n              }\n            ],\n            \"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\"\n          },\n          \"iscsi\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ISCSIVolumeSource\"\n              }\n            ],\n            \"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\"\n          },\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n            \"type\": \"string\"\n          },\n          \"nfs\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.NFSVolumeSource\"\n              }\n            ],\n            \"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\"\n          },\n          \"persistentVolumeClaim\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"\n              }\n            ],\n            \"description\": \"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\"\n          },\n          \"photonPersistentDisk\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"\n              }\n            ],\n            \"description\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\"\n          },\n          \"portworxVolume\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource\"\n              }\n            ],\n            \"description\": \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\"\n          },\n          \"projected\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ProjectedVolumeSource\"\n              }\n            ],\n            \"description\": \"projected items for all in one resources secrets, configmaps, and downward API\"\n          },\n          \"quobyte\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.QuobyteVolumeSource\"\n              }\n            ],\n            \"description\": \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\"\n          },\n          \"rbd\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.RBDVolumeSource\"\n              }\n            ],\n            \"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\"\n          },\n          \"scaleIO\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ScaleIOVolumeSource\"\n              }\n            ],\n            \"description\": \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\"\n          },\n          \"secret\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.SecretVolumeSource\"\n              }\n            ],\n            \"description\": \"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\"\n          },\n          \"storageos\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.StorageOSVolumeSource\"\n              }\n            ],\n            \"description\": \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\"\n          },\n          \"vsphereVolume\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"\n              }\n            ],\n            \"description\": \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\"\n          }\n        },\n        \"required\": [\n          \"name\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.VolumeDevice\": {\n        \"description\": \"volumeDevice describes a mapping of a raw block device within a container.\",\n        \"properties\": {\n          \"devicePath\": {\n            \"default\": \"\",\n            \"description\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n            \"type\": \"string\"\n          },\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"name must match the name of a persistentVolumeClaim in the pod\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"name\",\n          \"devicePath\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.VolumeMount\": {\n        \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n        \"properties\": {\n          \"mountPath\": {\n            \"default\": \"\",\n            \"description\": \"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\n            \"type\": \"string\"\n          },\n          \"mountPropagation\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"This must match the Name of a Volume.\",\n            \"type\": \"string\"\n          },\n          \"readOnly\": {\n            \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n            \"type\": \"boolean\"\n          },\n          \"subPath\": {\n            \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n            \"type\": \"string\"\n          },\n          \"subPathExpr\": {\n            \"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.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"name\",\n          \"mountPath\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.VolumeProjection\": {\n        \"description\": \"Projection that may be projected along with other supported volume types\",\n        \"properties\": {\n          \"configMap\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ConfigMapProjection\"\n              }\n            ],\n            \"description\": \"configMap information about the configMap data to project\"\n          },\n          \"downwardAPI\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.DownwardAPIProjection\"\n              }\n            ],\n            \"description\": \"downwardAPI information about the downwardAPI data to project\"\n          },\n          \"secret\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.SecretProjection\"\n              }\n            ],\n            \"description\": \"secret information about the secret data to project\"\n          },\n          \"serviceAccountToken\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.ServiceAccountTokenProjection\"\n              }\n            ],\n            \"description\": \"serviceAccountToken is information about the serviceAccountToken data to project\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\": {\n        \"description\": \"Represents a vSphere volume resource.\",\n        \"properties\": {\n          \"fsType\": {\n            \"description\": \"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n            \"type\": \"string\"\n          },\n          \"storagePolicyID\": {\n            \"description\": \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n            \"type\": \"string\"\n          },\n          \"storagePolicyName\": {\n            \"description\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n            \"type\": \"string\"\n          },\n          \"volumePath\": {\n            \"default\": \"\",\n            \"description\": \"volumePath is the path that identifies vSphere volume vmdk\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"volumePath\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.WeightedPodAffinityTerm\": {\n        \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n        \"properties\": {\n          \"podAffinityTerm\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\"\n          },\n          \"weight\": {\n            \"default\": 0,\n            \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          }\n        },\n        \"required\": [\n          \"weight\",\n          \"podAffinityTerm\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.core.v1.WindowsSecurityContextOptions\": {\n        \"description\": \"WindowsSecurityContextOptions contain Windows-specific options and credentials.\",\n        \"properties\": {\n          \"gmsaCredentialSpec\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"gmsaCredentialSpecName\": {\n            \"description\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n            \"type\": \"string\"\n          },\n          \"hostProcess\": {\n            \"description\": \"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).  In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n            \"type\": \"boolean\"\n          },\n          \"runAsUserName\": {\n            \"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.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.api.resource.Quantity\": {\n        \"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``` <quantity>        ::= <signedNumber><suffix>\\n\\n\\t(Note that <suffix> may be empty, from the \\\"\\\" case in <decimalSI>.)\\n\\n<digit>           ::= 0 | 1 | ... | 9 <digits>          ::= <digit> | <digit><digits> <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits> <sign>            ::= \\\"+\\\" | \\\"-\\\" <signedNumber>    ::= <number> | <sign><number> <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI> <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei\\n\\n\\t(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\\n\\n<decimalSI>       ::= m | \\\"\\\" | k | M | G | T | P | E\\n\\n\\t(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\\n\\n<decimalExponent> ::= \\\"e\\\" <signedNumber> | \\\"E\\\" <signedNumber> ```\\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\\n- No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.\\n\\nThe sign will be omitted unless the number is negative.\\n\\nExamples:\\n\\n- 1.5 will be serialized as \\\"1500m\\\" - 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.\",\n        \"oneOf\": [\n          {\n            \"type\": \"string\"\n          },\n          {\n            \"type\": \"number\"\n          }\n        ]\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\": {\n        \"description\": \"APIResource specifies the name of a resource and whether it is namespaced.\",\n        \"properties\": {\n          \"categories\": {\n            \"description\": \"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"group\": {\n            \"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\\\".\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"default\": \"\",\n            \"description\": \"kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')\",\n            \"type\": \"string\"\n          },\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"name is the plural name of the resource.\",\n            \"type\": \"string\"\n          },\n          \"namespaced\": {\n            \"default\": false,\n            \"description\": \"namespaced indicates if a resource is namespaced or not.\",\n            \"type\": \"boolean\"\n          },\n          \"shortNames\": {\n            \"description\": \"shortNames is a list of suggested short names of the resource.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"singularName\": {\n            \"default\": \"\",\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"storageVersionHash\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"verbs\": {\n            \"description\": \"verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"version\": {\n            \"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)\\\".\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"name\",\n          \"singularName\",\n          \"namespaced\",\n          \"kind\",\n          \"verbs\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\": {\n        \"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.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"groupVersion\": {\n            \"default\": \"\",\n            \"description\": \"groupVersion is the group and version this APIResourceList is for.\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"resources\": {\n            \"description\": \"resources contains the name of the resources and if they are namespaced.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"required\": [\n          \"groupVersion\",\n          \"resources\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"\",\n            \"kind\": \"APIResourceList\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\": {\n        \"description\": \"DeleteOptions may be provided when deleting an API object.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"dryRun\": {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"gracePeriodSeconds\": {\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"orphanDependents\": {\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"type\": \"boolean\"\n          },\n          \"preconditions\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"\n              }\n            ],\n            \"description\": \"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\"\n          },\n          \"propagationPolicy\": {\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"admission.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"admission.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"admissionregistration.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"admissionregistration.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"admissionregistration.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"apiextensions.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"apiextensions.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"apiregistration.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"apiregistration.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"apps\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"apps\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"apps\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta2\"\n          },\n          {\n            \"group\": \"authentication.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"authentication.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"authentication.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"authorization.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"authorization.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"autoscaling\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"autoscaling\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v2\"\n          },\n          {\n            \"group\": \"autoscaling\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v2beta1\"\n          },\n          {\n            \"group\": \"autoscaling\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v2beta2\"\n          },\n          {\n            \"group\": \"batch\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"batch\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"certificates.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"certificates.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"coordination.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"coordination.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"discovery.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"discovery.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"events.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"events.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"extensions\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"flowcontrol.apiserver.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"flowcontrol.apiserver.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"flowcontrol.apiserver.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta2\"\n          },\n          {\n            \"group\": \"flowcontrol.apiserver.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta3\"\n          },\n          {\n            \"group\": \"imagepolicy.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"internal.apiserver.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"networking.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"networking.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"networking.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"node.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"node.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"node.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"policy\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"policy\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"rbac.authorization.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"rbac.authorization.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"rbac.authorization.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"resource.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"scheduling.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"scheduling.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"scheduling.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"storage.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"storage.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"storage.k8s.io\",\n            \"kind\": \"DeleteOptions\",\n            \"version\": \"v1beta1\"\n          }\n        ]\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\": {\n        \"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:<name>', where <name> is the name of a field in a struct, or key in a map 'v:<value>', where <value> is the exact json formatted value of a list item 'i:<index>', where <index> is position of a item in a list 'k:<keys>', where <keys> 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\",\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\": {\n        \"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.\",\n        \"properties\": {\n          \"matchExpressions\": {\n            \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"matchLabels\": {\n            \"additionalProperties\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"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.\",\n            \"type\": \"object\"\n          }\n        },\n        \"type\": \"object\",\n        \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\": {\n        \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n        \"properties\": {\n          \"key\": {\n            \"default\": \"\",\n            \"description\": \"key is the label key that the selector applies to.\",\n            \"type\": \"string\",\n            \"x-kubernetes-patch-merge-key\": \"key\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"operator\": {\n            \"default\": \"\",\n            \"description\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n            \"type\": \"string\"\n          },\n          \"values\": {\n            \"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.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"required\": [\n          \"key\",\n          \"operator\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\": {\n        \"description\": \"ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.\",\n        \"properties\": {\n          \"continue\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"remainingItemCount\": {\n            \"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.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"resourceVersion\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"selfLink\": {\n            \"description\": \"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\": {\n        \"description\": \"ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"fieldsType\": {\n            \"description\": \"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\n            \"type\": \"string\"\n          },\n          \"fieldsV1\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"\n              }\n            ],\n            \"description\": \"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\"\n          },\n          \"manager\": {\n            \"description\": \"Manager is an identifier of the workflow managing these fields.\",\n            \"type\": \"string\"\n          },\n          \"operation\": {\n            \"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'.\",\n            \"type\": \"string\"\n          },\n          \"subresource\": {\n            \"description\": \"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\n            \"type\": \"string\"\n          },\n          \"time\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"description\": \"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\": {\n        \"description\": \"ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.\",\n        \"properties\": {\n          \"annotations\": {\n            \"additionalProperties\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"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\",\n            \"type\": \"object\"\n          },\n          \"creationTimestamp\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"default\": {},\n            \"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\"\n          },\n          \"deletionGracePeriodSeconds\": {\n            \"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.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"deletionTimestamp\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"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\"\n          },\n          \"finalizers\": {\n            \"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.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"generateName\": {\n            \"description\": \"GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\\n\\nIf this field is specified and the generated name exists, the server will return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\n            \"type\": \"string\"\n          },\n          \"generation\": {\n            \"description\": \"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"labels\": {\n            \"additionalProperties\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"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\",\n            \"type\": \"object\"\n          },\n          \"managedFields\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"name\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"namespace\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"ownerReferences\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"uid\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"resourceVersion\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"selfLink\": {\n            \"description\": \"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\n            \"type\": \"string\"\n          },\n          \"uid\": {\n            \"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\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\": {\n        \"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.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"default\": \"\",\n            \"description\": \"API version of the referent.\",\n            \"type\": \"string\"\n          },\n          \"blockOwnerDeletion\": {\n            \"description\": \"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\n            \"type\": \"boolean\"\n          },\n          \"controller\": {\n            \"description\": \"If true, this reference points to the managing controller.\",\n            \"type\": \"boolean\"\n          },\n          \"kind\": {\n            \"default\": \"\",\n            \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n            \"type\": \"string\"\n          },\n          \"uid\": {\n            \"default\": \"\",\n            \"description\": \"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"apiVersion\",\n          \"kind\",\n          \"name\",\n          \"uid\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.Patch\": {\n        \"description\": \"Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.\",\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\": {\n        \"description\": \"Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\",\n        \"properties\": {\n          \"resourceVersion\": {\n            \"description\": \"Specifies the target ResourceVersion\",\n            \"type\": \"string\"\n          },\n          \"uid\": {\n            \"description\": \"Specifies the target UID.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.Status\": {\n        \"description\": \"Status is a return value for calls that don't return other objects.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"code\": {\n            \"description\": \"Suggested HTTP return code for this status, 0 if not set.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"details\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"\n              }\n            ],\n            \"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.\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"message\": {\n            \"description\": \"A human-readable description of the status of this operation.\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\"\n          },\n          \"reason\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"status\": {\n            \"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\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"\",\n            \"kind\": \"Status\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"resource.k8s.io\",\n            \"kind\": \"Status\",\n            \"version\": \"v1alpha1\"\n          }\n        ]\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\": {\n        \"description\": \"StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.\",\n        \"properties\": {\n          \"field\": {\n            \"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\\\"\",\n            \"type\": \"string\"\n          },\n          \"message\": {\n            \"description\": \"A human-readable description of the cause of the error.  This field may be presented as-is to a reader.\",\n            \"type\": \"string\"\n          },\n          \"reason\": {\n            \"description\": \"A machine-readable description of the cause of the error. If this value is empty there is no information available.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\": {\n        \"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.\",\n        \"properties\": {\n          \"causes\": {\n            \"description\": \"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"group\": {\n            \"description\": \"The group attribute of the resource associated with the status StatusReason.\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"name\": {\n            \"description\": \"The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).\",\n            \"type\": \"string\"\n          },\n          \"retryAfterSeconds\": {\n            \"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.\",\n            \"format\": \"int32\",\n            \"type\": \"integer\"\n          },\n          \"uid\": {\n            \"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\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.Time\": {\n        \"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.\",\n        \"format\": \"date-time\",\n        \"type\": \"string\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\": {\n        \"description\": \"Event represents a single event to a watched resource.\",\n        \"properties\": {\n          \"object\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension\"\n              }\n            ],\n            \"default\": {},\n            \"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.\"\n          },\n          \"type\": {\n            \"default\": \"\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"type\",\n          \"object\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"admission.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"admission.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"admissionregistration.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"admissionregistration.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"admissionregistration.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"apiextensions.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"apiextensions.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"apiregistration.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"apiregistration.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"apps\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"apps\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"apps\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta2\"\n          },\n          {\n            \"group\": \"authentication.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"authentication.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"authentication.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"authorization.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"authorization.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"autoscaling\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"autoscaling\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v2\"\n          },\n          {\n            \"group\": \"autoscaling\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v2beta1\"\n          },\n          {\n            \"group\": \"autoscaling\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v2beta2\"\n          },\n          {\n            \"group\": \"batch\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"batch\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"certificates.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"certificates.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"coordination.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"coordination.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"discovery.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"discovery.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"events.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"events.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"extensions\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"flowcontrol.apiserver.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"flowcontrol.apiserver.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"flowcontrol.apiserver.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta2\"\n          },\n          {\n            \"group\": \"flowcontrol.apiserver.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta3\"\n          },\n          {\n            \"group\": \"imagepolicy.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"internal.apiserver.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"networking.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"networking.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"networking.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"node.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"node.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"node.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"policy\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"policy\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"rbac.authorization.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"rbac.authorization.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"rbac.authorization.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"resource.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"scheduling.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"scheduling.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"scheduling.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          },\n          {\n            \"group\": \"storage.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1\"\n          },\n          {\n            \"group\": \"storage.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1alpha1\"\n          },\n          {\n            \"group\": \"storage.k8s.io\",\n            \"kind\": \"WatchEvent\",\n            \"version\": \"v1beta1\"\n          }\n        ]\n      },\n      \"io.k8s.apimachinery.pkg.runtime.RawExtension\": {\n        \"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:\\n\\n\\ttype MyAPIObject struct {\\n\\t\\truntime.TypeMeta `json:\\\",inline\\\"`\\n\\t\\tMyPlugin runtime.Object `json:\\\"myPlugin\\\"`\\n\\t}\\n\\n\\ttype PluginA struct {\\n\\t\\tAOption string `json:\\\"aOption\\\"`\\n\\t}\\n\\n// External package:\\n\\n\\ttype MyAPIObject struct {\\n\\t\\truntime.TypeMeta `json:\\\",inline\\\"`\\n\\t\\tMyPlugin runtime.RawExtension `json:\\\"myPlugin\\\"`\\n\\t}\\n\\n\\ttype PluginA struct {\\n\\t\\tAOption string `json:\\\"aOption\\\"`\\n\\t}\\n\\n// On the wire, the JSON will look something like this:\\n\\n\\t{\\n\\t\\t\\\"kind\\\":\\\"MyAPIObject\\\",\\n\\t\\t\\\"apiVersion\\\":\\\"v1\\\",\\n\\t\\t\\\"myPlugin\\\": {\\n\\t\\t\\t\\\"kind\\\":\\\"PluginA\\\",\\n\\t\\t\\t\\\"aOption\\\":\\\"foo\\\",\\n\\t\\t},\\n\\t}\\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.)\",\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.util.intstr.IntOrString\": {\n        \"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.\",\n        \"format\": \"int-or-string\",\n        \"oneOf\": [\n          {\n            \"type\": \"integer\"\n          },\n          {\n            \"type\": \"string\"\n          }\n        ]\n      }\n    },\n    \"securitySchemes\": {\n      \"BearerToken\": {\n        \"description\": \"Bearer Token authentication\",\n        \"in\": \"header\",\n        \"name\": \"authorization\",\n        \"type\": \"apiKey\"\n      }\n    }\n  },\n  \"info\": {\n    \"title\": \"Kubernetes\",\n    \"version\": \"unversioned\"\n  },\n  \"openapi\": \"3.0.0\",\n  \"paths\": {\n    \"/apis/apps/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"operationId\": \"getAppsV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ]\n      }\n    },\n    \"/apis/apps/v1/controllerrevisions\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ControllerRevision\",\n        \"operationId\": \"listAppsV1ControllerRevisionForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/daemonsets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind DaemonSet\",\n        \"operationId\": \"listAppsV1DaemonSetForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/deployments\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind Deployment\",\n        \"operationId\": \"listAppsV1DeploymentForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/controllerrevisions\": {\n      \"delete\": {\n        \"description\": \"delete collection of ControllerRevision\",\n        \"operationId\": \"deleteAppsV1CollectionNamespacedControllerRevision\",\n        \"parameters\": [\n          {\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"in\": \"query\",\n            \"name\": \"continue\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"fieldSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"in\": \"query\",\n            \"name\": \"gracePeriodSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"labelSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"in\": \"query\",\n            \"name\": \"orphanDependents\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"in\": \"query\",\n            \"name\": \"propagationPolicy\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersion\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersionMatch\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"in\": \"query\",\n            \"name\": \"timeoutSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"get\": {\n        \"description\": \"list or watch objects of kind ControllerRevision\",\n        \"operationId\": \"listAppsV1NamespacedControllerRevision\",\n        \"parameters\": [\n          {\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"in\": \"query\",\n            \"name\": \"allowWatchBookmarks\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"in\": \"query\",\n            \"name\": \"continue\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"fieldSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"labelSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersion\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersionMatch\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"in\": \"query\",\n            \"name\": \"timeoutSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"in\": \"query\",\n            \"name\": \"watch\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"post\": {\n        \"description\": \"create a ControllerRevision\",\n        \"operationId\": \"createAppsV1NamespacedControllerRevision\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}\": {\n      \"delete\": {\n        \"description\": \"delete a ControllerRevision\",\n        \"operationId\": \"deleteAppsV1NamespacedControllerRevision\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"in\": \"query\",\n            \"name\": \"gracePeriodSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"in\": \"query\",\n            \"name\": \"orphanDependents\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"in\": \"query\",\n            \"name\": \"propagationPolicy\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"get\": {\n        \"description\": \"read the specified ControllerRevision\",\n        \"operationId\": \"readAppsV1NamespacedControllerRevision\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"name of the ControllerRevision\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"patch\": {\n        \"description\": \"partially update the specified ControllerRevision\",\n        \"operationId\": \"patchAppsV1NamespacedControllerRevision\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"in\": \"query\",\n            \"name\": \"force\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/apply-patch+yaml\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/json-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/strategic-merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified ControllerRevision\",\n        \"operationId\": \"replaceAppsV1NamespacedControllerRevision\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/daemonsets\": {\n      \"delete\": {\n        \"description\": \"delete collection of DaemonSet\",\n        \"operationId\": \"deleteAppsV1CollectionNamespacedDaemonSet\",\n        \"parameters\": [\n          {\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"in\": \"query\",\n            \"name\": \"continue\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"fieldSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"in\": \"query\",\n            \"name\": \"gracePeriodSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"labelSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"in\": \"query\",\n            \"name\": \"orphanDependents\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"in\": \"query\",\n            \"name\": \"propagationPolicy\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersion\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersionMatch\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"in\": \"query\",\n            \"name\": \"timeoutSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"get\": {\n        \"description\": \"list or watch objects of kind DaemonSet\",\n        \"operationId\": \"listAppsV1NamespacedDaemonSet\",\n        \"parameters\": [\n          {\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"in\": \"query\",\n            \"name\": \"allowWatchBookmarks\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"in\": \"query\",\n            \"name\": \"continue\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"fieldSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"labelSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersion\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersionMatch\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"in\": \"query\",\n            \"name\": \"timeoutSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"in\": \"query\",\n            \"name\": \"watch\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"post\": {\n        \"description\": \"create a DaemonSet\",\n        \"operationId\": \"createAppsV1NamespacedDaemonSet\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}\": {\n      \"delete\": {\n        \"description\": \"delete a DaemonSet\",\n        \"operationId\": \"deleteAppsV1NamespacedDaemonSet\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"in\": \"query\",\n            \"name\": \"gracePeriodSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"in\": \"query\",\n            \"name\": \"orphanDependents\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"in\": \"query\",\n            \"name\": \"propagationPolicy\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"get\": {\n        \"description\": \"read the specified DaemonSet\",\n        \"operationId\": \"readAppsV1NamespacedDaemonSet\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"name of the DaemonSet\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"patch\": {\n        \"description\": \"partially update the specified DaemonSet\",\n        \"operationId\": \"patchAppsV1NamespacedDaemonSet\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"in\": \"query\",\n            \"name\": \"force\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/apply-patch+yaml\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/json-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/strategic-merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified DaemonSet\",\n        \"operationId\": \"replaceAppsV1NamespacedDaemonSet\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified DaemonSet\",\n        \"operationId\": \"readAppsV1NamespacedDaemonSetStatus\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"name of the DaemonSet\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"patch\": {\n        \"description\": \"partially update status of the specified DaemonSet\",\n        \"operationId\": \"patchAppsV1NamespacedDaemonSetStatus\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"in\": \"query\",\n            \"name\": \"force\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/apply-patch+yaml\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/json-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/strategic-merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified DaemonSet\",\n        \"operationId\": \"replaceAppsV1NamespacedDaemonSetStatus\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/deployments\": {\n      \"delete\": {\n        \"description\": \"delete collection of Deployment\",\n        \"operationId\": \"deleteAppsV1CollectionNamespacedDeployment\",\n        \"parameters\": [\n          {\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"in\": \"query\",\n            \"name\": \"continue\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"fieldSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"in\": \"query\",\n            \"name\": \"gracePeriodSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"labelSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"in\": \"query\",\n            \"name\": \"orphanDependents\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"in\": \"query\",\n            \"name\": \"propagationPolicy\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersion\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersionMatch\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"in\": \"query\",\n            \"name\": \"timeoutSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"get\": {\n        \"description\": \"list or watch objects of kind Deployment\",\n        \"operationId\": \"listAppsV1NamespacedDeployment\",\n        \"parameters\": [\n          {\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"in\": \"query\",\n            \"name\": \"allowWatchBookmarks\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"in\": \"query\",\n            \"name\": \"continue\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"fieldSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"labelSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersion\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersionMatch\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"in\": \"query\",\n            \"name\": \"timeoutSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"in\": \"query\",\n            \"name\": \"watch\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"post\": {\n        \"description\": \"create a Deployment\",\n        \"operationId\": \"createAppsV1NamespacedDeployment\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/deployments/{name}\": {\n      \"delete\": {\n        \"description\": \"delete a Deployment\",\n        \"operationId\": \"deleteAppsV1NamespacedDeployment\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"in\": \"query\",\n            \"name\": \"gracePeriodSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"in\": \"query\",\n            \"name\": \"orphanDependents\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"in\": \"query\",\n            \"name\": \"propagationPolicy\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"get\": {\n        \"description\": \"read the specified Deployment\",\n        \"operationId\": \"readAppsV1NamespacedDeployment\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"name of the Deployment\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"patch\": {\n        \"description\": \"partially update the specified Deployment\",\n        \"operationId\": \"patchAppsV1NamespacedDeployment\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"in\": \"query\",\n            \"name\": \"force\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/apply-patch+yaml\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/json-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/strategic-merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified Deployment\",\n        \"operationId\": \"replaceAppsV1NamespacedDeployment\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale\": {\n      \"get\": {\n        \"description\": \"read scale of the specified Deployment\",\n        \"operationId\": \"readAppsV1NamespacedDeploymentScale\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"name of the Scale\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"patch\": {\n        \"description\": \"partially update scale of the specified Deployment\",\n        \"operationId\": \"patchAppsV1NamespacedDeploymentScale\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"in\": \"query\",\n            \"name\": \"force\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/apply-patch+yaml\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/json-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/strategic-merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace scale of the specified Deployment\",\n        \"operationId\": \"replaceAppsV1NamespacedDeploymentScale\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified Deployment\",\n        \"operationId\": \"readAppsV1NamespacedDeploymentStatus\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"name of the Deployment\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"patch\": {\n        \"description\": \"partially update status of the specified Deployment\",\n        \"operationId\": \"patchAppsV1NamespacedDeploymentStatus\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"in\": \"query\",\n            \"name\": \"force\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/apply-patch+yaml\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/json-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/strategic-merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified Deployment\",\n        \"operationId\": \"replaceAppsV1NamespacedDeploymentStatus\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.Deployment\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/replicasets\": {\n      \"delete\": {\n        \"description\": \"delete collection of ReplicaSet\",\n        \"operationId\": \"deleteAppsV1CollectionNamespacedReplicaSet\",\n        \"parameters\": [\n          {\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"in\": \"query\",\n            \"name\": \"continue\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"fieldSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"in\": \"query\",\n            \"name\": \"gracePeriodSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"labelSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"in\": \"query\",\n            \"name\": \"orphanDependents\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"in\": \"query\",\n            \"name\": \"propagationPolicy\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersion\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersionMatch\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"in\": \"query\",\n            \"name\": \"timeoutSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"get\": {\n        \"description\": \"list or watch objects of kind ReplicaSet\",\n        \"operationId\": \"listAppsV1NamespacedReplicaSet\",\n        \"parameters\": [\n          {\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"in\": \"query\",\n            \"name\": \"allowWatchBookmarks\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"in\": \"query\",\n            \"name\": \"continue\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"fieldSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"labelSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersion\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersionMatch\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"in\": \"query\",\n            \"name\": \"timeoutSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"in\": \"query\",\n            \"name\": \"watch\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"post\": {\n        \"description\": \"create a ReplicaSet\",\n        \"operationId\": \"createAppsV1NamespacedReplicaSet\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}\": {\n      \"delete\": {\n        \"description\": \"delete a ReplicaSet\",\n        \"operationId\": \"deleteAppsV1NamespacedReplicaSet\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"in\": \"query\",\n            \"name\": \"gracePeriodSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"in\": \"query\",\n            \"name\": \"orphanDependents\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"in\": \"query\",\n            \"name\": \"propagationPolicy\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"get\": {\n        \"description\": \"read the specified ReplicaSet\",\n        \"operationId\": \"readAppsV1NamespacedReplicaSet\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"name of the ReplicaSet\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"patch\": {\n        \"description\": \"partially update the specified ReplicaSet\",\n        \"operationId\": \"patchAppsV1NamespacedReplicaSet\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"in\": \"query\",\n            \"name\": \"force\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/apply-patch+yaml\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/json-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/strategic-merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified ReplicaSet\",\n        \"operationId\": \"replaceAppsV1NamespacedReplicaSet\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale\": {\n      \"get\": {\n        \"description\": \"read scale of the specified ReplicaSet\",\n        \"operationId\": \"readAppsV1NamespacedReplicaSetScale\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"name of the Scale\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"patch\": {\n        \"description\": \"partially update scale of the specified ReplicaSet\",\n        \"operationId\": \"patchAppsV1NamespacedReplicaSetScale\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"in\": \"query\",\n            \"name\": \"force\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/apply-patch+yaml\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/json-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/strategic-merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace scale of the specified ReplicaSet\",\n        \"operationId\": \"replaceAppsV1NamespacedReplicaSetScale\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified ReplicaSet\",\n        \"operationId\": \"readAppsV1NamespacedReplicaSetStatus\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"name of the ReplicaSet\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"patch\": {\n        \"description\": \"partially update status of the specified ReplicaSet\",\n        \"operationId\": \"patchAppsV1NamespacedReplicaSetStatus\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"in\": \"query\",\n            \"name\": \"force\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/apply-patch+yaml\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/json-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/strategic-merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified ReplicaSet\",\n        \"operationId\": \"replaceAppsV1NamespacedReplicaSetStatus\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/statefulsets\": {\n      \"delete\": {\n        \"description\": \"delete collection of StatefulSet\",\n        \"operationId\": \"deleteAppsV1CollectionNamespacedStatefulSet\",\n        \"parameters\": [\n          {\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"in\": \"query\",\n            \"name\": \"continue\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"fieldSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"in\": \"query\",\n            \"name\": \"gracePeriodSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"labelSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"in\": \"query\",\n            \"name\": \"orphanDependents\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"in\": \"query\",\n            \"name\": \"propagationPolicy\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersion\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersionMatch\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"in\": \"query\",\n            \"name\": \"timeoutSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"deletecollection\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"get\": {\n        \"description\": \"list or watch objects of kind StatefulSet\",\n        \"operationId\": \"listAppsV1NamespacedStatefulSet\",\n        \"parameters\": [\n          {\n            \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n            \"in\": \"query\",\n            \"name\": \"allowWatchBookmarks\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n            \"in\": \"query\",\n            \"name\": \"continue\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"fieldSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n            \"in\": \"query\",\n            \"name\": \"labelSelector\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n            \"in\": \"query\",\n            \"name\": \"limit\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersion\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n            \"in\": \"query\",\n            \"name\": \"resourceVersionMatch\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n            \"in\": \"query\",\n            \"name\": \"timeoutSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n            \"in\": \"query\",\n            \"name\": \"watch\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"post\": {\n        \"description\": \"create a StatefulSet\",\n        \"operationId\": \"createAppsV1NamespacedStatefulSet\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}\": {\n      \"delete\": {\n        \"description\": \"delete a StatefulSet\",\n        \"operationId\": \"deleteAppsV1NamespacedStatefulSet\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n            \"in\": \"query\",\n            \"name\": \"gracePeriodSeconds\",\n            \"schema\": {\n              \"type\": \"integer\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n            \"in\": \"query\",\n            \"name\": \"orphanDependents\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n            \"in\": \"query\",\n            \"name\": \"propagationPolicy\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"delete\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"get\": {\n        \"description\": \"read the specified StatefulSet\",\n        \"operationId\": \"readAppsV1NamespacedStatefulSet\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"name of the StatefulSet\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"patch\": {\n        \"description\": \"partially update the specified StatefulSet\",\n        \"operationId\": \"patchAppsV1NamespacedStatefulSet\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"in\": \"query\",\n            \"name\": \"force\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/apply-patch+yaml\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/json-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/strategic-merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace the specified StatefulSet\",\n        \"operationId\": \"replaceAppsV1NamespacedStatefulSet\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale\": {\n      \"get\": {\n        \"description\": \"read scale of the specified StatefulSet\",\n        \"operationId\": \"readAppsV1NamespacedStatefulSetScale\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"name of the Scale\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"patch\": {\n        \"description\": \"partially update scale of the specified StatefulSet\",\n        \"operationId\": \"patchAppsV1NamespacedStatefulSetScale\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"in\": \"query\",\n            \"name\": \"force\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/apply-patch+yaml\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/json-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/strategic-merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace scale of the specified StatefulSet\",\n        \"operationId\": \"replaceAppsV1NamespacedStatefulSetScale\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"autoscaling\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status\": {\n      \"get\": {\n        \"description\": \"read status of the specified StatefulSet\",\n        \"operationId\": \"readAppsV1NamespacedStatefulSetStatus\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"get\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"name of the StatefulSet\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"patch\": {\n        \"description\": \"partially update status of the specified StatefulSet\",\n        \"operationId\": \"patchAppsV1NamespacedStatefulSetStatus\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n            \"in\": \"query\",\n            \"name\": \"force\",\n            \"schema\": {\n              \"type\": \"boolean\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"application/apply-patch+yaml\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/json-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            },\n            \"application/strategic-merge-patch+json\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"patch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"put\": {\n        \"description\": \"replace status of the specified StatefulSet\",\n        \"operationId\": \"replaceAppsV1NamespacedStatefulSetStatus\",\n        \"parameters\": [\n          {\n            \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n            \"in\": \"query\",\n            \"name\": \"dryRun\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n            \"in\": \"query\",\n            \"name\": \"fieldManager\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          },\n          {\n            \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n            \"in\": \"query\",\n            \"name\": \"fieldValidation\",\n            \"schema\": {\n              \"type\": \"string\",\n              \"uniqueItems\": true\n            }\n          }\n        ],\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"put\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/apps/v1/replicasets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind ReplicaSet\",\n        \"operationId\": \"listAppsV1ReplicaSetForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/statefulsets\": {\n      \"get\": {\n        \"description\": \"list or watch objects of kind StatefulSet\",\n        \"operationId\": \"listAppsV1StatefulSetForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"list\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/controllerrevisions\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"operationId\": \"watchAppsV1ControllerRevisionListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/daemonsets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"operationId\": \"watchAppsV1DaemonSetListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/deployments\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"operationId\": \"watchAppsV1DeploymentListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"operationId\": \"watchAppsV1NamespacedControllerRevisionList\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"operationId\": \"watchAppsV1NamespacedControllerRevision\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"name of the ControllerRevision\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/daemonsets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"operationId\": \"watchAppsV1NamespacedDaemonSetList\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"operationId\": \"watchAppsV1NamespacedDaemonSet\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"DaemonSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"name of the DaemonSet\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/deployments\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"operationId\": \"watchAppsV1NamespacedDeploymentList\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"operationId\": \"watchAppsV1NamespacedDeployment\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"name of the Deployment\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/replicasets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"operationId\": \"watchAppsV1NamespacedReplicaSetList\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"operationId\": \"watchAppsV1NamespacedReplicaSet\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"name of the ReplicaSet\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/statefulsets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"operationId\": \"watchAppsV1NamespacedStatefulSetList\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}\": {\n      \"get\": {\n        \"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.\",\n        \"operationId\": \"watchAppsV1NamespacedStatefulSet\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watch\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"name of the StatefulSet\",\n          \"in\": \"path\",\n          \"name\": \"name\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/replicasets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"operationId\": \"watchAppsV1ReplicaSetListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"ReplicaSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    },\n    \"/apis/apps/v1/watch/statefulsets\": {\n      \"get\": {\n        \"description\": \"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\n        \"operationId\": \"watchAppsV1StatefulSetListForAllNamespaces\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/json;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf;stream=watch\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"apps_v1\"\n        ],\n        \"x-kubernetes-action\": \"watchlist\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1\"\n        }\n      },\n      \"parameters\": [\n        {\n          \"description\": \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n          \"in\": \"query\",\n          \"name\": \"allowWatchBookmarks\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n          \"in\": \"query\",\n          \"name\": \"continue\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"fieldSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n          \"in\": \"query\",\n          \"name\": \"labelSelector\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n          \"in\": \"query\",\n          \"name\": \"limit\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersion\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n          \"in\": \"query\",\n          \"name\": \"resourceVersionMatch\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n          \"in\": \"query\",\n          \"name\": \"timeoutSeconds\",\n          \"schema\": {\n            \"type\": \"integer\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n          \"in\": \"query\",\n          \"name\": \"watch\",\n          \"schema\": {\n            \"type\": \"boolean\",\n            \"uniqueItems\": true\n          }\n        }\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "pkg/spec3/testdata/authorizationv1spec.json",
    "content": "{\n  \"components\": {\n    \"schemas\": {\n      \"io.k8s.api.authorization.v1.LocalSubjectAccessReview\": {\n        \"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.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          },\n          \"spec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"\n              }\n            ],\n            \"default\": {},\n            \"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.\"\n          },\n          \"status\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\"\n          }\n        },\n        \"required\": [\n          \"spec\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"authorization.k8s.io\",\n            \"kind\": \"LocalSubjectAccessReview\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.authorization.v1.NonResourceAttributes\": {\n        \"description\": \"NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\",\n        \"properties\": {\n          \"path\": {\n            \"description\": \"Path is the URL path of the request\",\n            \"type\": \"string\"\n          },\n          \"verb\": {\n            \"description\": \"Verb is the standard HTTP verb\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.authorization.v1.NonResourceRule\": {\n        \"description\": \"NonResourceRule holds information that describes a rule for the non-resource\",\n        \"properties\": {\n          \"nonResourceURLs\": {\n            \"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.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"verbs\": {\n            \"description\": \"Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \\\"*\\\" means all.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"required\": [\n          \"verbs\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.authorization.v1.ResourceAttributes\": {\n        \"description\": \"ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\",\n        \"properties\": {\n          \"group\": {\n            \"description\": \"Group is the API Group of the Resource.  \\\"*\\\" means all.\",\n            \"type\": \"string\"\n          },\n          \"name\": {\n            \"description\": \"Name is the name of the resource being requested for a \\\"get\\\" or deleted for a \\\"delete\\\". \\\"\\\" (empty) means all.\",\n            \"type\": \"string\"\n          },\n          \"namespace\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"resource\": {\n            \"description\": \"Resource is one of the existing resource types.  \\\"*\\\" means all.\",\n            \"type\": \"string\"\n          },\n          \"subresource\": {\n            \"description\": \"Subresource is one of the existing resource types.  \\\"\\\" means none.\",\n            \"type\": \"string\"\n          },\n          \"verb\": {\n            \"description\": \"Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n            \"type\": \"string\"\n          },\n          \"version\": {\n            \"description\": \"Version is the API Version of the Resource.  \\\"*\\\" means all.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.authorization.v1.ResourceRule\": {\n        \"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.\",\n        \"properties\": {\n          \"apiGroups\": {\n            \"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.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"resourceNames\": {\n            \"description\": \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \\\"*\\\" means all.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"resources\": {\n            \"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.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"verbs\": {\n            \"description\": \"Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"required\": [\n          \"verbs\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.authorization.v1.SelfSubjectAccessReview\": {\n        \"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\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          },\n          \"spec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Spec holds information about the request being evaluated.  user and groups must be empty\"\n          },\n          \"status\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\"\n          }\n        },\n        \"required\": [\n          \"spec\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"authorization.k8s.io\",\n            \"kind\": \"SelfSubjectAccessReview\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\": {\n        \"description\": \"SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n        \"properties\": {\n          \"nonResourceAttributes\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.NonResourceAttributes\"\n              }\n            ],\n            \"description\": \"NonResourceAttributes describes information for a non-resource access request\"\n          },\n          \"resourceAttributes\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.ResourceAttributes\"\n              }\n            ],\n            \"description\": \"ResourceAuthorizationAttributes describes information for a resource access request\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.authorization.v1.SelfSubjectRulesReview\": {\n        \"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.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          },\n          \"spec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Spec holds information about the request being evaluated.\"\n          },\n          \"status\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectRulesReviewStatus\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Status is filled in by the server and indicates the set of actions a user can perform.\"\n          }\n        },\n        \"required\": [\n          \"spec\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"authorization.k8s.io\",\n            \"kind\": \"SelfSubjectRulesReview\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec\": {\n        \"description\": \"SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\",\n        \"properties\": {\n          \"namespace\": {\n            \"description\": \"Namespace to evaluate rules for. Required.\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.authorization.v1.SubjectAccessReview\": {\n        \"description\": \"SubjectAccessReview checks whether or not a user or group can perform an action.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"metadata\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\"\n          },\n          \"spec\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Spec holds information about the request being evaluated\"\n          },\n          \"status\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"\n              }\n            ],\n            \"default\": {},\n            \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\"\n          }\n        },\n        \"required\": [\n          \"spec\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"authorization.k8s.io\",\n            \"kind\": \"SubjectAccessReview\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.api.authorization.v1.SubjectAccessReviewSpec\": {\n        \"description\": \"SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n        \"properties\": {\n          \"extra\": {\n            \"additionalProperties\": {\n              \"items\": {\n                \"default\": \"\",\n                \"type\": \"string\"\n              },\n              \"type\": \"array\"\n            },\n            \"description\": \"Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer it needs a reflection here.\",\n            \"type\": \"object\"\n          },\n          \"groups\": {\n            \"description\": \"Groups is the groups you're testing for.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"nonResourceAttributes\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.NonResourceAttributes\"\n              }\n            ],\n            \"description\": \"NonResourceAttributes describes information for a non-resource access request\"\n          },\n          \"resourceAttributes\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.ResourceAttributes\"\n              }\n            ],\n            \"description\": \"ResourceAuthorizationAttributes describes information for a resource access request\"\n          },\n          \"uid\": {\n            \"description\": \"UID information about the requesting user.\",\n            \"type\": \"string\"\n          },\n          \"user\": {\n            \"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\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.authorization.v1.SubjectAccessReviewStatus\": {\n        \"description\": \"SubjectAccessReviewStatus\",\n        \"properties\": {\n          \"allowed\": {\n            \"default\": false,\n            \"description\": \"Allowed is required. True if the action would be allowed, false otherwise.\",\n            \"type\": \"boolean\"\n          },\n          \"denied\": {\n            \"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.\",\n            \"type\": \"boolean\"\n          },\n          \"evaluationError\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"reason\": {\n            \"description\": \"Reason is optional.  It indicates why a request was allowed or denied.\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"allowed\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.api.authorization.v1.SubjectRulesReviewStatus\": {\n        \"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.\",\n        \"properties\": {\n          \"evaluationError\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"incomplete\": {\n            \"default\": false,\n            \"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.\",\n            \"type\": \"boolean\"\n          },\n          \"nonResourceRules\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.NonResourceRule\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"resourceRules\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.ResourceRule\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"required\": [\n          \"resourceRules\",\n          \"nonResourceRules\",\n          \"incomplete\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\": {\n        \"description\": \"APIResource specifies the name of a resource and whether it is namespaced.\",\n        \"properties\": {\n          \"categories\": {\n            \"description\": \"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"group\": {\n            \"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\\\".\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"default\": \"\",\n            \"description\": \"kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')\",\n            \"type\": \"string\"\n          },\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"name is the plural name of the resource.\",\n            \"type\": \"string\"\n          },\n          \"namespaced\": {\n            \"default\": false,\n            \"description\": \"namespaced indicates if a resource is namespaced or not.\",\n            \"type\": \"boolean\"\n          },\n          \"shortNames\": {\n            \"description\": \"shortNames is a list of suggested short names of the resource.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"singularName\": {\n            \"default\": \"\",\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"storageVersionHash\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"verbs\": {\n            \"description\": \"verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\"\n          },\n          \"version\": {\n            \"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)\\\".\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"name\",\n          \"singularName\",\n          \"namespaced\",\n          \"kind\",\n          \"verbs\"\n        ],\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\": {\n        \"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.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n            \"type\": \"string\"\n          },\n          \"groupVersion\": {\n            \"default\": \"\",\n            \"description\": \"groupVersion is the group and version this APIResourceList is for.\",\n            \"type\": \"string\"\n          },\n          \"kind\": {\n            \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"resources\": {\n            \"description\": \"resources contains the name of the resources and if they are namespaced.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          }\n        },\n        \"required\": [\n          \"groupVersion\",\n          \"resources\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-group-version-kind\": [\n          {\n            \"group\": \"\",\n            \"kind\": \"APIResourceList\",\n            \"version\": \"v1\"\n          }\n        ]\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\": {\n        \"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:<name>', where <name> is the name of a field in a struct, or key in a map 'v:<value>', where <value> is the exact json formatted value of a list item 'i:<index>', where <index> is position of a item in a list 'k:<keys>', where <keys> 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\",\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\": {\n        \"description\": \"ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"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.\",\n            \"type\": \"string\"\n          },\n          \"fieldsType\": {\n            \"description\": \"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\n            \"type\": \"string\"\n          },\n          \"fieldsV1\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"\n              }\n            ],\n            \"description\": \"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\"\n          },\n          \"manager\": {\n            \"description\": \"Manager is an identifier of the workflow managing these fields.\",\n            \"type\": \"string\"\n          },\n          \"operation\": {\n            \"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'.\",\n            \"type\": \"string\"\n          },\n          \"subresource\": {\n            \"description\": \"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\n            \"type\": \"string\"\n          },\n          \"time\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"description\": \"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\": {\n        \"description\": \"ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.\",\n        \"properties\": {\n          \"annotations\": {\n            \"additionalProperties\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"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\",\n            \"type\": \"object\"\n          },\n          \"creationTimestamp\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"default\": {},\n            \"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\"\n          },\n          \"deletionGracePeriodSeconds\": {\n            \"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.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"deletionTimestamp\": {\n            \"allOf\": [\n              {\n                \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n              }\n            ],\n            \"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\"\n          },\n          \"finalizers\": {\n            \"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.\",\n            \"items\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"generateName\": {\n            \"description\": \"GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\\n\\nIf this field is specified and the generated name exists, the server will return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\n            \"type\": \"string\"\n          },\n          \"generation\": {\n            \"description\": \"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\n            \"format\": \"int64\",\n            \"type\": \"integer\"\n          },\n          \"labels\": {\n            \"additionalProperties\": {\n              \"default\": \"\",\n              \"type\": \"string\"\n            },\n            \"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\",\n            \"type\": \"object\"\n          },\n          \"managedFields\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\"\n          },\n          \"name\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"namespace\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"ownerReferences\": {\n            \"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.\",\n            \"items\": {\n              \"allOf\": [\n                {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"\n                }\n              ],\n              \"default\": {}\n            },\n            \"type\": \"array\",\n            \"x-kubernetes-patch-merge-key\": \"uid\",\n            \"x-kubernetes-patch-strategy\": \"merge\"\n          },\n          \"resourceVersion\": {\n            \"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\",\n            \"type\": \"string\"\n          },\n          \"selfLink\": {\n            \"description\": \"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\n            \"type\": \"string\"\n          },\n          \"uid\": {\n            \"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\",\n            \"type\": \"string\"\n          }\n        },\n        \"type\": \"object\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\": {\n        \"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.\",\n        \"properties\": {\n          \"apiVersion\": {\n            \"default\": \"\",\n            \"description\": \"API version of the referent.\",\n            \"type\": \"string\"\n          },\n          \"blockOwnerDeletion\": {\n            \"description\": \"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\n            \"type\": \"boolean\"\n          },\n          \"controller\": {\n            \"description\": \"If true, this reference points to the managing controller.\",\n            \"type\": \"boolean\"\n          },\n          \"kind\": {\n            \"default\": \"\",\n            \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n            \"type\": \"string\"\n          },\n          \"name\": {\n            \"default\": \"\",\n            \"description\": \"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n            \"type\": \"string\"\n          },\n          \"uid\": {\n            \"default\": \"\",\n            \"description\": \"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"apiVersion\",\n          \"kind\",\n          \"name\",\n          \"uid\"\n        ],\n        \"type\": \"object\",\n        \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"io.k8s.apimachinery.pkg.apis.meta.v1.Time\": {\n        \"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.\",\n        \"format\": \"date-time\",\n        \"type\": \"string\"\n      }\n    },\n    \"securitySchemes\": {\n      \"BearerToken\": {\n        \"description\": \"Bearer Token authentication\",\n        \"in\": \"header\",\n        \"name\": \"authorization\",\n        \"type\": \"apiKey\"\n      }\n    }\n  },\n  \"info\": {\n    \"title\": \"Kubernetes\",\n    \"version\": \"unversioned\"\n  },\n  \"openapi\": \"3.0.0\",\n  \"paths\": {\n    \"/apis/authorization.k8s.io/v1/\": {\n      \"get\": {\n        \"description\": \"get available resources\",\n        \"operationId\": \"getAuthorizationV1APIResources\",\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"authorization_v1\"\n        ]\n      }\n    },\n    \"/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews\": {\n      \"parameters\": [\n        {\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"in\": \"query\",\n          \"name\": \"dryRun\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"in\": \"query\",\n          \"name\": \"fieldManager\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"in\": \"query\",\n          \"name\": \"fieldValidation\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"object name and auth scope, such as for teams and projects\",\n          \"in\": \"path\",\n          \"name\": \"namespace\",\n          \"required\": true,\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"post\": {\n        \"description\": \"create a LocalSubjectAccessReview\",\n        \"operationId\": \"createAuthorizationV1NamespacedLocalSubjectAccessReview\",\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"authorization_v1\"\n        ],\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"LocalSubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/authorization.k8s.io/v1/selfsubjectaccessreviews\": {\n      \"parameters\": [\n        {\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"in\": \"query\",\n          \"name\": \"dryRun\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"in\": \"query\",\n          \"name\": \"fieldManager\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"in\": \"query\",\n          \"name\": \"fieldValidation\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"post\": {\n        \"description\": \"create a SelfSubjectAccessReview\",\n        \"operationId\": \"createAuthorizationV1SelfSubjectAccessReview\",\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"authorization_v1\"\n        ],\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SelfSubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/authorization.k8s.io/v1/selfsubjectrulesreviews\": {\n      \"parameters\": [\n        {\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"in\": \"query\",\n          \"name\": \"dryRun\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"in\": \"query\",\n          \"name\": \"fieldManager\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"in\": \"query\",\n          \"name\": \"fieldValidation\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"post\": {\n        \"description\": \"create a SelfSubjectRulesReview\",\n        \"operationId\": \"createAuthorizationV1SelfSubjectRulesReview\",\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"authorization_v1\"\n        ],\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SelfSubjectRulesReview\",\n          \"version\": \"v1\"\n        }\n      }\n    },\n    \"/apis/authorization.k8s.io/v1/subjectaccessreviews\": {\n      \"parameters\": [\n        {\n          \"description\": \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n          \"in\": \"query\",\n          \"name\": \"dryRun\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n          \"in\": \"query\",\n          \"name\": \"fieldManager\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n          \"in\": \"query\",\n          \"name\": \"fieldValidation\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        },\n        {\n          \"description\": \"If 'true', then the output is pretty printed.\",\n          \"in\": \"query\",\n          \"name\": \"pretty\",\n          \"schema\": {\n            \"type\": \"string\",\n            \"uniqueItems\": true\n          }\n        }\n      ],\n      \"post\": {\n        \"description\": \"create a SubjectAccessReview\",\n        \"operationId\": \"createAuthorizationV1SubjectAccessReview\",\n        \"requestBody\": {\n          \"content\": {\n            \"*/*\": {\n              \"schema\": {\n                \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReview\"\n              }\n            }\n          }\n        },\n        \"responses\": {\n          \"200\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReview\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReview\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReview\"\n                }\n              }\n            },\n            \"description\": \"OK\"\n          },\n          \"201\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReview\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReview\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReview\"\n                }\n              }\n            },\n            \"description\": \"Created\"\n          },\n          \"202\": {\n            \"content\": {\n              \"application/json\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReview\"\n                }\n              },\n              \"application/vnd.kubernetes.protobuf\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReview\"\n                }\n              },\n              \"application/yaml\": {\n                \"schema\": {\n                  \"$ref\": \"#/components/schemas/io.k8s.api.authorization.v1.SubjectAccessReview\"\n                }\n              }\n            },\n            \"description\": \"Accepted\"\n          },\n          \"401\": {\n            \"description\": \"Unauthorized\"\n          }\n        },\n        \"tags\": [\n          \"authorization_v1\"\n        ],\n        \"x-kubernetes-action\": \"post\",\n        \"x-kubernetes-group-version-kind\": {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "pkg/util/jsontesting/json_roundtrip.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage jsontesting\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\tkjson \"sigs.k8s.io/json\"\n\n\t\"github.com/go-openapi/jsonreference\"\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/google/go-cmp/cmp/cmpopts\"\n)\n\nfunc JsonCompare(got, want []byte) error {\n\tif d := cmp.Diff(got, want, cmp.Transformer(\"JSONBytes\", func(in []byte) (out interface{}) {\n\t\tif strictErrors, err := kjson.UnmarshalStrict(in, &out); strictErrors != nil || err != nil {\n\t\t\treturn in\n\t\t}\n\t\treturn out\n\t})); d != \"\" {\n\t\treturn fmt.Errorf(\"JSON mismatch (-got +want):\\n%s\", d)\n\t}\n\treturn nil\n}\n\ntype RoundTripTestCase struct {\n\tName   string\n\tJSON   string\n\tObject json.Marshaler\n\n\t// An error that is expected when `Object` is marshalled to json\n\t// If `Object` does not exist, then it is inferred from the provided JSON\n\tExpectedMarshalError string\n\n\t// An error that is expected when the provided JSON is unmarshalled\n\t// If `JSON` does not exist then this it is inferred from the provided `Object`\n\tExpectedUnmarshalError string\n}\n\ntype MarshalerUnmarshaler interface {\n\tjson.Unmarshaler\n\tjson.Marshaler\n}\n\nfunc (t RoundTripTestCase) RoundTripTest(example MarshalerUnmarshaler) error {\n\tvar jsonBytes []byte\n\tvar err error\n\n\t// Tests whether the provided error matches the given pattern, and says\n\t// whether the test is finished, and the error to return\n\texpectError := func(e error, name string, expected string) (testFinished bool, err error) {\n\t\tif len(expected) > 0 {\n\t\t\tif e == nil || !strings.Contains(e.Error(), expected) {\n\t\t\t\treturn true, fmt.Errorf(\"expected %v error containing substring: '%s'. but got actual error '%v'\", name, expected, e)\n\t\t\t}\n\n\t\t\t// If an error was expected and achieved, we stop the test\n\t\t\t// since it cannot be continued. But the return nil error since it\n\t\t\t// was expected.\n\t\t\treturn true, nil\n\t\t} else if e != nil {\n\t\t\treturn true, fmt.Errorf(\"unexpected %v error: %w\", name, e)\n\t\t}\n\n\t\treturn false, nil\n\t}\n\n\t// If user did not provide JSON and instead provided Object, infer JSON\n\t// from the provided object.\n\tif len(t.JSON) == 0 {\n\t\tjsonBytes, err = json.Marshal(t.Object)\n\t\tif testFinished, err := expectError(err, \"marshal\", t.ExpectedMarshalError); testFinished {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tjsonBytes = []byte(t.JSON)\n\t}\n\n\terr = example.UnmarshalJSON(jsonBytes)\n\tif testFinished, err := expectError(err, \"unmarshal\", t.ExpectedUnmarshalError); testFinished {\n\t\treturn err\n\t}\n\n\tif t.Object != nil && !reflect.DeepEqual(t.Object, example) {\n\t\treturn fmt.Errorf(\"test case expected to unmarshal to specific value: %v\", cmp.Diff(t.Object, example, cmpopts.IgnoreUnexported(jsonreference.Ref{})))\n\t}\n\n\treEncoded, err := json.Marshal(example)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to marshal decoded value: %w\", err)\n\t}\n\n\t// Check expected marshal error if it has not yet been checked\n\t// (for case where JSON is provided, and object is not)\n\tif testFinished, err := expectError(err, \"marshal\", t.ExpectedMarshalError); testFinished {\n\t\treturn err\n\t}\n\t// Marshal both re-encoded, and original JSON into interface\n\t// to compare them without ordering issues\n\tvar expected map[string]interface{}\n\tvar actual map[string]interface{}\n\n\tif err = json.Unmarshal(jsonBytes, &expected); err != nil {\n\t\treturn fmt.Errorf(\"failed to unmarshal test json: %w\", err)\n\t}\n\n\tif err = json.Unmarshal(reEncoded, &actual); err != nil {\n\t\treturn fmt.Errorf(\"failed to unmarshal actual data: %w\", err)\n\t}\n\n\tif !reflect.DeepEqual(expected, actual) {\n\t\treturn fmt.Errorf(\"expected equal values: %v\", cmp.Diff(expected, actual))\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/util/proto/OWNERS",
    "content": "approvers:\n- apelisse\n"
  },
  {
    "path": "pkg/util/proto/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package proto is a collection of libraries for parsing and indexing the type definitions.\n// The openapi spec contains the object model definitions and extensions metadata.\npackage proto\n"
  },
  {
    "path": "pkg/util/proto/document.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\topenapi_v2 \"github.com/google/gnostic-models/openapiv2\"\n\tyaml \"go.yaml.in/yaml/v2\"\n)\n\nfunc newSchemaError(path *Path, format string, a ...interface{}) error {\n\terr := fmt.Sprintf(format, a...)\n\tif path.Len() == 0 {\n\t\treturn fmt.Errorf(\"SchemaError: %v\", err)\n\t}\n\treturn fmt.Errorf(\"SchemaError(%v): %v\", path, err)\n}\n\n// VendorExtensionToMap converts openapi VendorExtension to a map.\nfunc VendorExtensionToMap(e []*openapi_v2.NamedAny) map[string]interface{} {\n\tvalues := map[string]interface{}{}\n\n\tfor _, na := range e {\n\t\tif na.GetName() == \"\" || na.GetValue() == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif na.GetValue().GetYaml() == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tvar value interface{}\n\t\terr := yaml.Unmarshal([]byte(na.GetValue().GetYaml()), &value)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tvalues[na.GetName()] = value\n\t}\n\n\treturn values\n}\n\n// Definitions is an implementation of `Models`. It looks for\n// models in an openapi Schema.\ntype Definitions struct {\n\tmodels map[string]Schema\n}\n\nvar _ Models = &Definitions{}\n\n// NewOpenAPIData creates a new `Models` out of the openapi document.\nfunc NewOpenAPIData(doc *openapi_v2.Document) (Models, error) {\n\tdefinitions := Definitions{\n\t\tmodels: map[string]Schema{},\n\t}\n\n\t// Save the list of all models first. This will allow us to\n\t// validate that we don't have any dangling reference.\n\tfor _, namedSchema := range doc.GetDefinitions().GetAdditionalProperties() {\n\t\tdefinitions.models[namedSchema.GetName()] = nil\n\t}\n\n\t// Now, parse each model. We can validate that references exists.\n\tfor _, namedSchema := range doc.GetDefinitions().GetAdditionalProperties() {\n\t\tpath := NewPath(namedSchema.GetName())\n\t\tschema, err := definitions.ParseSchema(namedSchema.GetValue(), &path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdefinitions.models[namedSchema.GetName()] = schema\n\t}\n\n\treturn &definitions, nil\n}\n\n// We believe the schema is a reference, verify that and returns a new\n// Schema\nfunc (d *Definitions) parseReference(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\t// TODO(wrong): a schema with a $ref can have properties. We can ignore them (would be incomplete), but we cannot return an error.\n\tif len(s.GetProperties().GetAdditionalProperties()) > 0 {\n\t\treturn nil, newSchemaError(path, \"unallowed embedded type definition\")\n\t}\n\t// TODO(wrong): a schema with a $ref can have a type. We can ignore it (would be incomplete), but we cannot return an error.\n\tif len(s.GetType().GetValue()) > 0 {\n\t\treturn nil, newSchemaError(path, \"definition reference can't have a type\")\n\t}\n\n\t// TODO(wrong): $refs outside of the definitions are completely valid. We can ignore them (would be incomplete), but we cannot return an error.\n\tif !strings.HasPrefix(s.GetXRef(), \"#/definitions/\") {\n\t\treturn nil, newSchemaError(path, \"unallowed reference to non-definition %q\", s.GetXRef())\n\t}\n\treference := strings.TrimPrefix(s.GetXRef(), \"#/definitions/\")\n\tif _, ok := d.models[reference]; !ok {\n\t\treturn nil, newSchemaError(path, \"unknown model in reference: %q\", reference)\n\t}\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Ref{\n\t\tBaseSchema:  base,\n\t\treference:   reference,\n\t\tdefinitions: d,\n\t}, nil\n}\n\nfunc parseDefault(def *openapi_v2.Any) (interface{}, error) {\n\tif def == nil {\n\t\treturn nil, nil\n\t}\n\tvar i interface{}\n\tif err := yaml.Unmarshal([]byte(def.Yaml), &i); err != nil {\n\t\treturn nil, err\n\t}\n\treturn i, nil\n}\n\nfunc (d *Definitions) parseBaseSchema(s *openapi_v2.Schema, path *Path) (BaseSchema, error) {\n\tdef, err := parseDefault(s.GetDefault())\n\tif err != nil {\n\t\treturn BaseSchema{}, err\n\t}\n\treturn BaseSchema{\n\t\tDescription: s.GetDescription(),\n\t\tDefault:     def,\n\t\tExtensions:  VendorExtensionToMap(s.GetVendorExtension()),\n\t\tPath:        *path,\n\t}, nil\n}\n\n// We believe the schema is a map, verify and return a new schema\nfunc (d *Definitions) parseMap(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tif len(s.GetType().GetValue()) != 0 && s.GetType().GetValue()[0] != object {\n\t\treturn nil, newSchemaError(path, \"invalid object type\")\n\t}\n\tvar sub Schema\n\t// TODO(incomplete): this misses the boolean case as AdditionalProperties is a bool+schema sum type.\n\tif s.GetAdditionalProperties().GetSchema() == nil {\n\t\tbase, err := d.parseBaseSchema(s, path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsub = &Arbitrary{\n\t\t\tBaseSchema: base,\n\t\t}\n\t} else {\n\t\tvar err error\n\t\tsub, err = d.ParseSchema(s.GetAdditionalProperties().GetSchema(), path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Map{\n\t\tBaseSchema: base,\n\t\tSubType:    sub,\n\t}, nil\n}\n\nfunc (d *Definitions) parsePrimitive(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tvar t string\n\tif len(s.GetType().GetValue()) > 1 {\n\t\treturn nil, newSchemaError(path, \"primitive can't have more than 1 type\")\n\t}\n\tif len(s.GetType().GetValue()) == 1 {\n\t\tt = s.GetType().GetValue()[0]\n\t}\n\tswitch t {\n\tcase String: // do nothing\n\tcase Number: // do nothing\n\tcase Integer: // do nothing\n\tcase Boolean: // do nothing\n\t// TODO(wrong): this misses \"null\". Would skip the null case (would be incomplete), but we cannot return an error.\n\tdefault:\n\t\treturn nil, newSchemaError(path, \"Unknown primitive type: %q\", t)\n\t}\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Primitive{\n\t\tBaseSchema: base,\n\t\tType:       t,\n\t\tFormat:     s.GetFormat(),\n\t}, nil\n}\n\nfunc (d *Definitions) parseArray(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tif len(s.GetType().GetValue()) != 1 {\n\t\treturn nil, newSchemaError(path, \"array should have exactly one type\")\n\t}\n\tif s.GetType().GetValue()[0] != array {\n\t\treturn nil, newSchemaError(path, `array should have type \"array\"`)\n\t}\n\tif len(s.GetItems().GetSchema()) != 1 {\n\t\t// TODO(wrong): Items can have multiple elements. We can ignore Items then (would be incomplete), but we cannot return an error.\n\t\t// TODO(wrong): \"type: array\" witohut any items at all is completely valid.\n\t\treturn nil, newSchemaError(path, \"array should have exactly one sub-item\")\n\t}\n\tsub, err := d.ParseSchema(s.GetItems().GetSchema()[0], path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Array{\n\t\tBaseSchema: base,\n\t\tSubType:    sub,\n\t}, nil\n}\n\nfunc (d *Definitions) parseKind(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tif len(s.GetType().GetValue()) != 0 && s.GetType().GetValue()[0] != object {\n\t\treturn nil, newSchemaError(path, \"invalid object type\")\n\t}\n\tif s.GetProperties() == nil {\n\t\treturn nil, newSchemaError(path, \"object doesn't have properties\")\n\t}\n\n\tfields := map[string]Schema{}\n\tfieldOrder := []string{}\n\n\tfor _, namedSchema := range s.GetProperties().GetAdditionalProperties() {\n\t\tvar err error\n\t\tname := namedSchema.GetName()\n\t\tpath := path.FieldPath(name)\n\t\tfields[name], err = d.ParseSchema(namedSchema.GetValue(), &path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfieldOrder = append(fieldOrder, name)\n\t}\n\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Kind{\n\t\tBaseSchema:     base,\n\t\tRequiredFields: s.GetRequired(),\n\t\tFields:         fields,\n\t\tFieldOrder:     fieldOrder,\n\t}, nil\n}\n\nfunc (d *Definitions) parseArbitrary(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Arbitrary{\n\t\tBaseSchema: base,\n\t}, nil\n}\n\n// ParseSchema creates a walkable Schema from an openapi schema. While\n// this function is public, it doesn't leak through the interface.\nfunc (d *Definitions) ParseSchema(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tif s.GetXRef() != \"\" {\n\t\t// TODO(incomplete): ignoring the rest of s is wrong. As long as there are no conflict, everything from s must be considered\n\t\t// Reference: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#path-item-object\n\t\treturn d.parseReference(s, path)\n\t}\n\tobjectTypes := s.GetType().GetValue()\n\tswitch len(objectTypes) {\n\tcase 0:\n\t\t// in the OpenAPI schema served by older k8s versions, object definitions created from structs did not include\n\t\t// the type:object property (they only included the \"properties\" property), so we need to handle this case\n\t\t// TODO: validate that we ever published empty, non-nil properties. JSON roundtripping nils them.\n\t\tif s.GetProperties() != nil {\n\t\t\t// TODO(wrong): when verifying a non-object later against this, it will be rejected as invalid type.\n\t\t\t// TODO(CRD validation schema publishing): we have to filter properties (empty or not) if type=object is not given\n\t\t\treturn d.parseKind(s, path)\n\t\t} else {\n\t\t\t// Definition has no type and no properties. Treat it as an arbitrary value\n\t\t\t// TODO(incomplete): what if it has additionalProperties=false or patternProperties?\n\t\t\t// ANSWER: parseArbitrary is less strict than it has to be with patternProperties (which is ignored). So this is correct (of course not complete).\n\t\t\treturn d.parseArbitrary(s, path)\n\t\t}\n\tcase 1:\n\t\tt := objectTypes[0]\n\t\tswitch t {\n\t\tcase object:\n\t\t\tif s.GetProperties() != nil {\n\t\t\t\treturn d.parseKind(s, path)\n\t\t\t} else {\n\t\t\t\treturn d.parseMap(s, path)\n\t\t\t}\n\t\tcase array:\n\t\t\treturn d.parseArray(s, path)\n\t\t}\n\t\treturn d.parsePrimitive(s, path)\n\tdefault:\n\t\t// the OpenAPI generator never generates (nor it ever did in the past) OpenAPI type definitions with multiple types\n\t\t// TODO(wrong): this is rejecting a completely valid OpenAPI spec\n\t\t// TODO(CRD validation schema publishing): filter these out\n\t\treturn nil, newSchemaError(path, \"definitions with multiple types aren't supported\")\n\t}\n}\n\n// LookupModel is public through the interface of Models. It\n// returns a visitable schema from the given model name.\nfunc (d *Definitions) LookupModel(model string) Schema {\n\treturn d.models[model]\n}\n\nfunc (d *Definitions) ListModels() []string {\n\tmodels := []string{}\n\n\tfor model := range d.models {\n\t\tmodels = append(models, model)\n\t}\n\n\tsort.Strings(models)\n\treturn models\n}\n\ntype Ref struct {\n\tBaseSchema\n\n\treference   string\n\tdefinitions *Definitions\n}\n\nvar _ Reference = &Ref{}\n\nfunc (r *Ref) Reference() string {\n\treturn r.reference\n}\n\nfunc (r *Ref) SubSchema() Schema {\n\treturn r.definitions.models[r.reference]\n}\n\nfunc (r *Ref) Accept(v SchemaVisitor) {\n\tv.VisitReference(r)\n}\n\nfunc (r *Ref) GetName() string {\n\treturn fmt.Sprintf(\"Reference to %q\", r.reference)\n}\n"
  },
  {
    "path": "pkg/util/proto/document_v3.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\topenapi_v3 \"github.com/google/gnostic-models/openapiv3\"\n\t\"go.yaml.in/yaml/v3\"\n)\n\n// Temporary parse implementation to be used until gnostic->kube-openapi conversion\n// is possible.\nfunc NewOpenAPIV3Data(doc *openapi_v3.Document) (Models, error) {\n\tdefinitions := Definitions{\n\t\tmodels: map[string]Schema{},\n\t}\n\n\tschemas := doc.GetComponents().GetSchemas()\n\tif schemas == nil {\n\t\treturn &definitions, nil\n\t}\n\n\t// Save the list of all models first. This will allow us to\n\t// validate that we don't have any dangling reference.\n\tfor _, namedSchema := range schemas.GetAdditionalProperties() {\n\t\tdefinitions.models[namedSchema.GetName()] = nil\n\t}\n\n\t// Now, parse each model. We can validate that references exists.\n\tfor _, namedSchema := range schemas.GetAdditionalProperties() {\n\t\tpath := NewPath(namedSchema.GetName())\n\t\tval := namedSchema.GetValue()\n\n\t\tif val == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif schema, err := definitions.ParseV3SchemaOrReference(namedSchema.GetValue(), &path); err != nil {\n\t\t\treturn nil, err\n\t\t} else if schema != nil {\n\t\t\t// Schema may be nil if we hit incompleteness in the conversion,\n\t\t\t// but not a fatal error\n\t\t\tdefinitions.models[namedSchema.GetName()] = schema\n\t\t}\n\t}\n\n\treturn &definitions, nil\n}\n\nfunc (d *Definitions) ParseV3SchemaReference(s *openapi_v3.Reference, path *Path) (Schema, error) {\n\tbase := &BaseSchema{\n\t\tDescription: s.Description,\n\t}\n\n\tif !strings.HasPrefix(s.GetXRef(), \"#/components/schemas\") {\n\t\t// Only resolve references to components/schemas. We may add support\n\t\t// later for other in-spec paths, but otherwise treat unrecognized\n\t\t// refs as arbitrary/unknown values.\n\t\treturn &Arbitrary{\n\t\t\tBaseSchema: *base,\n\t\t}, nil\n\t}\n\n\treference := strings.TrimPrefix(s.GetXRef(), \"#/components/schemas/\")\n\tif _, ok := d.models[reference]; !ok {\n\t\treturn nil, newSchemaError(path, \"unknown model in reference: %q\", reference)\n\t}\n\n\treturn &Ref{\n\t\tBaseSchema: BaseSchema{\n\t\t\tDescription: s.Description,\n\t\t},\n\t\treference:   reference,\n\t\tdefinitions: d,\n\t}, nil\n}\n\nfunc (d *Definitions) ParseV3SchemaOrReference(s *openapi_v3.SchemaOrReference, path *Path) (Schema, error) {\n\tvar schema Schema\n\tvar err error\n\n\tswitch v := s.GetOneof().(type) {\n\tcase *openapi_v3.SchemaOrReference_Reference:\n\t\t// Any references stored in #!/components/... are bound to refer\n\t\t// to external documents. This API does not support such a\n\t\t// feature.\n\t\t//\n\t\t// In the weird case that this is a reference to a schema that is\n\t\t// not external, we attempt to parse anyway\n\t\tschema, err = d.ParseV3SchemaReference(v.Reference, path)\n\tcase *openapi_v3.SchemaOrReference_Schema:\n\t\tschema, err = d.ParseSchemaV3(v.Schema, path)\n\tdefault:\n\t\tpanic(\"unexpected type\")\n\t}\n\n\treturn schema, err\n}\n\n// ParseSchema creates a walkable Schema from an openapi v3 schema. While\n// this function is public, it doesn't leak through the interface.\nfunc (d *Definitions) ParseSchemaV3(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tswitch s.GetType() {\n\tcase object:\n\t\tfor _, extension := range s.GetSpecificationExtension() {\n\t\t\tif extension.Name == \"x-kubernetes-group-version-kind\" {\n\t\t\t\t// Objects with x-kubernetes-group-version-kind are always top\n\t\t\t\t// level types.\n\t\t\t\treturn d.parseV3Kind(s, path)\n\t\t\t}\n\t\t}\n\n\t\tif len(s.GetProperties().GetAdditionalProperties()) > 0 {\n\t\t\treturn d.parseV3Kind(s, path)\n\t\t}\n\t\treturn d.parseV3Map(s, path)\n\tcase array:\n\t\treturn d.parseV3Array(s, path)\n\tcase String, Number, Integer, Boolean:\n\t\treturn d.parseV3Primitive(s, path)\n\tdefault:\n\t\treturn d.parseV3Arbitrary(s, path)\n\t}\n}\n\nfunc (d *Definitions) parseV3Kind(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tif s.GetType() != object {\n\t\treturn nil, newSchemaError(path, \"invalid object type\")\n\t} else if s.GetProperties() == nil {\n\t\treturn nil, newSchemaError(path, \"object doesn't have properties\")\n\t}\n\n\tfields := map[string]Schema{}\n\tfieldOrder := []string{}\n\n\tfor _, namedSchema := range s.GetProperties().GetAdditionalProperties() {\n\t\tvar err error\n\t\tname := namedSchema.GetName()\n\t\tpath := path.FieldPath(name)\n\t\tfields[name], err = d.ParseV3SchemaOrReference(namedSchema.GetValue(), &path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfieldOrder = append(fieldOrder, name)\n\t}\n\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Kind{\n\t\tBaseSchema:     *base,\n\t\tRequiredFields: s.GetRequired(),\n\t\tFields:         fields,\n\t\tFieldOrder:     fieldOrder,\n\t}, nil\n}\n\nfunc (d *Definitions) parseV3Arbitrary(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Arbitrary{\n\t\tBaseSchema: *base,\n\t}, nil\n}\n\nfunc (d *Definitions) parseV3Primitive(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tswitch s.GetType() {\n\tcase String: // do nothing\n\tcase Number: // do nothing\n\tcase Integer: // do nothing\n\tcase Boolean: // do nothing\n\tdefault:\n\t\t// Unsupported primitive type. Treat as arbitrary type\n\t\treturn d.parseV3Arbitrary(s, path)\n\t}\n\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Primitive{\n\t\tBaseSchema: *base,\n\t\tType:       s.GetType(),\n\t\tFormat:     s.GetFormat(),\n\t}, nil\n}\n\nfunc (d *Definitions) parseV3Array(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tif s.GetType() != array {\n\t\treturn nil, newSchemaError(path, `array should have type \"array\"`)\n\t} else if len(s.GetItems().GetSchemaOrReference()) != 1 {\n\t\t// This array can have multiple types in it (or no types at all)\n\t\t// This is not supported by this conversion.\n\t\t// Just return an arbitrary type\n\t\treturn d.parseV3Arbitrary(s, path)\n\t}\n\n\tsub, err := d.ParseV3SchemaOrReference(s.GetItems().GetSchemaOrReference()[0], path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Array{\n\t\tBaseSchema: *base,\n\t\tSubType:    sub,\n\t}, nil\n}\n\n// We believe the schema is a map, verify and return a new schema\nfunc (d *Definitions) parseV3Map(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tif s.GetType() != object {\n\t\treturn nil, newSchemaError(path, \"invalid object type\")\n\t}\n\tvar sub Schema\n\n\tswitch p := s.GetAdditionalProperties().GetOneof().(type) {\n\tcase *openapi_v3.AdditionalPropertiesItem_Boolean:\n\t\t// What does this boolean even mean?\n\t\tbase, err := d.parseV3BaseSchema(s, path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsub = &Arbitrary{\n\t\t\tBaseSchema: *base,\n\t\t}\n\tcase *openapi_v3.AdditionalPropertiesItem_SchemaOrReference:\n\t\tif schema, err := d.ParseV3SchemaOrReference(p.SchemaOrReference, path); err != nil {\n\t\t\treturn nil, err\n\t\t} else {\n\t\t\tsub = schema\n\t\t}\n\tcase nil:\n\t\t// no subtype?\n\t\tsub = &Arbitrary{}\n\tdefault:\n\t\tpanic(\"unrecognized type \" + reflect.TypeOf(p).Name())\n\t}\n\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Map{\n\t\tBaseSchema: *base,\n\t\tSubType:    sub,\n\t}, nil\n}\n\nfunc parseV3Interface(def *yaml.Node) (interface{}, error) {\n\tif def == nil {\n\t\treturn nil, nil\n\t}\n\tvar i interface{}\n\tif err := def.Decode(&i); err != nil {\n\t\treturn nil, err\n\t}\n\treturn i, nil\n}\n\nfunc (d *Definitions) parseV3BaseSchema(s *openapi_v3.Schema, path *Path) (*BaseSchema, error) {\n\tif s == nil {\n\t\treturn nil, fmt.Errorf(\"cannot initialize BaseSchema from nil\")\n\t}\n\n\tdef, err := parseV3Interface(s.GetDefault().ToRawInfo())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &BaseSchema{\n\t\tDescription: s.GetDescription(),\n\t\tDefault:     def,\n\t\tExtensions:  SpecificationExtensionToMap(s.GetSpecificationExtension()),\n\t\tPath:        *path,\n\t}, nil\n}\n\nfunc SpecificationExtensionToMap(e []*openapi_v3.NamedAny) map[string]interface{} {\n\tvalues := map[string]interface{}{}\n\n\tfor _, na := range e {\n\t\tif na.GetName() == \"\" || na.GetValue() == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif na.GetValue().GetYaml() == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tvar value interface{}\n\t\terr := yaml.Unmarshal([]byte(na.GetValue().GetYaml()), &value)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tvalues[na.GetName()] = value\n\t}\n\n\treturn values\n}\n"
  },
  {
    "path": "pkg/util/proto/openapi.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// Defines openapi types.\nconst (\n\tInteger = \"integer\"\n\tNumber  = \"number\"\n\tString  = \"string\"\n\tBoolean = \"boolean\"\n\n\t// These types are private as they should never leak, and are\n\t// represented by actual structs.\n\tarray  = \"array\"\n\tobject = \"object\"\n)\n\n// Models interface describe a model provider. They can give you the\n// schema for a specific model.\ntype Models interface {\n\tLookupModel(string) Schema\n\tListModels() []string\n}\n\n// SchemaVisitor is an interface that you need to implement if you want\n// to \"visit\" an openapi schema. A dispatch on the Schema type will call\n// the appropriate function based on its actual type:\n// - Array is a list of one and only one given subtype\n// - Map is a map of string to one and only one given subtype\n// - Primitive can be string, integer, number and boolean.\n// - Kind is an object with specific fields mapping to specific types.\n// - Reference is a link to another definition.\ntype SchemaVisitor interface {\n\tVisitArray(*Array)\n\tVisitMap(*Map)\n\tVisitPrimitive(*Primitive)\n\tVisitKind(*Kind)\n\tVisitReference(Reference)\n}\n\n// SchemaVisitorArbitrary is an additional visitor interface which handles\n// arbitrary types. For backwards compatibility, it's a separate interface\n// which is checked for at runtime.\ntype SchemaVisitorArbitrary interface {\n\tSchemaVisitor\n\tVisitArbitrary(*Arbitrary)\n}\n\n// Schema is the base definition of an openapi type.\ntype Schema interface {\n\t// Giving a visitor here will let you visit the actual type.\n\tAccept(SchemaVisitor)\n\n\t// Pretty print the name of the type.\n\tGetName() string\n\t// Describes how to access this field.\n\tGetPath() *Path\n\t// Describes the field.\n\tGetDescription() string\n\t// Default for that schema.\n\tGetDefault() interface{}\n\t// Returns type extensions.\n\tGetExtensions() map[string]interface{}\n}\n\n// Path helps us keep track of type paths\ntype Path struct {\n\tparent *Path\n\tkey    string\n}\n\nfunc NewPath(key string) Path {\n\treturn Path{key: key}\n}\n\nfunc (p *Path) Get() []string {\n\tif p == nil {\n\t\treturn []string{}\n\t}\n\tif p.key == \"\" {\n\t\treturn p.parent.Get()\n\t}\n\treturn append(p.parent.Get(), p.key)\n}\n\nfunc (p *Path) Len() int {\n\treturn len(p.Get())\n}\n\nfunc (p *Path) String() string {\n\treturn strings.Join(p.Get(), \"\")\n}\n\n// ArrayPath appends an array index and creates a new path\nfunc (p *Path) ArrayPath(i int) Path {\n\treturn Path{\n\t\tparent: p,\n\t\tkey:    fmt.Sprintf(\"[%d]\", i),\n\t}\n}\n\n// FieldPath appends a field name and creates a new path\nfunc (p *Path) FieldPath(field string) Path {\n\treturn Path{\n\t\tparent: p,\n\t\tkey:    fmt.Sprintf(\".%s\", field),\n\t}\n}\n\n// BaseSchema holds data used by each types of schema.\ntype BaseSchema struct {\n\tDescription string\n\tExtensions  map[string]interface{}\n\tDefault     interface{}\n\n\tPath Path\n}\n\nfunc (b *BaseSchema) GetDescription() string {\n\treturn b.Description\n}\n\nfunc (b *BaseSchema) GetExtensions() map[string]interface{} {\n\treturn b.Extensions\n}\n\nfunc (b *BaseSchema) GetDefault() interface{} {\n\treturn b.Default\n}\n\nfunc (b *BaseSchema) GetPath() *Path {\n\treturn &b.Path\n}\n\n// Array must have all its element of the same `SubType`.\ntype Array struct {\n\tBaseSchema\n\n\tSubType Schema\n}\n\nvar _ Schema = &Array{}\n\nfunc (a *Array) Accept(v SchemaVisitor) {\n\tv.VisitArray(a)\n}\n\nfunc (a *Array) GetName() string {\n\treturn fmt.Sprintf(\"Array of %s\", a.SubType.GetName())\n}\n\n// Kind is a complex object. It can have multiple different\n// subtypes for each field, as defined in the `Fields` field. Mandatory\n// fields are listed in `RequiredFields`. The key of the object is\n// always of type `string`.\ntype Kind struct {\n\tBaseSchema\n\n\t// Lists names of required fields.\n\tRequiredFields []string\n\t// Maps field names to types.\n\tFields map[string]Schema\n\t// FieldOrder reports the canonical order for the fields.\n\tFieldOrder []string\n}\n\nvar _ Schema = &Kind{}\n\nfunc (k *Kind) Accept(v SchemaVisitor) {\n\tv.VisitKind(k)\n}\n\nfunc (k *Kind) GetName() string {\n\tproperties := []string{}\n\tfor key := range k.Fields {\n\t\tproperties = append(properties, key)\n\t}\n\treturn fmt.Sprintf(\"Kind(%v)\", properties)\n}\n\n// IsRequired returns true if `field` is a required field for this type.\nfunc (k *Kind) IsRequired(field string) bool {\n\tfor _, f := range k.RequiredFields {\n\t\tif f == field {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Keys returns a alphabetically sorted list of keys.\nfunc (k *Kind) Keys() []string {\n\tkeys := make([]string, 0)\n\tfor key := range k.Fields {\n\t\tkeys = append(keys, key)\n\t}\n\tsort.Strings(keys)\n\treturn keys\n}\n\n// Map is an object who values must all be of the same `SubType`.\n// The key of the object is always of type `string`.\ntype Map struct {\n\tBaseSchema\n\n\tSubType Schema\n}\n\nvar _ Schema = &Map{}\n\nfunc (m *Map) Accept(v SchemaVisitor) {\n\tv.VisitMap(m)\n}\n\nfunc (m *Map) GetName() string {\n\treturn fmt.Sprintf(\"Map of %s\", m.SubType.GetName())\n}\n\n// Primitive is a literal. There can be multiple types of primitives,\n// and this subtype can be visited through the `subType` field.\ntype Primitive struct {\n\tBaseSchema\n\n\t// Type of a primitive must be one of: integer, number, string, boolean.\n\tType   string\n\tFormat string\n}\n\nvar _ Schema = &Primitive{}\n\nfunc (p *Primitive) Accept(v SchemaVisitor) {\n\tv.VisitPrimitive(p)\n}\n\nfunc (p *Primitive) GetName() string {\n\tif p.Format == \"\" {\n\t\treturn p.Type\n\t}\n\treturn fmt.Sprintf(\"%s (%s)\", p.Type, p.Format)\n}\n\n// Arbitrary is a value of any type (primitive, object or array)\ntype Arbitrary struct {\n\tBaseSchema\n}\n\nvar _ Schema = &Arbitrary{}\n\nfunc (a *Arbitrary) Accept(v SchemaVisitor) {\n\tif visitor, ok := v.(SchemaVisitorArbitrary); ok {\n\t\tvisitor.VisitArbitrary(a)\n\t}\n}\n\nfunc (a *Arbitrary) GetName() string {\n\treturn \"Arbitrary value (primitive, object or array)\"\n}\n\n// Reference implementation depends on the type of document.\ntype Reference interface {\n\tSchema\n\n\tReference() string\n\tSubSchema() Schema\n}\n"
  },
  {
    "path": "pkg/util/proto/openapi_test.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage proto_test\n\nimport (\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"testing\"\n\n\topenapi_v3 \"github.com/google/gnostic-models/openapiv3\"\n\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n\tprototesting \"k8s.io/kube-openapi/pkg/util/proto/testing\"\n)\n\nvar fakeSchema = prototesting.Fake{Path: filepath.Join(\"testdata\", \"swagger.json\")}\nvar fakeSchemaNext = prototesting.Fake{Path: filepath.Join(\"testdata\", \"swagger_next.json\")}\nvar fakeSchemaV300 = prototesting.FakeV3{Path: filepath.Join(\"testdata\", \"openapi_v3_0_0\")}\n\n// loadV18Models loads the v1.8 swagger schema and returns proto.Models.\nfunc loadV18Models(t *testing.T) proto.Models {\n\tt.Helper()\n\ts, err := fakeSchema.OpenAPISchema()\n\tif err != nil {\n\t\tt.Fatalf(\"failed to open v1.8 schema: %v\", err)\n\t}\n\tmodels, err := proto.NewOpenAPIData(s)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to create OpenAPI data: %v\", err)\n\t}\n\treturn models\n}\n\n// loadV18DeploymentModel loads the v1.8 schema and returns the Deployment Kind.\nfunc loadV18DeploymentModel(t *testing.T) (proto.Models, proto.Schema, *proto.Kind) {\n\tt.Helper()\n\tmodels := loadV18Models(t)\n\tschema := models.LookupModel(\"io.k8s.api.apps.v1beta1.Deployment\")\n\tif schema == nil {\n\t\tt.Fatal(\"model io.k8s.api.apps.v1beta1.Deployment not found\")\n\t}\n\tdeployment, ok := schema.(*proto.Kind)\n\tif !ok || deployment == nil {\n\t\tt.Fatal(\"expected schema to be *proto.Kind\")\n\t}\n\treturn models, schema, deployment\n}\n\nfunc TestV18Deployment(t *testing.T) {\n\tt.Run(\"should lookup the Schema by its model name\", func(t *testing.T) {\n\t\tmodels := loadV18Models(t)\n\t\tschema := models.LookupModel(\"io.k8s.api.apps.v1beta1.Deployment\")\n\t\tif schema == nil {\n\t\t\tt.Fatal(\"model io.k8s.api.apps.v1beta1.Deployment not found\")\n\t\t}\n\t})\n\n\tt.Run(\"should be a Kind\", func(t *testing.T) {\n\t\t_, _, deployment := loadV18DeploymentModel(t)\n\t\tif deployment == nil {\n\t\t\tt.Fatal(\"expected deployment to be non-nil\")\n\t\t}\n\t})\n\n\tt.Run(\"should have a path\", func(t *testing.T) {\n\t\t_, _, deployment := loadV18DeploymentModel(t)\n\t\tgot := deployment.GetPath().Get()\n\t\twant := []string{\"io.k8s.api.apps.v1beta1.Deployment\"}\n\t\tif !reflect.DeepEqual(got, want) {\n\t\t\tt.Errorf(\"path = %v, want %v\", got, want)\n\t\t}\n\t})\n\n\tt.Run(\"should have a kind key of type string\", func(t *testing.T) {\n\t\t_, _, deployment := loadV18DeploymentModel(t)\n\t\tif _, ok := deployment.Fields[\"kind\"]; !ok {\n\t\t\tt.Fatal(\"missing 'kind' field\")\n\t\t}\n\t\tkey, ok := deployment.Fields[\"kind\"].(*proto.Primitive)\n\t\tif !ok || key == nil {\n\t\t\tt.Fatal(\"expected 'kind' to be *proto.Primitive\")\n\t\t}\n\t\tif key.Type != \"string\" {\n\t\t\tt.Errorf(\"kind.Type = %q, want %q\", key.Type, \"string\")\n\t\t}\n\t\tgot := key.GetPath().Get()\n\t\twant := []string{\"io.k8s.api.apps.v1beta1.Deployment\", \".kind\"}\n\t\tif !reflect.DeepEqual(got, want) {\n\t\t\tt.Errorf(\"kind path = %v, want %v\", got, want)\n\t\t}\n\t})\n\n\tt.Run(\"should have a apiVersion key of type string\", func(t *testing.T) {\n\t\t_, _, deployment := loadV18DeploymentModel(t)\n\t\tif _, ok := deployment.Fields[\"apiVersion\"]; !ok {\n\t\t\tt.Fatal(\"missing 'apiVersion' field\")\n\t\t}\n\t\tkey, ok := deployment.Fields[\"apiVersion\"].(*proto.Primitive)\n\t\tif !ok || key == nil {\n\t\t\tt.Fatal(\"expected 'apiVersion' to be *proto.Primitive\")\n\t\t}\n\t\tif key.Type != \"string\" {\n\t\t\tt.Errorf(\"apiVersion.Type = %q, want %q\", key.Type, \"string\")\n\t\t}\n\t\tgot := key.GetPath().Get()\n\t\twant := []string{\"io.k8s.api.apps.v1beta1.Deployment\", \".apiVersion\"}\n\t\tif !reflect.DeepEqual(got, want) {\n\t\t\tt.Errorf(\"apiVersion path = %v, want %v\", got, want)\n\t\t}\n\t})\n\n\tt.Run(\"should have a metadata key of type Reference\", func(t *testing.T) {\n\t\t_, _, deployment := loadV18DeploymentModel(t)\n\t\tif _, ok := deployment.Fields[\"metadata\"]; !ok {\n\t\t\tt.Fatal(\"missing 'metadata' field\")\n\t\t}\n\t\tkey, ok := deployment.Fields[\"metadata\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'metadata' to be proto.Reference\")\n\t\t}\n\t\tif key.Reference() != \"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\" {\n\t\t\tt.Errorf(\"metadata reference = %q, want %q\", key.Reference(), \"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\")\n\t\t}\n\t\tsubSchema, ok := key.SubSchema().(*proto.Kind)\n\t\tif !ok || subSchema == nil {\n\t\t\tt.Fatal(\"expected metadata sub-schema to be *proto.Kind\")\n\t\t}\n\t})\n\n\tt.Run(\"should have a status key of type Reference\", func(t *testing.T) {\n\t\t_, _, deployment := loadV18DeploymentModel(t)\n\t\tif _, ok := deployment.Fields[\"status\"]; !ok {\n\t\t\tt.Fatal(\"missing 'status' field\")\n\t\t}\n\t\tkey, ok := deployment.Fields[\"status\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'status' to be proto.Reference\")\n\t\t}\n\t\tif key.Reference() != \"io.k8s.api.apps.v1beta1.DeploymentStatus\" {\n\t\t\tt.Errorf(\"status reference = %q, want %q\", key.Reference(), \"io.k8s.api.apps.v1beta1.DeploymentStatus\")\n\t\t}\n\t\tstatus, ok := key.SubSchema().(*proto.Kind)\n\t\tif !ok || status == nil {\n\t\t\tt.Fatal(\"expected status sub-schema to be *proto.Kind\")\n\t\t}\n\t})\n\n\tt.Run(\"should have a valid DeploymentStatus\", func(t *testing.T) {\n\t\t_, _, deployment := loadV18DeploymentModel(t)\n\t\tstatusRef, ok := deployment.Fields[\"status\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'status' to be proto.Reference\")\n\t\t}\n\t\tstatus, ok := statusRef.SubSchema().(*proto.Kind)\n\t\tif !ok || status == nil {\n\t\t\tt.Fatal(\"expected status sub-schema to be *proto.Kind\")\n\t\t}\n\n\t\tt.Log(\"having availableReplicas key\")\n\t\tif _, ok := status.Fields[\"availableReplicas\"]; !ok {\n\t\t\tt.Fatal(\"missing 'availableReplicas' field in status\")\n\t\t}\n\t\treplicas, ok := status.Fields[\"availableReplicas\"].(*proto.Primitive)\n\t\tif !ok || replicas == nil {\n\t\t\tt.Fatal(\"expected 'availableReplicas' to be *proto.Primitive\")\n\t\t}\n\t\tif replicas.Type != \"integer\" {\n\t\t\tt.Errorf(\"availableReplicas.Type = %q, want %q\", replicas.Type, \"integer\")\n\t\t}\n\n\t\tt.Log(\"having conditions key\")\n\t\tif _, ok := status.Fields[\"conditions\"]; !ok {\n\t\t\tt.Fatal(\"missing 'conditions' field in status\")\n\t\t}\n\t\tconditions, ok := status.Fields[\"conditions\"].(*proto.Array)\n\t\tif !ok || conditions == nil {\n\t\t\tt.Fatal(\"expected 'conditions' to be *proto.Array\")\n\t\t}\n\t\twantName := `Array of Reference to \"io.k8s.api.apps.v1beta1.DeploymentCondition\"`\n\t\tif conditions.GetName() != wantName {\n\t\t\tt.Errorf(\"conditions name = %q, want %q\", conditions.GetName(), wantName)\n\t\t}\n\t\twantExt := map[string]interface{}{\n\t\t\t\"x-kubernetes-patch-merge-key\": \"type\",\n\t\t\t\"x-kubernetes-patch-strategy\":  \"merge\",\n\t\t}\n\t\tif !reflect.DeepEqual(conditions.GetExtensions(), wantExt) {\n\t\t\tt.Errorf(\"conditions extensions = %v, want %v\", conditions.GetExtensions(), wantExt)\n\t\t}\n\t\tcondition, ok := conditions.SubType.(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected conditions.SubType to be proto.Reference\")\n\t\t}\n\t\tif condition.Reference() != \"io.k8s.api.apps.v1beta1.DeploymentCondition\" {\n\t\t\tt.Errorf(\"condition reference = %q, want %q\", condition.Reference(), \"io.k8s.api.apps.v1beta1.DeploymentCondition\")\n\t\t}\n\t})\n\n\tt.Run(\"should have a spec key of type Reference\", func(t *testing.T) {\n\t\t_, _, deployment := loadV18DeploymentModel(t)\n\t\tif _, ok := deployment.Fields[\"spec\"]; !ok {\n\t\t\tt.Fatal(\"missing 'spec' field\")\n\t\t}\n\t\tkey, ok := deployment.Fields[\"spec\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'spec' to be proto.Reference\")\n\t\t}\n\t\tif key.Reference() != \"io.k8s.api.apps.v1beta1.DeploymentSpec\" {\n\t\t\tt.Errorf(\"spec reference = %q, want %q\", key.Reference(), \"io.k8s.api.apps.v1beta1.DeploymentSpec\")\n\t\t}\n\t\tspec, ok := key.SubSchema().(*proto.Kind)\n\t\tif !ok || spec == nil {\n\t\t\tt.Fatal(\"expected spec sub-schema to be *proto.Kind\")\n\t\t}\n\t})\n\n\tt.Run(\"should have a spec with no gvk\", func(t *testing.T) {\n\t\t_, _, deployment := loadV18DeploymentModel(t)\n\t\tspecRef, ok := deployment.Fields[\"spec\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'spec' to be proto.Reference\")\n\t\t}\n\t\tspec, ok := specRef.SubSchema().(*proto.Kind)\n\t\tif !ok || spec == nil {\n\t\t\tt.Fatal(\"expected spec sub-schema to be *proto.Kind\")\n\t\t}\n\t\tif _, found := spec.GetExtensions()[\"x-kubernetes-group-version-kind\"]; found {\n\t\t\tt.Error(\"spec should not have x-kubernetes-group-version-kind extension\")\n\t\t}\n\t})\n\n\tt.Run(\"should have a spec with a PodTemplateSpec sub-field\", func(t *testing.T) {\n\t\t_, _, deployment := loadV18DeploymentModel(t)\n\t\tspecRef, ok := deployment.Fields[\"spec\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'spec' to be proto.Reference\")\n\t\t}\n\t\tspec, ok := specRef.SubSchema().(*proto.Kind)\n\t\tif !ok || spec == nil {\n\t\t\tt.Fatal(\"expected spec sub-schema to be *proto.Kind\")\n\t\t}\n\t\tif _, ok := spec.Fields[\"template\"]; !ok {\n\t\t\tt.Fatal(\"missing 'template' field in spec\")\n\t\t}\n\t\tkey, ok := spec.Fields[\"template\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'template' to be proto.Reference\")\n\t\t}\n\t\tif key.Reference() != \"io.k8s.api.core.v1.PodTemplateSpec\" {\n\t\t\tt.Errorf(\"template reference = %q, want %q\", key.Reference(), \"io.k8s.api.core.v1.PodTemplateSpec\")\n\t\t}\n\t})\n}\n\nfunc TestV111Deployment(t *testing.T) {\n\ts, err := fakeSchemaNext.OpenAPISchema()\n\tif err != nil {\n\t\tt.Fatalf(\"failed to open v1.11 schema: %v\", err)\n\t}\n\tmodels, err := proto.NewOpenAPIData(s)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to create OpenAPI data: %v\", err)\n\t}\n\n\tt.Run(\"should lookup the Schema by its model name\", func(t *testing.T) {\n\t\tschema := models.LookupModel(\"io.k8s.api.apps.v1beta1.Deployment\")\n\t\tif schema == nil {\n\t\t\tt.Fatal(\"model io.k8s.api.apps.v1beta1.Deployment not found\")\n\t\t}\n\t})\n\n\tt.Run(\"should be a Kind\", func(t *testing.T) {\n\t\tschema := models.LookupModel(\"io.k8s.api.apps.v1beta1.Deployment\")\n\t\tif schema == nil {\n\t\t\tt.Fatal(\"model not found\")\n\t\t}\n\t\tdeployment, ok := schema.(*proto.Kind)\n\t\tif !ok || deployment == nil {\n\t\t\tt.Fatal(\"expected schema to be *proto.Kind\")\n\t\t}\n\t})\n}\n\nfunc TestV111ControllerRevision(t *testing.T) {\n\ts, err := fakeSchemaNext.OpenAPISchema()\n\tif err != nil {\n\t\tt.Fatalf(\"failed to open v1.11 schema: %v\", err)\n\t}\n\tmodels, err := proto.NewOpenAPIData(s)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to create OpenAPI data: %v\", err)\n\t}\n\n\tt.Run(\"should lookup the Schema by its model name\", func(t *testing.T) {\n\t\tschema := models.LookupModel(\"io.k8s.api.apps.v1beta1.ControllerRevision\")\n\t\tif schema == nil {\n\t\t\tt.Fatal(\"model io.k8s.api.apps.v1beta1.ControllerRevision not found\")\n\t\t}\n\t})\n\n\tt.Run(\"data property should be map[string]Arbitrary\", func(t *testing.T) {\n\t\tschema := models.LookupModel(\"io.k8s.api.apps.v1beta1.ControllerRevision\")\n\t\tif schema == nil {\n\t\t\tt.Fatal(\"model not found\")\n\t\t}\n\t\tcr, ok := schema.(*proto.Kind)\n\t\tif !ok || cr == nil {\n\t\t\tt.Fatal(\"expected schema to be *proto.Kind\")\n\t\t}\n\t\tif _, ok := cr.Fields[\"data\"]; !ok {\n\t\t\tt.Fatal(\"missing 'data' field\")\n\t\t}\n\n\t\tdata, ok := cr.Fields[\"data\"].(*proto.Map)\n\t\tif !ok || data == nil {\n\t\t\tt.Fatal(\"expected 'data' to be *proto.Map\")\n\t\t}\n\t\twantName := \"Map of Arbitrary value (primitive, object or array)\"\n\t\tif data.GetName() != wantName {\n\t\t\tt.Errorf(\"data name = %q, want %q\", data.GetName(), wantName)\n\t\t}\n\t\twantPath := []string{\"io.k8s.api.apps.v1beta1.ControllerRevision\", \".data\"}\n\t\tif !reflect.DeepEqual(data.GetPath().Get(), wantPath) {\n\t\t\tt.Errorf(\"data path = %v, want %v\", data.GetPath().Get(), wantPath)\n\t\t}\n\n\t\tarbitrary, ok := data.SubType.(*proto.Arbitrary)\n\t\tif !ok || arbitrary == nil {\n\t\t\tt.Fatal(\"expected data.SubType to be *proto.Arbitrary\")\n\t\t}\n\t\twantArbName := \"Arbitrary value (primitive, object or array)\"\n\t\tif arbitrary.GetName() != wantArbName {\n\t\t\tt.Errorf(\"arbitrary name = %q, want %q\", arbitrary.GetName(), wantArbName)\n\t\t}\n\t\tif !reflect.DeepEqual(arbitrary.GetPath().Get(), wantPath) {\n\t\t\tt.Errorf(\"arbitrary path = %v, want %v\", arbitrary.GetPath().Get(), wantPath)\n\t\t}\n\t})\n}\n\nfunc TestSubjectAccessReview(t *testing.T) {\n\ts, err := fakeSchema.OpenAPISchema()\n\tif err != nil {\n\t\tt.Fatalf(\"failed to open schema: %v\", err)\n\t}\n\tmodels, err := proto.NewOpenAPIData(s)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to create OpenAPI data: %v\", err)\n\t}\n\n\tt.Run(\"should lookup the Schema by its model\", func(t *testing.T) {\n\t\tschema := models.LookupModel(\"io.k8s.api.authorization.v1.LocalSubjectAccessReview\")\n\t\tif schema == nil {\n\t\t\tt.Fatal(\"model io.k8s.api.authorization.v1.LocalSubjectAccessReview not found\")\n\t\t}\n\t})\n\n\tt.Run(\"should be a Kind and have a spec\", func(t *testing.T) {\n\t\tschema := models.LookupModel(\"io.k8s.api.authorization.v1.LocalSubjectAccessReview\")\n\t\tif schema == nil {\n\t\t\tt.Fatal(\"model not found\")\n\t\t}\n\t\tsar, ok := schema.(*proto.Kind)\n\t\tif !ok || sar == nil {\n\t\t\tt.Fatal(\"expected schema to be *proto.Kind\")\n\t\t}\n\t\tif _, ok := sar.Fields[\"spec\"]; !ok {\n\t\t\tt.Fatal(\"missing 'spec' field\")\n\t\t}\n\t\tspecRef, ok := sar.Fields[\"spec\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'spec' to be proto.Reference\")\n\t\t}\n\t\tif specRef.Reference() != \"io.k8s.api.authorization.v1.SubjectAccessReviewSpec\" {\n\t\t\tt.Errorf(\"spec reference = %q, want %q\", specRef.Reference(), \"io.k8s.api.authorization.v1.SubjectAccessReviewSpec\")\n\t\t}\n\t\tsarspec, ok := specRef.SubSchema().(*proto.Kind)\n\t\tif !ok || sarspec == nil {\n\t\t\tt.Fatal(\"expected spec sub-schema to be *proto.Kind\")\n\t\t}\n\t})\n\n\tt.Run(\"should have a valid SubjectAccessReviewSpec\", func(t *testing.T) {\n\t\tschema := models.LookupModel(\"io.k8s.api.authorization.v1.LocalSubjectAccessReview\")\n\t\tif schema == nil {\n\t\t\tt.Fatal(\"model not found\")\n\t\t}\n\t\tsar, ok := schema.(*proto.Kind)\n\t\tif !ok || sar == nil {\n\t\t\tt.Fatal(\"expected schema to be *proto.Kind\")\n\t\t}\n\t\tspecRef, ok := sar.Fields[\"spec\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'spec' to be proto.Reference\")\n\t\t}\n\t\tsarspec, ok := specRef.SubSchema().(*proto.Kind)\n\t\tif !ok || sarspec == nil {\n\t\t\tt.Fatal(\"expected spec sub-schema to be *proto.Kind\")\n\t\t}\n\n\t\tif _, ok := sarspec.Fields[\"extra\"]; !ok {\n\t\t\tt.Fatal(\"missing 'extra' field\")\n\t\t}\n\t\textra, ok := sarspec.Fields[\"extra\"].(*proto.Map)\n\t\tif !ok || extra == nil {\n\t\t\tt.Fatal(\"expected 'extra' to be *proto.Map\")\n\t\t}\n\t\tif extra.GetName() != \"Map of Array of string\" {\n\t\t\tt.Errorf(\"extra name = %q, want %q\", extra.GetName(), \"Map of Array of string\")\n\t\t}\n\t\twantExtraPath := []string{\"io.k8s.api.authorization.v1.SubjectAccessReviewSpec\", \".extra\"}\n\t\tif !reflect.DeepEqual(extra.GetPath().Get(), wantExtraPath) {\n\t\t\tt.Errorf(\"extra path = %v, want %v\", extra.GetPath().Get(), wantExtraPath)\n\t\t}\n\n\t\tarray, ok := extra.SubType.(*proto.Array)\n\t\tif !ok || array == nil {\n\t\t\tt.Fatal(\"expected extra.SubType to be *proto.Array\")\n\t\t}\n\t\tif array.GetName() != \"Array of string\" {\n\t\t\tt.Errorf(\"array name = %q, want %q\", array.GetName(), \"Array of string\")\n\t\t}\n\t\tif !reflect.DeepEqual(array.GetPath().Get(), wantExtraPath) {\n\t\t\tt.Errorf(\"array path = %v, want %v\", array.GetPath().Get(), wantExtraPath)\n\t\t}\n\n\t\tstr, ok := array.SubType.(*proto.Primitive)\n\t\tif !ok || str == nil {\n\t\t\tt.Fatal(\"expected array.SubType to be *proto.Primitive\")\n\t\t}\n\t\tif str.Type != \"string\" {\n\t\t\tt.Errorf(\"str.Type = %q, want %q\", str.Type, \"string\")\n\t\t}\n\t\tif str.GetName() != \"string\" {\n\t\t\tt.Errorf(\"str name = %q, want %q\", str.GetName(), \"string\")\n\t\t}\n\t\tif !reflect.DeepEqual(str.GetPath().Get(), wantExtraPath) {\n\t\t\tt.Errorf(\"str path = %v, want %v\", str.GetPath().Get(), wantExtraPath)\n\t\t}\n\t})\n}\n\nfunc TestPath(t *testing.T) {\n\tt.Run(\"can be created by NewPath\", func(t *testing.T) {\n\t\tpath := proto.NewPath(\"key\")\n\t\tif path.String() != \"key\" {\n\t\t\tt.Errorf(\"path.String() = %q, want %q\", path.String(), \"key\")\n\t\t}\n\t})\n\n\tt.Run(\"can create and print complex paths\", func(t *testing.T) {\n\t\tkey := proto.NewPath(\"key\")\n\t\tarray := key.ArrayPath(12)\n\t\tfield := array.FieldPath(\"subKey\")\n\t\tif field.String() != \"key[12].subKey\" {\n\t\t\tt.Errorf(\"field.String() = %q, want %q\", field.String(), \"key[12].subKey\")\n\t\t}\n\t})\n\n\tt.Run(\"has a length\", func(t *testing.T) {\n\t\tkey := proto.NewPath(\"key\")\n\t\tarray := key.ArrayPath(12)\n\t\tfield := array.FieldPath(\"subKey\")\n\t\tif field.Len() != 3 {\n\t\t\tt.Errorf(\"field.Len() = %d, want %d\", field.Len(), 3)\n\t\t}\n\t})\n\n\tt.Run(\"can look like an array\", func(t *testing.T) {\n\t\tkey := proto.NewPath(\"key\")\n\t\tarray := key.ArrayPath(12)\n\t\tfield := array.FieldPath(\"subKey\")\n\t\tgot := field.Get()\n\t\twant := []string{\"key\", \"[12]\", \".subKey\"}\n\t\tif !reflect.DeepEqual(got, want) {\n\t\t\tt.Errorf(\"field.Get() = %v, want %v\", got, want)\n\t\t}\n\t})\n}\n\n// loadV3Deployment loads the v3.0.0 schema and returns the Deployment Kind.\nfunc loadV3Deployment(t *testing.T) *proto.Kind {\n\tt.Helper()\n\ts, err := fakeSchemaV300.OpenAPIV3Schema(\"apps/v1\")\n\tif err != nil {\n\t\tt.Fatalf(\"failed to open v3.0.0 schema: %v\", err)\n\t}\n\tmodels, err := proto.NewOpenAPIV3Data(s)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to create OpenAPI v3 data: %v\", err)\n\t}\n\tschema := models.LookupModel(\"io.k8s.api.apps.v1.Deployment\")\n\tif schema == nil {\n\t\tt.Fatal(\"model io.k8s.api.apps.v1.Deployment not found\")\n\t}\n\tdeployment, ok := schema.(*proto.Kind)\n\tif !ok || deployment == nil {\n\t\tt.Fatal(\"expected schema to be *proto.Kind\")\n\t}\n\treturn deployment\n}\n\nfunc TestV3Deployment(t *testing.T) {\n\tt.Run(\"should have a path\", func(t *testing.T) {\n\t\tdeployment := loadV3Deployment(t)\n\t\tgot := deployment.GetPath().Get()\n\t\twant := []string{\"io.k8s.api.apps.v1.Deployment\"}\n\t\tif !reflect.DeepEqual(got, want) {\n\t\t\tt.Errorf(\"path = %v, want %v\", got, want)\n\t\t}\n\t})\n\n\tt.Run(\"should have a kind key of type string\", func(t *testing.T) {\n\t\tdeployment := loadV3Deployment(t)\n\t\tif _, ok := deployment.Fields[\"kind\"]; !ok {\n\t\t\tt.Fatal(\"missing 'kind' field\")\n\t\t}\n\t\tkey, ok := deployment.Fields[\"kind\"].(*proto.Primitive)\n\t\tif !ok || key == nil {\n\t\t\tt.Fatal(\"expected 'kind' to be *proto.Primitive\")\n\t\t}\n\t\tif key.Type != \"string\" {\n\t\t\tt.Errorf(\"kind.Type = %q, want %q\", key.Type, \"string\")\n\t\t}\n\t\tgot := key.GetPath().Get()\n\t\twant := []string{\"io.k8s.api.apps.v1.Deployment\", \".kind\"}\n\t\tif !reflect.DeepEqual(got, want) {\n\t\t\tt.Errorf(\"kind path = %v, want %v\", got, want)\n\t\t}\n\t})\n\n\tt.Run(\"should have a apiVersion key of type string\", func(t *testing.T) {\n\t\tdeployment := loadV3Deployment(t)\n\t\tif _, ok := deployment.Fields[\"apiVersion\"]; !ok {\n\t\t\tt.Fatal(\"missing 'apiVersion' field\")\n\t\t}\n\t\tkey, ok := deployment.Fields[\"apiVersion\"].(*proto.Primitive)\n\t\tif !ok || key == nil {\n\t\t\tt.Fatal(\"expected 'apiVersion' to be *proto.Primitive\")\n\t\t}\n\t\tif key.Type != \"string\" {\n\t\t\tt.Errorf(\"apiVersion.Type = %q, want %q\", key.Type, \"string\")\n\t\t}\n\t\tgot := key.GetPath().Get()\n\t\twant := []string{\"io.k8s.api.apps.v1.Deployment\", \".apiVersion\"}\n\t\tif !reflect.DeepEqual(got, want) {\n\t\t\tt.Errorf(\"apiVersion path = %v, want %v\", got, want)\n\t\t}\n\t})\n\n\tt.Run(\"should have a metadata key of type Reference\", func(t *testing.T) {\n\t\tdeployment := loadV3Deployment(t)\n\t\tif _, ok := deployment.Fields[\"metadata\"]; !ok {\n\t\t\tt.Fatal(\"missing 'metadata' field\")\n\t\t}\n\t\tkey, ok := deployment.Fields[\"metadata\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'metadata' to be proto.Reference\")\n\t\t}\n\t\tif key.Reference() != \"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\" {\n\t\t\tt.Errorf(\"metadata reference = %q, want %q\", key.Reference(), \"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\")\n\t\t}\n\t\tsubSchema, ok := key.SubSchema().(*proto.Kind)\n\t\tif !ok || subSchema == nil {\n\t\t\tt.Fatal(\"expected metadata sub-schema to be *proto.Kind\")\n\t\t}\n\t})\n\n\tt.Run(\"status/should have a valid DeploymentStatus\", func(t *testing.T) {\n\t\tdeployment := loadV3Deployment(t)\n\t\tif _, ok := deployment.Fields[\"status\"]; !ok {\n\t\t\tt.Fatal(\"missing 'status' field\")\n\t\t}\n\t\tstatusRef, ok := deployment.Fields[\"status\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'status' to be proto.Reference\")\n\t\t}\n\t\tif statusRef.Reference() != \"io.k8s.api.apps.v1.DeploymentStatus\" {\n\t\t\tt.Errorf(\"status reference = %q, want %q\", statusRef.Reference(), \"io.k8s.api.apps.v1.DeploymentStatus\")\n\t\t}\n\t\tstatus, ok := statusRef.SubSchema().(*proto.Kind)\n\t\tif !ok || status == nil {\n\t\t\tt.Fatal(\"expected status sub-schema to be *proto.Kind\")\n\t\t}\n\n\t\tt.Log(\"having availableReplicas key\")\n\t\tif _, ok := status.Fields[\"availableReplicas\"]; !ok {\n\t\t\tt.Fatal(\"missing 'availableReplicas' field in status\")\n\t\t}\n\t\treplicas, ok := status.Fields[\"availableReplicas\"].(*proto.Primitive)\n\t\tif !ok || replicas == nil {\n\t\t\tt.Fatal(\"expected 'availableReplicas' to be *proto.Primitive\")\n\t\t}\n\t\tif replicas.Type != \"integer\" {\n\t\t\tt.Errorf(\"availableReplicas.Type = %q, want %q\", replicas.Type, \"integer\")\n\t\t}\n\n\t\tt.Log(\"having conditions key\")\n\t\tif _, ok := status.Fields[\"conditions\"]; !ok {\n\t\t\tt.Fatal(\"missing 'conditions' field in status\")\n\t\t}\n\t\tconditions, ok := status.Fields[\"conditions\"].(*proto.Array)\n\t\tif !ok || conditions == nil {\n\t\t\tt.Fatal(\"expected 'conditions' to be *proto.Array\")\n\t\t}\n\t\twantName := `Array of Reference to \"io.k8s.api.apps.v1.DeploymentCondition\"`\n\t\tif conditions.GetName() != wantName {\n\t\t\tt.Errorf(\"conditions name = %q, want %q\", conditions.GetName(), wantName)\n\t\t}\n\t\twantExt := map[string]interface{}{\n\t\t\t\"x-kubernetes-patch-merge-key\": \"type\",\n\t\t\t\"x-kubernetes-patch-strategy\":  \"merge\",\n\t\t}\n\t\tif !reflect.DeepEqual(conditions.GetExtensions(), wantExt) {\n\t\t\tt.Errorf(\"conditions extensions = %v, want %v\", conditions.GetExtensions(), wantExt)\n\t\t}\n\t\tcondition, ok := conditions.SubType.(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected conditions.SubType to be proto.Reference\")\n\t\t}\n\t\tif condition.Reference() != \"io.k8s.api.apps.v1.DeploymentCondition\" {\n\t\t\tt.Errorf(\"condition reference = %q, want %q\", condition.Reference(), \"io.k8s.api.apps.v1.DeploymentCondition\")\n\t\t}\n\t})\n\n\tt.Run(\"spec/should have no gvk\", func(t *testing.T) {\n\t\tdeployment := loadV3Deployment(t)\n\t\tif _, ok := deployment.Fields[\"spec\"]; !ok {\n\t\t\tt.Fatal(\"missing 'spec' field\")\n\t\t}\n\t\tspecRef, ok := deployment.Fields[\"spec\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'spec' to be proto.Reference\")\n\t\t}\n\t\tif specRef.Reference() != \"io.k8s.api.apps.v1.DeploymentSpec\" {\n\t\t\tt.Errorf(\"spec reference = %q, want %q\", specRef.Reference(), \"io.k8s.api.apps.v1.DeploymentSpec\")\n\t\t}\n\t\tspec, ok := specRef.SubSchema().(*proto.Kind)\n\t\tif !ok || spec == nil {\n\t\t\tt.Fatal(\"expected spec sub-schema to be *proto.Kind\")\n\t\t}\n\t\tif _, found := spec.GetExtensions()[\"x-kubernetes-group-version-kind\"]; found {\n\t\t\tt.Error(\"spec should not have x-kubernetes-group-version-kind extension\")\n\t\t}\n\t})\n\n\tt.Run(\"spec/should have a PodTemplateSpec sub-field\", func(t *testing.T) {\n\t\tdeployment := loadV3Deployment(t)\n\t\tspecRef, ok := deployment.Fields[\"spec\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'spec' to be proto.Reference\")\n\t\t}\n\t\tspec, ok := specRef.SubSchema().(*proto.Kind)\n\t\tif !ok || spec == nil {\n\t\t\tt.Fatal(\"expected spec sub-schema to be *proto.Kind\")\n\t\t}\n\t\tif _, ok := spec.Fields[\"template\"]; !ok {\n\t\t\tt.Fatal(\"missing 'template' field in spec\")\n\t\t}\n\t\tkey, ok := spec.Fields[\"template\"].(proto.Reference)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected 'template' to be proto.Reference\")\n\t\t}\n\t\tif key.Reference() != \"io.k8s.api.core.v1.PodTemplateSpec\" {\n\t\t\tt.Errorf(\"template reference = %q, want %q\", key.Reference(), \"io.k8s.api.core.v1.PodTemplateSpec\")\n\t\t}\n\t})\n}\n\nfunc TestV3GVKExtension(t *testing.T) {\n\tspec := []byte(`{\n\t\"openapi\": \"3.0.0\",\n\t\"info\": {\n\t\t\"title\": \"Kubernetes\",\n\t\t\"version\": \"v1.24.0\"\n\t},\n\t\"paths\": {\n\t\t\"/foo\": {\n\t\t\t\"get\": {\n\t\t\t\t\"responses\": {\n\t\t\t\t\t\"200\": {\n\t\t\t\t\t\t\"description\": \"OK\",\n\t\t\t\t\t\t\"content\": {\n\t\t\t\t\t\t\t\"application/json\": {\n\t\t\t\t\t\t\t\t\"schema\": {\n\t\t\t\t\t\t\t\t\t\"$ref\": \"#/components/schemas/Foo\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t\"components\": {\n\t\t\"schemas\": {\n\t\t\t\"Foo\": {\n\t\t\t\t\"type\": \"object\",\n\t\t\t\t\"properties\": {},\n\t\t\t\t\"x-kubernetes-group-version-kind\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"group\": \"foo\",\n\t\t\t\t\t\t\"kind\": \"Foo\",\n\t\t\t\t\t\t\"version\": \"v1\"\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t}\n\t}\n}`)\n\n\tdocument, err := openapi_v3.ParseDocument(spec)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to parse OpenAPI v3 document: %v\", err)\n\t}\n\tmodels, err := proto.NewOpenAPIV3Data(document)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to create OpenAPI v3 data: %v\", err)\n\t}\n\tschema := models.LookupModel(\"Foo\")\n\tif schema == nil {\n\t\tt.Fatal(\"model Foo not found\")\n\t}\n\n\tt.Run(\"should have an extension with gvk\", func(t *testing.T) {\n\t\tif _, found := schema.GetExtensions()[\"x-kubernetes-group-version-kind\"]; !found {\n\t\t\tt.Error(\"expected x-kubernetes-group-version-kind extension to be present\")\n\t\t}\n\t})\n\n\tt.Run(\"should convert to proto.Kind type\", func(t *testing.T) {\n\t\tfoo, ok := schema.(*proto.Kind)\n\t\tif !ok {\n\t\t\tt.Fatal(\"expected schema to be *proto.Kind\")\n\t\t}\n\t\tif foo == nil {\n\t\t\tt.Fatal(\"expected foo to be non-nil\")\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "pkg/util/proto/testdata/openapi_v3_0_0/apiextensions.k8s.io/v1.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.24.0\"},\"paths\":{\"/apis/apiextensions.k8s.io/v1/\":{\"get\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"get available resources\",\"operationId\":\"getApiextensionsV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}}}}}}},\"/apis/apiextensions.k8s.io/v1/customresourcedefinitions\":{\"get\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"list or watch objects of kind CustomResourceDefinition\",\"operationId\":\"listApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\"}}}}}},\"post\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"create a CustomResourceDefinition\",\"operationId\":\"createApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}}}},\"delete\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"delete collection of CustomResourceDefinition\",\"operationId\":\"deleteApiextensionsV1CollectionCustomResourceDefinition\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}\":{\"get\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"read the specified CustomResourceDefinition\",\"operationId\":\"readApiextensionsV1CustomResourceDefinition\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}}}},\"put\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"replace the specified CustomResourceDefinition\",\"operationId\":\"replaceApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}}}},\"delete\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"delete a CustomResourceDefinition\",\"operationId\":\"deleteApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"partially update the specified CustomResourceDefinition\",\"operationId\":\"patchApiextensionsV1CustomResourceDefinition\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CustomResourceDefinition\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status\":{\"get\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"read status of the specified CustomResourceDefinition\",\"operationId\":\"readApiextensionsV1CustomResourceDefinitionStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}}}},\"put\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"replace status of the specified CustomResourceDefinition\",\"operationId\":\"replaceApiextensionsV1CustomResourceDefinitionStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}}}},\"patch\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"partially update status of the specified CustomResourceDefinition\",\"operationId\":\"patchApiextensionsV1CustomResourceDefinitionStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CustomResourceDefinition\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions\":{\"get\":{\"tags\":[\"apiextensions_v1\"],\"description\":\"watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchApiextensionsV1CustomResourceDefinitionList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}\":{\"get\":{\"tags\":[\"apiextensions_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CustomResourceDefinition\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]}},\"components\":{\"schemas\":{\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"type\":\"object\",\"required\":[\"name\",\"type\",\"jsonPath\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is a human readable name for the column.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"type\":\"object\",\"required\":[\"strategy\"],\"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\",\"default\":\"\"},\"webhook\":{\"description\":\"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\",\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\"}}},\"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.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec describes how the user wants the resources to appear\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"status indicates the actual state of the CustomResourceDefinition\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\":{\"description\":\"CustomResourceDefinitionList is a list of CustomResourceDefinition objects.\",\"type\":\"object\",\"required\":[\"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 list individual CustomResourceDefinition objects\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"object\",\"required\":[\"plural\",\"kind\"],\"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`.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"singular\":{\"description\":\"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"type\":\"object\",\"required\":[\"group\",\"names\",\"scope\",\"versions\"],\"properties\":{\"conversion\":{\"description\":\"conversion defines conversion settings for the CRD.\",\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\"},\"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\",\"default\":\"\"},\"names\":{\"description\":\"names specify the resource and kind names for the custom resource.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"type\":\"object\",\"properties\":{\"acceptedNames\":{\"description\":\"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"type\":\"object\",\"required\":[\"name\",\"served\",\"storage\"],\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"}},\"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\",\"default\":\"\"},\"schema\":{\"description\":\"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\",\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\"},\"served\":{\"description\":\"served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\",\"default\":false},\"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\",\"default\":false},\"subresources\":{\"description\":\"subresources specify what subresources this version of the defined custom resource have.\",\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"type\":\"object\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"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\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"scale\":{\"description\":\"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\",\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\"},\"status\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"type\":\"object\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\",\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\":{\"description\":\"ExternalDocumentation allows referencing an external resource for extended documentation.\",\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"url\":{\"type\":\"string\"}}},\"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/).\",\"type\":\"object\",\"properties\":{\"$ref\":{\"type\":\"string\"},\"$schema\":{\"type\":\"string\"},\"additionalItems\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\"},\"additionalProperties\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\"},\"allOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"default\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"}},\"example\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"},\"exclusiveMaximum\":{\"type\":\"boolean\"},\"exclusiveMinimum\":{\"type\":\"boolean\"},\"externalDocs\":{\"$ref\":\"#/components/schemas/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\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray\"},\"maxItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"},\"nullable\":{\"type\":\"boolean\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"},\"x-kubernetes-validations\":{\"description\":\"x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\"},\"x-kubernetes-list-map-keys\":[\"rule\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"rule\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\",\"type\":\"object\",\"required\":[\"namespace\",\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"namespace is the namespace of the service. Required\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ValidationRule\":{\"description\":\"ValidationRule describes a validation rule written in the CEL expression language.\",\"type\":\"object\",\"required\":[\"rule\"],\"properties\":{\"message\":{\"description\":\"Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\"\",\"type\":\"string\"},\"rule\":{\"description\":\"Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {\\\"rule\\\": \\\"self.status.actual \\u003c= self.spec.maxDesired\\\"}\\n\\nIf the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {\\\"rule\\\": \\\"self.components['Widget'].priority \\u003c 10\\\"} - Rule scoped to a list of integers: {\\\"rule\\\": \\\"self.values.all(value, value \\u003e= 0 \\u0026\\u0026 value \\u003c 100)\\\"} - Rule scoped to a string value: {\\\"rule\\\": \\\"self.startsWith('kube')\\\"}\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.\\n\\nUnknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an \\\"unknown type\\\". An \\\"unknown type\\\" is recursively defined as:\\n  - A schema with no type and x-kubernetes-preserve-unknown-fields set to true\\n  - An array where the items schema is of an \\\"unknown type\\\"\\n  - An object where the additionalProperties schema is of an \\\"unknown type\\\"\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Rule accessing a property named \\\"namespace\\\": {\\\"rule\\\": \\\"self.__namespace__ \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"x-prop\\\": {\\\"rule\\\": \\\"self.x__dash__prop \\u003e 0\\\"}\\n  - Rule accessing a property named \\\"redact__d\\\": {\\\"rule\\\": \\\"self.redact__underscores__d \\u003e 0\\\"}\\n\\nEquality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\"type\":\"object\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\",\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\":{\"description\":\"WebhookConversion describes how to call a conversion webhook\",\"type\":\"object\",\"required\":[\"conversionReviewVersions\"],\"properties\":{\"clientConfig\":{\"description\":\"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\",\"$ref\":\"#/components/schemas/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"type\":\"object\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is the plural name of the resource.\",\"type\":\"string\",\"default\":\"\"},\"namespaced\":{\"description\":\"namespaced indicates if a resource is namespaced or not.\",\"type\":\"boolean\",\"default\":false},\"shortNames\":{\"description\":\"shortNames is a list of suggested short names of the resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest 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\",\"default\":\"\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIResourceList\",\"version\":\"v1\"}]},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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 DEPRECATED read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"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\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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 DEPRECATED read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"type\":\"object\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"type\":{\"type\":\"string\",\"default\":\"\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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\"}}}}"
  },
  {
    "path": "pkg/util/proto/testdata/openapi_v3_0_0/apps/v1.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.24.0\"},\"paths\":{\"/apis/apps/v1/\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"get available resources\",\"operationId\":\"getAppsV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}}}}}}},\"/apis/apps/v1/controllerrevisions\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"list or watch objects of kind ControllerRevision\",\"operationId\":\"listAppsV1ControllerRevisionForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/daemonsets\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"list or watch objects of kind DaemonSet\",\"operationId\":\"listAppsV1DaemonSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/deployments\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"list or watch objects of kind Deployment\",\"operationId\":\"listAppsV1DeploymentForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"list or watch objects of kind ControllerRevision\",\"operationId\":\"listAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevisionList\"}}}}}},\"post\":{\"tags\":[\"apps_v1\"],\"description\":\"create a ControllerRevision\",\"operationId\":\"createAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}}}}}},\"delete\":{\"tags\":[\"apps_v1\"],\"description\":\"delete collection of ControllerRevision\",\"operationId\":\"deleteAppsV1CollectionNamespacedControllerRevision\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"read the specified ControllerRevision\",\"operationId\":\"readAppsV1NamespacedControllerRevision\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}}}}}},\"put\":{\"tags\":[\"apps_v1\"],\"description\":\"replace the specified ControllerRevision\",\"operationId\":\"replaceAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}}}}}},\"delete\":{\"tags\":[\"apps_v1\"],\"description\":\"delete a ControllerRevision\",\"operationId\":\"deleteAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"apps_v1\"],\"description\":\"partially update the specified ControllerRevision\",\"operationId\":\"patchAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ControllerRevision\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/daemonsets\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"list or watch objects of kind DaemonSet\",\"operationId\":\"listAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetList\"}}}}}},\"post\":{\"tags\":[\"apps_v1\"],\"description\":\"create a DaemonSet\",\"operationId\":\"createAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}}}},\"delete\":{\"tags\":[\"apps_v1\"],\"description\":\"delete collection of DaemonSet\",\"operationId\":\"deleteAppsV1CollectionNamespacedDaemonSet\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"read the specified DaemonSet\",\"operationId\":\"readAppsV1NamespacedDaemonSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}}}},\"put\":{\"tags\":[\"apps_v1\"],\"description\":\"replace the specified DaemonSet\",\"operationId\":\"replaceAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}}}},\"delete\":{\"tags\":[\"apps_v1\"],\"description\":\"delete a DaemonSet\",\"operationId\":\"deleteAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"apps_v1\"],\"description\":\"partially update the specified DaemonSet\",\"operationId\":\"patchAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the DaemonSet\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"read status of the specified DaemonSet\",\"operationId\":\"readAppsV1NamespacedDaemonSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}}}},\"put\":{\"tags\":[\"apps_v1\"],\"description\":\"replace status of the specified DaemonSet\",\"operationId\":\"replaceAppsV1NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}}}},\"patch\":{\"tags\":[\"apps_v1\"],\"description\":\"partially update status of the specified DaemonSet\",\"operationId\":\"patchAppsV1NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the DaemonSet\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/deployments\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"list or watch objects of kind Deployment\",\"operationId\":\"listAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentList\"}}}}}},\"post\":{\"tags\":[\"apps_v1\"],\"description\":\"create a Deployment\",\"operationId\":\"createAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}}}},\"delete\":{\"tags\":[\"apps_v1\"],\"description\":\"delete collection of Deployment\",\"operationId\":\"deleteAppsV1CollectionNamespacedDeployment\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"read the specified Deployment\",\"operationId\":\"readAppsV1NamespacedDeployment\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}}}},\"put\":{\"tags\":[\"apps_v1\"],\"description\":\"replace the specified Deployment\",\"operationId\":\"replaceAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}}}},\"delete\":{\"tags\":[\"apps_v1\"],\"description\":\"delete a Deployment\",\"operationId\":\"deleteAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"apps_v1\"],\"description\":\"partially update the specified Deployment\",\"operationId\":\"patchAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Deployment\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"read scale of the specified Deployment\",\"operationId\":\"readAppsV1NamespacedDeploymentScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}}}},\"put\":{\"tags\":[\"apps_v1\"],\"description\":\"replace scale of the specified Deployment\",\"operationId\":\"replaceAppsV1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}}}},\"patch\":{\"tags\":[\"apps_v1\"],\"description\":\"partially update scale of the specified Deployment\",\"operationId\":\"patchAppsV1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Scale\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"read status of the specified Deployment\",\"operationId\":\"readAppsV1NamespacedDeploymentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}}}},\"put\":{\"tags\":[\"apps_v1\"],\"description\":\"replace status of the specified Deployment\",\"operationId\":\"replaceAppsV1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}}}},\"patch\":{\"tags\":[\"apps_v1\"],\"description\":\"partially update status of the specified Deployment\",\"operationId\":\"patchAppsV1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Deployment\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/replicasets\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"list or watch objects of kind ReplicaSet\",\"operationId\":\"listAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"}}}}}},\"post\":{\"tags\":[\"apps_v1\"],\"description\":\"create a ReplicaSet\",\"operationId\":\"createAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}}}},\"delete\":{\"tags\":[\"apps_v1\"],\"description\":\"delete collection of ReplicaSet\",\"operationId\":\"deleteAppsV1CollectionNamespacedReplicaSet\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"read the specified ReplicaSet\",\"operationId\":\"readAppsV1NamespacedReplicaSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}}}},\"put\":{\"tags\":[\"apps_v1\"],\"description\":\"replace the specified ReplicaSet\",\"operationId\":\"replaceAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}}}},\"delete\":{\"tags\":[\"apps_v1\"],\"description\":\"delete a ReplicaSet\",\"operationId\":\"deleteAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"apps_v1\"],\"description\":\"partially update the specified ReplicaSet\",\"operationId\":\"patchAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ReplicaSet\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"read scale of the specified ReplicaSet\",\"operationId\":\"readAppsV1NamespacedReplicaSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}}}},\"put\":{\"tags\":[\"apps_v1\"],\"description\":\"replace scale of the specified ReplicaSet\",\"operationId\":\"replaceAppsV1NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}}}},\"patch\":{\"tags\":[\"apps_v1\"],\"description\":\"partially update scale of the specified ReplicaSet\",\"operationId\":\"patchAppsV1NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Scale\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"read status of the specified ReplicaSet\",\"operationId\":\"readAppsV1NamespacedReplicaSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}}}},\"put\":{\"tags\":[\"apps_v1\"],\"description\":\"replace status of the specified ReplicaSet\",\"operationId\":\"replaceAppsV1NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}}}},\"patch\":{\"tags\":[\"apps_v1\"],\"description\":\"partially update status of the specified ReplicaSet\",\"operationId\":\"patchAppsV1NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ReplicaSet\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/statefulsets\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"list or watch objects of kind StatefulSet\",\"operationId\":\"listAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"}}}}}},\"post\":{\"tags\":[\"apps_v1\"],\"description\":\"create a StatefulSet\",\"operationId\":\"createAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}}}},\"delete\":{\"tags\":[\"apps_v1\"],\"description\":\"delete collection of StatefulSet\",\"operationId\":\"deleteAppsV1CollectionNamespacedStatefulSet\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"read the specified StatefulSet\",\"operationId\":\"readAppsV1NamespacedStatefulSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}}}},\"put\":{\"tags\":[\"apps_v1\"],\"description\":\"replace the specified StatefulSet\",\"operationId\":\"replaceAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}}}},\"delete\":{\"tags\":[\"apps_v1\"],\"description\":\"delete a StatefulSet\",\"operationId\":\"deleteAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"apps_v1\"],\"description\":\"partially update the specified StatefulSet\",\"operationId\":\"patchAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the StatefulSet\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"read scale of the specified StatefulSet\",\"operationId\":\"readAppsV1NamespacedStatefulSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}}}},\"put\":{\"tags\":[\"apps_v1\"],\"description\":\"replace scale of the specified StatefulSet\",\"operationId\":\"replaceAppsV1NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}}}},\"patch\":{\"tags\":[\"apps_v1\"],\"description\":\"partially update scale of the specified StatefulSet\",\"operationId\":\"patchAppsV1NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Scale\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"read status of the specified StatefulSet\",\"operationId\":\"readAppsV1NamespacedStatefulSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}}}},\"put\":{\"tags\":[\"apps_v1\"],\"description\":\"replace status of the specified StatefulSet\",\"operationId\":\"replaceAppsV1NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}}}},\"patch\":{\"tags\":[\"apps_v1\"],\"description\":\"partially update status of the specified StatefulSet\",\"operationId\":\"patchAppsV1NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the StatefulSet\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/apps/v1/replicasets\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"list or watch objects of kind ReplicaSet\",\"operationId\":\"listAppsV1ReplicaSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/statefulsets\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"list or watch objects of kind StatefulSet\",\"operationId\":\"listAppsV1StatefulSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/controllerrevisions\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchAppsV1ControllerRevisionListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/daemonsets\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchAppsV1DaemonSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/deployments\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchAppsV1DeploymentListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchAppsV1NamespacedControllerRevisionList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"tags\":[\"apps_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ControllerRevision\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/namespaces/{namespace}/daemonsets\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchAppsV1NamespacedDaemonSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"tags\":[\"apps_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the DaemonSet\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/namespaces/{namespace}/deployments\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchAppsV1NamespacedDeploymentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"tags\":[\"apps_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Deployment\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/namespaces/{namespace}/replicasets\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchAppsV1NamespacedReplicaSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"tags\":[\"apps_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ReplicaSet\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/namespaces/{namespace}/statefulsets\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchAppsV1NamespacedStatefulSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"tags\":[\"apps_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the StatefulSet\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/replicasets\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchAppsV1ReplicaSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/apps/v1/watch/statefulsets\":{\"get\":{\"tags\":[\"apps_v1\"],\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchAppsV1StatefulSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]}},\"components\":{\"schemas\":{\"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.\",\"type\":\"object\",\"required\":[\"revision\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest 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\":{\"description\":\"Data is the serialized representation of the state.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"revision\":{\"description\":\"Revision indicates the revision of the state represented by Data.\",\"type\":\"integer\",\"format\":\"int64\",\"default\":0}},\"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.\",\"type\":\"object\",\"required\":[\"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 the list of ControllerRevisions\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ControllerRevision\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of DaemonSet condition.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.apps.v1.DaemonSetList\":{\"description\":\"DaemonSetList is a collection of daemon sets.\",\"type\":\"object\",\"required\":[\"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 daemon sets.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"required\":[\"selector\",\"template\"],\"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).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"},\"updateStrategy\":{\"description\":\"An update strategy to replace existing DaemonSet pods with new pods.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetUpdateStrategy\"}}},\"io.k8s.api.apps.v1.DaemonSetStatus\":{\"description\":\"DaemonSetStatus represents the current status of a daemon set.\",\"type\":\"object\",\"required\":[\"currentNumberScheduled\",\"numberMisscheduled\",\"desiredNumberScheduled\",\"numberReady\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a DaemonSet's current state.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DaemonSetCondition\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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/\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"numberReady\":{\"description\":\"numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"The most recent generation observed by the daemon set controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"updatedNumberScheduled\":{\"description\":\"The total number of nodes that are running updated daemon pod\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1.DaemonSetUpdateStrategy\":{\"description\":\"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\"type\":\"object\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.RollingUpdateDaemonSet\"},\"type\":{\"description\":\"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\\n\\n\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1.Deployment\":{\"description\":\"Deployment enables declarative updates for Pods and ReplicaSets.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the Deployment.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentSpec\"},\"status\":{\"description\":\"Most recently observed status of the Deployment.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastUpdateTime\":{\"description\":\"The last time this condition was updated.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of deployment condition.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.apps.v1.DeploymentList\":{\"description\":\"DeploymentList is a list of Deployments.\",\"type\":\"object\",\"required\":[\"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 the list of Deployments.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.Deployment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"required\":[\"selector\",\"template\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"strategy\":{\"description\":\"The deployment strategy to use to replace existing pods with new ones.\",\"default\":{},\"x-kubernetes-patch-strategy\":\"retainKeys\",\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentStrategy\"},\"template\":{\"description\":\"Template describes the pods that will be created.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.apps.v1.DeploymentStatus\":{\"description\":\"DeploymentStatus is the most recently observed status of the Deployment.\",\"type\":\"object\",\"properties\":{\"availableReplicas\":{\"description\":\"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a deployment's current state.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.DeploymentCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"observedGeneration\":{\"description\":\"The generation observed by the deployment controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"updatedReplicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1.DeploymentStrategy\":{\"description\":\"DeploymentStrategy describes how to replace existing pods with new ones.\",\"type\":\"object\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.RollingUpdateDeployment\"},\"type\":{\"description\":\"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\\n\\n\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1.ReplicaSet\":{\"description\":\"ReplicaSet ensures that a specified number of pod replicas are running at any given time.\",\"type\":\"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\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"The last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of replica set condition.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.apps.v1.ReplicaSetList\":{\"description\":\"ReplicaSetList is a collection of ReplicaSets.\",\"type\":\"object\",\"required\":[\"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 ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"required\":[\"selector\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.apps.v1.ReplicaSetStatus\":{\"description\":\"ReplicaSetStatus represents the current status of a ReplicaSet.\",\"type\":\"object\",\"required\":[\"replicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a replica set's current state.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.ReplicaSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"io.k8s.api.apps.v1.RollingUpdateDaemonSet\":{\"description\":\"Spec to control the desired behavior of daemon set rolling update.\",\"type\":\"object\",\"properties\":{\"maxSurge\":{\"description\":\"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 beta field and enabled/disabled by DaemonSetUpdateSurge feature gate.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"maxUnavailable\":{\"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 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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.apps.v1.RollingUpdateDeployment\":{\"description\":\"Spec to control the desired behavior of rolling update.\",\"type\":\"object\",\"properties\":{\"maxSurge\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"maxUnavailable\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\":{\"description\":\"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\"type\":\"object\",\"properties\":{\"partition\":{\"description\":\"Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the desired identities of pods in this set.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetSpec\"},\"status\":{\"description\":\"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of statefulset condition.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.apps.v1.StatefulSetList\":{\"description\":\"StatefulSetList is a collection of StatefulSets.\",\"type\":\"object\",\"required\":[\"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 the list of stateful sets.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"StatefulSetList\",\"version\":\"v1\"}]},\"io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\":{\"description\":\"StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.\",\"type\":\"object\",\"properties\":{\"whenDeleted\":{\"description\":\"WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.\",\"type\":\"string\"},\"whenScaled\":{\"description\":\"WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1.StatefulSetSpec\":{\"description\":\"A StatefulSetSpec is the specification of a StatefulSet.\",\"type\":\"object\",\"required\":[\"selector\",\"template\",\"serviceName\"],\"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) This is an alpha field and requires enabling StatefulSetMinReadySeconds feature gate.\",\"type\":\"integer\",\"format\":\"int32\"},\"persistentVolumeClaimRetentionPolicy\":{\"description\":\"persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.  +optional\",\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\"},\"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.\\n\\n\",\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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\",\"default\":\"\"},\"template\":{\"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.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"},\"updateStrategy\":{\"description\":\"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetUpdateStrategy\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"io.k8s.api.apps.v1.StatefulSetStatus\":{\"description\":\"StatefulSetStatus represents the current state of a StatefulSet.\",\"type\":\"object\",\"required\":[\"replicas\",\"availableReplicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset. This is a beta field and enabled/disabled by StatefulSetMinReadySeconds feature gate.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a statefulset's current state.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.StatefulSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"replicas is the number of Pods created by the StatefulSet controller.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"rollingUpdate\":{\"description\":\"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\"$ref\":\"#/components/schemas/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\"},\"type\":{\"description\":\"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\\n\\n\",\"type\":\"string\"}}},\"io.k8s.api.autoscaling.v1.Scale\":{\"description\":\"Scale represents a scaling request for a resource.\",\"type\":\"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\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.ScaleSpec\"},\"status\":{\"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.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.ScaleStatus\"}},\"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.\",\"type\":\"object\",\"properties\":{\"replicas\":{\"description\":\"desired number of instances for the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.autoscaling.v1.ScaleStatus\":{\"description\":\"ScaleStatus represents the current status of a scale subresource.\",\"type\":\"object\",\"required\":[\"replicas\"],\"properties\":{\"replicas\":{\"description\":\"actual number of observed instances of the scaled object.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.Affinity\":{\"description\":\"Affinity is a group of affinity scheduling rules.\",\"type\":\"object\",\"properties\":{\"nodeAffinity\":{\"description\":\"Describes node affinity scheduling rules for the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeAffinity\"},\"podAffinity\":{\"description\":\"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinity\"},\"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)).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAntiAffinity\"}}},\"io.k8s.api.core.v1.AzureDiskVolumeSource\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"diskName\",\"diskURI\"],\"properties\":{\"cachingMode\":{\"description\":\"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\"type\":\"string\"},\"diskName\":{\"description\":\"diskName is the Name of the data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"diskURI\":{\"description\":\"diskURI is the URI of data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"kind\":{\"description\":\"kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.AzureFileVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the  name of secret that contains Azure Storage Account Name and Key\",\"type\":\"string\",\"default\":\"\"},\"shareName\":{\"description\":\"shareName is the azure share Name\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.CSIVolumeSource\":{\"description\":\"Represents a source location of a volume to mount, managed by an external CSI driver\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\"type\":\"string\"},\"nodePublishSecretRef\":{\"description\":\"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and  may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"readOnly\":{\"description\":\"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.Capabilities\":{\"description\":\"Adds and removes POSIX capabilities from running containers.\",\"type\":\"object\",\"properties\":{\"add\":{\"description\":\"Added capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"drop\":{\"description\":\"Removed capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"path\":{\"description\":\"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretFile\":{\"description\":\"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeID\":{\"description\":\"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ConfigMapKeySelector\":{\"description\":\"Selects a key from a ConfigMap.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key to select.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.Container\":{\"description\":\"A single application container that you want to run within a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"}},\"image\":{\"description\":\"Container 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\\n\\n\",\"type\":\"string\"},\"lifecycle\":{\"description\":\"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"},\"securityContext\":{\"description\":\"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"},\"startupProbe\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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.\\n\\n\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.ContainerPort\":{\"description\":\"ContainerPort represents a network port in a single container.\",\"type\":\"object\",\"required\":[\"containerPort\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\\\".\\n\\n\",\"type\":\"string\",\"default\":\"TCP\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"Items is a list of DownwardAPIVolume file\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.DownwardAPIVolumeFile\":{\"description\":\"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"fieldRef\":{\"description\":\"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"},\"mode\":{\"description\":\"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\"type\":\"string\",\"default\":\"\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"}}},\"io.k8s.api.core.v1.DownwardAPIVolumeSource\":{\"description\":\"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"Items is a list of downward API volume file\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.EmptyDirVolumeSource\":{\"description\":\"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"medium\":{\"description\":\"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"type\":\"string\"},\"sizeLimit\":{\"description\":\"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"io.k8s.api.core.v1.EnvFromSource\":{\"description\":\"EnvFromSource represents the source of a set of ConfigMaps\",\"type\":\"object\",\"properties\":{\"configMapRef\":{\"description\":\"The ConfigMap to select from\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapEnvSource\"},\"prefix\":{\"description\":\"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\"type\":\"string\"},\"secretRef\":{\"description\":\"The Secret to select from\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretEnvSource\"}}},\"io.k8s.api.core.v1.EnvVar\":{\"description\":\"EnvVar represents an environment variable present in a Container.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name of the environment variable. Must be a C_IDENTIFIER.\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Variable references $(VAR_NAME) are expanded using the previously 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the environment variable's value. Cannot be used if value is not empty.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVarSource\"}}},\"io.k8s.api.core.v1.EnvVarSource\":{\"description\":\"EnvVarSource represents a source for the value of an EnvVar.\",\"type\":\"object\",\"properties\":{\"configMapKeyRef\":{\"description\":\"Selects a key of a ConfigMap.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapKeySelector\"},\"fieldRef\":{\"description\":\"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"},\"secretKeyRef\":{\"description\":\"Selects a key of a secret in the pod's namespace\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretKeySelector\"}}},\"io.k8s.api.core.v1.EphemeralContainer\":{\"description\":\"An EphemeralContainer is a temporary container that you may add 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. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\\n\\nThis is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"}},\"image\":{\"description\":\"Container 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\\n\\n\",\"type\":\"string\"},\"lifecycle\":{\"description\":\"Lifecycle is not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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\",\"default\":\"\"},\"ports\":{\"description\":\"Ports are not allowed for ephemeral containers.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"},\"securityContext\":{\"description\":\"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"},\"startupProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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 uses the namespaces configured in the Pod spec.\\n\\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\"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.\\n\\n\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"},\"x-kubernetes-patch-merge-key\":\"devicePath\",\"x-kubernetes-patch-strategy\":\"merge\"},\"volumeMounts\":{\"description\":\"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.EphemeralVolumeSource\":{\"description\":\"Represents an ephemeral volume that is handled by a normal storage driver.\",\"type\":\"object\",\"properties\":{\"volumeClaimTemplate\":{\"description\":\"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod.  The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\\n\\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\\n\\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\\n\\nRequired, must not be nil.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimTemplate\"}}},\"io.k8s.api.core.v1.ExecAction\":{\"description\":\"ExecAction describes a \\\"run in container\\\" action.\",\"type\":\"object\",\"properties\":{\"command\":{\"description\":\"Command is the command line to execute inside the container, the working directory for the command  is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"lun\":{\"description\":\"lun is Optional: FC target lun number\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"targetWWNs\":{\"description\":\"targetWWNs is Optional: FC target worldwide names (WWNs)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"wwids\":{\"description\":\"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.FlexVolumeSource\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the driver to use for this volume.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"options is Optional: this field holds extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"datasetName\":{\"description\":\"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\"type\":\"string\"},\"datasetUUID\":{\"description\":\"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"pdName\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"integer\",\"format\":\"int32\"},\"pdName\":{\"description\":\"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.GRPCAction\":{\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"port\":{\"description\":\"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"service\":{\"description\":\"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"repository\"],\"properties\":{\"directory\":{\"description\":\"directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\"type\":\"string\"},\"repository\":{\"description\":\"repository is the URL\",\"type\":\"string\",\"default\":\"\"},\"revision\":{\"description\":\"revision is the commit hash for the specified revision.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"path\":{\"description\":\"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.HTTPGetAction\":{\"description\":\"HTTPGetAction describes an action based on HTTP Get requests.\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\"type\":\"string\"},\"httpHeaders\":{\"description\":\"Custom headers to set in the request. HTTP allows repeated headers.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPHeader\"}},\"path\":{\"description\":\"Path to access on the HTTP server.\",\"type\":\"string\"},\"port\":{\"description\":\"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"scheme\":{\"description\":\"Scheme to use for connecting to the host. Defaults to HTTP.\\n\\n\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.HTTPHeader\":{\"description\":\"HTTPHeader describes a custom header to be used in HTTP probes\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"The header field name\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"The header field value\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"hostnames\":{\"description\":\"Hostnames for the above IP address.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"ip\":{\"description\":\"IP address of the host file entry.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"path\":{\"description\":\"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"properties\":{\"chapAuthDiscovery\":{\"description\":\"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\"type\":\"boolean\"},\"chapAuthSession\":{\"description\":\"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\"type\":\"boolean\"},\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\"type\":\"string\"},\"initiatorName\":{\"description\":\"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\"type\":\"string\"},\"iqn\":{\"description\":\"iqn is the target iSCSI Qualified Name.\",\"type\":\"string\",\"default\":\"\"},\"iscsiInterface\":{\"description\":\"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\"type\":\"string\"},\"lun\":{\"description\":\"lun represents iSCSI Target Lun number.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"portals\":{\"description\":\"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"targetPortal\":{\"description\":\"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.KeyToPath\":{\"description\":\"Maps a string key to a path within a volume.\",\"type\":\"object\",\"required\":[\"key\",\"path\"],\"properties\":{\"key\":{\"description\":\"key is the key to project.\",\"type\":\"string\",\"default\":\"\"},\"mode\":{\"description\":\"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"postStart\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"},\"preStop\":{\"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 Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). 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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"}}},\"io.k8s.api.core.v1.LifecycleHandler\":{\"description\":\"LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ExecAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"},\"tcpSocket\":{\"description\":\"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"}}},\"io.k8s.api.core.v1.LocalObjectReference\":{\"description\":\"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"server\",\"path\"],\"properties\":{\"path\":{\"description\":\"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NodeAffinity\":{\"description\":\"Node affinity is a group of node affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PreferredSchedulingTerm\"}},\"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 an update), the system may or may not try to eventually evict the pod from its node.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelector\"}}},\"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.\",\"type\":\"object\",\"required\":[\"nodeSelectorTerms\"],\"properties\":{\"nodeSelectorTerms\":{\"description\":\"Required. A list of node selector terms. The terms are ORed.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"The label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\"},\"operator\":{\"description\":\"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\\n\\n\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"A list of node selector requirements by node's labels.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"}},\"matchFields\":{\"description\":\"A list of node selector requirements by node's fields.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ObjectFieldSelector\":{\"description\":\"ObjectFieldSelector selects an APIVersioned field of an object.\",\"type\":\"object\",\"required\":[\"fieldPath\"],\"properties\":{\"apiVersion\":{\"description\":\"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\"type\":\"string\"},\"fieldPath\":{\"description\":\"Path of the field to select in the specified API version.\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.PersistentVolumeClaim\":{\"description\":\"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PersistentVolumeClaimCondition\":{\"description\":\"PersistentVolumeClaimCondition contails details about state of pvc\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"lastProbeTime is the time we probed the condition.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"lastTransitionTime is the time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"message is the human-readable message indicating details about last transition.\",\"type\":\"string\"},\"reason\":{\"description\":\"reason is a 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\",\"default\":\"\"},\"type\":{\"description\":\"\\n\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimSpec\":{\"description\":\"PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes\",\"type\":\"object\",\"properties\":{\"accessModes\":{\"description\":\"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"dataSource\":{\"description\":\"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"dataSourceRef\":{\"description\":\"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef\\n  allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While DataSource ignores disallowed values (dropping them), DataSourceRef\\n  preserves all values, and generates an error if a disallowed value is\\n  specified.\\n(Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"resources\":{\"description\":\"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"},\"selector\":{\"description\":\"selector is a label query over volumes to consider for binding.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"storageClassName\":{\"description\":\"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\"type\":\"string\"},\"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\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimStatus\":{\"description\":\"PersistentVolumeClaimStatus is the current status of a persistent volume claim.\",\"type\":\"object\",\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"allocatedResources\":{\"description\":\"allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"capacity\":{\"description\":\"capacity represents the actual resources of the underlying volume.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"conditions\":{\"description\":\"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"phase\":{\"description\":\"phase represents the current phase of PersistentVolumeClaim.\\n\\n\",\"type\":\"string\"},\"resizeStatus\":{\"description\":\"resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimTemplate\":{\"description\":\"PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"metadata\":{\"description\":\"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"}}},\"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).\",\"type\":\"object\",\"required\":[\"claimName\"],\"properties\":{\"claimName\":{\"description\":\"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"string\",\"default\":\"\"},\"readOnly\":{\"description\":\"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\":{\"description\":\"Represents a Photon Controller persistent disk resource.\",\"type\":\"object\",\"required\":[\"pdID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"pdID\":{\"description\":\"pdID is the ID that identifies Photon Controller persistent disk\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAffinity\":{\"description\":\"Pod affinity is a group of inter pod affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"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\",\"type\":\"object\",\"required\":[\"topologyKey\"],\"properties\":{\"labelSelector\":{\"description\":\"A label query over a set of resources, in this case pods.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaceSelector\":{\"description\":\"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 beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaces\":{\"description\":\"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\\\"\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAntiAffinity\":{\"description\":\"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"io.k8s.api.core.v1.PodDNSConfig\":{\"description\":\"PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodDNSConfigOption\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.PodDNSConfigOption\":{\"description\":\"PodDNSConfigOption defines DNS resolver options of a pod.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"}}},\"io.k8s.api.core.v1.PodOS\":{\"description\":\"PodOS defines the OS parameters of a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodReadinessGate\":{\"description\":\"PodReadinessGate contains the reference to a pod condition\",\"type\":\"object\",\"required\":[\"conditionType\"],\"properties\":{\"conditionType\":{\"description\":\"ConditionType refers to a condition in the pod's condition list with matching type.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"fsGroupChangePolicy\":{\"description\":\"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"},\"seccompProfile\":{\"description\":\"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"},\"supplementalGroups\":{\"description\":\"A list of groups applied to the first process run in each container, in addition to the container's primary GID.  If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\",\"default\":0}},\"sysctls\":{\"description\":\"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Sysctl\"}},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}}},\"io.k8s.api.core.v1.PodSpec\":{\"description\":\"PodSpec is a description of a pod.\",\"type\":\"object\",\"required\":[\"containers\"],\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"affinity\":{\"description\":\"If specified, the pod's scheduling constraints\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Affinity\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Container\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"dnsConfig\":{\"description\":\"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodDNSConfig\"},\"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'.\\n\\n\",\"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 beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EphemeralContainer\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostAlias\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Container\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"os\":{\"description\":\"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\\n\\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\\n\\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is an alpha field and requires the IdentifyPodOS feature\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodOS\"},\"overhead\":{\"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/688-pod-overhead/README.md This field is beta-level as of Kubernetes v1.18, and is only honored by servers that enable the PodOverhead feature.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"preemptionPolicy\":{\"description\":\"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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/580-pod-readiness-gates\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodReadinessGate\"}},\"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\\n\\n\",\"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/585-runtime-class 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\":{\"description\":\"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSecurityContext\"},\"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 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.\",\"type\":\"integer\",\"format\":\"int64\"},\"tolerations\":{\"description\":\"If specified, the pod's tolerations.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Toleration\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TopologySpreadConstraint\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Volume\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge,retainKeys\"}}},\"io.k8s.api.core.v1.PodTemplateSpec\":{\"description\":\"PodTemplateSpec describes the data a pod should have when created from a template\",\"type\":\"object\",\"properties\":{\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSpec\"}}},\"io.k8s.api.core.v1.PortworxVolumeSource\":{\"description\":\"PortworxVolumeSource represents a Portworx volume resource.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID uniquely identifies a Portworx volume\",\"type\":\"string\",\"default\":\"\"}}},\"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).\",\"type\":\"object\",\"required\":[\"weight\",\"preference\"],\"properties\":{\"preference\":{\"description\":\"A node selector term, associated with the corresponding weight.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"},\"weight\":{\"description\":\"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"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.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ExecAction\"},\"failureThreshold\":{\"description\":\"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"grpc\":{\"description\":\"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GRPCAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"},\"initialDelaySeconds\":{\"description\":\"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"},\"periodSeconds\":{\"description\":\"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"successThreshold\":{\"description\":\"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies an action involving a TCP port.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"},\"terminationGracePeriodSeconds\":{\"description\":\"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\"type\":\"integer\",\"format\":\"int64\"},\"timeoutSeconds\":{\"description\":\"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ProjectedVolumeSource\":{\"description\":\"Represents a projected volume source\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"sources\":{\"description\":\"sources is the list of volume projections\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeProjection\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"registry\",\"volume\"],\"properties\":{\"group\":{\"description\":\"group to map volume access to Default is no group\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\"type\":\"boolean\"},\"registry\":{\"description\":\"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\",\"image\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\"type\":\"string\"},\"image\":{\"description\":\"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\",\"default\":\"\"},\"keyring\":{\"description\":\"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"pool\":{\"description\":\"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ResourceFieldSelector\":{\"description\":\"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\"type\":\"object\",\"required\":[\"resource\"],\"properties\":{\"containerName\":{\"description\":\"Container name: required for volumes, optional for env vars\",\"type\":\"string\"},\"divisor\":{\"description\":\"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"resource\":{\"description\":\"Required: resource to select\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ResourceRequirements\":{\"description\":\"ResourceRequirements describes the compute resource requirements.\",\"type\":\"object\",\"properties\":{\"limits\":{\"description\":\"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"requests\":{\"description\":\"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}}},\"io.k8s.api.core.v1.SELinuxOptions\":{\"description\":\"SELinuxOptions are the labels to be applied to the container\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ScaleIOVolumeSource\":{\"description\":\"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\"type\":\"object\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\"type\":\"string\"},\"gateway\":{\"description\":\"gateway is the host address of the ScaleIO API Gateway.\",\"type\":\"string\",\"default\":\"\"},\"protectionDomain\":{\"description\":\"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"sslEnabled\":{\"description\":\"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\"type\":\"boolean\"},\"storageMode\":{\"description\":\"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\"type\":\"string\"},\"storagePool\":{\"description\":\"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\"type\":\"string\"},\"system\":{\"description\":\"system is the name of the storage system as configured in ScaleIO.\",\"type\":\"string\",\"default\":\"\"},\"volumeName\":{\"description\":\"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.SeccompProfile\":{\"description\":\"SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"localhostProfile\":{\"description\":\"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must 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.\\n\\n\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-unions\":[{\"discriminator\":\"type\",\"fields-to-discriminateBy\":{\"localhostProfile\":\"LocalhostProfile\"}}]},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.SecretKeySelector\":{\"description\":\"SecretKeySelector selects a key of a Secret.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key of the secret to select from.  Must be a valid secret key.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional field specify whether the Secret or its key must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"optional\":{\"description\":\"optional field specify whether the Secret or its keys must be defined\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"allowPrivilegeEscalation\":{\"description\":\"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"capabilities\":{\"description\":\"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Capabilities\"},\"privileged\":{\"description\":\"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"procMount\":{\"description\":\"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"readOnlyRootFilesystem\":{\"description\":\"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"},\"seccompProfile\":{\"description\":\"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}}},\"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).\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"audience\":{\"description\":\"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\"type\":\"string\"},\"expirationSeconds\":{\"description\":\"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\"type\":\"integer\",\"format\":\"int64\"},\"path\":{\"description\":\"path is the path relative to the mount point of the file to project the token into.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.StorageOSVolumeSource\":{\"description\":\"Represents a StorageOS persistent volume resource.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeName\":{\"description\":\"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Sysctl\":{\"description\":\"Sysctl defines a kernel parameter to be set\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"Name of a property to set\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Value of a property to set\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.TCPSocketAction\":{\"description\":\"TCPSocketAction describes an action based on opening a socket\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Optional: Host name to connect to, defaults to the pod IP.\",\"type\":\"string\"},\"port\":{\"description\":\"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"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.\",\"type\":\"object\",\"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.\\n\\n\",\"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.\\n\\n\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\"}}},\"io.k8s.api.core.v1.TopologySpreadConstraint\":{\"description\":\"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\"type\":\"object\",\"required\":[\"maxSkew\",\"topologyKey\",\"whenUnsatisfiable\"],\"properties\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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\",\"default\":\"\"},\"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 assignment 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.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.TypedLocalObjectReference\":{\"description\":\"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\"type\":\"object\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"awsElasticBlockStore\":{\"description\":\"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"azureDisk\":{\"description\":\"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"azureFile\":{\"description\":\"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureFileVolumeSource\"},\"cephfs\":{\"description\":\"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CephFSVolumeSource\"},\"cinder\":{\"description\":\"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CinderVolumeSource\"},\"configMap\":{\"description\":\"configMap represents a configMap that should populate this volume\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapVolumeSource\"},\"csi\":{\"description\":\"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CSIVolumeSource\"},\"downwardAPI\":{\"description\":\"downwardAPI represents downward API about the pod that should populate this volume\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeSource\"},\"emptyDir\":{\"description\":\"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EmptyDirVolumeSource\"},\"ephemeral\":{\"description\":\"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\\n\\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\\n   tracking are needed,\\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n   information on the connection between this volume type\\n   and PersistentVolumeClaim).\\n\\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\\n\\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EphemeralVolumeSource\"},\"fc\":{\"description\":\"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FCVolumeSource\"},\"flexVolume\":{\"description\":\"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlexVolumeSource\"},\"flocker\":{\"description\":\"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlockerVolumeSource\"},\"gcePersistentDisk\":{\"description\":\"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"gitRepo\":{\"description\":\"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GitRepoVolumeSource\"},\"glusterfs\":{\"description\":\"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GlusterfsVolumeSource\"},\"hostPath\":{\"description\":\"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostPathVolumeSource\"},\"iscsi\":{\"description\":\"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ISCSIVolumeSource\"},\"name\":{\"description\":\"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\",\"default\":\"\"},\"nfs\":{\"description\":\"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NFSVolumeSource\"},\"persistentVolumeClaim\":{\"description\":\"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"},\"photonPersistentDisk\":{\"description\":\"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"portworxVolume\":{\"description\":\"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource\"},\"projected\":{\"description\":\"projected items for all in one resources secrets, configmaps, and downward API\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ProjectedVolumeSource\"},\"quobyte\":{\"description\":\"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"rbd\":{\"description\":\"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.RBDVolumeSource\"},\"scaleIO\":{\"description\":\"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ScaleIOVolumeSource\"},\"secret\":{\"description\":\"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretVolumeSource\"},\"storageos\":{\"description\":\"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.StorageOSVolumeSource\"},\"vsphereVolume\":{\"description\":\"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}}},\"io.k8s.api.core.v1.VolumeDevice\":{\"description\":\"volumeDevice describes a mapping of a raw block device within a container.\",\"type\":\"object\",\"required\":[\"name\",\"devicePath\"],\"properties\":{\"devicePath\":{\"description\":\"devicePath is the path inside of the container that the device will be mapped to.\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"name must match the name of a persistentVolumeClaim in the pod\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.VolumeMount\":{\"description\":\"VolumeMount describes a mounting of a Volume within a container.\",\"type\":\"object\",\"required\":[\"name\",\"mountPath\"],\"properties\":{\"mountPath\":{\"description\":\"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.VolumeProjection\":{\"description\":\"Projection that may be projected along with other supported volume types\",\"type\":\"object\",\"properties\":{\"configMap\":{\"description\":\"configMap information about the configMap data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapProjection\"},\"downwardAPI\":{\"description\":\"downwardAPI information about the downwardAPI data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIProjection\"},\"secret\":{\"description\":\"secret information about the secret data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretProjection\"},\"serviceAccountToken\":{\"description\":\"serviceAccountToken is information about the serviceAccountToken data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountTokenProjection\"}}},\"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\":{\"description\":\"Represents a vSphere volume resource.\",\"type\":\"object\",\"required\":[\"volumePath\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"storagePolicyID\":{\"description\":\"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\"type\":\"string\"},\"storagePolicyName\":{\"description\":\"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\"type\":\"string\"},\"volumePath\":{\"description\":\"volumePath is the path that identifies vSphere volume vmdk\",\"type\":\"string\",\"default\":\"\"}}},\"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)\",\"type\":\"object\",\"required\":[\"weight\",\"podAffinityTerm\"],\"properties\":{\"podAffinityTerm\":{\"description\":\"Required. A pod affinity term, associated with the corresponding weight.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"},\"weight\":{\"description\":\"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"io.k8s.api.core.v1.WindowsSecurityContextOptions\":{\"description\":\"WindowsSecurityContextOptions contain Windows-specific options and credentials.\",\"type\":\"object\",\"properties\":{\"gmsaCredentialSpec\":{\"description\":\"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\"type\":\"string\"},\"gmsaCredentialSpecName\":{\"description\":\"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\"type\":\"string\"},\"hostProcess\":{\"description\":\"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).  In addition, if HostProcess is true then HostNetwork must also be set to true.\",\"type\":\"boolean\"},\"runAsUserName\":{\"description\":\"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"string\"}}},\"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.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"type\":\"object\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is the plural name of the resource.\",\"type\":\"string\",\"default\":\"\"},\"namespaced\":{\"description\":\"namespaced indicates if a resource is namespaced or not.\",\"type\":\"boolean\",\"default\":false},\"shortNames\":{\"description\":\"shortNames is a list of suggested short names of the resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest 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\",\"default\":\"\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIResourceList\",\"version\":\"v1\"}]},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"}},\"matchLabels\":{\"description\":\"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"key is the label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\",\"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\",\"default\":\"\"},\"values\":{\"description\":\"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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 DEPRECATED read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"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\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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 DEPRECATED read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"type\":\"object\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"type\":{\"type\":\"string\",\"default\":\"\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.\",\"type\":\"string\",\"format\":\"int-or-string\"}}}}"
  },
  {
    "path": "pkg/util/proto/testdata/openapi_v3_0_0/batch/v1.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.24.0\"},\"paths\":{\"/apis/batch/v1/\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"get available resources\",\"operationId\":\"getBatchV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}}}}}}},\"/apis/batch/v1/cronjobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"list or watch objects of kind CronJob\",\"operationId\":\"listBatchV1CronJobForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/jobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"list or watch objects of kind Job\",\"operationId\":\"listBatchV1JobForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/namespaces/{namespace}/cronjobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"list or watch objects of kind CronJob\",\"operationId\":\"listBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobList\"}}}}}},\"post\":{\"tags\":[\"batch_v1\"],\"description\":\"create a CronJob\",\"operationId\":\"createBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}}}},\"delete\":{\"tags\":[\"batch_v1\"],\"description\":\"delete collection of CronJob\",\"operationId\":\"deleteBatchV1CollectionNamespacedCronJob\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1/namespaces/{namespace}/cronjobs/{name}\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"read the specified CronJob\",\"operationId\":\"readBatchV1NamespacedCronJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}}}},\"put\":{\"tags\":[\"batch_v1\"],\"description\":\"replace the specified CronJob\",\"operationId\":\"replaceBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}}}},\"delete\":{\"tags\":[\"batch_v1\"],\"description\":\"delete a CronJob\",\"operationId\":\"deleteBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"batch_v1\"],\"description\":\"partially update the specified CronJob\",\"operationId\":\"patchBatchV1NamespacedCronJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CronJob\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1/namespaces/{namespace}/cronjobs/{name}/status\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"read status of the specified CronJob\",\"operationId\":\"readBatchV1NamespacedCronJobStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}}}},\"put\":{\"tags\":[\"batch_v1\"],\"description\":\"replace status of the specified CronJob\",\"operationId\":\"replaceBatchV1NamespacedCronJobStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}}}},\"patch\":{\"tags\":[\"batch_v1\"],\"description\":\"partially update status of the specified CronJob\",\"operationId\":\"patchBatchV1NamespacedCronJobStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CronJob\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1/namespaces/{namespace}/jobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"list or watch objects of kind Job\",\"operationId\":\"listBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobList\"}}}}}},\"post\":{\"tags\":[\"batch_v1\"],\"description\":\"create a Job\",\"operationId\":\"createBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}}}},\"delete\":{\"tags\":[\"batch_v1\"],\"description\":\"delete collection of Job\",\"operationId\":\"deleteBatchV1CollectionNamespacedJob\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1/namespaces/{namespace}/jobs/{name}\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"read the specified Job\",\"operationId\":\"readBatchV1NamespacedJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}}}},\"put\":{\"tags\":[\"batch_v1\"],\"description\":\"replace the specified Job\",\"operationId\":\"replaceBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}}}},\"delete\":{\"tags\":[\"batch_v1\"],\"description\":\"delete a Job\",\"operationId\":\"deleteBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"batch_v1\"],\"description\":\"partially update the specified Job\",\"operationId\":\"patchBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Job\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"read status of the specified Job\",\"operationId\":\"readBatchV1NamespacedJobStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}}}},\"put\":{\"tags\":[\"batch_v1\"],\"description\":\"replace status of the specified Job\",\"operationId\":\"replaceBatchV1NamespacedJobStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}}}},\"patch\":{\"tags\":[\"batch_v1\"],\"description\":\"partially update status of the specified Job\",\"operationId\":\"patchBatchV1NamespacedJobStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Job\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1/watch/cronjobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchBatchV1CronJobListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/watch/jobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchBatchV1JobListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/watch/namespaces/{namespace}/cronjobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchBatchV1NamespacedCronJobList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/watch/namespaces/{namespace}/cronjobs/{name}\":{\"get\":{\"tags\":[\"batch_v1\"],\"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\":\"watchBatchV1NamespacedCronJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CronJob\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/watch/namespaces/{namespace}/jobs\":{\"get\":{\"tags\":[\"batch_v1\"],\"description\":\"watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchBatchV1NamespacedJobList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}\":{\"get\":{\"tags\":[\"batch_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Job\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]}},\"components\":{\"schemas\":{\"io.k8s.api.batch.v1.CronJob\":{\"description\":\"CronJob represents the configuration of a single cron job.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobSpec\"},\"status\":{\"description\":\"Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJobStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1\"}]},\"io.k8s.api.batch.v1.CronJobList\":{\"description\":\"CronJobList is a collection of cron jobs.\",\"type\":\"object\",\"required\":[\"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 the list of CronJobs.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.CronJob\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"batch\",\"kind\":\"CronJobList\",\"version\":\"v1\"}]},\"io.k8s.api.batch.v1.CronJobSpec\":{\"description\":\"CronJobSpec describes how the job execution will look like and when it will actually run.\",\"type\":\"object\",\"required\":[\"schedule\",\"jobTemplate\"],\"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\\n\\n\",\"type\":\"string\"},\"failedJobsHistoryLimit\":{\"description\":\"The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"jobTemplate\":{\"description\":\"Specifies the job that will be created when executing a CronJob.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobTemplateSpec\"},\"schedule\":{\"description\":\"The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"successfulJobsHistoryLimit\":{\"description\":\"The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.\",\"type\":\"integer\",\"format\":\"int32\"},\"suspend\":{\"description\":\"This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.\",\"type\":\"boolean\"}}},\"io.k8s.api.batch.v1.CronJobStatus\":{\"description\":\"CronJobStatus represents the current state of a cron job.\",\"type\":\"object\",\"properties\":{\"active\":{\"description\":\"A list of pointers to currently running jobs.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"},\"x-kubernetes-list-type\":\"atomic\"},\"lastScheduleTime\":{\"description\":\"Information when was the last time the job was successfully scheduled.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastSuccessfulTime\":{\"description\":\"Information when was the last time the job successfully completed.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.batch.v1.Job\":{\"description\":\"Job represents the configuration of a single job.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobSpec\"},\"status\":{\"description\":\"Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"Last time the condition was checked.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transit from one status to another.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of job condition, Complete or Failed.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.batch.v1.JobList\":{\"description\":\"JobList is a collection of jobs.\",\"type\":\"object\",\"required\":[\"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 the list of Jobs.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.Job\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"required\":[\"template\"],\"properties\":{\"activeDeadlineSeconds\":{\"description\":\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"backoffLimit\":{\"description\":\"Specifies the number of retries before marking this job failed. Defaults to 6\",\"type\":\"integer\",\"format\":\"int32\"},\"completionMode\":{\"description\":\"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. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`.\\n\\nThis field is beta-level. 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.\",\"type\":\"string\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"suspend\":{\"description\":\"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. Defaults to false.\\n\\nThis field is beta-level, gated by SuspendJob feature flag (enabled by default).\",\"type\":\"boolean\"},\"template\":{\"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/\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.batch.v1.JobStatus\":{\"description\":\"JobStatus represents the current state of a Job.\",\"type\":\"object\",\"properties\":{\"active\":{\"description\":\"The number of pending and running pods.\",\"type\":\"integer\",\"format\":\"int32\"},\"completedIndexes\":{\"description\":\"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\\\".\",\"type\":\"string\"},\"completionTime\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"conditions\":{\"description\":\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobCondition\"},\"x-kubernetes-list-type\":\"atomic\",\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"failed\":{\"description\":\"The number of pods which reached phase Failed.\",\"type\":\"integer\",\"format\":\"int32\"},\"ready\":{\"description\":\"The number of pods which have a Ready condition.\\n\\nThis field is alpha-level. The job controller populates the field when the feature gate JobReadyPods is enabled (disabled by default).\",\"type\":\"integer\",\"format\":\"int32\"},\"startTime\":{\"description\":\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"succeeded\":{\"description\":\"The number of pods which reached phase Succeeded.\",\"type\":\"integer\",\"format\":\"int32\"},\"uncountedTerminatedPods\":{\"description\":\"UncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.\\n\\nThe job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status: (1) Add the pod UID to the arrays in this field. (2) Remove the pod finalizer. (3) Remove the pod UID from the arrays while increasing the corresponding\\n    counter.\\n\\nThis field is beta-level. The job controller only makes use of this field when the feature gate JobTrackingWithFinalizers is enabled (enabled by default). Old jobs might not be tracked using this field, in which case the field remains null.\",\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.UncountedTerminatedPods\"}}},\"io.k8s.api.batch.v1.JobTemplateSpec\":{\"description\":\"JobTemplateSpec describes the data a Job should have when created from a template\",\"type\":\"object\",\"properties\":{\"metadata\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobSpec\"}}},\"io.k8s.api.batch.v1.UncountedTerminatedPods\":{\"description\":\"UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.\",\"type\":\"object\",\"properties\":{\"failed\":{\"description\":\"Failed holds UIDs of failed Pods.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-list-type\":\"set\"},\"succeeded\":{\"description\":\"Succeeded holds UIDs of succeeded Pods.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-list-type\":\"set\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.Affinity\":{\"description\":\"Affinity is a group of affinity scheduling rules.\",\"type\":\"object\",\"properties\":{\"nodeAffinity\":{\"description\":\"Describes node affinity scheduling rules for the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeAffinity\"},\"podAffinity\":{\"description\":\"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinity\"},\"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)).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAntiAffinity\"}}},\"io.k8s.api.core.v1.AzureDiskVolumeSource\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"diskName\",\"diskURI\"],\"properties\":{\"cachingMode\":{\"description\":\"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\"type\":\"string\"},\"diskName\":{\"description\":\"diskName is the Name of the data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"diskURI\":{\"description\":\"diskURI is the URI of data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"kind\":{\"description\":\"kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.AzureFileVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the  name of secret that contains Azure Storage Account Name and Key\",\"type\":\"string\",\"default\":\"\"},\"shareName\":{\"description\":\"shareName is the azure share Name\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.CSIVolumeSource\":{\"description\":\"Represents a source location of a volume to mount, managed by an external CSI driver\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\"type\":\"string\"},\"nodePublishSecretRef\":{\"description\":\"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and  may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"readOnly\":{\"description\":\"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.Capabilities\":{\"description\":\"Adds and removes POSIX capabilities from running containers.\",\"type\":\"object\",\"properties\":{\"add\":{\"description\":\"Added capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"drop\":{\"description\":\"Removed capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"path\":{\"description\":\"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretFile\":{\"description\":\"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeID\":{\"description\":\"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ConfigMapKeySelector\":{\"description\":\"Selects a key from a ConfigMap.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key to select.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.Container\":{\"description\":\"A single application container that you want to run within a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"}},\"image\":{\"description\":\"Container 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\\n\\n\",\"type\":\"string\"},\"lifecycle\":{\"description\":\"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"},\"securityContext\":{\"description\":\"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"},\"startupProbe\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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.\\n\\n\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.ContainerPort\":{\"description\":\"ContainerPort represents a network port in a single container.\",\"type\":\"object\",\"required\":[\"containerPort\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\\\".\\n\\n\",\"type\":\"string\",\"default\":\"TCP\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"Items is a list of DownwardAPIVolume file\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.DownwardAPIVolumeFile\":{\"description\":\"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"fieldRef\":{\"description\":\"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"},\"mode\":{\"description\":\"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\"type\":\"string\",\"default\":\"\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"}}},\"io.k8s.api.core.v1.DownwardAPIVolumeSource\":{\"description\":\"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"Items is a list of downward API volume file\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.EmptyDirVolumeSource\":{\"description\":\"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"medium\":{\"description\":\"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"type\":\"string\"},\"sizeLimit\":{\"description\":\"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"io.k8s.api.core.v1.EnvFromSource\":{\"description\":\"EnvFromSource represents the source of a set of ConfigMaps\",\"type\":\"object\",\"properties\":{\"configMapRef\":{\"description\":\"The ConfigMap to select from\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapEnvSource\"},\"prefix\":{\"description\":\"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\"type\":\"string\"},\"secretRef\":{\"description\":\"The Secret to select from\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretEnvSource\"}}},\"io.k8s.api.core.v1.EnvVar\":{\"description\":\"EnvVar represents an environment variable present in a Container.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name of the environment variable. Must be a C_IDENTIFIER.\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Variable references $(VAR_NAME) are expanded using the previously 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the environment variable's value. Cannot be used if value is not empty.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVarSource\"}}},\"io.k8s.api.core.v1.EnvVarSource\":{\"description\":\"EnvVarSource represents a source for the value of an EnvVar.\",\"type\":\"object\",\"properties\":{\"configMapKeyRef\":{\"description\":\"Selects a key of a ConfigMap.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapKeySelector\"},\"fieldRef\":{\"description\":\"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"},\"secretKeyRef\":{\"description\":\"Selects a key of a secret in the pod's namespace\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretKeySelector\"}}},\"io.k8s.api.core.v1.EphemeralContainer\":{\"description\":\"An EphemeralContainer is a temporary container that you may add 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. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\\n\\nThis is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"}},\"image\":{\"description\":\"Container 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\\n\\n\",\"type\":\"string\"},\"lifecycle\":{\"description\":\"Lifecycle is not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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\",\"default\":\"\"},\"ports\":{\"description\":\"Ports are not allowed for ephemeral containers.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"},\"securityContext\":{\"description\":\"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"},\"startupProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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 uses the namespaces configured in the Pod spec.\\n\\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\"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.\\n\\n\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"},\"x-kubernetes-patch-merge-key\":\"devicePath\",\"x-kubernetes-patch-strategy\":\"merge\"},\"volumeMounts\":{\"description\":\"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.EphemeralVolumeSource\":{\"description\":\"Represents an ephemeral volume that is handled by a normal storage driver.\",\"type\":\"object\",\"properties\":{\"volumeClaimTemplate\":{\"description\":\"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod.  The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\\n\\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\\n\\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\\n\\nRequired, must not be nil.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimTemplate\"}}},\"io.k8s.api.core.v1.ExecAction\":{\"description\":\"ExecAction describes a \\\"run in container\\\" action.\",\"type\":\"object\",\"properties\":{\"command\":{\"description\":\"Command is the command line to execute inside the container, the working directory for the command  is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"lun\":{\"description\":\"lun is Optional: FC target lun number\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"targetWWNs\":{\"description\":\"targetWWNs is Optional: FC target worldwide names (WWNs)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"wwids\":{\"description\":\"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.FlexVolumeSource\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the driver to use for this volume.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"options is Optional: this field holds extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"datasetName\":{\"description\":\"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\"type\":\"string\"},\"datasetUUID\":{\"description\":\"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"pdName\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"integer\",\"format\":\"int32\"},\"pdName\":{\"description\":\"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.GRPCAction\":{\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"port\":{\"description\":\"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"service\":{\"description\":\"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"repository\"],\"properties\":{\"directory\":{\"description\":\"directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\"type\":\"string\"},\"repository\":{\"description\":\"repository is the URL\",\"type\":\"string\",\"default\":\"\"},\"revision\":{\"description\":\"revision is the commit hash for the specified revision.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"path\":{\"description\":\"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.HTTPGetAction\":{\"description\":\"HTTPGetAction describes an action based on HTTP Get requests.\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\"type\":\"string\"},\"httpHeaders\":{\"description\":\"Custom headers to set in the request. HTTP allows repeated headers.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPHeader\"}},\"path\":{\"description\":\"Path to access on the HTTP server.\",\"type\":\"string\"},\"port\":{\"description\":\"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"scheme\":{\"description\":\"Scheme to use for connecting to the host. Defaults to HTTP.\\n\\n\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.HTTPHeader\":{\"description\":\"HTTPHeader describes a custom header to be used in HTTP probes\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"The header field name\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"The header field value\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"hostnames\":{\"description\":\"Hostnames for the above IP address.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"ip\":{\"description\":\"IP address of the host file entry.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"path\":{\"description\":\"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"properties\":{\"chapAuthDiscovery\":{\"description\":\"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\"type\":\"boolean\"},\"chapAuthSession\":{\"description\":\"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\"type\":\"boolean\"},\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\"type\":\"string\"},\"initiatorName\":{\"description\":\"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\"type\":\"string\"},\"iqn\":{\"description\":\"iqn is the target iSCSI Qualified Name.\",\"type\":\"string\",\"default\":\"\"},\"iscsiInterface\":{\"description\":\"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\"type\":\"string\"},\"lun\":{\"description\":\"lun represents iSCSI Target Lun number.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"portals\":{\"description\":\"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"targetPortal\":{\"description\":\"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.KeyToPath\":{\"description\":\"Maps a string key to a path within a volume.\",\"type\":\"object\",\"required\":[\"key\",\"path\"],\"properties\":{\"key\":{\"description\":\"key is the key to project.\",\"type\":\"string\",\"default\":\"\"},\"mode\":{\"description\":\"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"postStart\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"},\"preStop\":{\"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 Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). 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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"}}},\"io.k8s.api.core.v1.LifecycleHandler\":{\"description\":\"LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ExecAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"},\"tcpSocket\":{\"description\":\"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"}}},\"io.k8s.api.core.v1.LocalObjectReference\":{\"description\":\"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"server\",\"path\"],\"properties\":{\"path\":{\"description\":\"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NodeAffinity\":{\"description\":\"Node affinity is a group of node affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PreferredSchedulingTerm\"}},\"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 an update), the system may or may not try to eventually evict the pod from its node.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelector\"}}},\"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.\",\"type\":\"object\",\"required\":[\"nodeSelectorTerms\"],\"properties\":{\"nodeSelectorTerms\":{\"description\":\"Required. A list of node selector terms. The terms are ORed.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"The label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\"},\"operator\":{\"description\":\"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\\n\\n\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"A list of node selector requirements by node's labels.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"}},\"matchFields\":{\"description\":\"A list of node selector requirements by node's fields.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ObjectFieldSelector\":{\"description\":\"ObjectFieldSelector selects an APIVersioned field of an object.\",\"type\":\"object\",\"required\":[\"fieldPath\"],\"properties\":{\"apiVersion\":{\"description\":\"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\"type\":\"string\"},\"fieldPath\":{\"description\":\"Path of the field to select in the specified API version.\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ObjectReference\":{\"description\":\"ObjectReference contains enough information to let you inspect or modify the referred object.\",\"type\":\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.PersistentVolumeClaimSpec\":{\"description\":\"PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes\",\"type\":\"object\",\"properties\":{\"accessModes\":{\"description\":\"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"dataSource\":{\"description\":\"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"dataSourceRef\":{\"description\":\"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef\\n  allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While DataSource ignores disallowed values (dropping them), DataSourceRef\\n  preserves all values, and generates an error if a disallowed value is\\n  specified.\\n(Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"resources\":{\"description\":\"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"},\"selector\":{\"description\":\"selector is a label query over volumes to consider for binding.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"storageClassName\":{\"description\":\"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\"type\":\"string\"},\"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\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimTemplate\":{\"description\":\"PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"metadata\":{\"description\":\"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"}}},\"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).\",\"type\":\"object\",\"required\":[\"claimName\"],\"properties\":{\"claimName\":{\"description\":\"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"string\",\"default\":\"\"},\"readOnly\":{\"description\":\"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\":{\"description\":\"Represents a Photon Controller persistent disk resource.\",\"type\":\"object\",\"required\":[\"pdID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"pdID\":{\"description\":\"pdID is the ID that identifies Photon Controller persistent disk\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAffinity\":{\"description\":\"Pod affinity is a group of inter pod affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"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\",\"type\":\"object\",\"required\":[\"topologyKey\"],\"properties\":{\"labelSelector\":{\"description\":\"A label query over a set of resources, in this case pods.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaceSelector\":{\"description\":\"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 beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaces\":{\"description\":\"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\\\"\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAntiAffinity\":{\"description\":\"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"io.k8s.api.core.v1.PodDNSConfig\":{\"description\":\"PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodDNSConfigOption\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.PodDNSConfigOption\":{\"description\":\"PodDNSConfigOption defines DNS resolver options of a pod.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"}}},\"io.k8s.api.core.v1.PodOS\":{\"description\":\"PodOS defines the OS parameters of a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodReadinessGate\":{\"description\":\"PodReadinessGate contains the reference to a pod condition\",\"type\":\"object\",\"required\":[\"conditionType\"],\"properties\":{\"conditionType\":{\"description\":\"ConditionType refers to a condition in the pod's condition list with matching type.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"fsGroupChangePolicy\":{\"description\":\"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"},\"seccompProfile\":{\"description\":\"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"},\"supplementalGroups\":{\"description\":\"A list of groups applied to the first process run in each container, in addition to the container's primary GID.  If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\",\"default\":0}},\"sysctls\":{\"description\":\"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Sysctl\"}},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}}},\"io.k8s.api.core.v1.PodSpec\":{\"description\":\"PodSpec is a description of a pod.\",\"type\":\"object\",\"required\":[\"containers\"],\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"affinity\":{\"description\":\"If specified, the pod's scheduling constraints\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Affinity\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Container\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"dnsConfig\":{\"description\":\"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodDNSConfig\"},\"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'.\\n\\n\",\"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 beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EphemeralContainer\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostAlias\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Container\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"os\":{\"description\":\"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\\n\\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\\n\\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is an alpha field and requires the IdentifyPodOS feature\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodOS\"},\"overhead\":{\"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/688-pod-overhead/README.md This field is beta-level as of Kubernetes v1.18, and is only honored by servers that enable the PodOverhead feature.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"preemptionPolicy\":{\"description\":\"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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/580-pod-readiness-gates\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodReadinessGate\"}},\"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\\n\\n\",\"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/585-runtime-class 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\":{\"description\":\"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSecurityContext\"},\"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 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.\",\"type\":\"integer\",\"format\":\"int64\"},\"tolerations\":{\"description\":\"If specified, the pod's tolerations.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Toleration\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TopologySpreadConstraint\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Volume\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge,retainKeys\"}}},\"io.k8s.api.core.v1.PodTemplateSpec\":{\"description\":\"PodTemplateSpec describes the data a pod should have when created from a template\",\"type\":\"object\",\"properties\":{\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSpec\"}}},\"io.k8s.api.core.v1.PortworxVolumeSource\":{\"description\":\"PortworxVolumeSource represents a Portworx volume resource.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID uniquely identifies a Portworx volume\",\"type\":\"string\",\"default\":\"\"}}},\"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).\",\"type\":\"object\",\"required\":[\"weight\",\"preference\"],\"properties\":{\"preference\":{\"description\":\"A node selector term, associated with the corresponding weight.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"},\"weight\":{\"description\":\"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"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.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ExecAction\"},\"failureThreshold\":{\"description\":\"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"grpc\":{\"description\":\"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GRPCAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"},\"initialDelaySeconds\":{\"description\":\"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"},\"periodSeconds\":{\"description\":\"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"successThreshold\":{\"description\":\"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies an action involving a TCP port.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"},\"terminationGracePeriodSeconds\":{\"description\":\"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\"type\":\"integer\",\"format\":\"int64\"},\"timeoutSeconds\":{\"description\":\"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ProjectedVolumeSource\":{\"description\":\"Represents a projected volume source\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"sources\":{\"description\":\"sources is the list of volume projections\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeProjection\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"registry\",\"volume\"],\"properties\":{\"group\":{\"description\":\"group to map volume access to Default is no group\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\"type\":\"boolean\"},\"registry\":{\"description\":\"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\",\"image\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\"type\":\"string\"},\"image\":{\"description\":\"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\",\"default\":\"\"},\"keyring\":{\"description\":\"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"pool\":{\"description\":\"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ResourceFieldSelector\":{\"description\":\"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\"type\":\"object\",\"required\":[\"resource\"],\"properties\":{\"containerName\":{\"description\":\"Container name: required for volumes, optional for env vars\",\"type\":\"string\"},\"divisor\":{\"description\":\"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"resource\":{\"description\":\"Required: resource to select\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ResourceRequirements\":{\"description\":\"ResourceRequirements describes the compute resource requirements.\",\"type\":\"object\",\"properties\":{\"limits\":{\"description\":\"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"requests\":{\"description\":\"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}}},\"io.k8s.api.core.v1.SELinuxOptions\":{\"description\":\"SELinuxOptions are the labels to be applied to the container\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ScaleIOVolumeSource\":{\"description\":\"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\"type\":\"object\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\"type\":\"string\"},\"gateway\":{\"description\":\"gateway is the host address of the ScaleIO API Gateway.\",\"type\":\"string\",\"default\":\"\"},\"protectionDomain\":{\"description\":\"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"sslEnabled\":{\"description\":\"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\"type\":\"boolean\"},\"storageMode\":{\"description\":\"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\"type\":\"string\"},\"storagePool\":{\"description\":\"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\"type\":\"string\"},\"system\":{\"description\":\"system is the name of the storage system as configured in ScaleIO.\",\"type\":\"string\",\"default\":\"\"},\"volumeName\":{\"description\":\"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.SeccompProfile\":{\"description\":\"SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"localhostProfile\":{\"description\":\"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must 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.\\n\\n\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-unions\":[{\"discriminator\":\"type\",\"fields-to-discriminateBy\":{\"localhostProfile\":\"LocalhostProfile\"}}]},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.SecretKeySelector\":{\"description\":\"SecretKeySelector selects a key of a Secret.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key of the secret to select from.  Must be a valid secret key.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional field specify whether the Secret or its key must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"optional\":{\"description\":\"optional field specify whether the Secret or its keys must be defined\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"allowPrivilegeEscalation\":{\"description\":\"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"capabilities\":{\"description\":\"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Capabilities\"},\"privileged\":{\"description\":\"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"procMount\":{\"description\":\"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"readOnlyRootFilesystem\":{\"description\":\"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"},\"seccompProfile\":{\"description\":\"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}}},\"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).\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"audience\":{\"description\":\"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\"type\":\"string\"},\"expirationSeconds\":{\"description\":\"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\"type\":\"integer\",\"format\":\"int64\"},\"path\":{\"description\":\"path is the path relative to the mount point of the file to project the token into.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.StorageOSVolumeSource\":{\"description\":\"Represents a StorageOS persistent volume resource.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeName\":{\"description\":\"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Sysctl\":{\"description\":\"Sysctl defines a kernel parameter to be set\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"Name of a property to set\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Value of a property to set\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.TCPSocketAction\":{\"description\":\"TCPSocketAction describes an action based on opening a socket\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Optional: Host name to connect to, defaults to the pod IP.\",\"type\":\"string\"},\"port\":{\"description\":\"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"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.\",\"type\":\"object\",\"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.\\n\\n\",\"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.\\n\\n\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\"}}},\"io.k8s.api.core.v1.TopologySpreadConstraint\":{\"description\":\"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\"type\":\"object\",\"required\":[\"maxSkew\",\"topologyKey\",\"whenUnsatisfiable\"],\"properties\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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\",\"default\":\"\"},\"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 assignment 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.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.TypedLocalObjectReference\":{\"description\":\"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\"type\":\"object\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"awsElasticBlockStore\":{\"description\":\"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"azureDisk\":{\"description\":\"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"azureFile\":{\"description\":\"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureFileVolumeSource\"},\"cephfs\":{\"description\":\"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CephFSVolumeSource\"},\"cinder\":{\"description\":\"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CinderVolumeSource\"},\"configMap\":{\"description\":\"configMap represents a configMap that should populate this volume\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapVolumeSource\"},\"csi\":{\"description\":\"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CSIVolumeSource\"},\"downwardAPI\":{\"description\":\"downwardAPI represents downward API about the pod that should populate this volume\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeSource\"},\"emptyDir\":{\"description\":\"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EmptyDirVolumeSource\"},\"ephemeral\":{\"description\":\"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\\n\\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\\n   tracking are needed,\\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n   information on the connection between this volume type\\n   and PersistentVolumeClaim).\\n\\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\\n\\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EphemeralVolumeSource\"},\"fc\":{\"description\":\"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FCVolumeSource\"},\"flexVolume\":{\"description\":\"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlexVolumeSource\"},\"flocker\":{\"description\":\"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlockerVolumeSource\"},\"gcePersistentDisk\":{\"description\":\"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"gitRepo\":{\"description\":\"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GitRepoVolumeSource\"},\"glusterfs\":{\"description\":\"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GlusterfsVolumeSource\"},\"hostPath\":{\"description\":\"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostPathVolumeSource\"},\"iscsi\":{\"description\":\"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ISCSIVolumeSource\"},\"name\":{\"description\":\"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\",\"default\":\"\"},\"nfs\":{\"description\":\"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NFSVolumeSource\"},\"persistentVolumeClaim\":{\"description\":\"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"},\"photonPersistentDisk\":{\"description\":\"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"portworxVolume\":{\"description\":\"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource\"},\"projected\":{\"description\":\"projected items for all in one resources secrets, configmaps, and downward API\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ProjectedVolumeSource\"},\"quobyte\":{\"description\":\"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"rbd\":{\"description\":\"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.RBDVolumeSource\"},\"scaleIO\":{\"description\":\"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ScaleIOVolumeSource\"},\"secret\":{\"description\":\"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretVolumeSource\"},\"storageos\":{\"description\":\"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.StorageOSVolumeSource\"},\"vsphereVolume\":{\"description\":\"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}}},\"io.k8s.api.core.v1.VolumeDevice\":{\"description\":\"volumeDevice describes a mapping of a raw block device within a container.\",\"type\":\"object\",\"required\":[\"name\",\"devicePath\"],\"properties\":{\"devicePath\":{\"description\":\"devicePath is the path inside of the container that the device will be mapped to.\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"name must match the name of a persistentVolumeClaim in the pod\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.VolumeMount\":{\"description\":\"VolumeMount describes a mounting of a Volume within a container.\",\"type\":\"object\",\"required\":[\"name\",\"mountPath\"],\"properties\":{\"mountPath\":{\"description\":\"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.VolumeProjection\":{\"description\":\"Projection that may be projected along with other supported volume types\",\"type\":\"object\",\"properties\":{\"configMap\":{\"description\":\"configMap information about the configMap data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapProjection\"},\"downwardAPI\":{\"description\":\"downwardAPI information about the downwardAPI data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIProjection\"},\"secret\":{\"description\":\"secret information about the secret data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretProjection\"},\"serviceAccountToken\":{\"description\":\"serviceAccountToken is information about the serviceAccountToken data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountTokenProjection\"}}},\"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\":{\"description\":\"Represents a vSphere volume resource.\",\"type\":\"object\",\"required\":[\"volumePath\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"storagePolicyID\":{\"description\":\"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\"type\":\"string\"},\"storagePolicyName\":{\"description\":\"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\"type\":\"string\"},\"volumePath\":{\"description\":\"volumePath is the path that identifies vSphere volume vmdk\",\"type\":\"string\",\"default\":\"\"}}},\"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)\",\"type\":\"object\",\"required\":[\"weight\",\"podAffinityTerm\"],\"properties\":{\"podAffinityTerm\":{\"description\":\"Required. A pod affinity term, associated with the corresponding weight.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"},\"weight\":{\"description\":\"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"io.k8s.api.core.v1.WindowsSecurityContextOptions\":{\"description\":\"WindowsSecurityContextOptions contain Windows-specific options and credentials.\",\"type\":\"object\",\"properties\":{\"gmsaCredentialSpec\":{\"description\":\"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\"type\":\"string\"},\"gmsaCredentialSpecName\":{\"description\":\"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\"type\":\"string\"},\"hostProcess\":{\"description\":\"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).  In addition, if HostProcess is true then HostNetwork must also be set to true.\",\"type\":\"boolean\"},\"runAsUserName\":{\"description\":\"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"string\"}}},\"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.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"type\":\"object\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is the plural name of the resource.\",\"type\":\"string\",\"default\":\"\"},\"namespaced\":{\"description\":\"namespaced indicates if a resource is namespaced or not.\",\"type\":\"boolean\",\"default\":false},\"shortNames\":{\"description\":\"shortNames is a list of suggested short names of the resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest 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\",\"default\":\"\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIResourceList\",\"version\":\"v1\"}]},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"}},\"matchLabels\":{\"description\":\"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"key is the label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\",\"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\",\"default\":\"\"},\"values\":{\"description\":\"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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 DEPRECATED read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"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\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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 DEPRECATED read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"type\":\"object\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"type\":{\"type\":\"string\",\"default\":\"\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.\",\"type\":\"string\",\"format\":\"int-or-string\"}}}}"
  },
  {
    "path": "pkg/util/proto/testdata/openapi_v3_0_0/batch/v1beta1.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.24.0\"},\"paths\":{\"/apis/batch/v1beta1/\":{\"get\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"get available resources\",\"operationId\":\"getBatchV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}}}}}}},\"/apis/batch/v1beta1/cronjobs\":{\"get\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"list or watch objects of kind CronJob\",\"operationId\":\"listBatchV1beta1CronJobForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJobList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJobList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJobList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJobList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJobList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1beta1/namespaces/{namespace}/cronjobs\":{\"get\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"list or watch objects of kind CronJob\",\"operationId\":\"listBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJobList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJobList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJobList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJobList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJobList\"}}}}}},\"post\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"create a CronJob\",\"operationId\":\"createBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}}}},\"delete\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"delete collection of CronJob\",\"operationId\":\"deleteBatchV1beta1CollectionNamespacedCronJob\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}\":{\"get\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"read the specified CronJob\",\"operationId\":\"readBatchV1beta1NamespacedCronJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}}}},\"put\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"replace the specified CronJob\",\"operationId\":\"replaceBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}}}},\"delete\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"delete a CronJob\",\"operationId\":\"deleteBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"partially update the specified CronJob\",\"operationId\":\"patchBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CronJob\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status\":{\"get\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"read status of the specified CronJob\",\"operationId\":\"readBatchV1beta1NamespacedCronJobStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}}}},\"put\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"replace status of the specified CronJob\",\"operationId\":\"replaceBatchV1beta1NamespacedCronJobStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}}}},\"patch\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"partially update status of the specified CronJob\",\"operationId\":\"patchBatchV1beta1NamespacedCronJobStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CronJob\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/apis/batch/v1beta1/watch/cronjobs\":{\"get\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchBatchV1beta1CronJobListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs\":{\"get\":{\"tags\":[\"batch_v1beta1\"],\"description\":\"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchBatchV1beta1NamespacedCronJobList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}\":{\"get\":{\"tags\":[\"batch_v1beta1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the CronJob\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]}},\"components\":{\"schemas\":{\"io.k8s.api.batch.v1.JobSpec\":{\"description\":\"JobSpec describes how the job execution will look like.\",\"type\":\"object\",\"required\":[\"template\"],\"properties\":{\"activeDeadlineSeconds\":{\"description\":\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"backoffLimit\":{\"description\":\"Specifies the number of retries before marking this job failed. Defaults to 6\",\"type\":\"integer\",\"format\":\"int32\"},\"completionMode\":{\"description\":\"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. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`.\\n\\nThis field is beta-level. 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.\",\"type\":\"string\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"suspend\":{\"description\":\"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. Defaults to false.\\n\\nThis field is beta-level, gated by SuspendJob feature flag (enabled by default).\",\"type\":\"boolean\"},\"template\":{\"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/\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.batch.v1beta1.CronJob\":{\"description\":\"CronJob represents the configuration of a single cron job.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJobSpec\"},\"status\":{\"description\":\"Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJobStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"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 the list of CronJobs.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.CronJob\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"required\":[\"schedule\",\"jobTemplate\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"jobTemplate\":{\"description\":\"Specifies the job that will be created when executing a CronJob.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1beta1.JobTemplateSpec\"},\"schedule\":{\"description\":\"The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"suspend\":{\"description\":\"This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.\",\"type\":\"boolean\"}}},\"io.k8s.api.batch.v1beta1.CronJobStatus\":{\"description\":\"CronJobStatus represents the current state of a cron job.\",\"type\":\"object\",\"properties\":{\"active\":{\"description\":\"A list of pointers to currently running jobs.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"},\"x-kubernetes-list-type\":\"atomic\"},\"lastScheduleTime\":{\"description\":\"Information when was the last time the job was successfully scheduled.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastSuccessfulTime\":{\"description\":\"Information when was the last time the job successfully completed.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.batch.v1beta1.JobTemplateSpec\":{\"description\":\"JobTemplateSpec describes the data a Job should have when created from a template\",\"type\":\"object\",\"properties\":{\"metadata\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.batch.v1.JobSpec\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.Affinity\":{\"description\":\"Affinity is a group of affinity scheduling rules.\",\"type\":\"object\",\"properties\":{\"nodeAffinity\":{\"description\":\"Describes node affinity scheduling rules for the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeAffinity\"},\"podAffinity\":{\"description\":\"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinity\"},\"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)).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAntiAffinity\"}}},\"io.k8s.api.core.v1.AzureDiskVolumeSource\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"diskName\",\"diskURI\"],\"properties\":{\"cachingMode\":{\"description\":\"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\"type\":\"string\"},\"diskName\":{\"description\":\"diskName is the Name of the data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"diskURI\":{\"description\":\"diskURI is the URI of data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"kind\":{\"description\":\"kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.AzureFileVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the  name of secret that contains Azure Storage Account Name and Key\",\"type\":\"string\",\"default\":\"\"},\"shareName\":{\"description\":\"shareName is the azure share Name\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.CSIVolumeSource\":{\"description\":\"Represents a source location of a volume to mount, managed by an external CSI driver\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\"type\":\"string\"},\"nodePublishSecretRef\":{\"description\":\"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and  may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"readOnly\":{\"description\":\"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.Capabilities\":{\"description\":\"Adds and removes POSIX capabilities from running containers.\",\"type\":\"object\",\"properties\":{\"add\":{\"description\":\"Added capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"drop\":{\"description\":\"Removed capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"path\":{\"description\":\"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretFile\":{\"description\":\"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeID\":{\"description\":\"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ConfigMapKeySelector\":{\"description\":\"Selects a key from a ConfigMap.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key to select.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.Container\":{\"description\":\"A single application container that you want to run within a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"}},\"image\":{\"description\":\"Container 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\\n\\n\",\"type\":\"string\"},\"lifecycle\":{\"description\":\"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"},\"securityContext\":{\"description\":\"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"},\"startupProbe\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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.\\n\\n\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.ContainerPort\":{\"description\":\"ContainerPort represents a network port in a single container.\",\"type\":\"object\",\"required\":[\"containerPort\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\\\".\\n\\n\",\"type\":\"string\",\"default\":\"TCP\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"Items is a list of DownwardAPIVolume file\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.DownwardAPIVolumeFile\":{\"description\":\"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"fieldRef\":{\"description\":\"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"},\"mode\":{\"description\":\"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\"type\":\"string\",\"default\":\"\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"}}},\"io.k8s.api.core.v1.DownwardAPIVolumeSource\":{\"description\":\"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"Items is a list of downward API volume file\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.EmptyDirVolumeSource\":{\"description\":\"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"medium\":{\"description\":\"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"type\":\"string\"},\"sizeLimit\":{\"description\":\"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"io.k8s.api.core.v1.EnvFromSource\":{\"description\":\"EnvFromSource represents the source of a set of ConfigMaps\",\"type\":\"object\",\"properties\":{\"configMapRef\":{\"description\":\"The ConfigMap to select from\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapEnvSource\"},\"prefix\":{\"description\":\"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\"type\":\"string\"},\"secretRef\":{\"description\":\"The Secret to select from\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretEnvSource\"}}},\"io.k8s.api.core.v1.EnvVar\":{\"description\":\"EnvVar represents an environment variable present in a Container.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name of the environment variable. Must be a C_IDENTIFIER.\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Variable references $(VAR_NAME) are expanded using the previously 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the environment variable's value. Cannot be used if value is not empty.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVarSource\"}}},\"io.k8s.api.core.v1.EnvVarSource\":{\"description\":\"EnvVarSource represents a source for the value of an EnvVar.\",\"type\":\"object\",\"properties\":{\"configMapKeyRef\":{\"description\":\"Selects a key of a ConfigMap.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapKeySelector\"},\"fieldRef\":{\"description\":\"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"},\"secretKeyRef\":{\"description\":\"Selects a key of a secret in the pod's namespace\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretKeySelector\"}}},\"io.k8s.api.core.v1.EphemeralContainer\":{\"description\":\"An EphemeralContainer is a temporary container that you may add 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. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\\n\\nThis is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"}},\"image\":{\"description\":\"Container 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\\n\\n\",\"type\":\"string\"},\"lifecycle\":{\"description\":\"Lifecycle is not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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\",\"default\":\"\"},\"ports\":{\"description\":\"Ports are not allowed for ephemeral containers.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"},\"securityContext\":{\"description\":\"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"},\"startupProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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 uses the namespaces configured in the Pod spec.\\n\\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\"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.\\n\\n\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"},\"x-kubernetes-patch-merge-key\":\"devicePath\",\"x-kubernetes-patch-strategy\":\"merge\"},\"volumeMounts\":{\"description\":\"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.EphemeralVolumeSource\":{\"description\":\"Represents an ephemeral volume that is handled by a normal storage driver.\",\"type\":\"object\",\"properties\":{\"volumeClaimTemplate\":{\"description\":\"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod.  The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\\n\\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\\n\\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\\n\\nRequired, must not be nil.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimTemplate\"}}},\"io.k8s.api.core.v1.ExecAction\":{\"description\":\"ExecAction describes a \\\"run in container\\\" action.\",\"type\":\"object\",\"properties\":{\"command\":{\"description\":\"Command is the command line to execute inside the container, the working directory for the command  is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"lun\":{\"description\":\"lun is Optional: FC target lun number\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"targetWWNs\":{\"description\":\"targetWWNs is Optional: FC target worldwide names (WWNs)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"wwids\":{\"description\":\"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.FlexVolumeSource\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the driver to use for this volume.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"options is Optional: this field holds extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"datasetName\":{\"description\":\"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\"type\":\"string\"},\"datasetUUID\":{\"description\":\"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"pdName\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"integer\",\"format\":\"int32\"},\"pdName\":{\"description\":\"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.GRPCAction\":{\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"port\":{\"description\":\"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"service\":{\"description\":\"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"repository\"],\"properties\":{\"directory\":{\"description\":\"directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\"type\":\"string\"},\"repository\":{\"description\":\"repository is the URL\",\"type\":\"string\",\"default\":\"\"},\"revision\":{\"description\":\"revision is the commit hash for the specified revision.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"path\":{\"description\":\"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.HTTPGetAction\":{\"description\":\"HTTPGetAction describes an action based on HTTP Get requests.\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\"type\":\"string\"},\"httpHeaders\":{\"description\":\"Custom headers to set in the request. HTTP allows repeated headers.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPHeader\"}},\"path\":{\"description\":\"Path to access on the HTTP server.\",\"type\":\"string\"},\"port\":{\"description\":\"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"scheme\":{\"description\":\"Scheme to use for connecting to the host. Defaults to HTTP.\\n\\n\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.HTTPHeader\":{\"description\":\"HTTPHeader describes a custom header to be used in HTTP probes\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"The header field name\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"The header field value\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"hostnames\":{\"description\":\"Hostnames for the above IP address.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"ip\":{\"description\":\"IP address of the host file entry.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"path\":{\"description\":\"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"properties\":{\"chapAuthDiscovery\":{\"description\":\"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\"type\":\"boolean\"},\"chapAuthSession\":{\"description\":\"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\"type\":\"boolean\"},\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\"type\":\"string\"},\"initiatorName\":{\"description\":\"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\"type\":\"string\"},\"iqn\":{\"description\":\"iqn is the target iSCSI Qualified Name.\",\"type\":\"string\",\"default\":\"\"},\"iscsiInterface\":{\"description\":\"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\"type\":\"string\"},\"lun\":{\"description\":\"lun represents iSCSI Target Lun number.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"portals\":{\"description\":\"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"targetPortal\":{\"description\":\"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.KeyToPath\":{\"description\":\"Maps a string key to a path within a volume.\",\"type\":\"object\",\"required\":[\"key\",\"path\"],\"properties\":{\"key\":{\"description\":\"key is the key to project.\",\"type\":\"string\",\"default\":\"\"},\"mode\":{\"description\":\"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"postStart\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"},\"preStop\":{\"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 Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). 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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"}}},\"io.k8s.api.core.v1.LifecycleHandler\":{\"description\":\"LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ExecAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"},\"tcpSocket\":{\"description\":\"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"}}},\"io.k8s.api.core.v1.LocalObjectReference\":{\"description\":\"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"server\",\"path\"],\"properties\":{\"path\":{\"description\":\"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NodeAffinity\":{\"description\":\"Node affinity is a group of node affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PreferredSchedulingTerm\"}},\"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 an update), the system may or may not try to eventually evict the pod from its node.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelector\"}}},\"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.\",\"type\":\"object\",\"required\":[\"nodeSelectorTerms\"],\"properties\":{\"nodeSelectorTerms\":{\"description\":\"Required. A list of node selector terms. The terms are ORed.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"The label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\"},\"operator\":{\"description\":\"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\\n\\n\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"A list of node selector requirements by node's labels.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"}},\"matchFields\":{\"description\":\"A list of node selector requirements by node's fields.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ObjectFieldSelector\":{\"description\":\"ObjectFieldSelector selects an APIVersioned field of an object.\",\"type\":\"object\",\"required\":[\"fieldPath\"],\"properties\":{\"apiVersion\":{\"description\":\"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\"type\":\"string\"},\"fieldPath\":{\"description\":\"Path of the field to select in the specified API version.\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ObjectReference\":{\"description\":\"ObjectReference contains enough information to let you inspect or modify the referred object.\",\"type\":\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.PersistentVolumeClaimSpec\":{\"description\":\"PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes\",\"type\":\"object\",\"properties\":{\"accessModes\":{\"description\":\"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"dataSource\":{\"description\":\"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"dataSourceRef\":{\"description\":\"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef\\n  allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While DataSource ignores disallowed values (dropping them), DataSourceRef\\n  preserves all values, and generates an error if a disallowed value is\\n  specified.\\n(Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"resources\":{\"description\":\"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"},\"selector\":{\"description\":\"selector is a label query over volumes to consider for binding.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"storageClassName\":{\"description\":\"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\"type\":\"string\"},\"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\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimTemplate\":{\"description\":\"PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"metadata\":{\"description\":\"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"}}},\"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).\",\"type\":\"object\",\"required\":[\"claimName\"],\"properties\":{\"claimName\":{\"description\":\"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"string\",\"default\":\"\"},\"readOnly\":{\"description\":\"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\":{\"description\":\"Represents a Photon Controller persistent disk resource.\",\"type\":\"object\",\"required\":[\"pdID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"pdID\":{\"description\":\"pdID is the ID that identifies Photon Controller persistent disk\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAffinity\":{\"description\":\"Pod affinity is a group of inter pod affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"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\",\"type\":\"object\",\"required\":[\"topologyKey\"],\"properties\":{\"labelSelector\":{\"description\":\"A label query over a set of resources, in this case pods.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaceSelector\":{\"description\":\"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 beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaces\":{\"description\":\"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\\\"\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAntiAffinity\":{\"description\":\"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"io.k8s.api.core.v1.PodDNSConfig\":{\"description\":\"PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodDNSConfigOption\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.PodDNSConfigOption\":{\"description\":\"PodDNSConfigOption defines DNS resolver options of a pod.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"}}},\"io.k8s.api.core.v1.PodOS\":{\"description\":\"PodOS defines the OS parameters of a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodReadinessGate\":{\"description\":\"PodReadinessGate contains the reference to a pod condition\",\"type\":\"object\",\"required\":[\"conditionType\"],\"properties\":{\"conditionType\":{\"description\":\"ConditionType refers to a condition in the pod's condition list with matching type.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"fsGroupChangePolicy\":{\"description\":\"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"},\"seccompProfile\":{\"description\":\"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"},\"supplementalGroups\":{\"description\":\"A list of groups applied to the first process run in each container, in addition to the container's primary GID.  If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\",\"default\":0}},\"sysctls\":{\"description\":\"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Sysctl\"}},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}}},\"io.k8s.api.core.v1.PodSpec\":{\"description\":\"PodSpec is a description of a pod.\",\"type\":\"object\",\"required\":[\"containers\"],\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"affinity\":{\"description\":\"If specified, the pod's scheduling constraints\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Affinity\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Container\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"dnsConfig\":{\"description\":\"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodDNSConfig\"},\"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'.\\n\\n\",\"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 beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EphemeralContainer\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostAlias\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Container\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"os\":{\"description\":\"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\\n\\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\\n\\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is an alpha field and requires the IdentifyPodOS feature\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodOS\"},\"overhead\":{\"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/688-pod-overhead/README.md This field is beta-level as of Kubernetes v1.18, and is only honored by servers that enable the PodOverhead feature.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"preemptionPolicy\":{\"description\":\"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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/580-pod-readiness-gates\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodReadinessGate\"}},\"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\\n\\n\",\"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/585-runtime-class 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\":{\"description\":\"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSecurityContext\"},\"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 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.\",\"type\":\"integer\",\"format\":\"int64\"},\"tolerations\":{\"description\":\"If specified, the pod's tolerations.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Toleration\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TopologySpreadConstraint\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Volume\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge,retainKeys\"}}},\"io.k8s.api.core.v1.PodTemplateSpec\":{\"description\":\"PodTemplateSpec describes the data a pod should have when created from a template\",\"type\":\"object\",\"properties\":{\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSpec\"}}},\"io.k8s.api.core.v1.PortworxVolumeSource\":{\"description\":\"PortworxVolumeSource represents a Portworx volume resource.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID uniquely identifies a Portworx volume\",\"type\":\"string\",\"default\":\"\"}}},\"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).\",\"type\":\"object\",\"required\":[\"weight\",\"preference\"],\"properties\":{\"preference\":{\"description\":\"A node selector term, associated with the corresponding weight.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"},\"weight\":{\"description\":\"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"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.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ExecAction\"},\"failureThreshold\":{\"description\":\"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"grpc\":{\"description\":\"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GRPCAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"},\"initialDelaySeconds\":{\"description\":\"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"},\"periodSeconds\":{\"description\":\"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"successThreshold\":{\"description\":\"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies an action involving a TCP port.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"},\"terminationGracePeriodSeconds\":{\"description\":\"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\"type\":\"integer\",\"format\":\"int64\"},\"timeoutSeconds\":{\"description\":\"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ProjectedVolumeSource\":{\"description\":\"Represents a projected volume source\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"sources\":{\"description\":\"sources is the list of volume projections\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeProjection\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"registry\",\"volume\"],\"properties\":{\"group\":{\"description\":\"group to map volume access to Default is no group\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\"type\":\"boolean\"},\"registry\":{\"description\":\"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\",\"image\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\"type\":\"string\"},\"image\":{\"description\":\"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\",\"default\":\"\"},\"keyring\":{\"description\":\"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"pool\":{\"description\":\"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ResourceFieldSelector\":{\"description\":\"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\"type\":\"object\",\"required\":[\"resource\"],\"properties\":{\"containerName\":{\"description\":\"Container name: required for volumes, optional for env vars\",\"type\":\"string\"},\"divisor\":{\"description\":\"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"resource\":{\"description\":\"Required: resource to select\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ResourceRequirements\":{\"description\":\"ResourceRequirements describes the compute resource requirements.\",\"type\":\"object\",\"properties\":{\"limits\":{\"description\":\"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"requests\":{\"description\":\"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}}},\"io.k8s.api.core.v1.SELinuxOptions\":{\"description\":\"SELinuxOptions are the labels to be applied to the container\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ScaleIOVolumeSource\":{\"description\":\"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\"type\":\"object\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\"type\":\"string\"},\"gateway\":{\"description\":\"gateway is the host address of the ScaleIO API Gateway.\",\"type\":\"string\",\"default\":\"\"},\"protectionDomain\":{\"description\":\"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"sslEnabled\":{\"description\":\"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\"type\":\"boolean\"},\"storageMode\":{\"description\":\"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\"type\":\"string\"},\"storagePool\":{\"description\":\"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\"type\":\"string\"},\"system\":{\"description\":\"system is the name of the storage system as configured in ScaleIO.\",\"type\":\"string\",\"default\":\"\"},\"volumeName\":{\"description\":\"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.SeccompProfile\":{\"description\":\"SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"localhostProfile\":{\"description\":\"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must 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.\\n\\n\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-unions\":[{\"discriminator\":\"type\",\"fields-to-discriminateBy\":{\"localhostProfile\":\"LocalhostProfile\"}}]},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.SecretKeySelector\":{\"description\":\"SecretKeySelector selects a key of a Secret.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key of the secret to select from.  Must be a valid secret key.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional field specify whether the Secret or its key must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"optional\":{\"description\":\"optional field specify whether the Secret or its keys must be defined\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"allowPrivilegeEscalation\":{\"description\":\"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"capabilities\":{\"description\":\"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Capabilities\"},\"privileged\":{\"description\":\"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"procMount\":{\"description\":\"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"readOnlyRootFilesystem\":{\"description\":\"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"},\"seccompProfile\":{\"description\":\"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}}},\"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).\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"audience\":{\"description\":\"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\"type\":\"string\"},\"expirationSeconds\":{\"description\":\"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\"type\":\"integer\",\"format\":\"int64\"},\"path\":{\"description\":\"path is the path relative to the mount point of the file to project the token into.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.StorageOSVolumeSource\":{\"description\":\"Represents a StorageOS persistent volume resource.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeName\":{\"description\":\"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Sysctl\":{\"description\":\"Sysctl defines a kernel parameter to be set\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"Name of a property to set\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Value of a property to set\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.TCPSocketAction\":{\"description\":\"TCPSocketAction describes an action based on opening a socket\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Optional: Host name to connect to, defaults to the pod IP.\",\"type\":\"string\"},\"port\":{\"description\":\"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"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.\",\"type\":\"object\",\"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.\\n\\n\",\"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.\\n\\n\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\"}}},\"io.k8s.api.core.v1.TopologySpreadConstraint\":{\"description\":\"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\"type\":\"object\",\"required\":[\"maxSkew\",\"topologyKey\",\"whenUnsatisfiable\"],\"properties\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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\",\"default\":\"\"},\"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 assignment 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.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.TypedLocalObjectReference\":{\"description\":\"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\"type\":\"object\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"awsElasticBlockStore\":{\"description\":\"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"azureDisk\":{\"description\":\"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"azureFile\":{\"description\":\"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureFileVolumeSource\"},\"cephfs\":{\"description\":\"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CephFSVolumeSource\"},\"cinder\":{\"description\":\"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CinderVolumeSource\"},\"configMap\":{\"description\":\"configMap represents a configMap that should populate this volume\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapVolumeSource\"},\"csi\":{\"description\":\"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CSIVolumeSource\"},\"downwardAPI\":{\"description\":\"downwardAPI represents downward API about the pod that should populate this volume\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeSource\"},\"emptyDir\":{\"description\":\"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EmptyDirVolumeSource\"},\"ephemeral\":{\"description\":\"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\\n\\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\\n   tracking are needed,\\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n   information on the connection between this volume type\\n   and PersistentVolumeClaim).\\n\\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\\n\\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EphemeralVolumeSource\"},\"fc\":{\"description\":\"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FCVolumeSource\"},\"flexVolume\":{\"description\":\"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlexVolumeSource\"},\"flocker\":{\"description\":\"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlockerVolumeSource\"},\"gcePersistentDisk\":{\"description\":\"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"gitRepo\":{\"description\":\"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GitRepoVolumeSource\"},\"glusterfs\":{\"description\":\"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GlusterfsVolumeSource\"},\"hostPath\":{\"description\":\"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostPathVolumeSource\"},\"iscsi\":{\"description\":\"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ISCSIVolumeSource\"},\"name\":{\"description\":\"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\",\"default\":\"\"},\"nfs\":{\"description\":\"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NFSVolumeSource\"},\"persistentVolumeClaim\":{\"description\":\"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"},\"photonPersistentDisk\":{\"description\":\"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"portworxVolume\":{\"description\":\"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource\"},\"projected\":{\"description\":\"projected items for all in one resources secrets, configmaps, and downward API\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ProjectedVolumeSource\"},\"quobyte\":{\"description\":\"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"rbd\":{\"description\":\"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.RBDVolumeSource\"},\"scaleIO\":{\"description\":\"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ScaleIOVolumeSource\"},\"secret\":{\"description\":\"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretVolumeSource\"},\"storageos\":{\"description\":\"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.StorageOSVolumeSource\"},\"vsphereVolume\":{\"description\":\"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}}},\"io.k8s.api.core.v1.VolumeDevice\":{\"description\":\"volumeDevice describes a mapping of a raw block device within a container.\",\"type\":\"object\",\"required\":[\"name\",\"devicePath\"],\"properties\":{\"devicePath\":{\"description\":\"devicePath is the path inside of the container that the device will be mapped to.\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"name must match the name of a persistentVolumeClaim in the pod\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.VolumeMount\":{\"description\":\"VolumeMount describes a mounting of a Volume within a container.\",\"type\":\"object\",\"required\":[\"name\",\"mountPath\"],\"properties\":{\"mountPath\":{\"description\":\"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.VolumeProjection\":{\"description\":\"Projection that may be projected along with other supported volume types\",\"type\":\"object\",\"properties\":{\"configMap\":{\"description\":\"configMap information about the configMap data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapProjection\"},\"downwardAPI\":{\"description\":\"downwardAPI information about the downwardAPI data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIProjection\"},\"secret\":{\"description\":\"secret information about the secret data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretProjection\"},\"serviceAccountToken\":{\"description\":\"serviceAccountToken is information about the serviceAccountToken data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountTokenProjection\"}}},\"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\":{\"description\":\"Represents a vSphere volume resource.\",\"type\":\"object\",\"required\":[\"volumePath\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"storagePolicyID\":{\"description\":\"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\"type\":\"string\"},\"storagePolicyName\":{\"description\":\"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\"type\":\"string\"},\"volumePath\":{\"description\":\"volumePath is the path that identifies vSphere volume vmdk\",\"type\":\"string\",\"default\":\"\"}}},\"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)\",\"type\":\"object\",\"required\":[\"weight\",\"podAffinityTerm\"],\"properties\":{\"podAffinityTerm\":{\"description\":\"Required. A pod affinity term, associated with the corresponding weight.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"},\"weight\":{\"description\":\"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"io.k8s.api.core.v1.WindowsSecurityContextOptions\":{\"description\":\"WindowsSecurityContextOptions contain Windows-specific options and credentials.\",\"type\":\"object\",\"properties\":{\"gmsaCredentialSpec\":{\"description\":\"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\"type\":\"string\"},\"gmsaCredentialSpecName\":{\"description\":\"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\"type\":\"string\"},\"hostProcess\":{\"description\":\"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).  In addition, if HostProcess is true then HostNetwork must also be set to true.\",\"type\":\"boolean\"},\"runAsUserName\":{\"description\":\"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"string\"}}},\"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.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"type\":\"object\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is the plural name of the resource.\",\"type\":\"string\",\"default\":\"\"},\"namespaced\":{\"description\":\"namespaced indicates if a resource is namespaced or not.\",\"type\":\"boolean\",\"default\":false},\"shortNames\":{\"description\":\"shortNames is a list of suggested short names of the resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest 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\",\"default\":\"\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIResourceList\",\"version\":\"v1\"}]},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"}},\"matchLabels\":{\"description\":\"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"key is the label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\",\"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\",\"default\":\"\"},\"values\":{\"description\":\"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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 DEPRECATED read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"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\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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 DEPRECATED read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"type\":\"object\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"type\":{\"type\":\"string\",\"default\":\"\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.\",\"type\":\"string\",\"format\":\"int-or-string\"}}}}"
  },
  {
    "path": "pkg/util/proto/testdata/openapi_v3_0_0/v1.json",
    "content": "{\"openapi\":\"3.0.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.24.0\"},\"paths\":{\"/api/v1/\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"get available resources\",\"operationId\":\"getCoreV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}}}}}}},\"/api/v1/componentstatuses\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list objects of kind ComponentStatus\",\"operationId\":\"listCoreV1ComponentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatusList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatusList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatusList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatusList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatusList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/componentstatuses/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified ComponentStatus\",\"operationId\":\"readCoreV1ComponentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatus\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatus\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatus\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ComponentStatus\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/configmaps\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ConfigMap\",\"operationId\":\"listCoreV1ConfigMapForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/endpoints\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Endpoints\",\"operationId\":\"listCoreV1EndpointsForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/events\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Event\",\"operationId\":\"listCoreV1EventForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/limitranges\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind LimitRange\",\"operationId\":\"listCoreV1LimitRangeForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/namespaces\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Namespace\",\"operationId\":\"listCoreV1Namespace\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a Namespace\",\"operationId\":\"createCoreV1Namespace\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}}}},\"parameters\":[{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/bindings\":{\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a Binding\",\"operationId\":\"createCoreV1NamespacedBinding\",\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}}}},\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/configmaps\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ConfigMap\",\"operationId\":\"listCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a ConfigMap\",\"operationId\":\"createCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of ConfigMap\",\"operationId\":\"deleteCoreV1CollectionNamespacedConfigMap\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/configmaps/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified ConfigMap\",\"operationId\":\"readCoreV1NamespacedConfigMap\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified ConfigMap\",\"operationId\":\"replaceCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a ConfigMap\",\"operationId\":\"deleteCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified ConfigMap\",\"operationId\":\"patchCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ConfigMap\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/endpoints\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Endpoints\",\"operationId\":\"listCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointsList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create Endpoints\",\"operationId\":\"createCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of Endpoints\",\"operationId\":\"deleteCoreV1CollectionNamespacedEndpoints\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/endpoints/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Endpoints\",\"operationId\":\"readCoreV1NamespacedEndpoints\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Endpoints\",\"operationId\":\"replaceCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete Endpoints\",\"operationId\":\"deleteCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Endpoints\",\"operationId\":\"patchCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Endpoints\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/events\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Event\",\"operationId\":\"listCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create an Event\",\"operationId\":\"createCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of Event\",\"operationId\":\"deleteCoreV1CollectionNamespacedEvent\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/events/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Event\",\"operationId\":\"readCoreV1NamespacedEvent\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Event\",\"operationId\":\"replaceCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete an Event\",\"operationId\":\"deleteCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Event\",\"operationId\":\"patchCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Event\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/limitranges\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind LimitRange\",\"operationId\":\"listCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a LimitRange\",\"operationId\":\"createCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of LimitRange\",\"operationId\":\"deleteCoreV1CollectionNamespacedLimitRange\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/limitranges/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified LimitRange\",\"operationId\":\"readCoreV1NamespacedLimitRange\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified LimitRange\",\"operationId\":\"replaceCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a LimitRange\",\"operationId\":\"deleteCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified LimitRange\",\"operationId\":\"patchCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the LimitRange\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind PersistentVolumeClaim\",\"operationId\":\"listCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a PersistentVolumeClaim\",\"operationId\":\"createCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of PersistentVolumeClaim\",\"operationId\":\"deleteCoreV1CollectionNamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified PersistentVolumeClaim\",\"operationId\":\"readCoreV1NamespacedPersistentVolumeClaim\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified PersistentVolumeClaim\",\"operationId\":\"replaceCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a PersistentVolumeClaim\",\"operationId\":\"deleteCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified PersistentVolumeClaim\",\"operationId\":\"patchCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PersistentVolumeClaim\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified PersistentVolumeClaim\",\"operationId\":\"readCoreV1NamespacedPersistentVolumeClaimStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified PersistentVolumeClaim\",\"operationId\":\"replaceCoreV1NamespacedPersistentVolumeClaimStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified PersistentVolumeClaim\",\"operationId\":\"patchCoreV1NamespacedPersistentVolumeClaimStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PersistentVolumeClaim\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Pod\",\"operationId\":\"listCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a Pod\",\"operationId\":\"createCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of Pod\",\"operationId\":\"deleteCoreV1CollectionNamespacedPod\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Pod\",\"operationId\":\"readCoreV1NamespacedPod\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Pod\",\"operationId\":\"replaceCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a Pod\",\"operationId\":\"deleteCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Pod\",\"operationId\":\"patchCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Pod\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/attach\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to attach of Pod\",\"operationId\":\"connectCoreV1GetNamespacedPodAttach\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to attach of Pod\",\"operationId\":\"connectCoreV1PostNamespacedPodAttach\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"parameters\":[{\"name\":\"container\",\"in\":\"query\",\"description\":\"The container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodAttachOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"stderr\",\"in\":\"query\",\"description\":\"Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"stdin\",\"in\":\"query\",\"description\":\"Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"stdout\",\"in\":\"query\",\"description\":\"Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"tty\",\"in\":\"query\",\"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.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/binding\":{\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create binding of a Pod\",\"operationId\":\"createCoreV1NamespacedPodBinding\",\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Binding\"}}}}}},\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Binding\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read ephemeralcontainers of the specified Pod\",\"operationId\":\"readCoreV1NamespacedPodEphemeralcontainers\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace ephemeralcontainers of the specified Pod\",\"operationId\":\"replaceCoreV1NamespacedPodEphemeralcontainers\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update ephemeralcontainers of the specified Pod\",\"operationId\":\"patchCoreV1NamespacedPodEphemeralcontainers\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Pod\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/eviction\":{\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create eviction of a Pod\",\"operationId\":\"createCoreV1NamespacedPodEviction\",\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.policy.v1.Eviction\"}}}}}},\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Eviction\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/exec\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to exec of Pod\",\"operationId\":\"connectCoreV1GetNamespacedPodExec\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to exec of Pod\",\"operationId\":\"connectCoreV1PostNamespacedPodExec\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"parameters\":[{\"name\":\"command\",\"in\":\"query\",\"description\":\"Command is the remote command to execute. argv array. Not executed within a shell.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"container\",\"in\":\"query\",\"description\":\"Container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodExecOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"stderr\",\"in\":\"query\",\"description\":\"Redirect the standard error stream of the pod for this call.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"stdin\",\"in\":\"query\",\"description\":\"Redirect the standard input stream of the pod for this call. Defaults to false.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"stdout\",\"in\":\"query\",\"description\":\"Redirect the standard output stream of the pod for this call.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"tty\",\"in\":\"query\",\"description\":\"TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/log\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read log of the specified Pod\",\"operationId\":\"readCoreV1NamespacedPodLog\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"string\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"type\":\"string\"}},\"application/yaml\":{\"schema\":{\"type\":\"string\"}},\"text/plain\":{\"schema\":{\"type\":\"string\"}}}}}},\"parameters\":[{\"name\":\"container\",\"in\":\"query\",\"description\":\"The container for which to stream logs. Defaults to only container if there is one container in the pod.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"follow\",\"in\":\"query\",\"description\":\"Follow the log stream of the pod. Defaults to false.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"insecureSkipTLSVerifyBackend\",\"in\":\"query\",\"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).\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"limitBytes\",\"in\":\"query\",\"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.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Pod\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"previous\",\"in\":\"query\",\"description\":\"Return previous terminated container logs. Defaults to false.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"sinceSeconds\",\"in\":\"query\",\"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.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"tailLines\",\"in\":\"query\",\"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\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"timestamps\",\"in\":\"query\",\"description\":\"If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/portforward\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to portforward of Pod\",\"operationId\":\"connectCoreV1GetNamespacedPodPortforward\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to portforward of Pod\",\"operationId\":\"connectCoreV1PostNamespacedPodPortforward\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodPortForwardOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"ports\",\"in\":\"query\",\"description\":\"List of ports to forward Required when using WebSockets\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/proxy\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to proxy of Pod\",\"operationId\":\"connectCoreV1GetNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"connect PUT requests to proxy of Pod\",\"operationId\":\"connectCoreV1PutNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to proxy of Pod\",\"operationId\":\"connectCoreV1PostNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"connect DELETE requests to proxy of Pod\",\"operationId\":\"connectCoreV1DeleteNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"options\":{\"tags\":[\"core_v1\"],\"description\":\"connect OPTIONS requests to proxy of Pod\",\"operationId\":\"connectCoreV1OptionsNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"head\":{\"tags\":[\"core_v1\"],\"description\":\"connect HEAD requests to proxy of Pod\",\"operationId\":\"connectCoreV1HeadNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"connect PATCH requests to proxy of Pod\",\"operationId\":\"connectCoreV1PatchNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodProxyOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"query\",\"description\":\"Path is the URL path to use for the current proxy request to pod.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to proxy of Pod\",\"operationId\":\"connectCoreV1GetNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"connect PUT requests to proxy of Pod\",\"operationId\":\"connectCoreV1PutNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to proxy of Pod\",\"operationId\":\"connectCoreV1PostNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"connect DELETE requests to proxy of Pod\",\"operationId\":\"connectCoreV1DeleteNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"options\":{\"tags\":[\"core_v1\"],\"description\":\"connect OPTIONS requests to proxy of Pod\",\"operationId\":\"connectCoreV1OptionsNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"head\":{\"tags\":[\"core_v1\"],\"description\":\"connect HEAD requests to proxy of Pod\",\"operationId\":\"connectCoreV1HeadNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"connect PATCH requests to proxy of Pod\",\"operationId\":\"connectCoreV1PatchNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodProxyOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"path\",\"description\":\"path to the resource\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"query\",\"description\":\"Path is the URL path to use for the current proxy request to pod.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/pods/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified Pod\",\"operationId\":\"readCoreV1NamespacedPodStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified Pod\",\"operationId\":\"replaceCoreV1NamespacedPodStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified Pod\",\"operationId\":\"patchCoreV1NamespacedPodStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Pod\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/podtemplates\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind PodTemplate\",\"operationId\":\"listCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a PodTemplate\",\"operationId\":\"createCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of PodTemplate\",\"operationId\":\"deleteCoreV1CollectionNamespacedPodTemplate\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/podtemplates/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified PodTemplate\",\"operationId\":\"readCoreV1NamespacedPodTemplate\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified PodTemplate\",\"operationId\":\"replaceCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a PodTemplate\",\"operationId\":\"deleteCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified PodTemplate\",\"operationId\":\"patchCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodTemplate\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ReplicationController\",\"operationId\":\"listCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a ReplicationController\",\"operationId\":\"createCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of ReplicationController\",\"operationId\":\"deleteCoreV1CollectionNamespacedReplicationController\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified ReplicationController\",\"operationId\":\"readCoreV1NamespacedReplicationController\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified ReplicationController\",\"operationId\":\"replaceCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a ReplicationController\",\"operationId\":\"deleteCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified ReplicationController\",\"operationId\":\"patchCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ReplicationController\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read scale of the specified ReplicationController\",\"operationId\":\"readCoreV1NamespacedReplicationControllerScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace scale of the specified ReplicationController\",\"operationId\":\"replaceCoreV1NamespacedReplicationControllerScale\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update scale of the specified ReplicationController\",\"operationId\":\"patchCoreV1NamespacedReplicationControllerScale\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.Scale\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Scale\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified ReplicationController\",\"operationId\":\"readCoreV1NamespacedReplicationControllerStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified ReplicationController\",\"operationId\":\"replaceCoreV1NamespacedReplicationControllerStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified ReplicationController\",\"operationId\":\"patchCoreV1NamespacedReplicationControllerStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ReplicationController\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/resourcequotas\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ResourceQuota\",\"operationId\":\"listCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a ResourceQuota\",\"operationId\":\"createCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of ResourceQuota\",\"operationId\":\"deleteCoreV1CollectionNamespacedResourceQuota\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/resourcequotas/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified ResourceQuota\",\"operationId\":\"readCoreV1NamespacedResourceQuota\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified ResourceQuota\",\"operationId\":\"replaceCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a ResourceQuota\",\"operationId\":\"deleteCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified ResourceQuota\",\"operationId\":\"patchCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ResourceQuota\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/resourcequotas/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified ResourceQuota\",\"operationId\":\"readCoreV1NamespacedResourceQuotaStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified ResourceQuota\",\"operationId\":\"replaceCoreV1NamespacedResourceQuotaStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified ResourceQuota\",\"operationId\":\"patchCoreV1NamespacedResourceQuotaStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ResourceQuota\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/secrets\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Secret\",\"operationId\":\"listCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a Secret\",\"operationId\":\"createCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of Secret\",\"operationId\":\"deleteCoreV1CollectionNamespacedSecret\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/secrets/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Secret\",\"operationId\":\"readCoreV1NamespacedSecret\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Secret\",\"operationId\":\"replaceCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a Secret\",\"operationId\":\"deleteCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Secret\",\"operationId\":\"patchCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Secret\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/serviceaccounts\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ServiceAccount\",\"operationId\":\"listCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a ServiceAccount\",\"operationId\":\"createCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of ServiceAccount\",\"operationId\":\"deleteCoreV1CollectionNamespacedServiceAccount\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/serviceaccounts/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified ServiceAccount\",\"operationId\":\"readCoreV1NamespacedServiceAccount\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified ServiceAccount\",\"operationId\":\"replaceCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a ServiceAccount\",\"operationId\":\"deleteCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified ServiceAccount\",\"operationId\":\"patchCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ServiceAccount\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/serviceaccounts/{name}/token\":{\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create token of a ServiceAccount\",\"operationId\":\"createCoreV1NamespacedServiceAccountToken\",\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequest\"}}}}}},\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the TokenRequest\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/services\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Service\",\"operationId\":\"listCoreV1NamespacedService\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a Service\",\"operationId\":\"createCoreV1NamespacedService\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of Service\",\"operationId\":\"deleteCoreV1CollectionNamespacedService\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/services/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Service\",\"operationId\":\"readCoreV1NamespacedService\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Service\",\"operationId\":\"replaceCoreV1NamespacedService\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a Service\",\"operationId\":\"deleteCoreV1NamespacedService\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Service\",\"operationId\":\"patchCoreV1NamespacedService\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Service\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/services/{name}/proxy\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to proxy of Service\",\"operationId\":\"connectCoreV1GetNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"connect PUT requests to proxy of Service\",\"operationId\":\"connectCoreV1PutNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to proxy of Service\",\"operationId\":\"connectCoreV1PostNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"connect DELETE requests to proxy of Service\",\"operationId\":\"connectCoreV1DeleteNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"options\":{\"tags\":[\"core_v1\"],\"description\":\"connect OPTIONS requests to proxy of Service\",\"operationId\":\"connectCoreV1OptionsNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"head\":{\"tags\":[\"core_v1\"],\"description\":\"connect HEAD requests to proxy of Service\",\"operationId\":\"connectCoreV1HeadNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"connect PATCH requests to proxy of Service\",\"operationId\":\"connectCoreV1PatchNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ServiceProxyOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"query\",\"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.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to proxy of Service\",\"operationId\":\"connectCoreV1GetNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"connect PUT requests to proxy of Service\",\"operationId\":\"connectCoreV1PutNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to proxy of Service\",\"operationId\":\"connectCoreV1PostNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"connect DELETE requests to proxy of Service\",\"operationId\":\"connectCoreV1DeleteNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"options\":{\"tags\":[\"core_v1\"],\"description\":\"connect OPTIONS requests to proxy of Service\",\"operationId\":\"connectCoreV1OptionsNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"head\":{\"tags\":[\"core_v1\"],\"description\":\"connect HEAD requests to proxy of Service\",\"operationId\":\"connectCoreV1HeadNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"connect PATCH requests to proxy of Service\",\"operationId\":\"connectCoreV1PatchNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ServiceProxyOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"path\",\"description\":\"path to the resource\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"query\",\"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.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{namespace}/services/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified Service\",\"operationId\":\"readCoreV1NamespacedServiceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified Service\",\"operationId\":\"replaceCoreV1NamespacedServiceStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified Service\",\"operationId\":\"patchCoreV1NamespacedServiceStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Service\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Namespace\",\"operationId\":\"readCoreV1Namespace\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Namespace\",\"operationId\":\"replaceCoreV1Namespace\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a Namespace\",\"operationId\":\"deleteCoreV1Namespace\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Namespace\",\"operationId\":\"patchCoreV1Namespace\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Namespace\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{name}/finalize\":{\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace finalize of the specified Namespace\",\"operationId\":\"replaceCoreV1NamespaceFinalize\",\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}}}},\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Namespace\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/namespaces/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified Namespace\",\"operationId\":\"readCoreV1NamespaceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified Namespace\",\"operationId\":\"replaceCoreV1NamespaceStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified Namespace\",\"operationId\":\"patchCoreV1NamespaceStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Namespace\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/nodes\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Node\",\"operationId\":\"listCoreV1Node\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a Node\",\"operationId\":\"createCoreV1Node\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of Node\",\"operationId\":\"deleteCoreV1CollectionNode\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/nodes/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified Node\",\"operationId\":\"readCoreV1Node\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified Node\",\"operationId\":\"replaceCoreV1Node\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a Node\",\"operationId\":\"deleteCoreV1Node\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified Node\",\"operationId\":\"patchCoreV1Node\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Node\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/nodes/{name}/proxy\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to proxy of Node\",\"operationId\":\"connectCoreV1GetNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"connect PUT requests to proxy of Node\",\"operationId\":\"connectCoreV1PutNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to proxy of Node\",\"operationId\":\"connectCoreV1PostNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"connect DELETE requests to proxy of Node\",\"operationId\":\"connectCoreV1DeleteNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"options\":{\"tags\":[\"core_v1\"],\"description\":\"connect OPTIONS requests to proxy of Node\",\"operationId\":\"connectCoreV1OptionsNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"head\":{\"tags\":[\"core_v1\"],\"description\":\"connect HEAD requests to proxy of Node\",\"operationId\":\"connectCoreV1HeadNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"connect PATCH requests to proxy of Node\",\"operationId\":\"connectCoreV1PatchNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the NodeProxyOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"query\",\"description\":\"Path is the URL path to use for the current proxy request to node.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/nodes/{name}/proxy/{path}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"connect GET requests to proxy of Node\",\"operationId\":\"connectCoreV1GetNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"connect PUT requests to proxy of Node\",\"operationId\":\"connectCoreV1PutNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"connect POST requests to proxy of Node\",\"operationId\":\"connectCoreV1PostNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"connect DELETE requests to proxy of Node\",\"operationId\":\"connectCoreV1DeleteNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"options\":{\"tags\":[\"core_v1\"],\"description\":\"connect OPTIONS requests to proxy of Node\",\"operationId\":\"connectCoreV1OptionsNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"head\":{\"tags\":[\"core_v1\"],\"description\":\"connect HEAD requests to proxy of Node\",\"operationId\":\"connectCoreV1HeadNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"connect PATCH requests to proxy of Node\",\"operationId\":\"connectCoreV1PatchNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"*/*\":{\"schema\":{\"type\":\"string\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the NodeProxyOptions\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"path\",\"description\":\"path to the resource\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"path\",\"in\":\"query\",\"description\":\"Path is the URL path to use for the current proxy request to node.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/nodes/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified Node\",\"operationId\":\"readCoreV1NodeStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified Node\",\"operationId\":\"replaceCoreV1NodeStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified Node\",\"operationId\":\"patchCoreV1NodeStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Node\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/persistentvolumeclaims\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind PersistentVolumeClaim\",\"operationId\":\"listCoreV1PersistentVolumeClaimForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/persistentvolumes\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind PersistentVolume\",\"operationId\":\"listCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeList\"}}}}}},\"post\":{\"tags\":[\"core_v1\"],\"description\":\"create a PersistentVolume\",\"operationId\":\"createCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete collection of PersistentVolume\",\"operationId\":\"deleteCoreV1CollectionPersistentVolume\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}}}}},\"parameters\":[{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/persistentvolumes/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read the specified PersistentVolume\",\"operationId\":\"readCoreV1PersistentVolume\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace the specified PersistentVolume\",\"operationId\":\"replaceCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}}}},\"delete\":{\"tags\":[\"core_v1\"],\"description\":\"delete a PersistentVolume\",\"operationId\":\"deleteCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"gracePeriodSeconds\",\"in\":\"query\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"orphanDependents\",\"in\":\"query\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"propagationPolicy\",\"in\":\"query\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"202\":{\"description\":\"Accepted\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update the specified PersistentVolume\",\"operationId\":\"patchCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PersistentVolume\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/persistentvolumes/{name}/status\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"read status of the specified PersistentVolume\",\"operationId\":\"readCoreV1PersistentVolumeStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}}}},\"put\":{\"tags\":[\"core_v1\"],\"description\":\"replace status of the specified PersistentVolume\",\"operationId\":\"replaceCoreV1PersistentVolumeStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}}}},\"patch\":{\"tags\":[\"core_v1\"],\"description\":\"partially update status of the specified PersistentVolume\",\"operationId\":\"patchCoreV1PersistentVolumeStatus\",\"parameters\":[{\"name\":\"dryRun\",\"in\":\"query\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"force\",\"in\":\"query\",\"description\":\"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"fieldManager\",\"in\":\"query\",\"description\":\"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}}}},\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}},\"201\":{\"description\":\"Created\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}}}}}},\"parameters\":[{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PersistentVolume\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}}]},\"/api/v1/pods\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Pod\",\"operationId\":\"listCoreV1PodForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/podtemplates\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind PodTemplate\",\"operationId\":\"listCoreV1PodTemplateForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/replicationcontrollers\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ReplicationController\",\"operationId\":\"listCoreV1ReplicationControllerForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/resourcequotas\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ResourceQuota\",\"operationId\":\"listCoreV1ResourceQuotaForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/secrets\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Secret\",\"operationId\":\"listCoreV1SecretForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/serviceaccounts\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind ServiceAccount\",\"operationId\":\"listCoreV1ServiceAccountForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/services\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"list or watch objects of kind Service\",\"operationId\":\"listCoreV1ServiceForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceList\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/configmaps\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1ConfigMapListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/endpoints\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1EndpointsListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/events\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1EventListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/limitranges\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1LimitRangeListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespaceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/configmaps\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedConfigMapList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/configmaps/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ConfigMap\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/endpoints\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedEndpointsList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/endpoints/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Endpoints\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/events\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedEventList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/events/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Event\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/limitranges\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedLimitRangeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/limitranges/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the LimitRange\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedPersistentVolumeClaimList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PersistentVolumeClaim\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/pods\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedPodList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/pods/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Pod\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/podtemplates\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedPodTemplateList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/podtemplates/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PodTemplate\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/replicationcontrollers\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedReplicationControllerList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ReplicationController\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/resourcequotas\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedResourceQuotaList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ResourceQuota\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/secrets\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedSecretList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/secrets/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Secret\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/serviceaccounts\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedServiceAccountList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the ServiceAccount\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/services\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NamespacedServiceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{namespace}/services/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Service\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"namespace\",\"in\":\"path\",\"description\":\"object name and auth scope, such as for teams and projects\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/namespaces/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Namespace\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/nodes\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1NodeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/nodes/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the Node\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/persistentvolumeclaims\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1PersistentVolumeClaimListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/persistentvolumes\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1PersistentVolumeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/persistentvolumes/{name}\":{\"get\":{\"tags\":[\"core_v1\"],\"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\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"name\",\"in\":\"path\",\"description\":\"name of the PersistentVolume\",\"required\":true,\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/pods\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1PodListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/podtemplates\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1PodTemplateListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/replicationcontrollers\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1ReplicationControllerListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/resourcequotas\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1ResourceQuotaListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/secrets\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1SecretListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/serviceaccounts\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1ServiceAccountListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]},\"/api/v1/watch/services\":{\"get\":{\"tags\":[\"core_v1\"],\"description\":\"watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.\",\"operationId\":\"watchCoreV1ServiceListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/json;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/vnd.kubernetes.protobuf;stream=watch\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"application/yaml\":{\"schema\":{\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}}}}}},\"parameters\":[{\"name\":\"allowWatchBookmarks\",\"in\":\"query\",\"description\":\"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}},{\"name\":\"continue\",\"in\":\"query\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"fieldSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"labelSelector\",\"in\":\"query\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"limit\",\"in\":\"query\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"pretty\",\"in\":\"query\",\"description\":\"If 'true', then the output is pretty printed.\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersion\",\"in\":\"query\",\"description\":\"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"resourceVersionMatch\",\"in\":\"query\",\"description\":\"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\"schema\":{\"type\":\"string\",\"uniqueItems\":true}},{\"name\":\"timeoutSeconds\",\"in\":\"query\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"schema\":{\"type\":\"integer\",\"uniqueItems\":true}},{\"name\":\"watch\",\"in\":\"query\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"schema\":{\"type\":\"boolean\",\"uniqueItems\":true}}]}},\"components\":{\"schemas\":{\"io.k8s.api.authentication.v1.BoundObjectReference\":{\"description\":\"BoundObjectReference is a reference to an object that a token is bound to.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.authentication.v1.TokenRequest\":{\"description\":\"TokenRequest requests a token for a given service account.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequestSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the token can be authenticated.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.TokenRequestStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"audiences\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"boundObjectRef\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.api.authentication.v1.BoundObjectReference\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.authentication.v1.TokenRequestStatus\":{\"description\":\"TokenRequestStatus is the result of a token request.\",\"type\":\"object\",\"required\":[\"token\",\"expirationTimestamp\"],\"properties\":{\"expirationTimestamp\":{\"description\":\"ExpirationTimestamp is the time of expiration of the returned token.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"token\":{\"description\":\"Token is the opaque bearer token.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.autoscaling.v1.Scale\":{\"description\":\"Scale represents a scaling request for a resource.\",\"type\":\"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\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.ScaleSpec\"},\"status\":{\"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.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.autoscaling.v1.ScaleStatus\"}},\"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.\",\"type\":\"object\",\"properties\":{\"replicas\":{\"description\":\"desired number of instances for the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.autoscaling.v1.ScaleStatus\":{\"description\":\"ScaleStatus represents the current status of a scale subresource.\",\"type\":\"object\",\"required\":[\"replicas\"],\"properties\":{\"replicas\":{\"description\":\"actual number of observed instances of the scaled object.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.Affinity\":{\"description\":\"Affinity is a group of affinity scheduling rules.\",\"type\":\"object\",\"properties\":{\"nodeAffinity\":{\"description\":\"Describes node affinity scheduling rules for the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeAffinity\"},\"podAffinity\":{\"description\":\"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinity\"},\"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)).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAntiAffinity\"}}},\"io.k8s.api.core.v1.AttachedVolume\":{\"description\":\"AttachedVolume describes a volume attached to a node\",\"type\":\"object\",\"required\":[\"name\",\"devicePath\"],\"properties\":{\"devicePath\":{\"description\":\"DevicePath represents the device path where the volume should be available\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the attached volume\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.AzureDiskVolumeSource\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"diskName\",\"diskURI\"],\"properties\":{\"cachingMode\":{\"description\":\"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\"type\":\"string\"},\"diskName\":{\"description\":\"diskName is the Name of the data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"diskURI\":{\"description\":\"diskURI is the URI of data disk in the blob storage\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"kind\":{\"description\":\"kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.AzureFilePersistentVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the name of secret that contains Azure Storage Account Name and Key\",\"type\":\"string\",\"default\":\"\"},\"secretNamespace\":{\"description\":\"secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod\",\"type\":\"string\"},\"shareName\":{\"description\":\"shareName is the azure Share Name\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.AzureFileVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"type\":\"object\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the  name of secret that contains Azure Storage Account Name and Key\",\"type\":\"string\",\"default\":\"\"},\"shareName\":{\"description\":\"shareName is the azure share Name\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"target\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"target\":{\"description\":\"The target object that you want to bind to the standard object.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"}},\"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)\",\"type\":\"object\",\"required\":[\"driver\",\"volumeHandle\"],\"properties\":{\"controllerExpandSecretRef\":{\"description\":\"controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This 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.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"},\"controllerPublishSecretRef\":{\"description\":\"controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"},\"driver\":{\"description\":\"driver is the name of the driver to use for this volume. Required.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\",\"type\":\"string\"},\"nodePublishSecretRef\":{\"description\":\"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"},\"nodeStageSecretRef\":{\"description\":\"nodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"},\"readOnly\":{\"description\":\"readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"volumeAttributes of the volume to publish.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.CSIVolumeSource\":{\"description\":\"Represents a source location of a volume to mount, managed by an external CSI driver\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\"type\":\"string\"},\"nodePublishSecretRef\":{\"description\":\"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and  may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"readOnly\":{\"description\":\"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.Capabilities\":{\"description\":\"Adds and removes POSIX capabilities from running containers.\",\"type\":\"object\",\"properties\":{\"add\":{\"description\":\"Added capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"drop\":{\"description\":\"Removed capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"path\":{\"description\":\"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretFile\":{\"description\":\"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"},\"user\":{\"description\":\"user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"path\":{\"description\":\"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretFile\":{\"description\":\"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"},\"volumeID\":{\"description\":\"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeID\":{\"description\":\"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ClientIPConfig\":{\"description\":\"ClientIPConfig represents the configurations of Client IP based session affinity.\",\"type\":\"object\",\"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).\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ComponentCondition\":{\"description\":\"Information about the condition of a component.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of condition for a component. Valid value: \\\"Healthy\\\"\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ComponentStatus\":{\"description\":\"ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+\",\"type\":\"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\"},\"conditions\":{\"description\":\"List of component conditions observed\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentCondition\"},\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}},\"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+\",\"type\":\"object\",\"required\":[\"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 ComponentStatus objects.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ComponentStatus\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"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\"},\"binaryData\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"format\":\"byte\"}},\"data\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ConfigMapKeySelector\":{\"description\":\"Selects a key from a ConfigMap.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key to select.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ConfigMapList\":{\"description\":\"ConfigMapList is a resource containing a list of ConfigMap objects.\",\"type\":\"object\",\"required\":[\"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 the list of ConfigMaps.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMap\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration\",\"type\":\"object\",\"required\":[\"namespace\",\"name\",\"kubeletConfigKey\"],\"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\",\"default\":\"\"},\"name\":{\"description\":\"Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.\",\"type\":\"string\",\"default\":\"\"},\"namespace\":{\"description\":\"Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional specify whether the ConfigMap or its keys must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.Container\":{\"description\":\"A single application container that you want to run within a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The container 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"}},\"image\":{\"description\":\"Container 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\\n\\n\",\"type\":\"string\"},\"lifecycle\":{\"description\":\"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"},\"securityContext\":{\"description\":\"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"},\"startupProbe\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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.\\n\\n\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.ContainerImage\":{\"description\":\"Describe a container image\",\"type\":\"object\",\"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\\\"]\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"sizeBytes\":{\"description\":\"The size of the image in bytes.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.core.v1.ContainerPort\":{\"description\":\"ContainerPort represents a network port in a single container.\",\"type\":\"object\",\"required\":[\"containerPort\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\\\".\\n\\n\",\"type\":\"string\",\"default\":\"TCP\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"running\":{\"description\":\"Details about a running container\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerStateRunning\"},\"terminated\":{\"description\":\"Details about a terminated container\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerStateTerminated\"},\"waiting\":{\"description\":\"Details about a waiting container\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerStateWaiting\"}}},\"io.k8s.api.core.v1.ContainerStateRunning\":{\"description\":\"ContainerStateRunning is a running state of a container.\",\"type\":\"object\",\"properties\":{\"startedAt\":{\"description\":\"Time at which the container was last (re-)started\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.core.v1.ContainerStateTerminated\":{\"description\":\"ContainerStateTerminated is a terminated state of a container.\",\"type\":\"object\",\"required\":[\"exitCode\"],\"properties\":{\"containerID\":{\"description\":\"Container's ID in the format '\\u003ctype\\u003e://\\u003ccontainer_id\\u003e'\",\"type\":\"string\"},\"exitCode\":{\"description\":\"Exit status from the last termination of the container\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"finishedAt\":{\"description\":\"Time at which the container last terminated\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"Message regarding the last termination of the container\",\"type\":\"string\"},\"reason\":{\"description\":\"(brief) reason from the last termination of the container\",\"type\":\"string\"},\"signal\":{\"description\":\"Signal from the last termination of the container\",\"type\":\"integer\",\"format\":\"int32\"},\"startedAt\":{\"description\":\"Time at which previous execution of the container started\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.core.v1.ContainerStateWaiting\":{\"description\":\"ContainerStateWaiting is a waiting state of a container.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ContainerStatus\":{\"description\":\"ContainerStatus contains details for the current status of this container.\",\"type\":\"object\",\"required\":[\"name\",\"ready\",\"restartCount\",\"image\",\"imageID\"],\"properties\":{\"containerID\":{\"description\":\"Container's ID in the format '\\u003ctype\\u003e://\\u003ccontainer_id\\u003e'.\",\"type\":\"string\"},\"image\":{\"description\":\"The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images.\",\"type\":\"string\",\"default\":\"\"},\"imageID\":{\"description\":\"ImageID of the container's image.\",\"type\":\"string\",\"default\":\"\"},\"lastState\":{\"description\":\"Details about the container's last termination condition.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerState\"},\"name\":{\"description\":\"This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.\",\"type\":\"string\",\"default\":\"\"},\"ready\":{\"description\":\"Specifies whether the container has passed its readiness probe.\",\"type\":\"boolean\",\"default\":false},\"restartCount\":{\"description\":\"The number of times the container has been restarted.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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\":{\"description\":\"Details about the container's current condition.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerState\"}}},\"io.k8s.api.core.v1.DaemonEndpoint\":{\"description\":\"DaemonEndpoint contains information about a single Daemon endpoint.\",\"type\":\"object\",\"required\":[\"Port\"],\"properties\":{\"Port\":{\"description\":\"Port number of the given endpoint.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"Items is a list of DownwardAPIVolume file\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.DownwardAPIVolumeFile\":{\"description\":\"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"fieldRef\":{\"description\":\"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"},\"mode\":{\"description\":\"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\"type\":\"string\",\"default\":\"\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"}}},\"io.k8s.api.core.v1.DownwardAPIVolumeSource\":{\"description\":\"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"Items is a list of downward API volume file\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.EmptyDirVolumeSource\":{\"description\":\"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\"type\":\"object\",\"properties\":{\"medium\":{\"description\":\"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"type\":\"string\"},\"sizeLimit\":{\"description\":\"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"io.k8s.api.core.v1.EndpointAddress\":{\"description\":\"EndpointAddress is a tuple that describes single IP address.\",\"type\":\"object\",\"required\":[\"ip\"],\"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\",\"default\":\"\"},\"nodeName\":{\"description\":\"Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\",\"type\":\"string\"},\"targetRef\":{\"description\":\"Reference to object providing the endpoint.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.EndpointPort\":{\"description\":\"EndpointPort is a tuple that describes a single port.\",\"type\":\"object\",\"required\":[\"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 https://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.  This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.\",\"type\":\"string\"},\"port\":{\"description\":\"The port number of the endpoint.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"protocol\":{\"description\":\"The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\\n\\n\",\"type\":\"string\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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 ]\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointAddress\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointAddress\"}},\"ports\":{\"description\":\"Port numbers available on the related IP addresses.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointPort\"}}}},\"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 ]\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EndpointSubset\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.EndpointsList\":{\"description\":\"EndpointsList is a list of endpoints.\",\"type\":\"object\",\"required\":[\"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 endpoints.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Endpoints\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"object\",\"properties\":{\"configMapRef\":{\"description\":\"The ConfigMap to select from\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapEnvSource\"},\"prefix\":{\"description\":\"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\"type\":\"string\"},\"secretRef\":{\"description\":\"The Secret to select from\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretEnvSource\"}}},\"io.k8s.api.core.v1.EnvVar\":{\"description\":\"EnvVar represents an environment variable present in a Container.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name of the environment variable. Must be a C_IDENTIFIER.\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Variable references $(VAR_NAME) are expanded using the previously 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\"type\":\"string\"},\"valueFrom\":{\"description\":\"Source for the environment variable's value. Cannot be used if value is not empty.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVarSource\"}}},\"io.k8s.api.core.v1.EnvVarSource\":{\"description\":\"EnvVarSource represents a source for the value of an EnvVar.\",\"type\":\"object\",\"properties\":{\"configMapKeyRef\":{\"description\":\"Selects a key of a ConfigMap.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapKeySelector\"},\"fieldRef\":{\"description\":\"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\\u003cKEY\\u003e']`, `metadata.annotations['\\u003cKEY\\u003e']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectFieldSelector\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceFieldSelector\"},\"secretKeyRef\":{\"description\":\"Selects a key of a secret in the pod's namespace\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretKeySelector\"}}},\"io.k8s.api.core.v1.EphemeralContainer\":{\"description\":\"An EphemeralContainer is a temporary container that you may add 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. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\\n\\nThis is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"args\":{\"description\":\"Arguments to the entrypoint. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"command\":{\"description\":\"Entrypoint array. Not executed within a shell. The 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. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EnvFromSource\"}},\"image\":{\"description\":\"Container 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\\n\\n\",\"type\":\"string\"},\"lifecycle\":{\"description\":\"Lifecycle is not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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\",\"default\":\"\"},\"ports\":{\"description\":\"Ports are not allowed for ephemeral containers.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"},\"securityContext\":{\"description\":\"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecurityContext\"},\"startupProbe\":{\"description\":\"Probes are not allowed for ephemeral containers.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Probe\"},\"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 uses the namespaces configured in the Pod spec.\\n\\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\"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.\\n\\n\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeDevice\"},\"x-kubernetes-patch-merge-key\":\"devicePath\",\"x-kubernetes-patch-strategy\":\"merge\"},\"volumeMounts\":{\"description\":\"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.EphemeralVolumeSource\":{\"description\":\"Represents an ephemeral volume that is handled by a normal storage driver.\",\"type\":\"object\",\"properties\":{\"volumeClaimTemplate\":{\"description\":\"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod.  The name of the PVC will be `\\u003cpod name\\u003e-\\u003cvolume name\\u003e` where `\\u003cvolume name\\u003e` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\\n\\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\\n\\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\\n\\nRequired, must not be nil.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimTemplate\"}}},\"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.\",\"type\":\"object\",\"required\":[\"metadata\",\"involvedObject\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"eventTime\":{\"description\":\"Time when this Event was first observed.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"},\"firstTimestamp\":{\"description\":\"The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"involvedObject\":{\"description\":\"The object that this event is about.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"The time at which the most recent occurrence of this event was recorded.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"A human-readable description of the status of this operation.\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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\":{\"description\":\"Optional secondary object for more complex actions.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"},\"reportingComponent\":{\"description\":\"Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\",\"type\":\"string\",\"default\":\"\"},\"reportingInstance\":{\"description\":\"ID of the controller instance, e.g. `kubelet-xyzf`.\",\"type\":\"string\",\"default\":\"\"},\"series\":{\"description\":\"Data about the Event series this event represents or nil if it's a singleton Event.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventSeries\"},\"source\":{\"description\":\"The component reporting this event. Should be a short machine understandable string.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EventSource\"},\"type\":{\"description\":\"Type of this event (Normal, Warning), new types could be added in the future\",\"type\":\"string\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.EventList\":{\"description\":\"EventList is a list of events.\",\"type\":\"object\",\"required\":[\"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 events\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Event\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"properties\":{\"count\":{\"description\":\"Number of occurrences in this series up to the last heartbeat time\",\"type\":\"integer\",\"format\":\"int32\"},\"lastObservedTime\":{\"description\":\"Time of the last occurrence observed\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"}}},\"io.k8s.api.core.v1.EventSource\":{\"description\":\"EventSource contains information for an event.\",\"type\":\"object\",\"properties\":{\"component\":{\"description\":\"Component from which the event is generated.\",\"type\":\"string\"},\"host\":{\"description\":\"Node name on which the event is generated.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ExecAction\":{\"description\":\"ExecAction describes a \\\"run in container\\\" action.\",\"type\":\"object\",\"properties\":{\"command\":{\"description\":\"Command is the command line to execute inside the container, the working directory for the command  is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"lun\":{\"description\":\"lun is Optional: FC target lun number\",\"type\":\"integer\",\"format\":\"int32\"},\"readOnly\":{\"description\":\"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"targetWWNs\":{\"description\":\"targetWWNs is Optional: FC target worldwide names (WWNs)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"wwids\":{\"description\":\"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.FlexPersistentVolumeSource\":{\"description\":\"FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the driver to use for this volume.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"options is Optional: this field holds extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"}}},\"io.k8s.api.core.v1.FlexVolumeSource\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"type\":\"object\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the driver to use for this volume.\",\"type\":\"string\",\"default\":\"\"},\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"options is Optional: this field holds extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"datasetName\":{\"description\":\"datasetName is Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\"type\":\"string\"},\"datasetUUID\":{\"description\":\"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"pdName\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\"},\"partition\":{\"description\":\"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"integer\",\"format\":\"int32\"},\"pdName\":{\"description\":\"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.GRPCAction\":{\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"port\":{\"description\":\"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"service\":{\"description\":\"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"repository\"],\"properties\":{\"directory\":{\"description\":\"directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\"type\":\"string\"},\"repository\":{\"description\":\"repository is the URL\",\"type\":\"string\",\"default\":\"\"},\"revision\":{\"description\":\"revision is the commit hash for the specified revision.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"path\":{\"description\":\"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.HTTPGetAction\":{\"description\":\"HTTPGetAction describes an action based on HTTP Get requests.\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\"type\":\"string\"},\"httpHeaders\":{\"description\":\"Custom headers to set in the request. HTTP allows repeated headers.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPHeader\"}},\"path\":{\"description\":\"Path to access on the HTTP server.\",\"type\":\"string\"},\"port\":{\"description\":\"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"scheme\":{\"description\":\"Scheme to use for connecting to the host. Defaults to HTTP.\\n\\n\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.HTTPHeader\":{\"description\":\"HTTPHeader describes a custom header to be used in HTTP probes\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"The header field name\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"The header field value\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"hostnames\":{\"description\":\"Hostnames for the above IP address.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"ip\":{\"description\":\"IP address of the host file entry.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"path\":{\"description\":\"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"properties\":{\"chapAuthDiscovery\":{\"description\":\"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\"type\":\"boolean\"},\"chapAuthSession\":{\"description\":\"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\"type\":\"boolean\"},\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\"type\":\"string\"},\"initiatorName\":{\"description\":\"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\"type\":\"string\"},\"iqn\":{\"description\":\"iqn is Target iSCSI Qualified Name.\",\"type\":\"string\",\"default\":\"\"},\"iscsiInterface\":{\"description\":\"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\"type\":\"string\"},\"lun\":{\"description\":\"lun is iSCSI Target Lun number.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"portals\":{\"description\":\"portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"},\"targetPortal\":{\"description\":\"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"properties\":{\"chapAuthDiscovery\":{\"description\":\"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\"type\":\"boolean\"},\"chapAuthSession\":{\"description\":\"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\"type\":\"boolean\"},\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\"type\":\"string\"},\"initiatorName\":{\"description\":\"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \\u003ctarget portal\\u003e:\\u003cvolume name\\u003e will be created for the connection.\",\"type\":\"string\"},\"iqn\":{\"description\":\"iqn is the target iSCSI Qualified Name.\",\"type\":\"string\",\"default\":\"\"},\"iscsiInterface\":{\"description\":\"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\"type\":\"string\"},\"lun\":{\"description\":\"lun represents iSCSI Target Lun number.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"portals\":{\"description\":\"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"targetPortal\":{\"description\":\"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.KeyToPath\":{\"description\":\"Maps a string key to a path within a volume.\",\"type\":\"object\",\"required\":[\"key\",\"path\"],\"properties\":{\"key\":{\"description\":\"key is the key to project.\",\"type\":\"string\",\"default\":\"\"},\"mode\":{\"description\":\"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"postStart\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"},\"preStop\":{\"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 Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). 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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LifecycleHandler\"}}},\"io.k8s.api.core.v1.LifecycleHandler\":{\"description\":\"LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ExecAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"},\"tcpSocket\":{\"description\":\"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"}}},\"io.k8s.api.core.v1.LimitRange\":{\"description\":\"LimitRange sets resource usage limits for each kind of resource in a Namespace.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeSpec\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"default\":{\"description\":\"Default resource requirement limit value by resource name if resource limit is omitted.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"defaultRequest\":{\"description\":\"DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"max\":{\"description\":\"Max usage constraints on this kind by resource name.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"maxLimitRequestRatio\":{\"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\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"min\":{\"description\":\"Min usage constraints on this kind by resource name.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"type\":{\"description\":\"Type of resource that this limit applies to.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.LimitRangeList\":{\"description\":\"LimitRangeList is a list of LimitRange items.\",\"type\":\"object\",\"required\":[\"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-resources-containers/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRange\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"required\":[\"limits\"],\"properties\":{\"limits\":{\"description\":\"Limits is the list of LimitRangeItem objects that are enforced.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LimitRangeItem\"}}}},\"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.\",\"type\":\"object\",\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PortStatus\"},\"x-kubernetes-list-type\":\"atomic\"}}},\"io.k8s.api.core.v1.LoadBalancerStatus\":{\"description\":\"LoadBalancerStatus represents the status of a load-balancer.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LoadBalancerIngress\"}}}},\"io.k8s.api.core.v1.LocalObjectReference\":{\"description\":\"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.LocalVolumeSource\":{\"description\":\"Local represents directly-attached storage with node affinity (Beta feature)\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default value is to auto-select a filesystem if unspecified.\",\"type\":\"string\"},\"path\":{\"description\":\"path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"server\",\"path\"],\"properties\":{\"path\":{\"description\":\"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.Namespace\":{\"description\":\"Namespace provides a scope for Names. Use of multiple namespaces is optional.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.NamespaceCondition\":{\"description\":\"NamespaceCondition contains details about state of namespace.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"default\":{},\"$ref\":\"#/components/schemas/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\",\"default\":\"\"},\"type\":{\"description\":\"Type of namespace controller condition.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NamespaceList\":{\"description\":\"NamespaceList is a list of Namespaces.\",\"type\":\"object\",\"required\":[\"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 the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Namespace\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"NamespaceList\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.NamespaceSpec\":{\"description\":\"NamespaceSpec describes the attributes on a Namespace.\",\"type\":\"object\",\"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/\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.NamespaceStatus\":{\"description\":\"NamespaceStatus is information about the current status of a Namespace.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Represents the latest available observations of a namespace's current state.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NamespaceCondition\"},\"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/\\n\\n\",\"type\":\"string\"}}},\"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).\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"address\"],\"properties\":{\"address\":{\"description\":\"The node address.\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"Node address type, one of Hostname, ExternalIP or InternalIP.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NodeAffinity\":{\"description\":\"Node affinity is a group of node affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PreferredSchedulingTerm\"}},\"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 an update), the system may or may not try to eventually evict the pod from its node.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelector\"}}},\"io.k8s.api.core.v1.NodeCondition\":{\"description\":\"NodeCondition contains condition information for a node.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastHeartbeatTime\":{\"description\":\"Last time we got an update on a given condition.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transit from one status to another.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of node condition.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.NodeConfigSource\":{\"description\":\"NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22\",\"type\":\"object\",\"properties\":{\"configMap\":{\"description\":\"ConfigMap is a reference to a Node's ConfigMap\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapNodeConfigSource\"}}},\"io.k8s.api.core.v1.NodeConfigStatus\":{\"description\":\"NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\",\"type\":\"object\",\"properties\":{\"active\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeConfigSource\"},\"assigned\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeConfigSource\"},\"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\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeConfigSource\"}}},\"io.k8s.api.core.v1.NodeDaemonEndpoints\":{\"description\":\"NodeDaemonEndpoints lists ports opened by daemons running on the Node.\",\"type\":\"object\",\"properties\":{\"kubeletEndpoint\":{\"description\":\"Endpoint on which Kubelet is listening.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DaemonEndpoint\"}}},\"io.k8s.api.core.v1.NodeList\":{\"description\":\"NodeList is the whole list of all Nodes which have been registered with master.\",\"type\":\"object\",\"required\":[\"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 nodes\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Node\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"required\":[\"nodeSelectorTerms\"],\"properties\":{\"nodeSelectorTerms\":{\"description\":\"Required. A list of node selector terms. The terms are ORed.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"The label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\"},\"operator\":{\"description\":\"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\\n\\n\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"A list of node selector requirements by node's labels.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"}},\"matchFields\":{\"description\":\"A list of node selector requirements by node's fields.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorRequirement\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.NodeSpec\":{\"description\":\"NodeSpec describes the attributes that a node is created with.\",\"type\":\"object\",\"properties\":{\"configSource\":{\"description\":\"Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed from Kubelets as of 1.24 and will be fully removed in 1.26.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeConfigSource\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Taint\"}},\"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\"}}},\"io.k8s.api.core.v1.NodeStatus\":{\"description\":\"NodeStatus is information about the current status of a node.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeAddress\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"allocatable\":{\"description\":\"Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"capacity\":{\"description\":\"Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"conditions\":{\"description\":\"Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"config\":{\"description\":\"Status of the config assigned to the node via the dynamic Kubelet config feature.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeConfigStatus\"},\"daemonEndpoints\":{\"description\":\"Endpoints of daemons running on the Node.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeDaemonEndpoints\"},\"images\":{\"description\":\"List of container images on this node\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerImage\"}},\"nodeInfo\":{\"description\":\"Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSystemInfo\"},\"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.\\n\\n\",\"type\":\"string\"},\"volumesAttached\":{\"description\":\"List of volumes that are attached to the node.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AttachedVolume\"}},\"volumesInUse\":{\"description\":\"List of attachable volumes in use (mounted) by the node.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.NodeSystemInfo\":{\"description\":\"NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\",\"type\":\"object\",\"required\":[\"machineID\",\"systemUUID\",\"bootID\",\"kernelVersion\",\"osImage\",\"containerRuntimeVersion\",\"kubeletVersion\",\"kubeProxyVersion\",\"operatingSystem\",\"architecture\"],\"properties\":{\"architecture\":{\"description\":\"The Architecture reported by the node\",\"type\":\"string\",\"default\":\"\"},\"bootID\":{\"description\":\"Boot ID reported by the node.\",\"type\":\"string\",\"default\":\"\"},\"containerRuntimeVersion\":{\"description\":\"ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).\",\"type\":\"string\",\"default\":\"\"},\"kernelVersion\":{\"description\":\"Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).\",\"type\":\"string\",\"default\":\"\"},\"kubeProxyVersion\":{\"description\":\"KubeProxy Version reported by the node.\",\"type\":\"string\",\"default\":\"\"},\"kubeletVersion\":{\"description\":\"Kubelet Version reported by the node.\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"operatingSystem\":{\"description\":\"The Operating System reported by the node\",\"type\":\"string\",\"default\":\"\"},\"osImage\":{\"description\":\"OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ObjectFieldSelector\":{\"description\":\"ObjectFieldSelector selects an APIVersioned field of an object.\",\"type\":\"object\",\"required\":[\"fieldPath\"],\"properties\":{\"apiVersion\":{\"description\":\"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\"type\":\"string\"},\"fieldPath\":{\"description\":\"Path of the field to select in the specified API version.\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ObjectReference\":{\"description\":\"ObjectReference contains enough information to let you inspect or modify the referred object.\",\"type\":\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeStatus\"}},\"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\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PersistentVolumeClaimCondition\":{\"description\":\"PersistentVolumeClaimCondition contails details about state of pvc\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"lastProbeTime is the time we probed the condition.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"lastTransitionTime is the time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"message is the human-readable message indicating details about last transition.\",\"type\":\"string\"},\"reason\":{\"description\":\"reason is a 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\",\"default\":\"\"},\"type\":{\"description\":\"\\n\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimList\":{\"description\":\"PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\",\"type\":\"object\",\"required\":[\"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 persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"object\",\"properties\":{\"accessModes\":{\"description\":\"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"dataSource\":{\"description\":\"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"dataSourceRef\":{\"description\":\"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef\\n  allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While DataSource ignores disallowed values (dropping them), DataSourceRef\\n  preserves all values, and generates an error if a disallowed value is\\n  specified.\\n(Alpha) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"resources\":{\"description\":\"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceRequirements\"},\"selector\":{\"description\":\"selector is a label query over volumes to consider for binding.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"storageClassName\":{\"description\":\"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\"type\":\"string\"},\"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\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimStatus\":{\"description\":\"PersistentVolumeClaimStatus is the current status of a persistent volume claim.\",\"type\":\"object\",\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"allocatedResources\":{\"description\":\"allocatedResources is the storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"capacity\":{\"description\":\"capacity represents the actual resources of the underlying volume.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"conditions\":{\"description\":\"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"phase\":{\"description\":\"phase represents the current phase of PersistentVolumeClaim.\\n\\n\",\"type\":\"string\"},\"resizeStatus\":{\"description\":\"resizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimTemplate\":{\"description\":\"PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\",\"type\":\"object\",\"required\":[\"spec\"],\"properties\":{\"metadata\":{\"description\":\"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"}}},\"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).\",\"type\":\"object\",\"required\":[\"claimName\"],\"properties\":{\"claimName\":{\"description\":\"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"string\",\"default\":\"\"},\"readOnly\":{\"description\":\"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.PersistentVolumeList\":{\"description\":\"PersistentVolumeList is a list of PersistentVolume items.\",\"type\":\"object\",\"required\":[\"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 persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolume\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"properties\":{\"accessModes\":{\"description\":\"accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"awsElasticBlockStore\":{\"description\":\"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"azureDisk\":{\"description\":\"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"azureFile\":{\"description\":\"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureFilePersistentVolumeSource\"},\"capacity\":{\"description\":\"capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"cephfs\":{\"description\":\"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CephFSPersistentVolumeSource\"},\"cinder\":{\"description\":\"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CinderPersistentVolumeSource\"},\"claimRef\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"},\"csi\":{\"description\":\"csi represents storage that is handled by an external CSI driver (Beta feature).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CSIPersistentVolumeSource\"},\"fc\":{\"description\":\"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FCVolumeSource\"},\"flexVolume\":{\"description\":\"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlexPersistentVolumeSource\"},\"flocker\":{\"description\":\"flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlockerVolumeSource\"},\"gcePersistentDisk\":{\"description\":\"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"glusterfs\":{\"description\":\"glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\"},\"hostPath\":{\"description\":\"hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostPathVolumeSource\"},\"iscsi\":{\"description\":\"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ISCSIPersistentVolumeSource\"},\"local\":{\"description\":\"local represents directly-attached storage with node affinity\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalVolumeSource\"},\"mountOptions\":{\"description\":\"mountOptions is the 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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"nfs\":{\"description\":\"nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NFSVolumeSource\"},\"nodeAffinity\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeNodeAffinity\"},\"persistentVolumeReclaimPolicy\":{\"description\":\"persistentVolumeReclaimPolicy defines 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\\n\\n\",\"type\":\"string\"},\"photonPersistentDisk\":{\"description\":\"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"portworxVolume\":{\"description\":\"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource\"},\"quobyte\":{\"description\":\"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"rbd\":{\"description\":\"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.RBDPersistentVolumeSource\"},\"scaleIO\":{\"description\":\"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\"},\"storageClassName\":{\"description\":\"storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.\",\"type\":\"string\"},\"storageos\":{\"description\":\"storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.StorageOSPersistentVolumeSource\"},\"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\":{\"description\":\"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}}},\"io.k8s.api.core.v1.PersistentVolumeStatus\":{\"description\":\"PersistentVolumeStatus is the current status of a persistent volume.\",\"type\":\"object\",\"properties\":{\"message\":{\"description\":\"message is 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\\n\\n\",\"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\"}}},\"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\":{\"description\":\"Represents a Photon Controller persistent disk resource.\",\"type\":\"object\",\"required\":[\"pdID\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"pdID\":{\"description\":\"pdID is the ID that identifies Photon Controller persistent disk\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodStatus\"}},\"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.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"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\",\"type\":\"object\",\"required\":[\"topologyKey\"],\"properties\":{\"labelSelector\":{\"description\":\"A label query over a set of resources, in this case pods.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaceSelector\":{\"description\":\"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 beta-level and is only honored when PodAffinityNamespaceSelector feature is enabled.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaces\":{\"description\":\"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\\\"\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodAntiAffinity\":{\"description\":\"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"io.k8s.api.core.v1.PodCondition\":{\"description\":\"PodCondition contains details for the current condition of this pod.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"Last time we probed the condition.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodDNSConfig\":{\"description\":\"PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\",\"type\":\"object\",\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodDNSConfigOption\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.PodDNSConfigOption\":{\"description\":\"PodDNSConfigOption defines DNS resolver options of a pod.\",\"type\":\"object\",\"properties\":{\"name\":{\"description\":\"Required.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"ip\":{\"description\":\"ip is an IP address (IPv4 or IPv6) assigned to the pod\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.PodList\":{\"description\":\"PodList is a list of Pods.\",\"type\":\"object\",\"required\":[\"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 pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Pod\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PodList\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PodOS\":{\"description\":\"PodOS defines the OS parameters of a pod.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PodReadinessGate\":{\"description\":\"PodReadinessGate contains the reference to a pod condition\",\"type\":\"object\",\"required\":[\"conditionType\"],\"properties\":{\"conditionType\":{\"description\":\"ConditionType refers to a condition in the pod's condition list with matching type.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"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. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"fsGroupChangePolicy\":{\"description\":\"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"},\"seccompProfile\":{\"description\":\"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"},\"supplementalGroups\":{\"description\":\"A list of groups applied to the first process run in each container, in addition to the container's primary GID.  If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\",\"default\":0}},\"sysctls\":{\"description\":\"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Sysctl\"}},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}}},\"io.k8s.api.core.v1.PodSpec\":{\"description\":\"PodSpec is a description of a pod.\",\"type\":\"object\",\"required\":[\"containers\"],\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"affinity\":{\"description\":\"If specified, the pod's scheduling constraints\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Affinity\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Container\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"dnsConfig\":{\"description\":\"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodDNSConfig\"},\"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'.\\n\\n\",\"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 beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EphemeralContainer\"},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostAlias\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Container\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"os\":{\"description\":\"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\\n\\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\\n\\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is an alpha field and requires the IdentifyPodOS feature\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodOS\"},\"overhead\":{\"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/688-pod-overhead/README.md This field is beta-level as of Kubernetes v1.18, and is only honored by servers that enable the PodOverhead feature.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"preemptionPolicy\":{\"description\":\"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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/580-pod-readiness-gates\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodReadinessGate\"}},\"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\\n\\n\",\"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/585-runtime-class 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\":{\"description\":\"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSecurityContext\"},\"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 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.\",\"type\":\"integer\",\"format\":\"int64\"},\"tolerations\":{\"description\":\"If specified, the pod's tolerations.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Toleration\"}},\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TopologySpreadConstraint\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Volume\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge,retainKeys\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"containerStatuses\":{\"description\":\"The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerStatus\"}},\"ephemeralContainerStatuses\":{\"description\":\"Status for any ephemeral containers that have run in this pod. This field is beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerStatus\"}},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ContainerStatus\"}},\"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\\n\\n\",\"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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodIP\"},\"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\\n\\n\",\"type\":\"string\"},\"reason\":{\"description\":\"A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'\",\"type\":\"string\"},\"startTime\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.core.v1.PodTemplate\":{\"description\":\"PodTemplate describes a template for creating copies of a predefined pod.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"template\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PodTemplateList\":{\"description\":\"PodTemplateList is a list of PodTemplates.\",\"type\":\"object\",\"required\":[\"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 pod templates\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplate\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"object\",\"properties\":{\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodSpec\"}}},\"io.k8s.api.core.v1.PortStatus\":{\"type\":\"object\",\"required\":[\"port\",\"protocol\"],\"properties\":{\"error\":{\"description\":\"Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\\n  CamelCase names\\n- cloud provider specific error values must have names that comply with the\\n  format foo.example.com/CamelCase.\",\"type\":\"string\"},\"port\":{\"description\":\"Port is the port number of the service port of which status is recorded here\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"protocol\":{\"description\":\"Protocol is the protocol of the service port of which status is recorded here The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.PortworxVolumeSource\":{\"description\":\"PortworxVolumeSource represents a Portworx volume resource.\",\"type\":\"object\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"volumeID\":{\"description\":\"volumeID uniquely identifies a Portworx volume\",\"type\":\"string\",\"default\":\"\"}}},\"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).\",\"type\":\"object\",\"required\":[\"weight\",\"preference\"],\"properties\":{\"preference\":{\"description\":\"A node selector term, associated with the corresponding weight.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelectorTerm\"},\"weight\":{\"description\":\"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"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.\",\"type\":\"object\",\"properties\":{\"exec\":{\"description\":\"Exec specifies the action to take.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ExecAction\"},\"failureThreshold\":{\"description\":\"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"grpc\":{\"description\":\"GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GRPCAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HTTPGetAction\"},\"initialDelaySeconds\":{\"description\":\"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"},\"periodSeconds\":{\"description\":\"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"successThreshold\":{\"description\":\"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies an action involving a TCP port.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.TCPSocketAction\"},\"terminationGracePeriodSeconds\":{\"description\":\"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\"type\":\"integer\",\"format\":\"int64\"},\"timeoutSeconds\":{\"description\":\"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ProjectedVolumeSource\":{\"description\":\"Represents a projected volume source\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"sources\":{\"description\":\"sources is the list of volume projections\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VolumeProjection\"}}}},\"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.\",\"type\":\"object\",\"required\":[\"registry\",\"volume\"],\"properties\":{\"group\":{\"description\":\"group to map volume access to Default is no group\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\"type\":\"boolean\"},\"registry\":{\"description\":\"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\",\"image\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\"type\":\"string\"},\"image\":{\"description\":\"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\",\"default\":\"\"},\"keyring\":{\"description\":\"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"pool\":{\"description\":\"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"},\"user\":{\"description\":\"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"monitors\",\"image\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\"type\":\"string\"},\"image\":{\"description\":\"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\",\"default\":\"\"},\"keyring\":{\"description\":\"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"pool\":{\"description\":\"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ReplicationController\":{\"description\":\"ReplicationController represents the configuration of a replication controller.\",\"type\":\"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\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerStatus\"}},\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"The last time the condition transitioned from one status to another.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\",\"default\":\"\"},\"type\":{\"description\":\"Type of replication controller condition.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ReplicationControllerList\":{\"description\":\"ReplicationControllerList is a collection of replication controllers.\",\"type\":\"object\",\"required\":[\"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 replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationController\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"template\":{\"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\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.core.v1.ReplicationControllerStatus\":{\"description\":\"ReplicationControllerStatus represents the current status of a replication controller.\",\"type\":\"object\",\"required\":[\"replicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"The number of available replicas (ready for at least minReadySeconds) for this replication controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a replication controller's current state.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ReplicationControllerCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"ObservedGeneration reflects the generation of the most recently observed replication controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"The number of ready replicas for this replication controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"io.k8s.api.core.v1.ResourceFieldSelector\":{\"description\":\"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\"type\":\"object\",\"required\":[\"resource\"],\"properties\":{\"containerName\":{\"description\":\"Container name: required for volumes, optional for env vars\",\"type\":\"string\"},\"divisor\":{\"description\":\"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"resource\":{\"description\":\"Required: resource to select\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.ResourceQuota\":{\"description\":\"ResourceQuota sets aggregate quota restrictions enforced per namespace\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuotaStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ResourceQuotaList\":{\"description\":\"ResourceQuotaList is a list of ResourceQuota items.\",\"type\":\"object\",\"required\":[\"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/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ResourceQuota\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"properties\":{\"hard\":{\"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\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"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.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ScopeSelector\"},\"scopes\":{\"description\":\"A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.ResourceQuotaStatus\":{\"description\":\"ResourceQuotaStatus defines the enforced hard limits and observed use.\",\"type\":\"object\",\"properties\":{\"hard\":{\"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\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"used\":{\"description\":\"Used is the current observed total usage of the resource in the namespace.\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}}},\"io.k8s.api.core.v1.ResourceRequirements\":{\"description\":\"ResourceRequirements describes the compute resource requirements.\",\"type\":\"object\",\"properties\":{\"limits\":{\"description\":\"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"requests\":{\"description\":\"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\"type\":\"object\",\"additionalProperties\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}}},\"io.k8s.api.core.v1.SELinuxOptions\":{\"description\":\"SELinuxOptions are the labels to be applied to the container\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\":{\"description\":\"ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\",\"type\":\"object\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\"\",\"type\":\"string\"},\"gateway\":{\"description\":\"gateway is the host address of the ScaleIO API Gateway.\",\"type\":\"string\",\"default\":\"\"},\"protectionDomain\":{\"description\":\"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretReference\"},\"sslEnabled\":{\"description\":\"sslEnabled is the flag to enable/disable SSL communication with Gateway, default false\",\"type\":\"boolean\"},\"storageMode\":{\"description\":\"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\"type\":\"string\"},\"storagePool\":{\"description\":\"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\"type\":\"string\"},\"system\":{\"description\":\"system is the name of the storage system as configured in ScaleIO.\",\"type\":\"string\",\"default\":\"\"},\"volumeName\":{\"description\":\"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ScaleIOVolumeSource\":{\"description\":\"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\"type\":\"object\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\"type\":\"string\"},\"gateway\":{\"description\":\"gateway is the host address of the ScaleIO API Gateway.\",\"type\":\"string\",\"default\":\"\"},\"protectionDomain\":{\"description\":\"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"sslEnabled\":{\"description\":\"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\"type\":\"boolean\"},\"storageMode\":{\"description\":\"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\"type\":\"string\"},\"storagePool\":{\"description\":\"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\"type\":\"string\"},\"system\":{\"description\":\"system is the name of the storage system as configured in ScaleIO.\",\"type\":\"string\",\"default\":\"\"},\"volumeName\":{\"description\":\"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ScopeSelector\":{\"description\":\"A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"A list of scope selector requirements by scope of the resources.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ScopedResourceSelectorRequirement\"}}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"scopeName\",\"operator\"],\"properties\":{\"operator\":{\"description\":\"Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.\\n\\n\",\"type\":\"string\",\"default\":\"\"},\"scopeName\":{\"description\":\"The name of the scope that the selector applies to.\\n\\n\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"io.k8s.api.core.v1.SeccompProfile\":{\"description\":\"SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.\",\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"localhostProfile\":{\"description\":\"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must 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.\\n\\n\",\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"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\"},\"data\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"format\":\"byte\"}},\"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.\",\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"stringData\":{\"description\":\"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\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"type\":{\"description\":\"Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\",\"type\":\"string\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"io.k8s.api.core.v1.SecretKeySelector\":{\"description\":\"SecretKeySelector selects a key of a Secret.\",\"type\":\"object\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key of the secret to select from.  Must be a valid secret key.\",\"type\":\"string\",\"default\":\"\"},\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"io.k8s.api.core.v1.SecretList\":{\"description\":\"SecretList is a list of Secret.\",\"type\":\"object\",\"required\":[\"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 secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Secret\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"object\",\"properties\":{\"items\":{\"description\":\"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"optional field specify whether the Secret or its key must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.SecretReference\":{\"description\":\"SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace\",\"type\":\"object\",\"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\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"defaultMode\":{\"description\":\"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.KeyToPath\"}},\"optional\":{\"description\":\"optional field specify whether the Secret or its keys must be defined\",\"type\":\"boolean\"},\"secretName\":{\"description\":\"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"allowPrivilegeEscalation\":{\"description\":\"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"capabilities\":{\"description\":\"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Capabilities\"},\"privileged\":{\"description\":\"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"procMount\":{\"description\":\"procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"string\"},\"readOnlyRootFilesystem\":{\"description\":\"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"boolean\"},\"runAsGroup\":{\"description\":\"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SELinuxOptions\"},\"seccompProfile\":{\"description\":\"The seccomp options to use by this container. If seccomp options are provided at both the pod \\u0026 container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SeccompProfile\"},\"windowsOptions\":{\"description\":\"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.WindowsSecurityContextOptions\"}}},\"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.\",\"type\":\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceSpec\"},\"status\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceStatus\"}},\"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\",\"type\":\"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\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ServiceAccountList\":{\"description\":\"ServiceAccountList is a list of ServiceAccount objects\",\"type\":\"object\",\"required\":[\"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 ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccount\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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).\",\"type\":\"object\",\"required\":[\"path\"],\"properties\":{\"audience\":{\"description\":\"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\"type\":\"string\"},\"expirationSeconds\":{\"description\":\"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\"type\":\"integer\",\"format\":\"int64\"},\"path\":{\"description\":\"path is the path relative to the mount point of the file to project the token into.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.ServiceList\":{\"description\":\"ServiceList holds a list of services.\",\"type\":\"object\",\"required\":[\"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 services\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.Service\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ServiceList\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ServicePort\":{\"description\":\"ServicePort contains information on service's port.\",\"type\":\"object\",\"required\":[\"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 https://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 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\",\"type\":\"integer\",\"format\":\"int32\"},\"port\":{\"description\":\"The port that will be exposed by this service.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"protocol\":{\"description\":\"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\". Default is TCP.\\n\\n\",\"type\":\"string\",\"default\":\"TCP\"},\"targetPort\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.core.v1.ServiceSpec\":{\"description\":\"ServiceSpec describes the attributes that a user creates on a service.\",\"type\":\"object\",\"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.  If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.\",\"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\\nThis 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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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 \\\"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.\\n\\n\",\"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).\",\"type\":\"integer\",\"format\":\"int32\"},\"internalTrafficPolicy\":{\"description\":\"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\\\".\",\"type\":\"string\"},\"ipFamilies\":{\"description\":\"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. 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.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-list-type\":\"atomic\"},\"ipFamilyPolicy\":{\"description\":\"IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. 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\"},\"loadBalancerClass\":{\"description\":\"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.\",\"type\":\"string\"},\"loadBalancerIP\":{\"description\":\"Only applies to Service Type: LoadBalancer. 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. Deprecated: This field was under-specified and its meaning varies across implementations, and it cannot support dual-stack. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version.\",\"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/create-external-load-balancer/\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServicePort\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"},\"x-kubernetes-map-type\":\"atomic\"},\"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\\n\\n\",\"type\":\"string\"},\"sessionAffinityConfig\":{\"description\":\"sessionAffinityConfig contains the configurations of session affinity.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SessionAffinityConfig\"},\"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\\n\\n\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ServiceStatus\":{\"description\":\"ServiceStatus represents the current status of a service.\",\"type\":\"object\",\"properties\":{\"conditions\":{\"description\":\"Current service state\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Condition\"},\"x-kubernetes-list-map-keys\":[\"type\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"loadBalancer\":{\"description\":\"LoadBalancer contains the current status of the load-balancer, if one is present.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LoadBalancerStatus\"}}},\"io.k8s.api.core.v1.SessionAffinityConfig\":{\"description\":\"SessionAffinityConfig represents the configurations of session affinity.\",\"type\":\"object\",\"properties\":{\"clientIP\":{\"description\":\"clientIP contains the configurations of Client IP based session affinity.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ClientIPConfig\"}}},\"io.k8s.api.core.v1.StorageOSPersistentVolumeSource\":{\"description\":\"Represents a StorageOS persistent volume resource.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ObjectReference\"},\"volumeName\":{\"description\":\"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.StorageOSVolumeSource\":{\"description\":\"Represents a StorageOS persistent volume resource.\",\"type\":\"object\",\"properties\":{\"fsType\":{\"description\":\"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeName\":{\"description\":\"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Sysctl\":{\"description\":\"Sysctl defines a kernel parameter to be set\",\"type\":\"object\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"Name of a property to set\",\"type\":\"string\",\"default\":\"\"},\"value\":{\"description\":\"Value of a property to set\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.TCPSocketAction\":{\"description\":\"TCPSocketAction describes an action based on opening a socket\",\"type\":\"object\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Optional: Host name to connect to, defaults to the pod IP.\",\"type\":\"string\"},\"port\":{\"description\":\"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"effect\"],\"properties\":{\"effect\":{\"description\":\"Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\\n\\n\",\"type\":\"string\",\"default\":\"\"},\"key\":{\"description\":\"Required. The taint key to be applied to a node.\",\"type\":\"string\",\"default\":\"\"},\"timeAdded\":{\"description\":\"TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"value\":{\"description\":\"The taint value corresponding to the taint key.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"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.\\n\\n\",\"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.\\n\\n\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\"}}},\"io.k8s.api.core.v1.TopologySpreadConstraint\":{\"description\":\"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\"type\":\"object\",\"required\":[\"maxSkew\",\"topologyKey\",\"whenUnsatisfiable\"],\"properties\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0},\"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\",\"default\":\"\"},\"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 assignment 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.\\n\\n\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.TypedLocalObjectReference\":{\"description\":\"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\"type\":\"object\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"required\":[\"name\"],\"properties\":{\"awsElasticBlockStore\":{\"description\":\"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"azureDisk\":{\"description\":\"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"azureFile\":{\"description\":\"azureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.AzureFileVolumeSource\"},\"cephfs\":{\"description\":\"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CephFSVolumeSource\"},\"cinder\":{\"description\":\"cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CinderVolumeSource\"},\"configMap\":{\"description\":\"configMap represents a configMap that should populate this volume\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapVolumeSource\"},\"csi\":{\"description\":\"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.CSIVolumeSource\"},\"downwardAPI\":{\"description\":\"downwardAPI represents downward API about the pod that should populate this volume\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIVolumeSource\"},\"emptyDir\":{\"description\":\"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EmptyDirVolumeSource\"},\"ephemeral\":{\"description\":\"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\\n\\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\\n   tracking are needed,\\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n   information on the connection between this volume type\\n   and PersistentVolumeClaim).\\n\\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\\n\\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.EphemeralVolumeSource\"},\"fc\":{\"description\":\"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FCVolumeSource\"},\"flexVolume\":{\"description\":\"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlexVolumeSource\"},\"flocker\":{\"description\":\"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.FlockerVolumeSource\"},\"gcePersistentDisk\":{\"description\":\"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"gitRepo\":{\"description\":\"gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GitRepoVolumeSource\"},\"glusterfs\":{\"description\":\"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.GlusterfsVolumeSource\"},\"hostPath\":{\"description\":\"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.HostPathVolumeSource\"},\"iscsi\":{\"description\":\"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ISCSIVolumeSource\"},\"name\":{\"description\":\"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\",\"default\":\"\"},\"nfs\":{\"description\":\"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NFSVolumeSource\"},\"persistentVolumeClaim\":{\"description\":\"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"},\"photonPersistentDisk\":{\"description\":\"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"portworxVolume\":{\"description\":\"portworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PortworxVolumeSource\"},\"projected\":{\"description\":\"projected items for all in one resources secrets, configmaps, and downward API\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ProjectedVolumeSource\"},\"quobyte\":{\"description\":\"quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"rbd\":{\"description\":\"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.RBDVolumeSource\"},\"scaleIO\":{\"description\":\"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ScaleIOVolumeSource\"},\"secret\":{\"description\":\"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretVolumeSource\"},\"storageos\":{\"description\":\"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.StorageOSVolumeSource\"},\"vsphereVolume\":{\"description\":\"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}}},\"io.k8s.api.core.v1.VolumeDevice\":{\"description\":\"volumeDevice describes a mapping of a raw block device within a container.\",\"type\":\"object\",\"required\":[\"name\",\"devicePath\"],\"properties\":{\"devicePath\":{\"description\":\"devicePath is the path inside of the container that the device will be mapped to.\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"name must match the name of a persistentVolumeClaim in the pod\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.api.core.v1.VolumeMount\":{\"description\":\"VolumeMount describes a mounting of a Volume within a container.\",\"type\":\"object\",\"required\":[\"name\",\"mountPath\"],\"properties\":{\"mountPath\":{\"description\":\"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\"type\":\"string\",\"default\":\"\"},\"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\",\"default\":\"\"},\"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\"}}},\"io.k8s.api.core.v1.VolumeNodeAffinity\":{\"description\":\"VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\",\"type\":\"object\",\"properties\":{\"required\":{\"description\":\"required specifies hard node constraints that must be met.\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.NodeSelector\"}}},\"io.k8s.api.core.v1.VolumeProjection\":{\"description\":\"Projection that may be projected along with other supported volume types\",\"type\":\"object\",\"properties\":{\"configMap\":{\"description\":\"configMap information about the configMap data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ConfigMapProjection\"},\"downwardAPI\":{\"description\":\"downwardAPI information about the downwardAPI data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.DownwardAPIProjection\"},\"secret\":{\"description\":\"secret information about the secret data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.SecretProjection\"},\"serviceAccountToken\":{\"description\":\"serviceAccountToken is information about the serviceAccountToken data to project\",\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.ServiceAccountTokenProjection\"}}},\"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\":{\"description\":\"Represents a vSphere volume resource.\",\"type\":\"object\",\"required\":[\"volumePath\"],\"properties\":{\"fsType\":{\"description\":\"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"storagePolicyID\":{\"description\":\"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\"type\":\"string\"},\"storagePolicyName\":{\"description\":\"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\"type\":\"string\"},\"volumePath\":{\"description\":\"volumePath is the path that identifies vSphere volume vmdk\",\"type\":\"string\",\"default\":\"\"}}},\"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)\",\"type\":\"object\",\"required\":[\"weight\",\"podAffinityTerm\"],\"properties\":{\"podAffinityTerm\":{\"description\":\"Required. A pod affinity term, associated with the corresponding weight.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.api.core.v1.PodAffinityTerm\"},\"weight\":{\"description\":\"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\",\"default\":0}}},\"io.k8s.api.core.v1.WindowsSecurityContextOptions\":{\"description\":\"WindowsSecurityContextOptions contain Windows-specific options and credentials.\",\"type\":\"object\",\"properties\":{\"gmsaCredentialSpec\":{\"description\":\"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\"type\":\"string\"},\"gmsaCredentialSpecName\":{\"description\":\"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\"type\":\"string\"},\"hostProcess\":{\"description\":\"HostProcess determines if a container should be run as a 'Host Process' container. This field is alpha-level and will only be honored by components that enable the WindowsHostProcessContainers feature flag. Setting this field without the feature flag will result in errors when validating the Pod. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).  In addition, if HostProcess is true then HostNetwork must also be set to true.\",\"type\":\"boolean\"},\"runAsUserName\":{\"description\":\"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"string\"}}},\"io.k8s.api.policy.v1.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.\",\"type\":\"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\"},\"deleteOptions\":{\"description\":\"DeleteOptions may be provided\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"ObjectMeta describes the pod that is being evicted.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"policy\",\"kind\":\"Eviction\",\"version\":\"v1\"}]},\"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.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"type\":\"object\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"name\":{\"description\":\"name is the plural name of the resource.\",\"type\":\"string\",\"default\":\"\"},\"namespaced\":{\"description\":\"namespaced indicates if a resource is namespaced or not.\",\"type\":\"boolean\",\"default\":false},\"shortNames\":{\"description\":\"shortNames is a list of suggested short names of the resource.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\",\"default\":\"\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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\"}}},\"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.\",\"type\":\"object\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest 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\",\"default\":\"\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIResourceList\",\"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.\",\"type\":\"object\",\"required\":[\"type\",\"status\",\"lastTransitionTime\",\"reason\",\"message\"],\"properties\":{\"lastTransitionTime\":{\"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.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"message is a human readable message indicating details about the transition. This may be an empty string.\",\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\",\"default\":\"\"},\"status\":{\"description\":\"status of the condition, one of True, False, Unknown.\",\"type\":\"string\",\"default\":\"\"},\"type\":{\"description\":\"type of condition in CamelCase or in foo.example.com/CamelCase.\",\"type\":\"string\",\"default\":\"\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\":{\"description\":\"DeleteOptions may be provided when deleting an API object.\",\"type\":\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.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.\",\"type\":\"object\",\"properties\":{\"matchExpressions\":{\"description\":\"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"}},\"matchLabels\":{\"description\":\"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}}},\"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.\",\"type\":\"object\",\"required\":[\"key\",\"operator\"],\"properties\":{\"key\":{\"description\":\"key is the label key that the selector applies to.\",\"type\":\"string\",\"default\":\"\",\"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\",\"default\":\"\"},\"values\":{\"description\":\"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"}}}},\"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}.\",\"type\":\"object\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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 DEPRECATED read-only field that is no longer populated by the system.\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\"type\":\"string\"},\"fieldsType\":{\"description\":\"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\"type\":\"string\"},\"fieldsV1\":{\"description\":\"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\"},\"manager\":{\"description\":\"Manager is an identifier of the workflow managing these fields.\",\"type\":\"string\"},\"operation\":{\"description\":\"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\"type\":\"string\"},\"subresource\":{\"description\":\"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\"type\":\"string\"},\"time\":{\"description\":\"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\":{\"description\":\"MicroTime is version of Time with microsecond level precision.\",\"type\":\"string\",\"format\":\"date-time\"},\"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.\",\"type\":\"object\",\"properties\":{\"annotations\":{\"description\":\"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"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\":{\"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\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"finalizers\":{\"description\":\"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\"type\":\"array\",\"items\":{\"type\":\"string\",\"default\":\"\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\",\"default\":\"\"}},\"managedFields\":{\"description\":\"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\"}},\"name\":{\"description\":\"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: 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.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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 DEPRECATED read-only field that is no longer populated by the system.\",\"type\":\"string\"},\"uid\":{\"description\":\"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\"}}},\"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.\",\"type\":\"object\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\",\"default\":\"\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\"type\":\"boolean\"},\"controller\":{\"description\":\"If true, this reference points to the managing controller.\",\"type\":\"boolean\"},\"kind\":{\"description\":\"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"type\":\"string\",\"default\":\"\"},\"name\":{\"description\":\"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\"type\":\"string\",\"default\":\"\"},\"uid\":{\"description\":\"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\"type\":\"string\",\"default\":\"\"}},\"x-kubernetes-map-type\":\"atomic\"},\"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.\",\"type\":\"object\",\"properties\":{\"resourceVersion\":{\"description\":\"Specifies the target ResourceVersion\",\"type\":\"string\"},\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Status\":{\"description\":\"Status is a return value for calls that don't return other objects.\",\"type\":\"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\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests 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\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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\"}},\"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.\",\"type\":\"object\",\"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\"}}},\"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.\",\"type\":\"object\",\"properties\":{\"causes\":{\"description\":\"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\"type\":\"array\",\"items\":{\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"type\":\"object\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"default\":{},\"$ref\":\"#/components/schemas/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"type\":{\"type\":\"string\",\"default\":\"\"}},\"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\":\"v2\"},{\"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\":\"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\":\"v1\"},{\"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\":\"flowcontrol.apiserver.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta2\"},{\"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\":\"v1\"},{\"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.\",\"type\":\"string\",\"format\":\"int-or-string\"}}}}"
  },
  {
    "path": "pkg/util/proto/testdata/swagger.json",
    "content": "{\n  \"swagger\": \"2.0\",\n  \"info\": {\n   \"title\": \"Kubernetes\",\n   \"version\": \"v1.8.0\"\n  },\n  \"paths\": {},\n  \"definitions\": {\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\": {\n      \"description\": \"CustomResourceColumnDefinition specifies a column for server side printing.\",\n      \"properties\": {\n        \"description\": {\n          \"description\": \"description is a human readable description of this column.\",\n          \"type\": \"string\"\n        },\n        \"format\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"jsonPath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"name is a human readable name for the column.\",\n          \"type\": \"string\"\n        },\n        \"priority\": {\n          \"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.\",\n          \"format\": \"int32\",\n          \"type\": \"integer\"\n        },\n        \"type\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      },\n      \"required\": [\n        \"name\",\n        \"type\",\n        \"jsonPath\"\n      ],\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\": {\n      \"description\": \"CustomResourceConversion describes how to convert different versions of a CR.\",\n      \"properties\": {\n        \"strategy\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"webhook\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\",\n          \"description\": \"webhook describes how to call the conversion webhook. Required when `strategy` is set to `Webhook`.\"\n        }\n      },\n      \"required\": [\n        \"strategy\"\n      ],\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\": {\n      \"description\": \"CustomResourceDefinition represents a resource that should be exposed on the API server.  Its name MUST be in the format <.spec.name>.<.spec.group>.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\",\n          \"description\": \"spec describes how the user wants the resources to appear\"\n        },\n        \"status\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\",\n          \"description\": \"status indicates the actual state of the CustomResourceDefinition\"\n        }\n      },\n      \"required\": [\n        \"spec\"\n      ],\n      \"type\": \"object\",\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinition\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\": {\n      \"description\": \"CustomResourceDefinitionCondition contains details for the current condition of this pod.\",\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\",\n          \"description\": \"lastTransitionTime last time the condition transitioned from one status to another.\"\n        },\n        \"message\": {\n          \"description\": \"message is a human-readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"reason is a unique, one-word, CamelCase reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"status is the status of the condition. Can be True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"type is the type of the condition. Types include Established, NamesAccepted and Terminating.\",\n          \"type\": \"string\"\n        }\n      },\n      \"required\": [\n        \"type\",\n        \"status\"\n      ],\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionList\": {\n      \"description\": \"CustomResourceDefinitionList is a list of CustomResourceDefinition objects.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"items list individual CustomResourceDefinition objects\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\"\n          },\n          \"type\": \"array\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"required\": [\n        \"items\"\n      ],\n      \"type\": \"object\",\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apiextensions.k8s.io\",\n          \"kind\": \"CustomResourceDefinitionList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\": {\n      \"description\": \"CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition\",\n      \"properties\": {\n        \"categories\": {\n          \"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`.\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"type\": \"array\"\n        },\n        \"kind\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"listKind\": {\n          \"description\": \"listKind is the serialized kind of the list for this resource. Defaults to \\\"`kind`List\\\".\",\n          \"type\": \"string\"\n        },\n        \"plural\": {\n          \"description\": \"plural is the plural name of the resource to serve. The custom resources are served under `/apis/<group>/<version>/.../<plural>`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`). Must be all lowercase.\",\n          \"type\": \"string\"\n        },\n        \"shortNames\": {\n          \"description\": \"shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get <shortname>`. It must be all lowercase.\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"type\": \"array\"\n        },\n        \"singular\": {\n          \"description\": \"singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.\",\n          \"type\": \"string\"\n        }\n      },\n      \"required\": [\n        \"plural\",\n        \"kind\"\n      ],\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionSpec\": {\n      \"description\": \"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\n      \"properties\": {\n        \"conversion\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceConversion\",\n          \"description\": \"conversion defines conversion settings for the CRD.\"\n        },\n        \"group\": {\n          \"description\": \"group is the API group of the defined custom resource. The custom resources are served under `/apis/<group>/...`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`).\",\n          \"type\": \"string\"\n        },\n        \"names\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\",\n          \"description\": \"names specify the resource and kind names for the custom resource.\"\n        },\n        \"preserveUnknownFields\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"scope\": {\n          \"description\": \"scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are `Cluster` and `Namespaced`.\",\n          \"type\": \"string\"\n        },\n        \"versions\": {\n          \"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 > beta > 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.\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\"\n          },\n          \"type\": \"array\"\n        }\n      },\n      \"required\": [\n        \"group\",\n        \"names\",\n        \"scope\",\n        \"versions\"\n      ],\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionStatus\": {\n      \"description\": \"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\n      \"properties\": {\n        \"acceptedNames\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionNames\",\n          \"description\": \"acceptedNames are the names that are actually being used to serve discovery. They may be different than the names in spec.\"\n        },\n        \"conditions\": {\n          \"description\": \"conditions indicate state for particular aspects of a CustomResourceDefinition\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionCondition\"\n          },\n          \"type\": \"array\"\n        },\n        \"storedVersions\": {\n          \"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.\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"type\": \"array\"\n        }\n      },\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion\": {\n      \"description\": \"CustomResourceDefinitionVersion describes a version for CRD.\",\n      \"properties\": {\n        \"additionalPrinterColumns\": {\n          \"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.\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition\"\n          },\n          \"type\": \"array\"\n        },\n        \"name\": {\n          \"description\": \"name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/<group>/<version>/...` if `served` is true.\",\n          \"type\": \"string\"\n        },\n        \"schema\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\",\n          \"description\": \"schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.\"\n        },\n        \"served\": {\n          \"description\": \"served is a flag enabling/disabling this version from being served via REST APIs\",\n          \"type\": \"boolean\"\n        },\n        \"storage\": {\n          \"description\": \"storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.\",\n          \"type\": \"boolean\"\n        },\n        \"subresources\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\",\n          \"description\": \"subresources specify what subresources this version of the defined custom resource have.\"\n        }\n      },\n      \"required\": [\n        \"name\",\n        \"served\",\n        \"storage\"\n      ],\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\": {\n      \"description\": \"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\n      \"properties\": {\n        \"labelSelectorPath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"specReplicasPath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"statusReplicasPath\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      },\n      \"required\": [\n        \"specReplicasPath\",\n        \"statusReplicasPath\"\n      ],\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\": {\n      \"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\",\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresources\": {\n      \"description\": \"CustomResourceSubresources defines the status and scale subresources for CustomResources.\",\n      \"properties\": {\n        \"scale\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceScale\",\n          \"description\": \"scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object.\"\n        },\n        \"status\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceSubresourceStatus\",\n          \"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.\"\n        }\n      },\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation\": {\n      \"description\": \"CustomResourceValidation is a list of validation methods for CustomResources.\",\n      \"properties\": {\n        \"openAPIV3Schema\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\",\n          \"description\": \"openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.\"\n        }\n      },\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\": {\n      \"description\": \"ExternalDocumentation allows referencing an external resource for extended documentation.\",\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"url\": {\n          \"type\": \"string\"\n        }\n      },\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\": {\n      \"description\": \"JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\": {\n      \"description\": \"JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).\",\n      \"properties\": {\n        \"$ref\": {\n          \"type\": \"string\"\n        },\n        \"$schema\": {\n          \"type\": \"string\"\n        },\n        \"additionalItems\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\"\n        },\n        \"additionalProperties\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\"\n        },\n        \"allOf\": {\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n          },\n          \"type\": \"array\"\n        },\n        \"anyOf\": {\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n          },\n          \"type\": \"array\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\",\n          \"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.\"\n        },\n        \"definitions\": {\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n          },\n          \"type\": \"object\"\n        },\n        \"dependencies\": {\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\"\n          },\n          \"type\": \"object\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"enum\": {\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"\n          },\n          \"type\": \"array\"\n        },\n        \"example\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON\"\n        },\n        \"exclusiveMaximum\": {\n          \"type\": \"boolean\"\n        },\n        \"exclusiveMinimum\": {\n          \"type\": \"boolean\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ExternalDocumentation\"\n        },\n        \"format\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"id\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray\"\n        },\n        \"maxItems\": {\n          \"format\": \"int64\",\n          \"type\": \"integer\"\n        },\n        \"maxLength\": {\n          \"format\": \"int64\",\n          \"type\": \"integer\"\n        },\n        \"maxProperties\": {\n          \"format\": \"int64\",\n          \"type\": \"integer\"\n        },\n        \"maximum\": {\n          \"format\": \"double\",\n          \"type\": \"number\"\n        },\n        \"minItems\": {\n          \"format\": \"int64\",\n          \"type\": \"integer\"\n        },\n        \"minLength\": {\n          \"format\": \"int64\",\n          \"type\": \"integer\"\n        },\n        \"minProperties\": {\n          \"format\": \"int64\",\n          \"type\": \"integer\"\n        },\n        \"minimum\": {\n          \"format\": \"double\",\n          \"type\": \"number\"\n        },\n        \"multipleOf\": {\n          \"format\": \"double\",\n          \"type\": \"number\"\n        },\n        \"not\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n        },\n        \"nullable\": {\n          \"type\": \"boolean\"\n        },\n        \"oneOf\": {\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n          },\n          \"type\": \"array\"\n        },\n        \"pattern\": {\n          \"type\": \"string\"\n        },\n        \"patternProperties\": {\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n          },\n          \"type\": \"object\"\n        },\n        \"properties\": {\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps\"\n          },\n          \"type\": \"object\"\n        },\n        \"required\": {\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"type\": \"array\"\n        },\n        \"title\": {\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"type\": \"string\"\n        },\n        \"uniqueItems\": {\n          \"type\": \"boolean\"\n        },\n        \"x-kubernetes-embedded-resource\": {\n          \"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).\",\n          \"type\": \"boolean\"\n        },\n        \"x-kubernetes-int-or-string\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"x-kubernetes-list-map-keys\": {\n          \"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.\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"type\": \"array\"\n        },\n        \"x-kubernetes-list-type\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"x-kubernetes-map-type\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"x-kubernetes-preserve-unknown-fields\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        }\n      },\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrArray\": {\n      \"description\": \"JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrBool\": {\n      \"description\": \"JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray\": {\n      \"description\": \"JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\": {\n      \"description\": \"ServiceReference holds a reference to Service.legacy.k8s.io\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"name is the name of the service. Required\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"namespace is the namespace of the service. Required\",\n          \"type\": \"string\"\n        },\n        \"path\": {\n          \"description\": \"path is an optional URL path at which the webhook will be contacted.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"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.\",\n          \"format\": \"int32\",\n          \"type\": \"integer\"\n        }\n      },\n      \"required\": [\n        \"namespace\",\n        \"name\"\n      ],\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\": {\n      \"description\": \"WebhookClientConfig contains the information to make a TLS connection with the webhook.\",\n      \"properties\": {\n        \"caBundle\": {\n          \"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.\",\n          \"format\": \"byte\",\n          \"type\": \"string\"\n        },\n        \"service\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference\",\n          \"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`.\"\n        },\n        \"url\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      },\n      \"type\": \"object\"\n    },\n    \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookConversion\": {\n      \"description\": \"WebhookConversion describes how to call a conversion webhook\",\n      \"properties\": {\n        \"clientConfig\": {\n          \"$ref\": \"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.WebhookClientConfig\",\n          \"description\": \"clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.\"\n        },\n        \"conversionReviewVersions\": {\n          \"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.\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"type\": \"array\"\n        }\n      },\n      \"required\": [\n        \"conversionReviewVersions\"\n      ],\n      \"type\": \"object\"\n    },\n    \"io.k8s.api.apps.v1beta1.ControllerRevision\": {\n      \"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.\",\n      \"required\": [\n        \"revision\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"data\": {\n          \"description\": \"Data is the serialized representation of the state.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"revision\": {\n          \"description\": \"Revision indicates the revision of the state represented by Data.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.ControllerRevisionList\": {\n      \"description\": \"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of ControllerRevisions\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevisionList\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.Deployment\": {\n      \"description\": \"Deployment enables declarative updates for Pods and ReplicaSets.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Specification of the desired behavior of the Deployment.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.DeploymentSpec\"\n        },\n        \"status\": {\n          \"description\": \"Most recently observed status of the Deployment.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.DeploymentCondition\": {\n      \"description\": \"DeploymentCondition describes the state of a deployment at a certain point.\",\n      \"required\": [\n        \"type\",\n        \"status\"\n      ],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastUpdateTime\": {\n          \"description\": \"The last time this condition was updated.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"A human readable message indicating details about the transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"The reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of deployment condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.DeploymentList\": {\n      \"description\": \"DeploymentList is a list of Deployments.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of Deployments.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"DeploymentList\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.DeploymentRollback\": {\n      \"description\": \"DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.\",\n      \"required\": [\n        \"name\",\n        \"rollbackTo\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Required: This must match the Name of a deployment.\",\n          \"type\": \"string\"\n        },\n        \"rollbackTo\": {\n          \"description\": \"The config of this deployment rollback.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig\"\n        },\n        \"updatedAnnotations\": {\n          \"description\": \"The annotations to be updated to a deployment\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"DeploymentRollback\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.DeploymentSpec\": {\n      \"description\": \"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\n      \"required\": [\n        \"template\"\n      ],\n      \"properties\": {\n        \"minReadySeconds\": {\n          \"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)\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"paused\": {\n          \"description\": \"Indicates that the deployment is paused.\",\n          \"type\": \"boolean\"\n        },\n        \"progressDeadlineSeconds\": {\n          \"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. Once autoRollback is implemented, the deployment controller will automatically rollback failed deployments. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"revisionHistoryLimit\": {\n          \"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 2.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"rollbackTo\": {\n          \"description\": \"DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig\"\n        },\n        \"selector\": {\n          \"description\": \"Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"strategy\": {\n          \"description\": \"The deployment strategy to use to replace existing pods with new ones.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.DeploymentStrategy\"\n        },\n        \"template\": {\n          \"description\": \"Template describes the pods that will be created.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.DeploymentStatus\": {\n      \"description\": \"DeploymentStatus is the most recently observed status of the Deployment.\",\n      \"properties\": {\n        \"availableReplicas\": {\n          \"description\": \"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"collisionCount\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"conditions\": {\n          \"description\": \"Represents the latest available observations of a deployment's current state.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.DeploymentCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"observedGeneration\": {\n          \"description\": \"The generation observed by the deployment controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"readyReplicas\": {\n          \"description\": \"Total number of ready pods targeted by this deployment.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"unavailableReplicas\": {\n          \"description\": \"Total number of unavailable pods targeted by this deployment.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"updatedReplicas\": {\n          \"description\": \"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.DeploymentStrategy\": {\n      \"description\": \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n      \"properties\": {\n        \"rollingUpdate\": {\n          \"description\": \"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateDeployment\"\n        },\n        \"type\": {\n          \"description\": \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.RollbackConfig\": {\n      \"description\": \"DEPRECATED.\",\n      \"properties\": {\n        \"revision\": {\n          \"description\": \"The revision to rollback to. If set to 0, rollback to the last revision.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.RollingUpdateDeployment\": {\n      \"description\": \"Spec to control the desired behavior of rolling update.\",\n      \"properties\": {\n        \"maxSurge\": {\n          \"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 RC 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 RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        },\n        \"maxUnavailable\": {\n          \"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 RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\": {\n      \"description\": \"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\n      \"properties\": {\n        \"partition\": {\n          \"description\": \"Partition indicates the ordinal at which the StatefulSet should be partitioned.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.Scale\": {\n      \"description\": \"Scale represents a scaling request for a resource.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.ScaleSpec\"\n        },\n        \"status\": {\n          \"description\": \"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.ScaleStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.ScaleSpec\": {\n      \"description\": \"ScaleSpec describes the attributes of a scale subresource\",\n      \"properties\": {\n        \"replicas\": {\n          \"description\": \"desired number of instances for the scaled object.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.ScaleStatus\": {\n      \"description\": \"ScaleStatus represents the current status of a scale subresource.\",\n      \"required\": [\n        \"replicas\"\n      ],\n      \"properties\": {\n        \"replicas\": {\n          \"description\": \"actual number of observed instances of the scaled object.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"selector\": {\n          \"description\": \"label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"targetSelector\": {\n          \"description\": \"label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.StatefulSet\": {\n      \"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.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the desired identities of pods in this set.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.StatefulSetList\": {\n      \"description\": \"StatefulSetList is a collection of StatefulSets.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSetList\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.StatefulSetSpec\": {\n      \"description\": \"A StatefulSetSpec is the specification of a StatefulSet.\",\n      \"required\": [\n        \"template\",\n        \"serviceName\"\n      ],\n      \"properties\": {\n        \"podManagementPolicy\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"replicas\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"revisionHistoryLimit\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"selector\": {\n          \"description\": \"selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"serviceName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"template\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        },\n        \"updateStrategy\": {\n          \"description\": \"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy\"\n        },\n        \"volumeClaimTemplates\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.StatefulSetStatus\": {\n      \"description\": \"StatefulSetStatus represents the current state of a StatefulSet.\",\n      \"required\": [\n        \"replicas\"\n      ],\n      \"properties\": {\n        \"collisionCount\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"currentReplicas\": {\n          \"description\": \"currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"currentRevision\": {\n          \"description\": \"currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).\",\n          \"type\": \"string\"\n        },\n        \"observedGeneration\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"readyReplicas\": {\n          \"description\": \"readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"replicas is the number of Pods created by the StatefulSet controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"updateRevision\": {\n          \"description\": \"updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)\",\n          \"type\": \"string\"\n        },\n        \"updatedReplicas\": {\n          \"description\": \"updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy\": {\n      \"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.\",\n      \"properties\": {\n        \"rollingUpdate\": {\n          \"description\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\"\n        },\n        \"type\": {\n          \"description\": \"Type indicates the type of the StatefulSetUpdateStrategy.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.LocalSubjectAccessReview\": {\n      \"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.\",\n      \"required\": [\n        \"spec\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"LocalSubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1.NonResourceAttributes\": {\n      \"description\": \"NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\",\n      \"properties\": {\n        \"path\": {\n          \"description\": \"Path is the URL path of the request\",\n          \"type\": \"string\"\n        },\n        \"verb\": {\n          \"description\": \"Verb is the standard HTTP verb\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.ResourceAttributes\": {\n      \"description\": \"ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\",\n      \"properties\": {\n        \"group\": {\n          \"description\": \"Group is the API Group of the Resource.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name is the name of the resource being requested for a \\\"get\\\" or deleted for a \\\"delete\\\". \\\"\\\" (empty) means all.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"resource\": {\n          \"description\": \"Resource is one of the existing resource types.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"subresource\": {\n          \"description\": \"Subresource is one of the existing resource types.  \\\"\\\" means none.\",\n          \"type\": \"string\"\n        },\n        \"verb\": {\n          \"description\": \"Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"version\": {\n          \"description\": \"Version is the API Version of the Resource.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.SelfSubjectAccessReview\": {\n      \"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\",\n      \"required\": [\n        \"spec\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated.  user and groups must be empty\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SelfSubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\": {\n      \"description\": \"SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n      \"properties\": {\n        \"nonResourceAttributes\": {\n          \"description\": \"NonResourceAttributes describes information for a non-resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes\"\n        },\n        \"resourceAttributes\": {\n          \"description\": \"ResourceAuthorizationAttributes describes information for a resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.ResourceAttributes\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.SubjectAccessReview\": {\n      \"description\": \"SubjectAccessReview checks whether or not a user or group can perform an action.\",\n      \"required\": [\n        \"spec\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1.SubjectAccessReviewSpec\": {\n      \"description\": \"SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n      \"properties\": {\n        \"extra\": {\n          \"description\": \"Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer it needs a reflection here.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"string\"\n            }\n          }\n        },\n        \"groups\": {\n          \"description\": \"Groups is the groups you're testing for.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"nonResourceAttributes\": {\n          \"description\": \"NonResourceAttributes describes information for a non-resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes\"\n        },\n        \"resourceAttributes\": {\n          \"description\": \"ResourceAuthorizationAttributes describes information for a resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.ResourceAttributes\"\n        },\n        \"uid\": {\n          \"description\": \"UID information about the requesting user.\",\n          \"type\": \"string\"\n        },\n        \"user\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.SubjectAccessReviewStatus\": {\n      \"description\": \"SubjectAccessReviewStatus\",\n      \"required\": [\n        \"allowed\"\n      ],\n      \"properties\": {\n        \"allowed\": {\n          \"description\": \"Allowed is required.  True if the action would be allowed, false otherwise.\",\n          \"type\": \"boolean\"\n        },\n        \"evaluationError\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"Reason is optional.  It indicates why a request was allowed or denied.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview\": {\n      \"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.\",\n      \"required\": [\n        \"spec\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"LocalSubjectAccessReview\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1beta1.NonResourceAttributes\": {\n      \"description\": \"NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\",\n      \"properties\": {\n        \"path\": {\n          \"description\": \"Path is the URL path of the request\",\n          \"type\": \"string\"\n        },\n        \"verb\": {\n          \"description\": \"Verb is the standard HTTP verb\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1beta1.ResourceAttributes\": {\n      \"description\": \"ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\",\n      \"properties\": {\n        \"group\": {\n          \"description\": \"Group is the API Group of the Resource.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name is the name of the resource being requested for a \\\"get\\\" or deleted for a \\\"delete\\\". \\\"\\\" (empty) means all.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"resource\": {\n          \"description\": \"Resource is one of the existing resource types.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"subresource\": {\n          \"description\": \"Subresource is one of the existing resource types.  \\\"\\\" means none.\",\n          \"type\": \"string\"\n        },\n        \"verb\": {\n          \"description\": \"Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"version\": {\n          \"description\": \"Version is the API Version of the Resource.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview\": {\n      \"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\",\n      \"required\": [\n        \"spec\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated.  user and groups must be empty\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SelfSubjectAccessReview\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec\": {\n      \"description\": \"SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n      \"properties\": {\n        \"nonResourceAttributes\": {\n          \"description\": \"NonResourceAttributes describes information for a non-resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes\"\n        },\n        \"resourceAttributes\": {\n          \"description\": \"ResourceAuthorizationAttributes describes information for a resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1beta1.SubjectAccessReview\": {\n      \"description\": \"SubjectAccessReview checks whether or not a user or group can perform an action.\",\n      \"required\": [\n        \"spec\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SubjectAccessReview\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec\": {\n      \"description\": \"SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n      \"properties\": {\n        \"extra\": {\n          \"description\": \"Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer it needs a reflection here.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"string\"\n            }\n          }\n        },\n        \"group\": {\n          \"description\": \"Groups is the groups you're testing for.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"nonResourceAttributes\": {\n          \"description\": \"NonResourceAttributes describes information for a non-resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes\"\n        },\n        \"resourceAttributes\": {\n          \"description\": \"ResourceAuthorizationAttributes describes information for a resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes\"\n        },\n        \"uid\": {\n          \"description\": \"UID information about the requesting user.\",\n          \"type\": \"string\"\n        },\n        \"user\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\": {\n      \"description\": \"SubjectAccessReviewStatus\",\n      \"required\": [\n        \"allowed\"\n      ],\n      \"properties\": {\n        \"allowed\": {\n          \"description\": \"Allowed is required.  True if the action would be allowed, false otherwise.\",\n          \"type\": \"boolean\"\n        },\n        \"evaluationError\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"Reason is optional.  It indicates why a request was allowed or denied.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\": {\n      \"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.\",\n      \"required\": [\n        \"volumeID\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"partition\": {\n          \"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).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"readOnly\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"volumeID\": {\n          \"description\": \"Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Affinity\": {\n      \"description\": \"Affinity is a group of affinity scheduling rules.\",\n      \"properties\": {\n        \"nodeAffinity\": {\n          \"description\": \"Describes node affinity scheduling rules for the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeAffinity\"\n        },\n        \"podAffinity\": {\n          \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAffinity\"\n        },\n        \"podAntiAffinity\": {\n          \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAntiAffinity\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AttachedVolume\": {\n      \"description\": \"AttachedVolume describes a volume attached to a node\",\n      \"required\": [\n        \"name\",\n        \"devicePath\"\n      ],\n      \"properties\": {\n        \"devicePath\": {\n          \"description\": \"DevicePath represents the device path where the volume should be available\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the attached volume\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AzureDiskVolumeSource\": {\n      \"description\": \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n      \"required\": [\n        \"diskName\",\n        \"diskURI\"\n      ],\n      \"properties\": {\n        \"cachingMode\": {\n          \"description\": \"Host Caching mode: None, Read Only, Read Write.\",\n          \"type\": \"string\"\n        },\n        \"diskName\": {\n          \"description\": \"The Name of the data disk in the blob storage\",\n          \"type\": \"string\"\n        },\n        \"diskURI\": {\n          \"description\": \"The URI the data disk in the blob storage\",\n          \"type\": \"string\"\n        },\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AzureFilePersistentVolumeSource\": {\n      \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n      \"required\": [\n        \"secretName\",\n        \"shareName\"\n      ],\n      \"properties\": {\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretName\": {\n          \"description\": \"the name of secret that contains Azure Storage Account Name and Key\",\n          \"type\": \"string\"\n        },\n        \"secretNamespace\": {\n          \"description\": \"the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod\",\n          \"type\": \"string\"\n        },\n        \"shareName\": {\n          \"description\": \"Share Name\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AzureFileVolumeSource\": {\n      \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n      \"required\": [\n        \"secretName\",\n        \"shareName\"\n      ],\n      \"properties\": {\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretName\": {\n          \"description\": \"the name of secret that contains Azure Storage Account Name and Key\",\n          \"type\": \"string\"\n        },\n        \"shareName\": {\n          \"description\": \"Share Name\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Binding\": {\n      \"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.\",\n      \"required\": [\n        \"target\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"target\": {\n          \"description\": \"The target object that you want to bind to the standard object.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Binding\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.Capabilities\": {\n      \"description\": \"Adds and removes POSIX capabilities from running containers.\",\n      \"properties\": {\n        \"add\": {\n          \"description\": \"Added capabilities\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"drop\": {\n          \"description\": \"Removed capabilities\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.CephFSPersistentVolumeSource\": {\n      \"description\": \"Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\",\n      \"required\": [\n        \"monitors\"\n      ],\n      \"properties\": {\n        \"monitors\": {\n          \"description\": \"Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"path\": {\n          \"description\": \"Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"boolean\"\n        },\n        \"secretFile\": {\n          \"description\": \"Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"secretRef\": {\n          \"description\": \"Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        },\n        \"user\": {\n          \"description\": \"Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.CephFSVolumeSource\": {\n      \"description\": \"Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\",\n      \"required\": [\n        \"monitors\"\n      ],\n      \"properties\": {\n        \"monitors\": {\n          \"description\": \"Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"path\": {\n          \"description\": \"Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"boolean\"\n        },\n        \"secretFile\": {\n          \"description\": \"Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"secretRef\": {\n          \"description\": \"Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"user\": {\n          \"description\": \"Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.CinderVolumeSource\": {\n      \"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.\",\n      \"required\": [\n        \"volumeID\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\n          \"type\": \"boolean\"\n        },\n        \"volumeID\": {\n          \"description\": \"volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ClientIPConfig\": {\n      \"description\": \"ClientIPConfig represents the configurations of Client IP based session affinity.\",\n      \"properties\": {\n        \"timeoutSeconds\": {\n          \"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).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ComponentCondition\": {\n      \"description\": \"Information about the condition of a component.\",\n      \"required\": [\n        \"type\",\n        \"status\"\n      ],\n      \"properties\": {\n        \"error\": {\n          \"description\": \"Condition error code for a component. For example, a health check error code.\",\n          \"type\": \"string\"\n        },\n        \"message\": {\n          \"description\": \"Message about the condition for a component. For example, information about a health check.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition for a component. Valid values for \\\"Healthy\\\": \\\"True\\\", \\\"False\\\", or \\\"Unknown\\\".\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of condition for a component. Valid value: \\\"Healthy\\\"\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ComponentStatus\": {\n      \"description\": \"ComponentStatus (and ComponentStatusList) holds the cluster validation info.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"conditions\": {\n          \"description\": \"List of component conditions observed\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ComponentCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ComponentStatus\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ComponentStatusList\": {\n      \"description\": \"Status of all the conditions for the component as a list of ComponentStatus objects.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of ComponentStatus objects.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ComponentStatus\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ComponentStatusList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ConfigMap\": {\n      \"description\": \"ConfigMap holds configuration data for pods to consume.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"data\": {\n          \"description\": \"Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ConfigMapEnvSource\": {\n      \"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.\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the ConfigMap must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ConfigMapKeySelector\": {\n      \"description\": \"Selects a key from a ConfigMap.\",\n      \"required\": [\n        \"key\"\n      ],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"The key to select.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the ConfigMap or it's key must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ConfigMapList\": {\n      \"description\": \"ConfigMapList is a resource containing a list of ConfigMap objects.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of ConfigMaps.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ConfigMapList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ConfigMapProjection\": {\n      \"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.\",\n      \"properties\": {\n        \"items\": {\n          \"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 '..'.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.KeyToPath\"\n          }\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the ConfigMap or it's keys must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ConfigMapVolumeSource\": {\n      \"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.\",\n      \"properties\": {\n        \"defaultMode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"items\": {\n          \"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 '..'.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.KeyToPath\"\n          }\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the ConfigMap or it's keys must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Container\": {\n      \"description\": \"A single application container that you want to run within a pod.\",\n      \"required\": [\n        \"name\",\n        \"image\"\n      ],\n      \"properties\": {\n        \"args\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"command\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"env\": {\n          \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EnvVar\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"envFrom\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EnvFromSource\"\n          }\n        },\n        \"image\": {\n          \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images\",\n          \"type\": \"string\"\n        },\n        \"imagePullPolicy\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"lifecycle\": {\n          \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Lifecycle\"\n        },\n        \"livenessProbe\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Probe\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"ports\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerPort\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"containerPort\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"readinessProbe\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Probe\"\n        },\n        \"resources\": {\n          \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"\n        },\n        \"securityContext\": {\n          \"description\": \"Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecurityContext\"\n        },\n        \"stdin\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"stdinOnce\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"terminationMessagePath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"terminationMessagePolicy\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"tty\": {\n          \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n          \"type\": \"boolean\"\n        },\n        \"volumeMounts\": {\n          \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.VolumeMount\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"mountPath\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"workingDir\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerImage\": {\n      \"description\": \"Describe a container image\",\n      \"required\": [\n        \"names\"\n      ],\n      \"properties\": {\n        \"names\": {\n          \"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\\\"]\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"sizeBytes\": {\n          \"description\": \"The size of the image in bytes.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerPort\": {\n      \"description\": \"ContainerPort represents a network port in a single container.\",\n      \"required\": [\n        \"containerPort\"\n      ],\n      \"properties\": {\n        \"containerPort\": {\n          \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"hostIP\": {\n          \"description\": \"What host IP to bind the external port to.\",\n          \"type\": \"string\"\n        },\n        \"hostPort\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"protocol\": {\n          \"description\": \"Protocol for port. Must be UDP or TCP. Defaults to \\\"TCP\\\".\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerState\": {\n      \"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.\",\n      \"properties\": {\n        \"running\": {\n          \"description\": \"Details about a running container\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStateRunning\"\n        },\n        \"terminated\": {\n          \"description\": \"Details about a terminated container\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStateTerminated\"\n        },\n        \"waiting\": {\n          \"description\": \"Details about a waiting container\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStateWaiting\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerStateRunning\": {\n      \"description\": \"ContainerStateRunning is a running state of a container.\",\n      \"properties\": {\n        \"startedAt\": {\n          \"description\": \"Time at which the container was last (re-)started\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerStateTerminated\": {\n      \"description\": \"ContainerStateTerminated is a terminated state of a container.\",\n      \"required\": [\n        \"exitCode\"\n      ],\n      \"properties\": {\n        \"containerID\": {\n          \"description\": \"Container's ID in the format 'docker://\\u003ccontainer_id\\u003e'\",\n          \"type\": \"string\"\n        },\n        \"exitCode\": {\n          \"description\": \"Exit status from the last termination of the container\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"finishedAt\": {\n          \"description\": \"Time at which the container last terminated\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"Message regarding the last termination of the container\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"(brief) reason from the last termination of the container\",\n          \"type\": \"string\"\n        },\n        \"signal\": {\n          \"description\": \"Signal from the last termination of the container\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"startedAt\": {\n          \"description\": \"Time at which previous execution of the container started\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerStateWaiting\": {\n      \"description\": \"ContainerStateWaiting is a waiting state of a container.\",\n      \"properties\": {\n        \"message\": {\n          \"description\": \"Message regarding why the container is not yet running.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"(brief) reason the container is not yet running.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerStatus\": {\n      \"description\": \"ContainerStatus contains details for the current status of this container.\",\n      \"required\": [\n        \"name\",\n        \"ready\",\n        \"restartCount\",\n        \"image\",\n        \"imageID\"\n      ],\n      \"properties\": {\n        \"containerID\": {\n          \"description\": \"Container's ID in the format 'docker://\\u003ccontainer_id\\u003e'.\",\n          \"type\": \"string\"\n        },\n        \"image\": {\n          \"description\": \"The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images\",\n          \"type\": \"string\"\n        },\n        \"imageID\": {\n          \"description\": \"ImageID of the container's image.\",\n          \"type\": \"string\"\n        },\n        \"lastState\": {\n          \"description\": \"Details about the container's last termination condition.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerState\"\n        },\n        \"name\": {\n          \"description\": \"This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.\",\n          \"type\": \"string\"\n        },\n        \"ready\": {\n          \"description\": \"Specifies whether the container has passed its readiness probe.\",\n          \"type\": \"boolean\"\n        },\n        \"restartCount\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"state\": {\n          \"description\": \"Details about the container's current condition.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerState\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.DaemonEndpoint\": {\n      \"description\": \"DaemonEndpoint contains information about a single Daemon endpoint.\",\n      \"required\": [\n        \"Port\"\n      ],\n      \"properties\": {\n        \"Port\": {\n          \"description\": \"Port number of the given endpoint.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.DownwardAPIProjection\": {\n      \"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.\",\n      \"properties\": {\n        \"items\": {\n          \"description\": \"Items is a list of DownwardAPIVolume file\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.DownwardAPIVolumeFile\": {\n      \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n      \"required\": [\n        \"path\"\n      ],\n      \"properties\": {\n        \"fieldRef\": {\n          \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"\n        },\n        \"mode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"path\": {\n          \"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 '..'\",\n          \"type\": \"string\"\n        },\n        \"resourceFieldRef\": {\n          \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.DownwardAPIVolumeSource\": {\n      \"description\": \"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\n      \"properties\": {\n        \"defaultMode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of downward API volume file\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EmptyDirVolumeSource\": {\n      \"description\": \"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\n      \"properties\": {\n        \"medium\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"sizeLimit\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EndpointAddress\": {\n      \"description\": \"EndpointAddress is a tuple that describes single IP address.\",\n      \"required\": [\n        \"ip\"\n      ],\n      \"properties\": {\n        \"hostname\": {\n          \"description\": \"The Hostname of this endpoint\",\n          \"type\": \"string\"\n        },\n        \"ip\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"nodeName\": {\n          \"description\": \"Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\",\n          \"type\": \"string\"\n        },\n        \"targetRef\": {\n          \"description\": \"Reference to object providing the endpoint.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EndpointPort\": {\n      \"description\": \"EndpointPort is a tuple that describes a single port.\",\n      \"required\": [\n        \"port\"\n      ],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"The name of this port (corresponds to ServicePort.Name). Must be a DNS_LABEL. Optional only if one port is defined.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"description\": \"The port number of the endpoint.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"protocol\": {\n          \"description\": \"The IP protocol for this port. Must be UDP or TCP. Default is TCP.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EndpointSubset\": {\n      \"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 ]\",\n      \"properties\": {\n        \"addresses\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointAddress\"\n          }\n        },\n        \"notReadyAddresses\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointAddress\"\n          }\n        },\n        \"ports\": {\n          \"description\": \"Port numbers available on the related IP addresses.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointPort\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Endpoints\": {\n      \"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 ]\",\n      \"required\": [\n        \"subsets\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"subsets\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointSubset\"\n          }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.EndpointsList\": {\n      \"description\": \"EndpointsList is a list of endpoints.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of endpoints.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"EndpointsList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.EnvFromSource\": {\n      \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n      \"properties\": {\n        \"configMapRef\": {\n          \"description\": \"The ConfigMap to select from\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource\"\n        },\n        \"prefix\": {\n          \"description\": \"An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n          \"type\": \"string\"\n        },\n        \"secretRef\": {\n          \"description\": \"The Secret to select from\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretEnvSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EnvVar\": {\n      \"description\": \"EnvVar represents an environment variable present in a Container.\",\n      \"required\": [\n        \"name\"\n      ],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n          \"type\": \"string\"\n        },\n        \"value\": {\n          \"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 \\\"\\\".\",\n          \"type\": \"string\"\n        },\n        \"valueFrom\": {\n          \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.EnvVarSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EnvVarSource\": {\n      \"description\": \"EnvVarSource represents a source for the value of an EnvVar.\",\n      \"properties\": {\n        \"configMapKeyRef\": {\n          \"description\": \"Selects a key of a ConfigMap.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector\"\n        },\n        \"fieldRef\": {\n          \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"\n        },\n        \"resourceFieldRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"\n        },\n        \"secretKeyRef\": {\n          \"description\": \"Selects a key of a secret in the pod's namespace\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretKeySelector\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Event\": {\n      \"description\": \"Event is a report of an event somewhere in the cluster.\",\n      \"required\": [\n        \"metadata\",\n        \"involvedObject\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"count\": {\n          \"description\": \"The number of times this event has occurred.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"firstTimestamp\": {\n          \"description\": \"The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"involvedObject\": {\n          \"description\": \"The object that this event is about.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"lastTimestamp\": {\n          \"description\": \"The time at which the most recent occurrence of this event was recorded.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"A human-readable description of the status of this operation.\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"reason\": {\n          \"description\": \"This should be a short, machine understandable string that gives the reason for the transition into the object's current status.\",\n          \"type\": \"string\"\n        },\n        \"source\": {\n          \"description\": \"The component reporting this event. Should be a short machine understandable string.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.EventSource\"\n        },\n        \"type\": {\n          \"description\": \"Type of this event (Normal, Warning), new types could be added in the future\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.EventList\": {\n      \"description\": \"EventList is a list of events.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of events\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"EventList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.EventSource\": {\n      \"description\": \"EventSource contains information for an event.\",\n      \"properties\": {\n        \"component\": {\n          \"description\": \"Component from which the event is generated.\",\n          \"type\": \"string\"\n        },\n        \"host\": {\n          \"description\": \"Node name on which the event is generated.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ExecAction\": {\n      \"description\": \"ExecAction describes a \\\"run in container\\\" action.\",\n      \"properties\": {\n        \"command\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.FCVolumeSource\": {\n      \"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.\",\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"lun\": {\n          \"description\": \"Optional: FC target lun number\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"readOnly\": {\n          \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"targetWWNs\": {\n          \"description\": \"Optional: FC target worldwide names (WWNs)\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"wwids\": {\n          \"description\": \"Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.FlexVolumeSource\": {\n      \"description\": \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.\",\n      \"required\": [\n        \"driver\"\n      ],\n      \"properties\": {\n        \"driver\": {\n          \"description\": \"Driver is the name of the driver to use for this volume.\",\n          \"type\": \"string\"\n        },\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"options\": {\n          \"description\": \"Optional: Extra command options if any.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"readOnly\": {\n          \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.FlockerVolumeSource\": {\n      \"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.\",\n      \"properties\": {\n        \"datasetName\": {\n          \"description\": \"Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n          \"type\": \"string\"\n        },\n        \"datasetUUID\": {\n          \"description\": \"UUID of the dataset. This is unique identifier of a Flocker dataset\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\": {\n      \"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.\",\n      \"required\": [\n        \"pdName\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"partition\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"pdName\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.GitRepoVolumeSource\": {\n      \"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      \"required\": [\n        \"repository\"\n      ],\n      \"properties\": {\n        \"directory\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"repository\": {\n          \"description\": \"Repository URL\",\n          \"type\": \"string\"\n        },\n        \"revision\": {\n          \"description\": \"Commit hash for the specified revision.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.GlusterfsVolumeSource\": {\n      \"description\": \"Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.\",\n      \"required\": [\n        \"endpoints\",\n        \"path\"\n      ],\n      \"properties\": {\n        \"endpoints\": {\n          \"description\": \"EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\n          \"type\": \"string\"\n        },\n        \"path\": {\n          \"description\": \"Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.HTTPGetAction\": {\n      \"description\": \"HTTPGetAction describes an action based on HTTP Get requests.\",\n      \"required\": [\n        \"port\"\n      ],\n      \"properties\": {\n        \"host\": {\n          \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n          \"type\": \"string\"\n        },\n        \"httpHeaders\": {\n          \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.HTTPHeader\"\n          }\n        },\n        \"path\": {\n          \"description\": \"Path to access on the HTTP server.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        },\n        \"scheme\": {\n          \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.HTTPHeader\": {\n      \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n      \"required\": [\n        \"name\",\n        \"value\"\n      ],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"The header field name\",\n          \"type\": \"string\"\n        },\n        \"value\": {\n          \"description\": \"The header field value\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Handler\": {\n      \"description\": \"Handler defines a specific action that should be taken\",\n      \"properties\": {\n        \"exec\": {\n          \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ExecAction\"\n        },\n        \"httpGet\": {\n          \"description\": \"HTTPGet specifies the http request to perform.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"\n        },\n        \"tcpSocket\": {\n          \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.HostAlias\": {\n      \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.\",\n      \"properties\": {\n        \"hostnames\": {\n          \"description\": \"Hostnames for the above IP address.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"ip\": {\n          \"description\": \"IP address of the host file entry.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.HostPathVolumeSource\": {\n      \"description\": \"Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.\",\n      \"required\": [\n        \"path\"\n      ],\n      \"properties\": {\n        \"path\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ISCSIVolumeSource\": {\n      \"description\": \"Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.\",\n      \"required\": [\n        \"targetPortal\",\n        \"iqn\",\n        \"lun\"\n      ],\n      \"properties\": {\n        \"chapAuthDiscovery\": {\n          \"description\": \"whether support iSCSI Discovery CHAP authentication\",\n          \"type\": \"boolean\"\n        },\n        \"chapAuthSession\": {\n          \"description\": \"whether support iSCSI Session CHAP authentication\",\n          \"type\": \"boolean\"\n        },\n        \"fsType\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"initiatorName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"iqn\": {\n          \"description\": \"Target iSCSI Qualified Name.\",\n          \"type\": \"string\"\n        },\n        \"iscsiInterface\": {\n          \"description\": \"Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.\",\n          \"type\": \"string\"\n        },\n        \"lun\": {\n          \"description\": \"iSCSI target lun number.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"portals\": {\n          \"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).\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"readOnly\": {\n          \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"CHAP secret for iSCSI target and initiator authentication\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"targetPortal\": {\n          \"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).\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.KeyToPath\": {\n      \"description\": \"Maps a string key to a path within a volume.\",\n      \"required\": [\n        \"key\",\n        \"path\"\n      ],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"The key to project.\",\n          \"type\": \"string\"\n        },\n        \"mode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"path\": {\n          \"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 '..'.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Lifecycle\": {\n      \"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.\",\n      \"properties\": {\n        \"postStart\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Handler\"\n        },\n        \"preStop\": {\n          \"description\": \"PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Handler\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LimitRange\": {\n      \"description\": \"LimitRange sets resource usage limits for each kind of resource in a Namespace.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRangeSpec\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.LimitRangeItem\": {\n      \"description\": \"LimitRangeItem defines a min/max usage limit for any resource that matches on kind.\",\n      \"properties\": {\n        \"default\": {\n          \"description\": \"Default resource requirement limit value by resource name if resource limit is omitted.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"defaultRequest\": {\n          \"description\": \"DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"max\": {\n          \"description\": \"Max usage constraints on this kind by resource name.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"maxLimitRequestRatio\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"min\": {\n          \"description\": \"Min usage constraints on this kind by resource name.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"type\": {\n          \"description\": \"Type of resource that this limit applies to.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LimitRangeList\": {\n      \"description\": \"LimitRangeList is a list of LimitRange items.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of LimitRange objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"LimitRangeList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.LimitRangeSpec\": {\n      \"description\": \"LimitRangeSpec defines a min/max usage limit for resources that match on kind.\",\n      \"required\": [\n        \"limits\"\n      ],\n      \"properties\": {\n        \"limits\": {\n          \"description\": \"Limits is the list of LimitRangeItem objects that are enforced.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRangeItem\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LoadBalancerIngress\": {\n      \"description\": \"LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.\",\n      \"properties\": {\n        \"hostname\": {\n          \"description\": \"Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)\",\n          \"type\": \"string\"\n        },\n        \"ip\": {\n          \"description\": \"IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LoadBalancerStatus\": {\n      \"description\": \"LoadBalancerStatus represents the status of a load-balancer.\",\n      \"properties\": {\n        \"ingress\": {\n          \"description\": \"Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LoadBalancerIngress\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LocalObjectReference\": {\n      \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LocalVolumeSource\": {\n      \"description\": \"Local represents directly-attached storage with node affinity\",\n      \"required\": [\n        \"path\"\n      ],\n      \"properties\": {\n        \"path\": {\n          \"description\": \"The full path to the volume on the node For alpha, this path must be a directory Once block as a source is supported, then this path can point to a block device\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NFSVolumeSource\": {\n      \"description\": \"Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.\",\n      \"required\": [\n        \"server\",\n        \"path\"\n      ],\n      \"properties\": {\n        \"path\": {\n          \"description\": \"Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"server\": {\n          \"description\": \"Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Namespace\": {\n      \"description\": \"Namespace provides a scope for Names. Use of multiple namespaces is optional.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NamespaceSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NamespaceStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.NamespaceList\": {\n      \"description\": \"NamespaceList is a list of Namespaces.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"NamespaceList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.NamespaceSpec\": {\n      \"description\": \"NamespaceSpec describes the attributes on a Namespace.\",\n      \"properties\": {\n        \"finalizers\": {\n          \"description\": \"Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NamespaceStatus\": {\n      \"description\": \"NamespaceStatus is information about the current status of a Namespace.\",\n      \"properties\": {\n        \"phase\": {\n          \"description\": \"Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Node\": {\n      \"description\": \"Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSpec\"\n        },\n        \"status\": {\n          \"description\": \"Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.NodeAddress\": {\n      \"description\": \"NodeAddress contains information for the node's address.\",\n      \"required\": [\n        \"type\",\n        \"address\"\n      ],\n      \"properties\": {\n        \"address\": {\n          \"description\": \"The node address.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Node address type, one of Hostname, ExternalIP or InternalIP.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeAffinity\": {\n      \"description\": \"Node affinity is a group of node affinity scheduling rules.\",\n      \"properties\": {\n        \"preferredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm\"\n          }\n        },\n        \"requiredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelector\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeCondition\": {\n      \"description\": \"NodeCondition contains condition information for a node.\",\n      \"required\": [\n        \"type\",\n        \"status\"\n      ],\n      \"properties\": {\n        \"lastHeartbeatTime\": {\n          \"description\": \"Last time we got an update on a given condition.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transit from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"Human readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"(brief) reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of node condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeConfigSource\": {\n      \"description\": \"NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"configMapRef\": {\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"NodeConfigSource\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.NodeDaemonEndpoints\": {\n      \"description\": \"NodeDaemonEndpoints lists ports opened by daemons running on the Node.\",\n      \"properties\": {\n        \"kubeletEndpoint\": {\n          \"description\": \"Endpoint on which Kubelet is listening.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.DaemonEndpoint\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeList\": {\n      \"description\": \"NodeList is the whole list of all Nodes which have been registered with master.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of nodes\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"NodeList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.NodeSelector\": {\n      \"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.\",\n      \"required\": [\n        \"nodeSelectorTerms\"\n      ],\n      \"properties\": {\n        \"nodeSelectorTerms\": {\n          \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeSelectorRequirement\": {\n      \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n      \"required\": [\n        \"key\",\n        \"operator\"\n      ],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"The label key that the selector applies to.\",\n          \"type\": \"string\"\n        },\n        \"operator\": {\n          \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n          \"type\": \"string\"\n        },\n        \"values\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeSelectorTerm\": {\n      \"description\": \"A null or empty node selector term matches no objects.\",\n      \"required\": [\n        \"matchExpressions\"\n      ],\n      \"properties\": {\n        \"matchExpressions\": {\n          \"description\": \"Required. A list of node selector requirements. The requirements are ANDed.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeSpec\": {\n      \"description\": \"NodeSpec describes the attributes that a node is created with.\",\n      \"properties\": {\n        \"configSource\": {\n          \"description\": \"If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"\n        },\n        \"externalID\": {\n          \"description\": \"External ID of the node assigned by some machine database (e.g. a cloud provider). Deprecated.\",\n          \"type\": \"string\"\n        },\n        \"podCIDR\": {\n          \"description\": \"PodCIDR represents the pod IP range assigned to the node.\",\n          \"type\": \"string\"\n        },\n        \"providerID\": {\n          \"description\": \"ID of the node assigned by the cloud provider in the format: \\u003cProviderName\\u003e://\\u003cProviderSpecificNodeID\\u003e\",\n          \"type\": \"string\"\n        },\n        \"taints\": {\n          \"description\": \"If specified, the node's taints.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Taint\"\n          }\n        },\n        \"unschedulable\": {\n          \"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\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeStatus\": {\n      \"description\": \"NodeStatus is information about the current status of a node.\",\n      \"properties\": {\n        \"addresses\": {\n          \"description\": \"List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeAddress\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"allocatable\": {\n          \"description\": \"Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"capacity\": {\n          \"description\": \"Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"conditions\": {\n          \"description\": \"Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"daemonEndpoints\": {\n          \"description\": \"Endpoints of daemons running on the Node.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints\"\n        },\n        \"images\": {\n          \"description\": \"List of container images on this node\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerImage\"\n          }\n        },\n        \"nodeInfo\": {\n          \"description\": \"Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSystemInfo\"\n        },\n        \"phase\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"volumesAttached\": {\n          \"description\": \"List of volumes that are attached to the node.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.AttachedVolume\"\n          }\n        },\n        \"volumesInUse\": {\n          \"description\": \"List of attachable volumes in use (mounted) by the node.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeSystemInfo\": {\n      \"description\": \"NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\",\n      \"required\": [\n        \"machineID\",\n        \"systemUUID\",\n        \"bootID\",\n        \"kernelVersion\",\n        \"osImage\",\n        \"containerRuntimeVersion\",\n        \"kubeletVersion\",\n        \"kubeProxyVersion\",\n        \"operatingSystem\",\n        \"architecture\"\n      ],\n      \"properties\": {\n        \"architecture\": {\n          \"description\": \"The Architecture reported by the node\",\n          \"type\": \"string\"\n        },\n        \"bootID\": {\n          \"description\": \"Boot ID reported by the node.\",\n          \"type\": \"string\"\n        },\n        \"containerRuntimeVersion\": {\n          \"description\": \"ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).\",\n          \"type\": \"string\"\n        },\n        \"kernelVersion\": {\n          \"description\": \"Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).\",\n          \"type\": \"string\"\n        },\n        \"kubeProxyVersion\": {\n          \"description\": \"KubeProxy Version reported by the node.\",\n          \"type\": \"string\"\n        },\n        \"kubeletVersion\": {\n          \"description\": \"Kubelet Version reported by the node.\",\n          \"type\": \"string\"\n        },\n        \"machineID\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"operatingSystem\": {\n          \"description\": \"The Operating System reported by the node\",\n          \"type\": \"string\"\n        },\n        \"osImage\": {\n          \"description\": \"OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).\",\n          \"type\": \"string\"\n        },\n        \"systemUUID\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ObjectFieldSelector\": {\n      \"description\": \"ObjectFieldSelector selects an APIVersioned field of an object.\",\n      \"required\": [\n        \"fieldPath\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n          \"type\": \"string\"\n        },\n        \"fieldPath\": {\n          \"description\": \"Path of the field to select in the specified API version.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ObjectReference\": {\n      \"description\": \"ObjectReference contains enough information to let you inspect or modify the referred object.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"API version of the referent.\",\n          \"type\": \"string\"\n        },\n        \"fieldPath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n          \"type\": \"string\"\n        },\n        \"resourceVersion\": {\n          \"description\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency\",\n          \"type\": \"string\"\n        },\n        \"uid\": {\n          \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolume\": {\n      \"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\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaim\": {\n      \"description\": \"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimList\": {\n      \"description\": \"PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaimList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimSpec\": {\n      \"description\": \"PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes\",\n      \"properties\": {\n        \"accessModes\": {\n          \"description\": \"AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"resources\": {\n          \"description\": \"Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"\n        },\n        \"selector\": {\n          \"description\": \"A label query over volumes to consider for binding.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"storageClassName\": {\n          \"description\": \"Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n          \"type\": \"string\"\n        },\n        \"volumeName\": {\n          \"description\": \"VolumeName is the binding reference to the PersistentVolume backing this claim.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimStatus\": {\n      \"description\": \"PersistentVolumeClaimStatus is the current status of a persistent volume claim.\",\n      \"properties\": {\n        \"accessModes\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"capacity\": {\n          \"description\": \"Represents the actual resources of the underlying volume.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"phase\": {\n          \"description\": \"Phase represents the current phase of PersistentVolumeClaim.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\": {\n      \"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).\",\n      \"required\": [\n        \"claimName\"\n      ],\n      \"properties\": {\n        \"claimName\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Will force the ReadOnly setting in VolumeMounts. Default false.\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeList\": {\n      \"description\": \"PersistentVolumeList is a list of PersistentVolume items.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeSpec\": {\n      \"description\": \"PersistentVolumeSpec is the specification of a persistent volume.\",\n      \"properties\": {\n        \"accessModes\": {\n          \"description\": \"AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"awsElasticBlockStore\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"\n        },\n        \"azureDisk\": {\n          \"description\": \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"\n        },\n        \"azureFile\": {\n          \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource\"\n        },\n        \"capacity\": {\n          \"description\": \"A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"cephfs\": {\n          \"description\": \"CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource\"\n        },\n        \"cinder\": {\n          \"description\": \"Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CinderVolumeSource\"\n        },\n        \"claimRef\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"fc\": {\n          \"description\": \"FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"\n        },\n        \"flexVolume\": {\n          \"description\": \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FlexVolumeSource\"\n        },\n        \"flocker\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"\n        },\n        \"gcePersistentDisk\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"\n        },\n        \"glusterfs\": {\n          \"description\": \"Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource\"\n        },\n        \"hostPath\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"\n        },\n        \"iscsi\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource\"\n        },\n        \"local\": {\n          \"description\": \"Local represents directly-attached storage with node affinity\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalVolumeSource\"\n        },\n        \"mountOptions\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"nfs\": {\n          \"description\": \"NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"\n        },\n        \"persistentVolumeReclaimPolicy\": {\n          \"description\": \"What happens to a persistent volume when released from its claim. Valid options are Retain (default) and Recycle. Recycling must be supported by the volume plugin underlying this persistent volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming\",\n          \"type\": \"string\"\n        },\n        \"photonPersistentDisk\": {\n          \"description\": \"PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"\n        },\n        \"portworxVolume\": {\n          \"description\": \"PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"\n        },\n        \"quobyte\": {\n          \"description\": \"Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"\n        },\n        \"rbd\": {\n          \"description\": \"RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.RBDVolumeSource\"\n        },\n        \"scaleIO\": {\n          \"description\": \"ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource\"\n        },\n        \"storageClassName\": {\n          \"description\": \"Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.\",\n          \"type\": \"string\"\n        },\n        \"storageos\": {\n          \"description\": \"StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource\"\n        },\n        \"vsphereVolume\": {\n          \"description\": \"VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeStatus\": {\n      \"description\": \"PersistentVolumeStatus is the current status of a persistent volume.\",\n      \"properties\": {\n        \"message\": {\n          \"description\": \"A human-readable message indicating details about why the volume is in this state.\",\n          \"type\": \"string\"\n        },\n        \"phase\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\": {\n      \"description\": \"Represents a Photon Controller persistent disk resource.\",\n      \"required\": [\n        \"pdID\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"pdID\": {\n          \"description\": \"ID that identifies Photon Controller persistent disk\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Pod\": {\n      \"description\": \"Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodSpec\"\n        },\n        \"status\": {\n          \"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/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PodAffinity\": {\n      \"description\": \"Pod affinity is a group of inter pod affinity scheduling rules.\",\n      \"properties\": {\n        \"preferredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"\n          }\n        },\n        \"requiredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodAffinityTerm\": {\n      \"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 tches that of any node on which a pod of the set of pods is running\",\n      \"properties\": {\n        \"labelSelector\": {\n          \"description\": \"A label query over a set of resources, in this case pods.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"namespaces\": {\n          \"description\": \"namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \\\"this pod's namespace\\\"\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"topologyKey\": {\n          \"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. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \\\"all topologies\\\" (\\\"all topologies\\\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodAntiAffinity\": {\n      \"description\": \"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\n      \"properties\": {\n        \"preferredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"\n          }\n        },\n        \"requiredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodCondition\": {\n      \"description\": \"PodCondition contains details for the current condition of this pod.\",\n      \"required\": [\n        \"type\",\n        \"status\"\n      ],\n      \"properties\": {\n        \"lastProbeTime\": {\n          \"description\": \"Last time we probed the condition.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"Human-readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"Unique, one-word, CamelCase reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type is the type of the condition. Currently only Ready. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodList\": {\n      \"description\": \"PodList is a list of Pods.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of pods. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PodList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PodSecurityContext\": {\n      \"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.\",\n      \"properties\": {\n        \"fsGroup\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"runAsNonRoot\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"runAsUser\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"seLinuxOptions\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"\n        },\n        \"supplementalGroups\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"integer\",\n            \"format\": \"int64\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodSpec\": {\n      \"description\": \"PodSpec is a description of a pod.\",\n      \"required\": [\n        \"containers\"\n      ],\n      \"properties\": {\n        \"activeDeadlineSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"affinity\": {\n          \"description\": \"If specified, the pod's scheduling constraints\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Affinity\"\n        },\n        \"automountServiceAccountToken\": {\n          \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n          \"type\": \"boolean\"\n        },\n        \"containers\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Container\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"dnsPolicy\": {\n          \"description\": \"Set DNS policy for containers within the pod. One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'. Defaults to \\\"ClusterFirst\\\". To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.\",\n          \"type\": \"string\"\n        },\n        \"hostAliases\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.HostAlias\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"ip\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"hostIPC\": {\n          \"description\": \"Use the host's ipc namespace. Optional: Default to false.\",\n          \"type\": \"boolean\"\n        },\n        \"hostNetwork\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"hostPID\": {\n          \"description\": \"Use the host's pid namespace. Optional: Default to false.\",\n          \"type\": \"boolean\"\n        },\n        \"hostname\": {\n          \"description\": \"Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.\",\n          \"type\": \"string\"\n        },\n        \"imagePullSecrets\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"initContainers\": {\n          \"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, or Liveness 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/\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Container\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"nodeName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"nodeSelector\": {\n          \"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/\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"priority\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"priorityClassName\": {\n          \"description\": \"If specified, indicates the pod's priority. \\\"SYSTEM\\\" is a special keyword which indicates 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.\",\n          \"type\": \"string\"\n        },\n        \"restartPolicy\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"schedulerName\": {\n          \"description\": \"If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.\",\n          \"type\": \"string\"\n        },\n        \"securityContext\": {\n          \"description\": \"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodSecurityContext\"\n        },\n        \"serviceAccount\": {\n          \"description\": \"DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.\",\n          \"type\": \"string\"\n        },\n        \"serviceAccountName\": {\n          \"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/\",\n          \"type\": \"string\"\n        },\n        \"subdomain\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"terminationGracePeriodSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"tolerations\": {\n          \"description\": \"If specified, the pod's tolerations.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Toleration\"\n          }\n        },\n        \"volumes\": {\n          \"description\": \"List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Volume\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge,retainKeys\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodStatus\": {\n      \"description\": \"PodStatus represents information about the status of a pod. Status may trail the actual state of a system.\",\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"containerStatuses\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStatus\"\n          }\n        },\n        \"hostIP\": {\n          \"description\": \"IP address of the host to which the pod is assigned. Empty if not yet scheduled.\",\n          \"type\": \"string\"\n        },\n        \"initContainerStatuses\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStatus\"\n          }\n        },\n        \"message\": {\n          \"description\": \"A human readable message indicating details about why the pod is in this condition.\",\n          \"type\": \"string\"\n        },\n        \"phase\": {\n          \"description\": \"Current condition of the pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase\",\n          \"type\": \"string\"\n        },\n        \"podIP\": {\n          \"description\": \"IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.\",\n          \"type\": \"string\"\n        },\n        \"qosClass\": {\n          \"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://github.com/kubernetes/kubernetes/blob/master/docs/design/resource-qos.md\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'\",\n          \"type\": \"string\"\n        },\n        \"startTime\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodTemplate\": {\n      \"description\": \"PodTemplate describes a template for creating copies of a predefined pod.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"template\": {\n          \"description\": \"Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PodTemplateList\": {\n      \"description\": \"PodTemplateList is a list of PodTemplates.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of pod templates\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PodTemplateList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PodTemplateSpec\": {\n      \"description\": \"PodTemplateSpec describes the data a pod should have when created from a template\",\n      \"properties\": {\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodSpec\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PortworxVolumeSource\": {\n      \"description\": \"PortworxVolumeSource represents a Portworx volume resource.\",\n      \"required\": [\n        \"volumeID\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"volumeID\": {\n          \"description\": \"VolumeID uniquely identifies a Portworx volume\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PreferredSchedulingTerm\": {\n      \"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).\",\n      \"required\": [\n        \"weight\",\n        \"preference\"\n      ],\n      \"properties\": {\n        \"preference\": {\n          \"description\": \"A node selector term, associated with the corresponding weight.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"\n        },\n        \"weight\": {\n          \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Probe\": {\n      \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n      \"properties\": {\n        \"exec\": {\n          \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ExecAction\"\n        },\n        \"failureThreshold\": {\n          \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"httpGet\": {\n          \"description\": \"HTTPGet specifies the http request to perform.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"\n        },\n        \"initialDelaySeconds\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"periodSeconds\": {\n          \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"successThreshold\": {\n          \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"tcpSocket\": {\n          \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"\n        },\n        \"timeoutSeconds\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ProjectedVolumeSource\": {\n      \"description\": \"Represents a projected volume source\",\n      \"required\": [\n        \"sources\"\n      ],\n      \"properties\": {\n        \"defaultMode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"sources\": {\n          \"description\": \"list of volume projections\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.VolumeProjection\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.QuobyteVolumeSource\": {\n      \"description\": \"Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.\",\n      \"required\": [\n        \"registry\",\n        \"volume\"\n      ],\n      \"properties\": {\n        \"group\": {\n          \"description\": \"Group to map volume access to Default is no group\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"registry\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"user\": {\n          \"description\": \"User to map volume access to Defaults to serivceaccount user\",\n          \"type\": \"string\"\n        },\n        \"volume\": {\n          \"description\": \"Volume is a string that references an already created Quobyte volume by name.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.RBDVolumeSource\": {\n      \"description\": \"Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.\",\n      \"required\": [\n        \"monitors\",\n        \"image\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"image\": {\n          \"description\": \"The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"keyring\": {\n          \"description\": \"Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"monitors\": {\n          \"description\": \"A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"pool\": {\n          \"description\": \"The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"user\": {\n          \"description\": \"The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ReplicationController\": {\n      \"description\": \"ReplicationController represents the configuration of a replication controller.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"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/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec\"\n        },\n        \"status\": {\n          \"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/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ReplicationControllerCondition\": {\n      \"description\": \"ReplicationControllerCondition describes the state of a replication controller at a certain point.\",\n      \"required\": [\n        \"type\",\n        \"status\"\n      ],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"The last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"A human readable message indicating details about the transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"The reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of replication controller condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ReplicationControllerList\": {\n      \"description\": \"ReplicationControllerList is a collection of replication controllers.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ReplicationControllerList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ReplicationControllerSpec\": {\n      \"description\": \"ReplicationControllerSpec is the specification of a replication controller.\",\n      \"properties\": {\n        \"minReadySeconds\": {\n          \"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)\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"selector\": {\n          \"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\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"template\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ReplicationControllerStatus\": {\n      \"description\": \"ReplicationControllerStatus represents the current status of a replication controller.\",\n      \"required\": [\n        \"replicas\"\n      ],\n      \"properties\": {\n        \"availableReplicas\": {\n          \"description\": \"The number of available replicas (ready for at least minReadySeconds) for this replication controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"conditions\": {\n          \"description\": \"Represents the latest available observations of a replication controller's current state.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"fullyLabeledReplicas\": {\n          \"description\": \"The number of pods that have labels matching the labels of the pod template of the replication controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"observedGeneration\": {\n          \"description\": \"ObservedGeneration reflects the generation of the most recently observed replication controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"readyReplicas\": {\n          \"description\": \"The number of ready replicas for this replication controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ResourceFieldSelector\": {\n      \"description\": \"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\n      \"required\": [\n        \"resource\"\n      ],\n      \"properties\": {\n        \"containerName\": {\n          \"description\": \"Container name: required for volumes, optional for env vars\",\n          \"type\": \"string\"\n        },\n        \"divisor\": {\n          \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        },\n        \"resource\": {\n          \"description\": \"Required: resource to select\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ResourceQuota\": {\n      \"description\": \"ResourceQuota sets aggregate quota restrictions enforced per namespace\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ResourceQuotaList\": {\n      \"description\": \"ResourceQuotaList is a list of ResourceQuota items.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of ResourceQuota objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuotaList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ResourceQuotaSpec\": {\n      \"description\": \"ResourceQuotaSpec defines the desired hard limits to enforce for Quota.\",\n      \"properties\": {\n        \"hard\": {\n          \"description\": \"Hard is the set of desired hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"scopes\": {\n          \"description\": \"A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ResourceQuotaStatus\": {\n      \"description\": \"ResourceQuotaStatus defines the enforced hard limits and observed use.\",\n      \"properties\": {\n        \"hard\": {\n          \"description\": \"Hard is the set of enforced hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"used\": {\n          \"description\": \"Used is the current observed total usage of the resource in the namespace.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ResourceRequirements\": {\n      \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n      \"properties\": {\n        \"limits\": {\n          \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"requests\": {\n          \"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/\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SELinuxOptions\": {\n      \"description\": \"SELinuxOptions are the labels to be applied to the container\",\n      \"properties\": {\n        \"level\": {\n          \"description\": \"Level is SELinux level label that applies to the container.\",\n          \"type\": \"string\"\n        },\n        \"role\": {\n          \"description\": \"Role is a SELinux role label that applies to the container.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type is a SELinux type label that applies to the container.\",\n          \"type\": \"string\"\n        },\n        \"user\": {\n          \"description\": \"User is a SELinux user label that applies to the container.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ScaleIOVolumeSource\": {\n      \"description\": \"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\n      \"required\": [\n        \"gateway\",\n        \"system\",\n        \"secretRef\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"gateway\": {\n          \"description\": \"The host address of the ScaleIO API Gateway.\",\n          \"type\": \"string\"\n        },\n        \"protectionDomain\": {\n          \"description\": \"The name of the Protection Domain for the configured storage (defaults to \\\"default\\\").\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"sslEnabled\": {\n          \"description\": \"Flag to enable/disable SSL communication with Gateway, default false\",\n          \"type\": \"boolean\"\n        },\n        \"storageMode\": {\n          \"description\": \"Indicates whether the storage for a volume should be thick or thin (defaults to \\\"thin\\\").\",\n          \"type\": \"string\"\n        },\n        \"storagePool\": {\n          \"description\": \"The Storage Pool associated with the protection domain (defaults to \\\"default\\\").\",\n          \"type\": \"string\"\n        },\n        \"system\": {\n          \"description\": \"The name of the storage system as configured in ScaleIO.\",\n          \"type\": \"string\"\n        },\n        \"volumeName\": {\n          \"description\": \"The name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Secret\": {\n      \"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.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"data\": {\n          \"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\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\",\n            \"format\": \"byte\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"stringData\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"type\": {\n          \"description\": \"Used to facilitate programmatic handling of secret data.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.SecretEnvSource\": {\n      \"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.\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the Secret must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecretKeySelector\": {\n      \"description\": \"SecretKeySelector selects a key of a Secret.\",\n      \"required\": [\n        \"key\"\n      ],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"The key of the secret to select from.  Must be a valid secret key.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the Secret or it's key must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecretList\": {\n      \"description\": \"SecretList is a list of Secret.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"SecretList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.SecretProjection\": {\n      \"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.\",\n      \"properties\": {\n        \"items\": {\n          \"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 '..'.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.KeyToPath\"\n          }\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the Secret or its key must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecretReference\": {\n      \"description\": \"SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name is unique within a namespace to reference a secret resource.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"Namespace defines the space within which the secret name must be unique.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecretVolumeSource\": {\n      \"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.\",\n      \"properties\": {\n        \"defaultMode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"items\": {\n          \"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 '..'.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.KeyToPath\"\n          }\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the Secret or it's keys must be defined\",\n          \"type\": \"boolean\"\n        },\n        \"secretName\": {\n          \"description\": \"Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecurityContext\": {\n      \"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.\",\n      \"properties\": {\n        \"allowPrivilegeEscalation\": {\n          \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than it's 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\",\n          \"type\": \"boolean\"\n        },\n        \"capabilities\": {\n          \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Capabilities\"\n        },\n        \"privileged\": {\n          \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"readOnlyRootFilesystem\": {\n          \"description\": \"Whether this container has a read-only root filesystem. Default is false.\",\n          \"type\": \"boolean\"\n        },\n        \"runAsNonRoot\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"runAsUser\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"seLinuxOptions\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Service\": {\n      \"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.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceSpec\"\n        },\n        \"status\": {\n          \"description\": \"Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ServiceAccount\": {\n      \"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\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"automountServiceAccountToken\": {\n          \"description\": \"AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.\",\n          \"type\": \"boolean\"\n        },\n        \"imagePullSecrets\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"secrets\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ServiceAccountList\": {\n      \"description\": \"ServiceAccountList is a list of ServiceAccount objects\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccountList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ServiceList\": {\n      \"description\": \"ServiceList holds a list of services.\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of services\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ServiceList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ServicePort\": {\n      \"description\": \"ServicePort contains information on service's port.\",\n      \"required\": [\n        \"port\"\n      ],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. This maps to the 'Name' field in EndpointPort objects. Optional if only one ServicePort is defined on this service.\",\n          \"type\": \"string\"\n        },\n        \"nodePort\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"port\": {\n          \"description\": \"The port that will be exposed by this service.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"protocol\": {\n          \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\" and \\\"UDP\\\". Default is TCP.\",\n          \"type\": \"string\"\n        },\n        \"targetPort\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ServiceSpec\": {\n      \"description\": \"ServiceSpec describes the attributes that a user creates on a service.\",\n      \"properties\": {\n        \"clusterIP\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"externalIPs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"externalName\": {\n          \"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 DNS name and requires Type to be ExternalName.\",\n          \"type\": \"string\"\n        },\n        \"externalTrafficPolicy\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"healthCheckNodePort\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"loadBalancerIP\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"loadBalancerSourceRanges\": {\n          \"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/\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"ports\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServicePort\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"port\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"publishNotReadyAddresses\": {\n          \"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. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field.\",\n          \"type\": \"boolean\"\n        },\n        \"selector\": {\n          \"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/\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"sessionAffinity\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"sessionAffinityConfig\": {\n          \"description\": \"sessionAffinityConfig contains the configurations of session affinity.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SessionAffinityConfig\"\n        },\n        \"type\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ServiceStatus\": {\n      \"description\": \"ServiceStatus represents the current status of a service.\",\n      \"properties\": {\n        \"loadBalancer\": {\n          \"description\": \"LoadBalancer contains the current status of the load-balancer, if one is present.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LoadBalancerStatus\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SessionAffinityConfig\": {\n      \"description\": \"SessionAffinityConfig represents the configurations of session affinity.\",\n      \"properties\": {\n        \"clientIP\": {\n          \"description\": \"clientIP contains the configurations of Client IP based session affinity.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ClientIPConfig\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.StorageOSPersistentVolumeSource\": {\n      \"description\": \"Represents a StorageOS persistent volume resource.\",\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"SecretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"volumeName\": {\n          \"description\": \"VolumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\n          \"type\": \"string\"\n        },\n        \"volumeNamespace\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.StorageOSVolumeSource\": {\n      \"description\": \"Represents a StorageOS persistent volume resource.\",\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"SecretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"volumeName\": {\n          \"description\": \"VolumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\n          \"type\": \"string\"\n        },\n        \"volumeNamespace\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.TCPSocketAction\": {\n      \"description\": \"TCPSocketAction describes an action based on opening a socket\",\n      \"required\": [\n        \"port\"\n      ],\n      \"properties\": {\n        \"host\": {\n          \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Taint\": {\n      \"description\": \"The node this Taint is attached to has the \\\"effect\\\" on any pod that does not tolerate the Taint.\",\n      \"required\": [\n        \"key\",\n        \"effect\"\n      ],\n      \"properties\": {\n        \"effect\": {\n          \"description\": \"Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\",\n          \"type\": \"string\"\n        },\n        \"key\": {\n          \"description\": \"Required. The taint key to be applied to a node.\",\n          \"type\": \"string\"\n        },\n        \"timeAdded\": {\n          \"description\": \"TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"value\": {\n          \"description\": \"Required. The taint value corresponding to the taint key.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Toleration\": {\n      \"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.\",\n      \"properties\": {\n        \"effect\": {\n          \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n          \"type\": \"string\"\n        },\n        \"key\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"operator\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"tolerationSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"value\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Volume\": {\n      \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n      \"required\": [\n        \"name\"\n      ],\n      \"properties\": {\n        \"awsElasticBlockStore\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"\n        },\n        \"azureDisk\": {\n          \"description\": \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"\n        },\n        \"azureFile\": {\n          \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource\"\n        },\n        \"cephfs\": {\n          \"description\": \"CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CephFSVolumeSource\"\n        },\n        \"cinder\": {\n          \"description\": \"Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CinderVolumeSource\"\n        },\n        \"configMap\": {\n          \"description\": \"ConfigMap represents a configMap that should populate this volume\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource\"\n        },\n        \"downwardAPI\": {\n          \"description\": \"DownwardAPI represents downward API about the pod that should populate this volume\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource\"\n        },\n        \"emptyDir\": {\n          \"description\": \"EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource\"\n        },\n        \"fc\": {\n          \"description\": \"FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"\n        },\n        \"flexVolume\": {\n          \"description\": \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FlexVolumeSource\"\n        },\n        \"flocker\": {\n          \"description\": \"Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"\n        },\n        \"gcePersistentDisk\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"\n        },\n        \"gitRepo\": {\n          \"description\": \"GitRepo represents a git repository at a particular revision.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource\"\n        },\n        \"glusterfs\": {\n          \"description\": \"Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource\"\n        },\n        \"hostPath\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"\n        },\n        \"iscsi\": {\n          \"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://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource\"\n        },\n        \"name\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"nfs\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"\n        },\n        \"persistentVolumeClaim\": {\n          \"description\": \"PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"\n        },\n        \"photonPersistentDisk\": {\n          \"description\": \"PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"\n        },\n        \"portworxVolume\": {\n          \"description\": \"PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"\n        },\n        \"projected\": {\n          \"description\": \"Items for all in one resources secrets, configmaps, and downward API\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource\"\n        },\n        \"quobyte\": {\n          \"description\": \"Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"\n        },\n        \"rbd\": {\n          \"description\": \"RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.RBDVolumeSource\"\n        },\n        \"scaleIO\": {\n          \"description\": \"ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource\"\n        },\n        \"secret\": {\n          \"description\": \"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretVolumeSource\"\n        },\n        \"storageos\": {\n          \"description\": \"StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource\"\n        },\n        \"vsphereVolume\": {\n          \"description\": \"VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.VolumeMount\": {\n      \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n      \"required\": [\n        \"name\",\n        \"mountPath\"\n      ],\n      \"properties\": {\n        \"mountPath\": {\n          \"description\": \"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"This must match the Name of a Volume.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"subPath\": {\n          \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.VolumeProjection\": {\n      \"description\": \"Projection that may be projected along with other supported volume types\",\n      \"properties\": {\n        \"configMap\": {\n          \"description\": \"information about the configMap data to project\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapProjection\"\n        },\n        \"downwardAPI\": {\n          \"description\": \"information about the downwardAPI data to project\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.DownwardAPIProjection\"\n        },\n        \"secret\": {\n          \"description\": \"information about the secret data to project\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretProjection\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\": {\n      \"description\": \"Represents a vSphere volume resource.\",\n      \"required\": [\n        \"volumePath\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"storagePolicyID\": {\n          \"description\": \"Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n          \"type\": \"string\"\n        },\n        \"storagePolicyName\": {\n          \"description\": \"Storage Policy Based Management (SPBM) profile name.\",\n          \"type\": \"string\"\n        },\n        \"volumePath\": {\n          \"description\": \"Path that identifies vSphere volume vmdk\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.WeightedPodAffinityTerm\": {\n      \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n      \"required\": [\n        \"weight\",\n        \"podAffinityTerm\"\n      ],\n      \"properties\": {\n        \"podAffinityTerm\": {\n          \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"\n        },\n        \"weight\": {\n          \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.api.resource.Quantity\": {\n      \"type\": \"string\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\": {\n      \"description\": \"APIGroup contains the name, the supported versions, and the preferred version of a group.\",\n      \"required\": [\n        \"name\",\n        \"versions\",\n        \"serverAddressByClientCIDRs\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"name is the name of the group.\",\n          \"type\": \"string\"\n        },\n        \"preferredVersion\": {\n          \"description\": \"preferredVersion is the version preferred by the API server, which probably is the storage version.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"\n        },\n        \"serverAddressByClientCIDRs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\"\n          }\n        },\n        \"versions\": {\n          \"description\": \"versions are the versions supported in this group.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"\n          }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"APIGroup\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList\": {\n      \"description\": \"APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.\",\n      \"required\": [\n        \"groups\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"groups\": {\n          \"description\": \"groups is a list of APIGroup.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"APIGroupList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\": {\n      \"description\": \"APIResource specifies the name of a resource and whether it is namespaced.\",\n      \"required\": [\n        \"name\",\n        \"singularName\",\n        \"namespaced\",\n        \"kind\",\n        \"verbs\"\n      ],\n      \"properties\": {\n        \"categories\": {\n          \"description\": \"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"name is the plural name of the resource.\",\n          \"type\": \"string\"\n        },\n        \"namespaced\": {\n          \"description\": \"namespaced indicates if a resource is namespaced or not.\",\n          \"type\": \"boolean\"\n        },\n        \"shortNames\": {\n          \"description\": \"shortNames is a list of suggested short names of the resource.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"singularName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"verbs\": {\n          \"description\": \"verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\": {\n      \"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.\",\n      \"required\": [\n        \"groupVersion\",\n        \"resources\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"groupVersion\": {\n          \"description\": \"groupVersion is the group and version this APIResourceList is for.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"resources\": {\n          \"description\": \"resources contains the name of the resources and if they are namespaced.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"\n          }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"APIResourceList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions\": {\n      \"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.\",\n      \"required\": [\n        \"versions\",\n        \"serverAddressByClientCIDRs\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"serverAddressByClientCIDRs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\"\n          }\n        },\n        \"versions\": {\n          \"description\": \"versions are the api versions that are available.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"APIVersions\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\": {\n      \"description\": \"DeleteOptions may be provided when deleting an API object.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"gracePeriodSeconds\": {\n          \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"orphanDependents\": {\n          \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n          \"type\": \"boolean\"\n        },\n        \"preconditions\": {\n          \"description\": \"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"\n        },\n        \"propagationPolicy\": {\n          \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"admission.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"apps\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"apps\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta2\"\n        },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v2alpha1\"\n        },\n        {\n          \"group\": \"batch\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"batch\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"batch\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v2alpha1\"\n        },\n        {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"extensions\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"federation\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"imagepolicy.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"policy\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"settings.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\": {\n      \"description\": \"GroupVersion contains the \\\"group/version\\\" and \\\"version\\\" string of a version. It is made a struct to keep extensibility.\",\n      \"required\": [\n        \"groupVersion\",\n        \"version\"\n      ],\n      \"properties\": {\n        \"groupVersion\": {\n          \"description\": \"groupVersion specifies the API group and version in the form \\\"group/version\\\"\",\n          \"type\": \"string\"\n        },\n        \"version\": {\n          \"description\": \"version specifies the version in the form of \\\"version\\\". This is to save the clients the trouble of splitting the GroupVersion.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Initializer\": {\n      \"description\": \"Initializer is information about an initializer that has not yet completed.\",\n      \"required\": [\n        \"name\"\n      ],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"name of the process that is responsible for initializing this object.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Initializers\": {\n      \"description\": \"Initializers tracks the progress of initialization.\",\n      \"required\": [\n        \"pending\"\n      ],\n      \"properties\": {\n        \"pending\": {\n          \"description\": \"Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializer\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"result\": {\n          \"description\": \"If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\": {\n      \"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.\",\n      \"properties\": {\n        \"matchExpressions\": {\n          \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"\n          }\n        },\n        \"matchLabels\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\": {\n      \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n      \"required\": [\n        \"key\",\n        \"operator\"\n      ],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"key is the label key that the selector applies to.\",\n          \"type\": \"string\",\n          \"x-kubernetes-patch-merge-key\": \"key\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"operator\": {\n          \"description\": \"operator represents a key's relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist.\",\n          \"type\": \"string\"\n        },\n        \"values\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\": {\n      \"description\": \"ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.\",\n      \"properties\": {\n        \"resourceVersion\": {\n          \"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/api-conventions.md#concurrency-control-and-consistency\",\n          \"type\": \"string\"\n        },\n        \"selfLink\": {\n          \"description\": \"SelfLink is a URL representing this object. Populated by the system. Read-only.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\": {\n      \"description\": \"ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.\",\n      \"properties\": {\n        \"annotations\": {\n          \"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\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"clusterName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"creationTimestamp\": {\n          \"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/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"deletionGracePeriodSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"deletionTimestamp\": {\n          \"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 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/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"finalizers\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"generateName\": {\n          \"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/api-conventions.md#idempotency\",\n          \"type\": \"string\"\n        },\n        \"generation\": {\n          \"description\": \"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"initializers\": {\n          \"description\": \"An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\\n\\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializers\"\n        },\n        \"labels\": {\n          \"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\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"name\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"ownerReferences\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"uid\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"resourceVersion\": {\n          \"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/api-conventions.md#concurrency-control-and-consistency\",\n          \"type\": \"string\"\n        },\n        \"selfLink\": {\n          \"description\": \"SelfLink is a URL representing this object. Populated by the system. Read-only.\",\n          \"type\": \"string\"\n        },\n        \"uid\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\": {\n      \"description\": \"OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.\",\n      \"required\": [\n        \"apiVersion\",\n        \"kind\",\n        \"name\",\n        \"uid\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"API version of the referent.\",\n          \"type\": \"string\"\n        },\n        \"blockOwnerDeletion\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"controller\": {\n          \"description\": \"If true, this reference points to the managing controller.\",\n          \"type\": \"boolean\"\n        },\n        \"kind\": {\n          \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n          \"type\": \"string\"\n        },\n        \"uid\": {\n          \"description\": \"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Patch\": {\n      \"description\": \"Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\": {\n      \"description\": \"Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\",\n      \"properties\": {\n        \"uid\": {\n          \"description\": \"Specifies the target UID.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\": {\n      \"description\": \"ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.\",\n      \"required\": [\n        \"clientCIDR\",\n        \"serverAddress\"\n      ],\n      \"properties\": {\n        \"clientCIDR\": {\n          \"description\": \"The CIDR with which clients can match their IP to figure out the server address that they should use.\",\n          \"type\": \"string\"\n        },\n        \"serverAddress\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Status\": {\n      \"description\": \"Status is a return value for calls that don't return other objects.\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"code\": {\n          \"description\": \"Suggested HTTP return code for this status, 0 if not set.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"details\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"message\": {\n          \"description\": \"A human-readable description of the status of this operation.\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        },\n        \"reason\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the operation. One of: \\\"Success\\\" or \\\"Failure\\\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Status\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\": {\n      \"description\": \"StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.\",\n      \"properties\": {\n        \"field\": {\n          \"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\\\"\",\n          \"type\": \"string\"\n        },\n        \"message\": {\n          \"description\": \"A human-readable description of the cause of the error.  This field may be presented as-is to a reader.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"A machine-readable description of the cause of the error. If this value is empty there is no information available.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\": {\n      \"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.\",\n      \"properties\": {\n        \"causes\": {\n          \"description\": \"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"\n          }\n        },\n        \"group\": {\n          \"description\": \"The group attribute of the resource associated with the status StatusReason.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"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/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).\",\n          \"type\": \"string\"\n        },\n        \"retryAfterSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"uid\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Time\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\": {\n      \"description\": \"Event represents a single event to a watched resource.\",\n      \"required\": [\n        \"type\",\n        \"object\"\n      ],\n      \"properties\": {\n        \"object\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"\n        },\n        \"type\": {\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"admission.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"apps\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"apps\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta2\"\n        },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v2alpha1\"\n        },\n        {\n          \"group\": \"batch\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"batch\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"batch\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v2alpha1\"\n        },\n        {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"extensions\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"federation\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"imagepolicy.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"policy\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"settings.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.runtime.RawExtension\": {\n      \"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.)\",\n      \"required\": [\n        \"Raw\"\n      ],\n      \"properties\": {\n        \"Raw\": {\n          \"description\": \"Raw is the underlying serialization of this object.\",\n          \"type\": \"string\",\n          \"format\": \"byte\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.util.intstr.IntOrString\": {\n      \"type\": \"string\",\n      \"format\": \"int-or-string\"\n    },\n    \"io.k8s.apimachinery.pkg.version.Info\": {\n      \"description\": \"Info contains versioning information. how we'll want to distribute that information.\",\n      \"required\": [\n        \"major\",\n        \"minor\",\n        \"gitVersion\",\n        \"gitCommit\",\n        \"gitTreeState\",\n        \"buildDate\",\n        \"goVersion\",\n        \"compiler\",\n        \"platform\"\n      ],\n      \"properties\": {\n        \"buildDate\": {\n          \"type\": \"string\"\n        },\n        \"compiler\": {\n          \"type\": \"string\"\n        },\n        \"gitCommit\": {\n          \"type\": \"string\"\n        },\n        \"gitTreeState\": {\n          \"type\": \"string\"\n        },\n        \"gitVersion\": {\n          \"type\": \"string\"\n        },\n        \"goVersion\": {\n          \"type\": \"string\"\n        },\n        \"major\": {\n          \"type\": \"string\"\n        },\n        \"minor\": {\n          \"type\": \"string\"\n        },\n        \"platform\": {\n          \"type\": \"string\"\n        }\n      }\n    }\n  },\n  \"securityDefinitions\": {\n   \"BearerToken\": {\n    \"description\": \"Bearer Token authentication\",\n    \"type\": \"apiKey\",\n    \"name\": \"authorization\",\n    \"in\": \"header\"\n   }\n  },\n  \"security\": [\n   {\n    \"BearerToken\": []\n   }\n  ]\n }\n"
  },
  {
    "path": "pkg/util/proto/testdata/swagger_next.json",
    "content": "{\n  \"swagger\": \"2.0\",\n  \"info\": {\n    \"title\": \"Kubernetes\",\n    \"version\": \"v1.8.0\"\n  },\n  \"paths\": {},\n  \"definitions\": {\n    \"io.k8s.api.apps.v1beta1.ControllerRevision\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"revision\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"data\": {\n          \"description\": \"Data is the serialized representation of the state.\",\n          \"type\": \"object\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"revision\": {\n          \"description\": \"Revision indicates the revision of the state represented by Data.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevision\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.ControllerRevisionList\": {\n      \"description\": \"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of ControllerRevisions\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"ControllerRevisionList\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.Deployment\": {\n      \"description\": \"Deployment enables declarative updates for Pods and ReplicaSets.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Specification of the desired behavior of the Deployment.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.DeploymentSpec\"\n        },\n        \"status\": {\n          \"description\": \"Most recently observed status of the Deployment.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"Deployment\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.DeploymentCondition\": {\n      \"description\": \"DeploymentCondition describes the state of a deployment at a certain point.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"type\",\n        \"status\"\n      ],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastUpdateTime\": {\n          \"description\": \"The last time this condition was updated.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"A human readable message indicating details about the transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"The reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of deployment condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.DeploymentList\": {\n      \"description\": \"DeploymentList is a list of Deployments.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of Deployments.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"DeploymentList\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.DeploymentRollback\": {\n      \"description\": \"DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"rollbackTo\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Required: This must match the Name of a deployment.\",\n          \"type\": \"string\"\n        },\n        \"rollbackTo\": {\n          \"description\": \"The config of this deployment rollback.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig\"\n        },\n        \"updatedAnnotations\": {\n          \"description\": \"The annotations to be updated to a deployment\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"DeploymentRollback\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.DeploymentSpec\": {\n      \"description\": \"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"template\"\n      ],\n      \"properties\": {\n        \"minReadySeconds\": {\n          \"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)\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"paused\": {\n          \"description\": \"Indicates that the deployment is paused.\",\n          \"type\": \"boolean\"\n        },\n        \"progressDeadlineSeconds\": {\n          \"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. Once autoRollback is implemented, the deployment controller will automatically rollback failed deployments. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"revisionHistoryLimit\": {\n          \"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 2.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"rollbackTo\": {\n          \"description\": \"DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig\"\n        },\n        \"selector\": {\n          \"description\": \"Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"strategy\": {\n          \"description\": \"The deployment strategy to use to replace existing pods with new ones.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.DeploymentStrategy\"\n        },\n        \"template\": {\n          \"description\": \"Template describes the pods that will be created.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.DeploymentStatus\": {\n      \"description\": \"DeploymentStatus is the most recently observed status of the Deployment.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"availableReplicas\": {\n          \"description\": \"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"collisionCount\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"conditions\": {\n          \"description\": \"Represents the latest available observations of a deployment's current state.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.DeploymentCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"observedGeneration\": {\n          \"description\": \"The generation observed by the deployment controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"readyReplicas\": {\n          \"description\": \"Total number of ready pods targeted by this deployment.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"unavailableReplicas\": {\n          \"description\": \"Total number of unavailable pods targeted by this deployment.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"updatedReplicas\": {\n          \"description\": \"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.DeploymentStrategy\": {\n      \"description\": \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"rollingUpdate\": {\n          \"description\": \"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateDeployment\"\n        },\n        \"type\": {\n          \"description\": \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.RollbackConfig\": {\n      \"description\": \"DEPRECATED.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"revision\": {\n          \"description\": \"The revision to rollback to. If set to 0, rollback to the last revision.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.RollingUpdateDeployment\": {\n      \"description\": \"Spec to control the desired behavior of rolling update.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"maxSurge\": {\n          \"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 RC 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 RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        },\n        \"maxUnavailable\": {\n          \"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 RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\": {\n      \"description\": \"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"partition\": {\n          \"description\": \"Partition indicates the ordinal at which the StatefulSet should be partitioned.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.Scale\": {\n      \"description\": \"Scale represents a scaling request for a resource.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.ScaleSpec\"\n        },\n        \"status\": {\n          \"description\": \"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.ScaleStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"Scale\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.ScaleSpec\": {\n      \"description\": \"ScaleSpec describes the attributes of a scale subresource\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"replicas\": {\n          \"description\": \"desired number of instances for the scaled object.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.ScaleStatus\": {\n      \"description\": \"ScaleStatus represents the current status of a scale subresource.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"replicas\"\n      ],\n      \"properties\": {\n        \"replicas\": {\n          \"description\": \"actual number of observed instances of the scaled object.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"selector\": {\n          \"description\": \"label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"targetSelector\": {\n          \"description\": \"label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.StatefulSet\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the desired identities of pods in this set.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSet\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.StatefulSetList\": {\n      \"description\": \"StatefulSetList is a collection of StatefulSets.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"apps\",\n          \"kind\": \"StatefulSetList\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.apps.v1beta1.StatefulSetSpec\": {\n      \"description\": \"A StatefulSetSpec is the specification of a StatefulSet.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"template\",\n        \"serviceName\"\n      ],\n      \"properties\": {\n        \"podManagementPolicy\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"replicas\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"revisionHistoryLimit\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"selector\": {\n          \"description\": \"selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"serviceName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"template\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        },\n        \"updateStrategy\": {\n          \"description\": \"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy\"\n        },\n        \"volumeClaimTemplates\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.StatefulSetStatus\": {\n      \"description\": \"StatefulSetStatus represents the current state of a StatefulSet.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"replicas\"\n      ],\n      \"properties\": {\n        \"collisionCount\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"currentReplicas\": {\n          \"description\": \"currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"currentRevision\": {\n          \"description\": \"currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).\",\n          \"type\": \"string\"\n        },\n        \"observedGeneration\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"readyReplicas\": {\n          \"description\": \"readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"replicas is the number of Pods created by the StatefulSet controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"updateRevision\": {\n          \"description\": \"updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)\",\n          \"type\": \"string\"\n        },\n        \"updatedReplicas\": {\n          \"description\": \"updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"rollingUpdate\": {\n          \"description\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n          \"$ref\": \"#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\"\n        },\n        \"type\": {\n          \"description\": \"Type indicates the type of the StatefulSetUpdateStrategy.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.LocalSubjectAccessReview\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"spec\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"LocalSubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1.NonResourceAttributes\": {\n      \"description\": \"NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"path\": {\n          \"description\": \"Path is the URL path of the request\",\n          \"type\": \"string\"\n        },\n        \"verb\": {\n          \"description\": \"Verb is the standard HTTP verb\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.ResourceAttributes\": {\n      \"description\": \"ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"group\": {\n          \"description\": \"Group is the API Group of the Resource.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name is the name of the resource being requested for a \\\"get\\\" or deleted for a \\\"delete\\\". \\\"\\\" (empty) means all.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"resource\": {\n          \"description\": \"Resource is one of the existing resource types.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"subresource\": {\n          \"description\": \"Subresource is one of the existing resource types.  \\\"\\\" means none.\",\n          \"type\": \"string\"\n        },\n        \"verb\": {\n          \"description\": \"Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"version\": {\n          \"description\": \"Version is the API Version of the Resource.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.SelfSubjectAccessReview\": {\n      \"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\",\n      \"type\": \"object\",\n      \"required\": [\n        \"spec\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated.  user and groups must be empty\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SelfSubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\": {\n      \"description\": \"SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"nonResourceAttributes\": {\n          \"description\": \"NonResourceAttributes describes information for a non-resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes\"\n        },\n        \"resourceAttributes\": {\n          \"description\": \"ResourceAuthorizationAttributes describes information for a resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.ResourceAttributes\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.SubjectAccessReview\": {\n      \"description\": \"SubjectAccessReview checks whether or not a user or group can perform an action.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"spec\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SubjectAccessReview\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1.SubjectAccessReviewSpec\": {\n      \"description\": \"SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"extra\": {\n          \"description\": \"Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer it needs a reflection here.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"string\"\n            }\n          }\n        },\n        \"groups\": {\n          \"description\": \"Groups is the groups you're testing for.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"nonResourceAttributes\": {\n          \"description\": \"NonResourceAttributes describes information for a non-resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes\"\n        },\n        \"resourceAttributes\": {\n          \"description\": \"ResourceAuthorizationAttributes describes information for a resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1.ResourceAttributes\"\n        },\n        \"uid\": {\n          \"description\": \"UID information about the requesting user.\",\n          \"type\": \"string\"\n        },\n        \"user\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1.SubjectAccessReviewStatus\": {\n      \"description\": \"SubjectAccessReviewStatus\",\n      \"type\": \"object\",\n      \"required\": [\n        \"allowed\"\n      ],\n      \"properties\": {\n        \"allowed\": {\n          \"description\": \"Allowed is required.  True if the action would be allowed, false otherwise.\",\n          \"type\": \"boolean\"\n        },\n        \"evaluationError\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"Reason is optional.  It indicates why a request was allowed or denied.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"spec\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"LocalSubjectAccessReview\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1beta1.NonResourceAttributes\": {\n      \"description\": \"NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"path\": {\n          \"description\": \"Path is the URL path of the request\",\n          \"type\": \"string\"\n        },\n        \"verb\": {\n          \"description\": \"Verb is the standard HTTP verb\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1beta1.ResourceAttributes\": {\n      \"description\": \"ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"group\": {\n          \"description\": \"Group is the API Group of the Resource.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name is the name of the resource being requested for a \\\"get\\\" or deleted for a \\\"delete\\\". \\\"\\\" (empty) means all.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"resource\": {\n          \"description\": \"Resource is one of the existing resource types.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"subresource\": {\n          \"description\": \"Subresource is one of the existing resource types.  \\\"\\\" means none.\",\n          \"type\": \"string\"\n        },\n        \"verb\": {\n          \"description\": \"Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        },\n        \"version\": {\n          \"description\": \"Version is the API Version of the Resource.  \\\"*\\\" means all.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview\": {\n      \"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\",\n      \"type\": \"object\",\n      \"required\": [\n        \"spec\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated.  user and groups must be empty\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SelfSubjectAccessReview\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec\": {\n      \"description\": \"SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"nonResourceAttributes\": {\n          \"description\": \"NonResourceAttributes describes information for a non-resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes\"\n        },\n        \"resourceAttributes\": {\n          \"description\": \"ResourceAuthorizationAttributes describes information for a resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1beta1.SubjectAccessReview\": {\n      \"description\": \"SubjectAccessReview checks whether or not a user or group can perform an action.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"spec\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec holds information about the request being evaluated\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status is filled in by the server and indicates whether the request is allowed or not\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"SubjectAccessReview\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec\": {\n      \"description\": \"SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"extra\": {\n          \"description\": \"Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer it needs a reflection here.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"string\"\n            }\n          }\n        },\n        \"group\": {\n          \"description\": \"Groups is the groups you're testing for.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"nonResourceAttributes\": {\n          \"description\": \"NonResourceAttributes describes information for a non-resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes\"\n        },\n        \"resourceAttributes\": {\n          \"description\": \"ResourceAuthorizationAttributes describes information for a resource access request\",\n          \"$ref\": \"#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes\"\n        },\n        \"uid\": {\n          \"description\": \"UID information about the requesting user.\",\n          \"type\": \"string\"\n        },\n        \"user\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\": {\n      \"description\": \"SubjectAccessReviewStatus\",\n      \"type\": \"object\",\n      \"required\": [\n        \"allowed\"\n      ],\n      \"properties\": {\n        \"allowed\": {\n          \"description\": \"Allowed is required.  True if the action would be allowed, false otherwise.\",\n          \"type\": \"boolean\"\n        },\n        \"evaluationError\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"Reason is optional.  It indicates why a request was allowed or denied.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"volumeID\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"partition\": {\n          \"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).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"readOnly\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"volumeID\": {\n          \"description\": \"Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Affinity\": {\n      \"description\": \"Affinity is a group of affinity scheduling rules.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"nodeAffinity\": {\n          \"description\": \"Describes node affinity scheduling rules for the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeAffinity\"\n        },\n        \"podAffinity\": {\n          \"description\": \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAffinity\"\n        },\n        \"podAntiAffinity\": {\n          \"description\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAntiAffinity\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AttachedVolume\": {\n      \"description\": \"AttachedVolume describes a volume attached to a node\",\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"devicePath\"\n      ],\n      \"properties\": {\n        \"devicePath\": {\n          \"description\": \"DevicePath represents the device path where the volume should be available\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the attached volume\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AzureDiskVolumeSource\": {\n      \"description\": \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"diskName\",\n        \"diskURI\"\n      ],\n      \"properties\": {\n        \"cachingMode\": {\n          \"description\": \"Host Caching mode: None, Read Only, Read Write.\",\n          \"type\": \"string\"\n        },\n        \"diskName\": {\n          \"description\": \"The Name of the data disk in the blob storage\",\n          \"type\": \"string\"\n        },\n        \"diskURI\": {\n          \"description\": \"The URI the data disk in the blob storage\",\n          \"type\": \"string\"\n        },\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Expected values Shared: mulitple 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\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AzureFilePersistentVolumeSource\": {\n      \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"secretName\",\n        \"shareName\"\n      ],\n      \"properties\": {\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretName\": {\n          \"description\": \"the name of secret that contains Azure Storage Account Name and Key\",\n          \"type\": \"string\"\n        },\n        \"secretNamespace\": {\n          \"description\": \"the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod\",\n          \"type\": \"string\"\n        },\n        \"shareName\": {\n          \"description\": \"Share Name\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.AzureFileVolumeSource\": {\n      \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"secretName\",\n        \"shareName\"\n      ],\n      \"properties\": {\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretName\": {\n          \"description\": \"the name of secret that contains Azure Storage Account Name and Key\",\n          \"type\": \"string\"\n        },\n        \"shareName\": {\n          \"description\": \"Share Name\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Binding\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"target\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"target\": {\n          \"description\": \"The target object that you want to bind to the standard object.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Binding\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.Capabilities\": {\n      \"description\": \"Adds and removes POSIX capabilities from running containers.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"add\": {\n          \"description\": \"Added capabilities\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"drop\": {\n          \"description\": \"Removed capabilities\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.CephFSPersistentVolumeSource\": {\n      \"description\": \"Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"monitors\"\n      ],\n      \"properties\": {\n        \"monitors\": {\n          \"description\": \"Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"path\": {\n          \"description\": \"Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"boolean\"\n        },\n        \"secretFile\": {\n          \"description\": \"Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"secretRef\": {\n          \"description\": \"Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretReference\"\n        },\n        \"user\": {\n          \"description\": \"Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.CephFSVolumeSource\": {\n      \"description\": \"Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"monitors\"\n      ],\n      \"properties\": {\n        \"monitors\": {\n          \"description\": \"Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"path\": {\n          \"description\": \"Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"boolean\"\n        },\n        \"secretFile\": {\n          \"description\": \"Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"secretRef\": {\n          \"description\": \"Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"user\": {\n          \"description\": \"Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.CinderVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"volumeID\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\n          \"type\": \"boolean\"\n        },\n        \"volumeID\": {\n          \"description\": \"volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ClientIPConfig\": {\n      \"description\": \"ClientIPConfig represents the configurations of Client IP based session affinity.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"timeoutSeconds\": {\n          \"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).\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ComponentCondition\": {\n      \"description\": \"Information about the condition of a component.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"type\",\n        \"status\"\n      ],\n      \"properties\": {\n        \"error\": {\n          \"description\": \"Condition error code for a component. For example, a health check error code.\",\n          \"type\": \"string\"\n        },\n        \"message\": {\n          \"description\": \"Message about the condition for a component. For example, information about a health check.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition for a component. Valid values for \\\"Healthy\\\": \\\"True\\\", \\\"False\\\", or \\\"Unknown\\\".\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of condition for a component. Valid value: \\\"Healthy\\\"\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ComponentStatus\": {\n      \"description\": \"ComponentStatus (and ComponentStatusList) holds the cluster validation info.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"conditions\": {\n          \"description\": \"List of component conditions observed\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ComponentCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ComponentStatus\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ComponentStatusList\": {\n      \"description\": \"Status of all the conditions for the component as a list of ComponentStatus objects.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of ComponentStatus objects.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ComponentStatus\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ComponentStatusList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ConfigMap\": {\n      \"description\": \"ConfigMap holds configuration data for pods to consume.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"data\": {\n          \"description\": \"Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ConfigMap\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ConfigMapEnvSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the ConfigMap must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ConfigMapKeySelector\": {\n      \"description\": \"Selects a key from a ConfigMap.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"key\"\n      ],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"The key to select.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the ConfigMap or it's key must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ConfigMapList\": {\n      \"description\": \"ConfigMapList is a resource containing a list of ConfigMap objects.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of ConfigMaps.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMap\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ConfigMapList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ConfigMapProjection\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"items\": {\n          \"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 '..'.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.KeyToPath\"\n          }\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the ConfigMap or it's keys must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ConfigMapVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"defaultMode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"items\": {\n          \"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 '..'.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.KeyToPath\"\n          }\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the ConfigMap or it's keys must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Container\": {\n      \"description\": \"A single application container that you want to run within a pod.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"image\"\n      ],\n      \"properties\": {\n        \"args\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"command\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"env\": {\n          \"description\": \"List of environment variables to set in the container. Cannot be updated.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EnvVar\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"envFrom\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EnvFromSource\"\n          }\n        },\n        \"image\": {\n          \"description\": \"Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images\",\n          \"type\": \"string\"\n        },\n        \"imagePullPolicy\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"lifecycle\": {\n          \"description\": \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Lifecycle\"\n        },\n        \"livenessProbe\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Probe\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"ports\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerPort\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"containerPort\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"readinessProbe\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Probe\"\n        },\n        \"resources\": {\n          \"description\": \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"\n        },\n        \"securityContext\": {\n          \"description\": \"Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecurityContext\"\n        },\n        \"stdin\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"stdinOnce\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"terminationMessagePath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"terminationMessagePolicy\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"tty\": {\n          \"description\": \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n          \"type\": \"boolean\"\n        },\n        \"volumeMounts\": {\n          \"description\": \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.VolumeMount\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"mountPath\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"workingDir\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerImage\": {\n      \"description\": \"Describe a container image\",\n      \"type\": \"object\",\n      \"required\": [\n        \"names\"\n      ],\n      \"properties\": {\n        \"names\": {\n          \"description\": \"Names by which this image is known. e.g. [\\\"gcr.io/google_containers/hyperkube:v1.0.7\\\", \\\"dockerhub.io/google_containers/hyperkube:v1.0.7\\\"]\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"sizeBytes\": {\n          \"description\": \"The size of the image in bytes.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerPort\": {\n      \"description\": \"ContainerPort represents a network port in a single container.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"containerPort\"\n      ],\n      \"properties\": {\n        \"containerPort\": {\n          \"description\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 \\u003c x \\u003c 65536.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"hostIP\": {\n          \"description\": \"What host IP to bind the external port to.\",\n          \"type\": \"string\"\n        },\n        \"hostPort\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"name\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"protocol\": {\n          \"description\": \"Protocol for port. Must be UDP or TCP. Defaults to \\\"TCP\\\".\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerState\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"running\": {\n          \"description\": \"Details about a running container\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStateRunning\"\n        },\n        \"terminated\": {\n          \"description\": \"Details about a terminated container\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStateTerminated\"\n        },\n        \"waiting\": {\n          \"description\": \"Details about a waiting container\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStateWaiting\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerStateRunning\": {\n      \"description\": \"ContainerStateRunning is a running state of a container.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"startedAt\": {\n          \"description\": \"Time at which the container was last (re-)started\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerStateTerminated\": {\n      \"description\": \"ContainerStateTerminated is a terminated state of a container.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"exitCode\"\n      ],\n      \"properties\": {\n        \"containerID\": {\n          \"description\": \"Container's ID in the format 'docker://\\u003ccontainer_id\\u003e'\",\n          \"type\": \"string\"\n        },\n        \"exitCode\": {\n          \"description\": \"Exit status from the last termination of the container\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"finishedAt\": {\n          \"description\": \"Time at which the container last terminated\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"Message regarding the last termination of the container\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"(brief) reason from the last termination of the container\",\n          \"type\": \"string\"\n        },\n        \"signal\": {\n          \"description\": \"Signal from the last termination of the container\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"startedAt\": {\n          \"description\": \"Time at which previous execution of the container started\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerStateWaiting\": {\n      \"description\": \"ContainerStateWaiting is a waiting state of a container.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"message\": {\n          \"description\": \"Message regarding why the container is not yet running.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"(brief) reason the container is not yet running.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ContainerStatus\": {\n      \"description\": \"ContainerStatus contains details for the current status of this container.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"ready\",\n        \"restartCount\",\n        \"image\",\n        \"imageID\"\n      ],\n      \"properties\": {\n        \"containerID\": {\n          \"description\": \"Container's ID in the format 'docker://\\u003ccontainer_id\\u003e'.\",\n          \"type\": \"string\"\n        },\n        \"image\": {\n          \"description\": \"The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images\",\n          \"type\": \"string\"\n        },\n        \"imageID\": {\n          \"description\": \"ImageID of the container's image.\",\n          \"type\": \"string\"\n        },\n        \"lastState\": {\n          \"description\": \"Details about the container's last termination condition.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerState\"\n        },\n        \"name\": {\n          \"description\": \"This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.\",\n          \"type\": \"string\"\n        },\n        \"ready\": {\n          \"description\": \"Specifies whether the container has passed its readiness probe.\",\n          \"type\": \"boolean\"\n        },\n        \"restartCount\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"state\": {\n          \"description\": \"Details about the container's current condition.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerState\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.DaemonEndpoint\": {\n      \"description\": \"DaemonEndpoint contains information about a single Daemon endpoint.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"Port\"\n      ],\n      \"properties\": {\n        \"Port\": {\n          \"description\": \"Port number of the given endpoint.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.DownwardAPIProjection\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"items\": {\n          \"description\": \"Items is a list of DownwardAPIVolume file\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.DownwardAPIVolumeFile\": {\n      \"description\": \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n      \"type\": \"object\",\n      \"required\": [\n        \"path\"\n      ],\n      \"properties\": {\n        \"fieldRef\": {\n          \"description\": \"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"\n        },\n        \"mode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"path\": {\n          \"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 '..'\",\n          \"type\": \"string\"\n        },\n        \"resourceFieldRef\": {\n          \"description\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.DownwardAPIVolumeSource\": {\n      \"description\": \"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"defaultMode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of downward API volume file\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EmptyDirVolumeSource\": {\n      \"description\": \"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"medium\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"sizeLimit\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EndpointAddress\": {\n      \"description\": \"EndpointAddress is a tuple that describes single IP address.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"ip\"\n      ],\n      \"properties\": {\n        \"hostname\": {\n          \"description\": \"The Hostname of this endpoint\",\n          \"type\": \"string\"\n        },\n        \"ip\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"nodeName\": {\n          \"description\": \"Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\",\n          \"type\": \"string\"\n        },\n        \"targetRef\": {\n          \"description\": \"Reference to object providing the endpoint.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EndpointPort\": {\n      \"description\": \"EndpointPort is a tuple that describes a single port.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"port\"\n      ],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"The name of this port (corresponds to ServicePort.Name). Must be a DNS_LABEL. Optional only if one port is defined.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"description\": \"The port number of the endpoint.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"protocol\": {\n          \"description\": \"The IP protocol for this port. Must be UDP or TCP. Default is TCP.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EndpointSubset\": {\n      \"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 ]\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"addresses\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointAddress\"\n          }\n        },\n        \"notReadyAddresses\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointAddress\"\n          }\n        },\n        \"ports\": {\n          \"description\": \"Port numbers available on the related IP addresses.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointPort\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Endpoints\": {\n      \"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 ]\",\n      \"type\": \"object\",\n      \"required\": [\n        \"subsets\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"subsets\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.EndpointSubset\"\n          }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Endpoints\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.EndpointsList\": {\n      \"description\": \"EndpointsList is a list of endpoints.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of endpoints.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Endpoints\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"EndpointsList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.EnvFromSource\": {\n      \"description\": \"EnvFromSource represents the source of a set of ConfigMaps\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"configMapRef\": {\n          \"description\": \"The ConfigMap to select from\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource\"\n        },\n        \"prefix\": {\n          \"description\": \"An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n          \"type\": \"string\"\n        },\n        \"secretRef\": {\n          \"description\": \"The Secret to select from\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretEnvSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EnvVar\": {\n      \"description\": \"EnvVar represents an environment variable present in a Container.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"name\"\n      ],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n          \"type\": \"string\"\n        },\n        \"value\": {\n          \"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 \\\"\\\".\",\n          \"type\": \"string\"\n        },\n        \"valueFrom\": {\n          \"description\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.EnvVarSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.EnvVarSource\": {\n      \"description\": \"EnvVarSource represents a source for the value of an EnvVar.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"configMapKeyRef\": {\n          \"description\": \"Selects a key of a ConfigMap.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector\"\n        },\n        \"fieldRef\": {\n          \"description\": \"Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"\n        },\n        \"resourceFieldRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"\n        },\n        \"secretKeyRef\": {\n          \"description\": \"Selects a key of a secret in the pod's namespace\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretKeySelector\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Event\": {\n      \"description\": \"Event is a report of an event somewhere in the cluster.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"metadata\",\n        \"involvedObject\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"count\": {\n          \"description\": \"The number of times this event has occurred.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"firstTimestamp\": {\n          \"description\": \"The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"involvedObject\": {\n          \"description\": \"The object that this event is about.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"lastTimestamp\": {\n          \"description\": \"The time at which the most recent occurrence of this event was recorded.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"A human-readable description of the status of this operation.\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"reason\": {\n          \"description\": \"This should be a short, machine understandable string that gives the reason for the transition into the object's current status.\",\n          \"type\": \"string\"\n        },\n        \"source\": {\n          \"description\": \"The component reporting this event. Should be a short machine understandable string.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.EventSource\"\n        },\n        \"type\": {\n          \"description\": \"Type of this event (Normal, Warning), new types could be added in the future\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Event\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.EventList\": {\n      \"description\": \"EventList is a list of events.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of events\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Event\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"EventList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.EventSource\": {\n      \"description\": \"EventSource contains information for an event.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"component\": {\n          \"description\": \"Component from which the event is generated.\",\n          \"type\": \"string\"\n        },\n        \"host\": {\n          \"description\": \"Node name on which the event is generated.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ExecAction\": {\n      \"description\": \"ExecAction describes a \\\"run in container\\\" action.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"command\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.FCVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"lun\": {\n          \"description\": \"Optional: FC target lun number\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"readOnly\": {\n          \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"targetWWNs\": {\n          \"description\": \"Optional: FC target worldwide names (WWNs)\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"wwids\": {\n          \"description\": \"Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.FlexVolumeSource\": {\n      \"description\": \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"driver\"\n      ],\n      \"properties\": {\n        \"driver\": {\n          \"description\": \"Driver is the name of the driver to use for this volume.\",\n          \"type\": \"string\"\n        },\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"options\": {\n          \"description\": \"Optional: Extra command options if any.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"readOnly\": {\n          \"description\": \"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.FlockerVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"datasetName\": {\n          \"description\": \"Name of the dataset stored as metadata -\\u003e name on the dataset for Flocker should be considered as deprecated\",\n          \"type\": \"string\"\n        },\n        \"datasetUUID\": {\n          \"description\": \"UUID of the dataset. This is unique identifier of a Flocker dataset\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"pdName\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"partition\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"pdName\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.GitRepoVolumeSource\": {\n      \"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      \"type\": \"object\",\n      \"required\": [\n        \"repository\"\n      ],\n      \"properties\": {\n        \"directory\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"repository\": {\n          \"description\": \"Repository URL\",\n          \"type\": \"string\"\n        },\n        \"revision\": {\n          \"description\": \"Commit hash for the specified revision.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.GlusterfsVolumeSource\": {\n      \"description\": \"Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"endpoints\",\n        \"path\"\n      ],\n      \"properties\": {\n        \"endpoints\": {\n          \"description\": \"EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\n          \"type\": \"string\"\n        },\n        \"path\": {\n          \"description\": \"Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.HTTPGetAction\": {\n      \"description\": \"HTTPGetAction describes an action based on HTTP Get requests.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"port\"\n      ],\n      \"properties\": {\n        \"host\": {\n          \"description\": \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n          \"type\": \"string\"\n        },\n        \"httpHeaders\": {\n          \"description\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.HTTPHeader\"\n          }\n        },\n        \"path\": {\n          \"description\": \"Path to access on the HTTP server.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        },\n        \"scheme\": {\n          \"description\": \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.HTTPHeader\": {\n      \"description\": \"HTTPHeader describes a custom header to be used in HTTP probes\",\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"value\"\n      ],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"The header field name\",\n          \"type\": \"string\"\n        },\n        \"value\": {\n          \"description\": \"The header field value\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Handler\": {\n      \"description\": \"Handler defines a specific action that should be taken\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"exec\": {\n          \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ExecAction\"\n        },\n        \"httpGet\": {\n          \"description\": \"HTTPGet specifies the http request to perform.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"\n        },\n        \"tcpSocket\": {\n          \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.HostAlias\": {\n      \"description\": \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"hostnames\": {\n          \"description\": \"Hostnames for the above IP address.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"ip\": {\n          \"description\": \"IP address of the host file entry.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.HostPathVolumeSource\": {\n      \"description\": \"Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"path\"\n      ],\n      \"properties\": {\n        \"path\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ISCSIVolumeSource\": {\n      \"description\": \"Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"targetPortal\",\n        \"iqn\",\n        \"lun\"\n      ],\n      \"properties\": {\n        \"chapAuthDiscovery\": {\n          \"description\": \"whether support iSCSI Discovery CHAP authentication\",\n          \"type\": \"boolean\"\n        },\n        \"chapAuthSession\": {\n          \"description\": \"whether support iSCSI Session CHAP authentication\",\n          \"type\": \"boolean\"\n        },\n        \"fsType\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"initiatorName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"iqn\": {\n          \"description\": \"Target iSCSI Qualified Name.\",\n          \"type\": \"string\"\n        },\n        \"iscsiInterface\": {\n          \"description\": \"Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.\",\n          \"type\": \"string\"\n        },\n        \"lun\": {\n          \"description\": \"iSCSI target lun number.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"portals\": {\n          \"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).\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"readOnly\": {\n          \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"CHAP secret for iSCSI target and initiator authentication\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"targetPortal\": {\n          \"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).\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.KeyToPath\": {\n      \"description\": \"Maps a string key to a path within a volume.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"key\",\n        \"path\"\n      ],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"The key to project.\",\n          \"type\": \"string\"\n        },\n        \"mode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"path\": {\n          \"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 '..'.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Lifecycle\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"postStart\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Handler\"\n        },\n        \"preStop\": {\n          \"description\": \"PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Handler\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LimitRange\": {\n      \"description\": \"LimitRange sets resource usage limits for each kind of resource in a Namespace.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRangeSpec\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"LimitRange\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.LimitRangeItem\": {\n      \"description\": \"LimitRangeItem defines a min/max usage limit for any resource that matches on kind.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"default\": {\n          \"description\": \"Default resource requirement limit value by resource name if resource limit is omitted.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"defaultRequest\": {\n          \"description\": \"DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"max\": {\n          \"description\": \"Max usage constraints on this kind by resource name.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"maxLimitRequestRatio\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"min\": {\n          \"description\": \"Min usage constraints on this kind by resource name.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"type\": {\n          \"description\": \"Type of resource that this limit applies to.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LimitRangeList\": {\n      \"description\": \"LimitRangeList is a list of LimitRange items.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of LimitRange objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_limit_range.md\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRange\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"LimitRangeList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.LimitRangeSpec\": {\n      \"description\": \"LimitRangeSpec defines a min/max usage limit for resources that match on kind.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"limits\"\n      ],\n      \"properties\": {\n        \"limits\": {\n          \"description\": \"Limits is the list of LimitRangeItem objects that are enforced.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LimitRangeItem\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LoadBalancerIngress\": {\n      \"description\": \"LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"hostname\": {\n          \"description\": \"Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)\",\n          \"type\": \"string\"\n        },\n        \"ip\": {\n          \"description\": \"IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LoadBalancerStatus\": {\n      \"description\": \"LoadBalancerStatus represents the status of a load-balancer.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"ingress\": {\n          \"description\": \"Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LoadBalancerIngress\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LocalObjectReference\": {\n      \"description\": \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.LocalVolumeSource\": {\n      \"description\": \"Local represents directly-attached storage with node affinity\",\n      \"type\": \"object\",\n      \"required\": [\n        \"path\"\n      ],\n      \"properties\": {\n        \"path\": {\n          \"description\": \"The full path to the volume on the node For alpha, this path must be a directory Once block as a source is supported, then this path can point to a block device\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NFSVolumeSource\": {\n      \"description\": \"Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"server\",\n        \"path\"\n      ],\n      \"properties\": {\n        \"path\": {\n          \"description\": \"Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"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\",\n          \"type\": \"boolean\"\n        },\n        \"server\": {\n          \"description\": \"Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Namespace\": {\n      \"description\": \"Namespace provides a scope for Names. Use of multiple namespaces is optional.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NamespaceSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NamespaceStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Namespace\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.NamespaceList\": {\n      \"description\": \"NamespaceList is a list of Namespaces.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Namespace\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"NamespaceList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.NamespaceSpec\": {\n      \"description\": \"NamespaceSpec describes the attributes on a Namespace.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"finalizers\": {\n          \"description\": \"Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NamespaceStatus\": {\n      \"description\": \"NamespaceStatus is information about the current status of a Namespace.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"phase\": {\n          \"description\": \"Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Node\": {\n      \"description\": \"Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSpec\"\n        },\n        \"status\": {\n          \"description\": \"Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Node\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.NodeAddress\": {\n      \"description\": \"NodeAddress contains information for the node's address.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"type\",\n        \"address\"\n      ],\n      \"properties\": {\n        \"address\": {\n          \"description\": \"The node address.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Node address type, one of Hostname, ExternalIP or InternalIP.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeAffinity\": {\n      \"description\": \"Node affinity is a group of node affinity scheduling rules.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"preferredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm\"\n          }\n        },\n        \"requiredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelector\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeCondition\": {\n      \"description\": \"NodeCondition contains condition information for a node.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"type\",\n        \"status\"\n      ],\n      \"properties\": {\n        \"lastHeartbeatTime\": {\n          \"description\": \"Last time we got an update on a given condition.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transit from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"Human readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"(brief) reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of node condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeConfigSource\": {\n      \"description\": \"NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"configMapRef\": {\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"NodeConfigSource\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.NodeDaemonEndpoints\": {\n      \"description\": \"NodeDaemonEndpoints lists ports opened by daemons running on the Node.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"kubeletEndpoint\": {\n          \"description\": \"Endpoint on which Kubelet is listening.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.DaemonEndpoint\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeList\": {\n      \"description\": \"NodeList is the whole list of all Nodes which have been registered with master.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of nodes\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Node\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"NodeList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.NodeSelector\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"nodeSelectorTerms\"\n      ],\n      \"properties\": {\n        \"nodeSelectorTerms\": {\n          \"description\": \"Required. A list of node selector terms. The terms are ORed.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeSelectorRequirement\": {\n      \"description\": \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"key\",\n        \"operator\"\n      ],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"The label key that the selector applies to.\",\n          \"type\": \"string\"\n        },\n        \"operator\": {\n          \"description\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n          \"type\": \"string\"\n        },\n        \"values\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeSelectorTerm\": {\n      \"description\": \"A null or empty node selector term matches no objects.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"matchExpressions\"\n      ],\n      \"properties\": {\n        \"matchExpressions\": {\n          \"description\": \"Required. A list of node selector requirements. The requirements are ANDed.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeSpec\": {\n      \"description\": \"NodeSpec describes the attributes that a node is created with.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"configSource\": {\n          \"description\": \"If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"\n        },\n        \"externalID\": {\n          \"description\": \"External ID of the node assigned by some machine database (e.g. a cloud provider). Deprecated.\",\n          \"type\": \"string\"\n        },\n        \"podCIDR\": {\n          \"description\": \"PodCIDR represents the pod IP range assigned to the node.\",\n          \"type\": \"string\"\n        },\n        \"providerID\": {\n          \"description\": \"ID of the node assigned by the cloud provider in the format: \\u003cProviderName\\u003e://\\u003cProviderSpecificNodeID\\u003e\",\n          \"type\": \"string\"\n        },\n        \"taints\": {\n          \"description\": \"If specified, the node's taints.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Taint\"\n          }\n        },\n        \"unschedulable\": {\n          \"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\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeStatus\": {\n      \"description\": \"NodeStatus is information about the current status of a node.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"addresses\": {\n          \"description\": \"List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeAddress\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"allocatable\": {\n          \"description\": \"Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"capacity\": {\n          \"description\": \"Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"conditions\": {\n          \"description\": \"Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"daemonEndpoints\": {\n          \"description\": \"Endpoints of daemons running on the Node.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints\"\n        },\n        \"images\": {\n          \"description\": \"List of container images on this node\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerImage\"\n          }\n        },\n        \"nodeInfo\": {\n          \"description\": \"Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSystemInfo\"\n        },\n        \"phase\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"volumesAttached\": {\n          \"description\": \"List of volumes that are attached to the node.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.AttachedVolume\"\n          }\n        },\n        \"volumesInUse\": {\n          \"description\": \"List of attachable volumes in use (mounted) by the node.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.NodeSystemInfo\": {\n      \"description\": \"NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"machineID\",\n        \"systemUUID\",\n        \"bootID\",\n        \"kernelVersion\",\n        \"osImage\",\n        \"containerRuntimeVersion\",\n        \"kubeletVersion\",\n        \"kubeProxyVersion\",\n        \"operatingSystem\",\n        \"architecture\"\n      ],\n      \"properties\": {\n        \"architecture\": {\n          \"description\": \"The Architecture reported by the node\",\n          \"type\": \"string\"\n        },\n        \"bootID\": {\n          \"description\": \"Boot ID reported by the node.\",\n          \"type\": \"string\"\n        },\n        \"containerRuntimeVersion\": {\n          \"description\": \"ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).\",\n          \"type\": \"string\"\n        },\n        \"kernelVersion\": {\n          \"description\": \"Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).\",\n          \"type\": \"string\"\n        },\n        \"kubeProxyVersion\": {\n          \"description\": \"KubeProxy Version reported by the node.\",\n          \"type\": \"string\"\n        },\n        \"kubeletVersion\": {\n          \"description\": \"Kubelet Version reported by the node.\",\n          \"type\": \"string\"\n        },\n        \"machineID\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"operatingSystem\": {\n          \"description\": \"The Operating System reported by the node\",\n          \"type\": \"string\"\n        },\n        \"osImage\": {\n          \"description\": \"OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).\",\n          \"type\": \"string\"\n        },\n        \"systemUUID\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ObjectFieldSelector\": {\n      \"description\": \"ObjectFieldSelector selects an APIVersioned field of an object.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"fieldPath\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n          \"type\": \"string\"\n        },\n        \"fieldPath\": {\n          \"description\": \"Path of the field to select in the specified API version.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ObjectReference\": {\n      \"description\": \"ObjectReference contains enough information to let you inspect or modify the referred object.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"API version of the referent.\",\n          \"type\": \"string\"\n        },\n        \"fieldPath\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n          \"type\": \"string\"\n        },\n        \"resourceVersion\": {\n          \"description\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency\",\n          \"type\": \"string\"\n        },\n        \"uid\": {\n          \"description\": \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolume\": {\n      \"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\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolume\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaim\": {\n      \"description\": \"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"\n        },\n        \"status\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaim\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimList\": {\n      \"description\": \"PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeClaimList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimSpec\": {\n      \"description\": \"PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"accessModes\": {\n          \"description\": \"AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"resources\": {\n          \"description\": \"Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"\n        },\n        \"selector\": {\n          \"description\": \"A label query over volumes to consider for binding.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"storageClassName\": {\n          \"description\": \"Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n          \"type\": \"string\"\n        },\n        \"volumeName\": {\n          \"description\": \"VolumeName is the binding reference to the PersistentVolume backing this claim.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimStatus\": {\n      \"description\": \"PersistentVolumeClaimStatus is the current status of a persistent volume claim.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"accessModes\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"capacity\": {\n          \"description\": \"Represents the actual resources of the underlying volume.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"phase\": {\n          \"description\": \"Phase represents the current phase of PersistentVolumeClaim.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\": {\n      \"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).\",\n      \"type\": \"object\",\n      \"required\": [\n        \"claimName\"\n      ],\n      \"properties\": {\n        \"claimName\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Will force the ReadOnly setting in VolumeMounts. Default false.\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeList\": {\n      \"description\": \"PersistentVolumeList is a list of PersistentVolume items.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolume\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PersistentVolumeList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeSpec\": {\n      \"description\": \"PersistentVolumeSpec is the specification of a persistent volume.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"accessModes\": {\n          \"description\": \"AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"awsElasticBlockStore\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"\n        },\n        \"azureDisk\": {\n          \"description\": \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"\n        },\n        \"azureFile\": {\n          \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource\"\n        },\n        \"capacity\": {\n          \"description\": \"A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"cephfs\": {\n          \"description\": \"CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource\"\n        },\n        \"cinder\": {\n          \"description\": \"Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CinderVolumeSource\"\n        },\n        \"claimRef\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"fc\": {\n          \"description\": \"FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"\n        },\n        \"flexVolume\": {\n          \"description\": \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FlexVolumeSource\"\n        },\n        \"flocker\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"\n        },\n        \"gcePersistentDisk\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"\n        },\n        \"glusterfs\": {\n          \"description\": \"Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource\"\n        },\n        \"hostPath\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"\n        },\n        \"iscsi\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource\"\n        },\n        \"local\": {\n          \"description\": \"Local represents directly-attached storage with node affinity\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalVolumeSource\"\n        },\n        \"mountOptions\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"nfs\": {\n          \"description\": \"NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"\n        },\n        \"persistentVolumeReclaimPolicy\": {\n          \"description\": \"What happens to a persistent volume when released from its claim. Valid options are Retain (default) and Recycle. Recycling must be supported by the volume plugin underlying this persistent volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming\",\n          \"type\": \"string\"\n        },\n        \"photonPersistentDisk\": {\n          \"description\": \"PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"\n        },\n        \"portworxVolume\": {\n          \"description\": \"PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"\n        },\n        \"quobyte\": {\n          \"description\": \"Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"\n        },\n        \"rbd\": {\n          \"description\": \"RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.RBDVolumeSource\"\n        },\n        \"scaleIO\": {\n          \"description\": \"ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource\"\n        },\n        \"storageClassName\": {\n          \"description\": \"Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.\",\n          \"type\": \"string\"\n        },\n        \"storageos\": {\n          \"description\": \"StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource\"\n        },\n        \"vsphereVolume\": {\n          \"description\": \"VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PersistentVolumeStatus\": {\n      \"description\": \"PersistentVolumeStatus is the current status of a persistent volume.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"message\": {\n          \"description\": \"A human-readable message indicating details about why the volume is in this state.\",\n          \"type\": \"string\"\n        },\n        \"phase\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\": {\n      \"description\": \"Represents a Photon Controller persistent disk resource.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"pdID\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"pdID\": {\n          \"description\": \"ID that identifies Photon Controller persistent disk\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Pod\": {\n      \"description\": \"Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodSpec\"\n        },\n        \"status\": {\n          \"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/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Pod\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PodAffinity\": {\n      \"description\": \"Pod affinity is a group of inter pod affinity scheduling rules.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"preferredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"\n          }\n        },\n        \"requiredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodAffinityTerm\": {\n      \"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 tches that of any node on which a pod of the set of pods is running\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"labelSelector\": {\n          \"description\": \"A label query over a set of resources, in this case pods.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"\n        },\n        \"namespaces\": {\n          \"description\": \"namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \\\"this pod's namespace\\\"\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"topologyKey\": {\n          \"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. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as \\\"all topologies\\\" (\\\"all topologies\\\" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodAntiAffinity\": {\n      \"description\": \"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"preferredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"\n          }\n        },\n        \"requiredDuringSchedulingIgnoredDuringExecution\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodCondition\": {\n      \"description\": \"PodCondition contains details for the current condition of this pod.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"type\",\n        \"status\"\n      ],\n      \"properties\": {\n        \"lastProbeTime\": {\n          \"description\": \"Last time we probed the condition.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"lastTransitionTime\": {\n          \"description\": \"Last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"Human-readable message indicating details about last transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"Unique, one-word, CamelCase reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type is the type of the condition. Currently only Ready. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodList\": {\n      \"description\": \"PodList is a list of Pods.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of pods. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Pod\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PodList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PodSecurityContext\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"fsGroup\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"runAsNonRoot\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"runAsUser\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"seLinuxOptions\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"\n        },\n        \"supplementalGroups\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"integer\",\n            \"format\": \"int64\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodSpec\": {\n      \"description\": \"PodSpec is a description of a pod.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"containers\"\n      ],\n      \"properties\": {\n        \"activeDeadlineSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"affinity\": {\n          \"description\": \"If specified, the pod's scheduling constraints\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Affinity\"\n        },\n        \"automountServiceAccountToken\": {\n          \"description\": \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n          \"type\": \"boolean\"\n        },\n        \"containers\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Container\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"dnsPolicy\": {\n          \"description\": \"Set DNS policy for containers within the pod. One of 'ClusterFirstWithHostNet', 'ClusterFirst' or 'Default'. Defaults to \\\"ClusterFirst\\\". To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.\",\n          \"type\": \"string\"\n        },\n        \"hostAliases\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.HostAlias\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"ip\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"hostIPC\": {\n          \"description\": \"Use the host's ipc namespace. Optional: Default to false.\",\n          \"type\": \"boolean\"\n        },\n        \"hostNetwork\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"hostPID\": {\n          \"description\": \"Use the host's pid namespace. Optional: Default to false.\",\n          \"type\": \"boolean\"\n        },\n        \"hostname\": {\n          \"description\": \"Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.\",\n          \"type\": \"string\"\n        },\n        \"imagePullSecrets\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"initContainers\": {\n          \"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, or Liveness 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/\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Container\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"nodeName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"nodeSelector\": {\n          \"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/\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"priority\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"priorityClassName\": {\n          \"description\": \"If specified, indicates the pod's priority. \\\"SYSTEM\\\" is a special keyword which indicates 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.\",\n          \"type\": \"string\"\n        },\n        \"restartPolicy\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"schedulerName\": {\n          \"description\": \"If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.\",\n          \"type\": \"string\"\n        },\n        \"securityContext\": {\n          \"description\": \"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodSecurityContext\"\n        },\n        \"serviceAccount\": {\n          \"description\": \"DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.\",\n          \"type\": \"string\"\n        },\n        \"serviceAccountName\": {\n          \"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/\",\n          \"type\": \"string\"\n        },\n        \"subdomain\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"terminationGracePeriodSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"tolerations\": {\n          \"description\": \"If specified, the pod's tolerations.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Toleration\"\n          }\n        },\n        \"volumes\": {\n          \"description\": \"List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Volume\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge,retainKeys\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodStatus\": {\n      \"description\": \"PodStatus represents information about the status of a pod. Status may trail the actual state of a system.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"conditions\": {\n          \"description\": \"Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"containerStatuses\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStatus\"\n          }\n        },\n        \"hostIP\": {\n          \"description\": \"IP address of the host to which the pod is assigned. Empty if not yet scheduled.\",\n          \"type\": \"string\"\n        },\n        \"initContainerStatuses\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ContainerStatus\"\n          }\n        },\n        \"message\": {\n          \"description\": \"A human readable message indicating details about why the pod is in this condition.\",\n          \"type\": \"string\"\n        },\n        \"phase\": {\n          \"description\": \"Current condition of the pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase\",\n          \"type\": \"string\"\n        },\n        \"podIP\": {\n          \"description\": \"IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.\",\n          \"type\": \"string\"\n        },\n        \"qosClass\": {\n          \"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://github.com/kubernetes/kubernetes/blob/master/docs/design/resource-qos.md\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'\",\n          \"type\": \"string\"\n        },\n        \"startTime\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PodTemplate\": {\n      \"description\": \"PodTemplate describes a template for creating copies of a predefined pod.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"template\": {\n          \"description\": \"Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PodTemplate\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PodTemplateList\": {\n      \"description\": \"PodTemplateList is a list of PodTemplates.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of pod templates\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplate\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"PodTemplateList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.PodTemplateSpec\": {\n      \"description\": \"PodTemplateSpec describes the data a pod should have when created from a template\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodSpec\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PortworxVolumeSource\": {\n      \"description\": \"PortworxVolumeSource represents a Portworx volume resource.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"volumeID\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"volumeID\": {\n          \"description\": \"VolumeID uniquely identifies a Portworx volume\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.PreferredSchedulingTerm\": {\n      \"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).\",\n      \"type\": \"object\",\n      \"required\": [\n        \"weight\",\n        \"preference\"\n      ],\n      \"properties\": {\n        \"preference\": {\n          \"description\": \"A node selector term, associated with the corresponding weight.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"\n        },\n        \"weight\": {\n          \"description\": \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Probe\": {\n      \"description\": \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"exec\": {\n          \"description\": \"One and only one of the following should be specified. Exec specifies the action to take.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ExecAction\"\n        },\n        \"failureThreshold\": {\n          \"description\": \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"httpGet\": {\n          \"description\": \"HTTPGet specifies the http request to perform.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"\n        },\n        \"initialDelaySeconds\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"periodSeconds\": {\n          \"description\": \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"successThreshold\": {\n          \"description\": \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"tcpSocket\": {\n          \"description\": \"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"\n        },\n        \"timeoutSeconds\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ProjectedVolumeSource\": {\n      \"description\": \"Represents a projected volume source\",\n      \"type\": \"object\",\n      \"required\": [\n        \"sources\"\n      ],\n      \"properties\": {\n        \"defaultMode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"sources\": {\n          \"description\": \"list of volume projections\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.VolumeProjection\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.QuobyteVolumeSource\": {\n      \"description\": \"Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"registry\",\n        \"volume\"\n      ],\n      \"properties\": {\n        \"group\": {\n          \"description\": \"Group to map volume access to Default is no group\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"registry\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"user\": {\n          \"description\": \"User to map volume access to Defaults to serivceaccount user\",\n          \"type\": \"string\"\n        },\n        \"volume\": {\n          \"description\": \"Volume is a string that references an already created Quobyte volume by name.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.RBDVolumeSource\": {\n      \"description\": \"Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"monitors\",\n        \"image\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"image\": {\n          \"description\": \"The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"keyring\": {\n          \"description\": \"Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"monitors\": {\n          \"description\": \"A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"pool\": {\n          \"description\": \"The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"user\": {\n          \"description\": \"The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ReplicationController\": {\n      \"description\": \"ReplicationController represents the configuration of a replication controller.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"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/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec\"\n        },\n        \"status\": {\n          \"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/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ReplicationController\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ReplicationControllerCondition\": {\n      \"description\": \"ReplicationControllerCondition describes the state of a replication controller at a certain point.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"type\",\n        \"status\"\n      ],\n      \"properties\": {\n        \"lastTransitionTime\": {\n          \"description\": \"The last time the condition transitioned from one status to another.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"message\": {\n          \"description\": \"A human readable message indicating details about the transition.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"The reason for the condition's last transition.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the condition, one of True, False, Unknown.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type of replication controller condition.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ReplicationControllerList\": {\n      \"description\": \"ReplicationControllerList is a collection of replication controllers.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationController\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ReplicationControllerList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ReplicationControllerSpec\": {\n      \"description\": \"ReplicationControllerSpec is the specification of a replication controller.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"minReadySeconds\": {\n          \"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)\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"selector\": {\n          \"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\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"template\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ReplicationControllerStatus\": {\n      \"description\": \"ReplicationControllerStatus represents the current status of a replication controller.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"replicas\"\n      ],\n      \"properties\": {\n        \"availableReplicas\": {\n          \"description\": \"The number of available replicas (ready for at least minReadySeconds) for this replication controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"conditions\": {\n          \"description\": \"Represents the latest available observations of a replication controller's current state.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"type\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"fullyLabeledReplicas\": {\n          \"description\": \"The number of pods that have labels matching the labels of the pod template of the replication controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"observedGeneration\": {\n          \"description\": \"ObservedGeneration reflects the generation of the most recently observed replication controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"readyReplicas\": {\n          \"description\": \"The number of ready replicas for this replication controller.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"replicas\": {\n          \"description\": \"Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ResourceFieldSelector\": {\n      \"description\": \"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\n      \"type\": \"object\",\n      \"required\": [\n        \"resource\"\n      ],\n      \"properties\": {\n        \"containerName\": {\n          \"description\": \"Container name: required for volumes, optional for env vars\",\n          \"type\": \"string\"\n        },\n        \"divisor\": {\n          \"description\": \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n        },\n        \"resource\": {\n          \"description\": \"Required: resource to select\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ResourceQuota\": {\n      \"description\": \"ResourceQuota sets aggregate quota restrictions enforced per namespace\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec\"\n        },\n        \"status\": {\n          \"description\": \"Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuota\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ResourceQuotaList\": {\n      \"description\": \"ResourceQuotaList is a list of ResourceQuota items.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of ResourceQuota objects. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ResourceQuota\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ResourceQuotaList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ResourceQuotaSpec\": {\n      \"description\": \"ResourceQuotaSpec defines the desired hard limits to enforce for Quota.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"hard\": {\n          \"description\": \"Hard is the set of desired hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"scopes\": {\n          \"description\": \"A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ResourceQuotaStatus\": {\n      \"description\": \"ResourceQuotaStatus defines the enforced hard limits and observed use.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"hard\": {\n          \"description\": \"Hard is the set of enforced hard limits for each named resource. More info: https://git.k8s.io/community/contributors/design-proposals/admission_control_resource_quota.md\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"used\": {\n          \"description\": \"Used is the current observed total usage of the resource in the namespace.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ResourceRequirements\": {\n      \"description\": \"ResourceRequirements describes the compute resource requirements.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"limits\": {\n          \"description\": \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        },\n        \"requests\": {\n          \"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/\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"\n          }\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SELinuxOptions\": {\n      \"description\": \"SELinuxOptions are the labels to be applied to the container\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"level\": {\n          \"description\": \"Level is SELinux level label that applies to the container.\",\n          \"type\": \"string\"\n        },\n        \"role\": {\n          \"description\": \"Role is a SELinux role label that applies to the container.\",\n          \"type\": \"string\"\n        },\n        \"type\": {\n          \"description\": \"Type is a SELinux type label that applies to the container.\",\n          \"type\": \"string\"\n        },\n        \"user\": {\n          \"description\": \"User is a SELinux user label that applies to the container.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ScaleIOVolumeSource\": {\n      \"description\": \"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\n      \"type\": \"object\",\n      \"required\": [\n        \"gateway\",\n        \"system\",\n        \"secretRef\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"gateway\": {\n          \"description\": \"The host address of the ScaleIO API Gateway.\",\n          \"type\": \"string\"\n        },\n        \"protectionDomain\": {\n          \"description\": \"The name of the Protection Domain for the configured storage (defaults to \\\"default\\\").\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"sslEnabled\": {\n          \"description\": \"Flag to enable/disable SSL communication with Gateway, default false\",\n          \"type\": \"boolean\"\n        },\n        \"storageMode\": {\n          \"description\": \"Indicates whether the storage for a volume should be thick or thin (defaults to \\\"thin\\\").\",\n          \"type\": \"string\"\n        },\n        \"storagePool\": {\n          \"description\": \"The Storage Pool associated with the protection domain (defaults to \\\"default\\\").\",\n          \"type\": \"string\"\n        },\n        \"system\": {\n          \"description\": \"The name of the storage system as configured in ScaleIO.\",\n          \"type\": \"string\"\n        },\n        \"volumeName\": {\n          \"description\": \"The name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Secret\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"data\": {\n          \"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\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\",\n            \"format\": \"byte\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"stringData\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"type\": {\n          \"description\": \"Used to facilitate programmatic handling of secret data.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Secret\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.SecretEnvSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the Secret must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecretKeySelector\": {\n      \"description\": \"SecretKeySelector selects a key of a Secret.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"key\"\n      ],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"The key of the secret to select from.  Must be a valid secret key.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the Secret or it's key must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecretList\": {\n      \"description\": \"SecretList is a list of Secret.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Secret\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"SecretList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.SecretProjection\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"items\": {\n          \"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 '..'.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.KeyToPath\"\n          }\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n          \"type\": \"string\"\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the Secret or its key must be defined\",\n          \"type\": \"boolean\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecretReference\": {\n      \"description\": \"SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"name\": {\n          \"description\": \"Name is unique within a namespace to reference a secret resource.\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"description\": \"Namespace defines the space within which the secret name must be unique.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecretVolumeSource\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"defaultMode\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"items\": {\n          \"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 '..'.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.KeyToPath\"\n          }\n        },\n        \"optional\": {\n          \"description\": \"Specify whether the Secret or it's keys must be defined\",\n          \"type\": \"boolean\"\n        },\n        \"secretName\": {\n          \"description\": \"Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SecurityContext\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"allowPrivilegeEscalation\": {\n          \"description\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than it's 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\",\n          \"type\": \"boolean\"\n        },\n        \"capabilities\": {\n          \"description\": \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.Capabilities\"\n        },\n        \"privileged\": {\n          \"description\": \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"readOnlyRootFilesystem\": {\n          \"description\": \"Whether this container has a read-only root filesystem. Default is false.\",\n          \"type\": \"boolean\"\n        },\n        \"runAsNonRoot\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"runAsUser\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"seLinuxOptions\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Service\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"spec\": {\n          \"description\": \"Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceSpec\"\n        },\n        \"status\": {\n          \"description\": \"Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceStatus\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Service\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ServiceAccount\": {\n      \"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\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"automountServiceAccountToken\": {\n          \"description\": \"AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.\",\n          \"type\": \"boolean\"\n        },\n        \"imagePullSecrets\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"\n        },\n        \"secrets\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccount\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ServiceAccountList\": {\n      \"description\": \"ServiceAccountList is a list of ServiceAccount objects\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServiceAccount\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ServiceAccountList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ServiceList\": {\n      \"description\": \"ServiceList holds a list of services.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"items\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"description\": \"List of services\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.Service\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"ServiceList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.api.core.v1.ServicePort\": {\n      \"description\": \"ServicePort contains information on service's port.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"port\"\n      ],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. This maps to the 'Name' field in EndpointPort objects. Optional if only one ServicePort is defined on this service.\",\n          \"type\": \"string\"\n        },\n        \"nodePort\": {\n          \"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\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"port\": {\n          \"description\": \"The port that will be exposed by this service.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"protocol\": {\n          \"description\": \"The IP protocol for this port. Supports \\\"TCP\\\" and \\\"UDP\\\". Default is TCP.\",\n          \"type\": \"string\"\n        },\n        \"targetPort\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ServiceSpec\": {\n      \"description\": \"ServiceSpec describes the attributes that a user creates on a service.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"clusterIP\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"externalIPs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"externalName\": {\n          \"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 DNS name and requires Type to be ExternalName.\",\n          \"type\": \"string\"\n        },\n        \"externalTrafficPolicy\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"healthCheckNodePort\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"loadBalancerIP\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"loadBalancerSourceRanges\": {\n          \"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/\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"ports\": {\n          \"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\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.api.core.v1.ServicePort\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"port\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"publishNotReadyAddresses\": {\n          \"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. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field.\",\n          \"type\": \"boolean\"\n        },\n        \"selector\": {\n          \"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/\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"sessionAffinity\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"sessionAffinityConfig\": {\n          \"description\": \"sessionAffinityConfig contains the configurations of session affinity.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SessionAffinityConfig\"\n        },\n        \"type\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.ServiceStatus\": {\n      \"description\": \"ServiceStatus represents the current status of a service.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"loadBalancer\": {\n          \"description\": \"LoadBalancer contains the current status of the load-balancer, if one is present.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LoadBalancerStatus\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.SessionAffinityConfig\": {\n      \"description\": \"SessionAffinityConfig represents the configurations of session affinity.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"clientIP\": {\n          \"description\": \"clientIP contains the configurations of Client IP based session affinity.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ClientIPConfig\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.StorageOSPersistentVolumeSource\": {\n      \"description\": \"Represents a StorageOS persistent volume resource.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"SecretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ObjectReference\"\n        },\n        \"volumeName\": {\n          \"description\": \"VolumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\n          \"type\": \"string\"\n        },\n        \"volumeNamespace\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.StorageOSVolumeSource\": {\n      \"description\": \"Represents a StorageOS persistent volume resource.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n          \"type\": \"boolean\"\n        },\n        \"secretRef\": {\n          \"description\": \"SecretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"\n        },\n        \"volumeName\": {\n          \"description\": \"VolumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\n          \"type\": \"string\"\n        },\n        \"volumeNamespace\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.TCPSocketAction\": {\n      \"description\": \"TCPSocketAction describes an action based on opening a socket\",\n      \"type\": \"object\",\n      \"required\": [\n        \"port\"\n      ],\n      \"properties\": {\n        \"host\": {\n          \"description\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n          \"type\": \"string\"\n        },\n        \"port\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Taint\": {\n      \"description\": \"The node this Taint is attached to has the \\\"effect\\\" on any pod that does not tolerate the Taint.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"key\",\n        \"effect\"\n      ],\n      \"properties\": {\n        \"effect\": {\n          \"description\": \"Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\",\n          \"type\": \"string\"\n        },\n        \"key\": {\n          \"description\": \"Required. The taint key to be applied to a node.\",\n          \"type\": \"string\"\n        },\n        \"timeAdded\": {\n          \"description\": \"TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"value\": {\n          \"description\": \"Required. The taint value corresponding to the taint key.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Toleration\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"effect\": {\n          \"description\": \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n          \"type\": \"string\"\n        },\n        \"key\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"operator\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"tolerationSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"value\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.Volume\": {\n      \"description\": \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"name\"\n      ],\n      \"properties\": {\n        \"awsElasticBlockStore\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"\n        },\n        \"azureDisk\": {\n          \"description\": \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"\n        },\n        \"azureFile\": {\n          \"description\": \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource\"\n        },\n        \"cephfs\": {\n          \"description\": \"CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CephFSVolumeSource\"\n        },\n        \"cinder\": {\n          \"description\": \"Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.CinderVolumeSource\"\n        },\n        \"configMap\": {\n          \"description\": \"ConfigMap represents a configMap that should populate this volume\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource\"\n        },\n        \"downwardAPI\": {\n          \"description\": \"DownwardAPI represents downward API about the pod that should populate this volume\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource\"\n        },\n        \"emptyDir\": {\n          \"description\": \"EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource\"\n        },\n        \"fc\": {\n          \"description\": \"FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"\n        },\n        \"flexVolume\": {\n          \"description\": \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FlexVolumeSource\"\n        },\n        \"flocker\": {\n          \"description\": \"Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"\n        },\n        \"gcePersistentDisk\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"\n        },\n        \"gitRepo\": {\n          \"description\": \"GitRepo represents a git repository at a particular revision.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource\"\n        },\n        \"glusterfs\": {\n          \"description\": \"Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource\"\n        },\n        \"hostPath\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"\n        },\n        \"iscsi\": {\n          \"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://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource\"\n        },\n        \"name\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"nfs\": {\n          \"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\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"\n        },\n        \"persistentVolumeClaim\": {\n          \"description\": \"PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"\n        },\n        \"photonPersistentDisk\": {\n          \"description\": \"PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"\n        },\n        \"portworxVolume\": {\n          \"description\": \"PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"\n        },\n        \"projected\": {\n          \"description\": \"Items for all in one resources secrets, configmaps, and downward API\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource\"\n        },\n        \"quobyte\": {\n          \"description\": \"Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"\n        },\n        \"rbd\": {\n          \"description\": \"RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.RBDVolumeSource\"\n        },\n        \"scaleIO\": {\n          \"description\": \"ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource\"\n        },\n        \"secret\": {\n          \"description\": \"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretVolumeSource\"\n        },\n        \"storageos\": {\n          \"description\": \"StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource\"\n        },\n        \"vsphereVolume\": {\n          \"description\": \"VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.VolumeMount\": {\n      \"description\": \"VolumeMount describes a mounting of a Volume within a container.\",\n      \"required\": [\n        \"name\",\n        \"mountPath\"\n      ],\n      \"properties\": {\n        \"mountPath\": {\n          \"description\": \"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"This must match the Name of a Volume.\",\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"description\": \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n          \"type\": \"boolean\"\n        },\n        \"subPath\": {\n          \"description\": \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.VolumeProjection\": {\n      \"description\": \"Projection that may be projected along with other supported volume types\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"configMap\": {\n          \"description\": \"information about the configMap data to project\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.ConfigMapProjection\"\n        },\n        \"downwardAPI\": {\n          \"description\": \"information about the downwardAPI data to project\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.DownwardAPIProjection\"\n        },\n        \"secret\": {\n          \"description\": \"information about the secret data to project\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.SecretProjection\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\": {\n      \"description\": \"Represents a vSphere volume resource.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"volumePath\"\n      ],\n      \"properties\": {\n        \"fsType\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"storagePolicyID\": {\n          \"description\": \"Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n          \"type\": \"string\"\n        },\n        \"storagePolicyName\": {\n          \"description\": \"Storage Policy Based Management (SPBM) profile name.\",\n          \"type\": \"string\"\n        },\n        \"volumePath\": {\n          \"description\": \"Path that identifies vSphere volume vmdk\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.api.core.v1.WeightedPodAffinityTerm\": {\n      \"description\": \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n      \"type\": \"object\",\n      \"required\": [\n        \"weight\",\n        \"podAffinityTerm\"\n      ],\n      \"properties\": {\n        \"podAffinityTerm\": {\n          \"description\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n          \"$ref\": \"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"\n        },\n        \"weight\": {\n          \"description\": \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.api.resource.Quantity\": {\n      \"type\": \"string\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\": {\n      \"description\": \"APIGroup contains the name, the supported versions, and the preferred version of a group.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"versions\",\n        \"serverAddressByClientCIDRs\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"name is the name of the group.\",\n          \"type\": \"string\"\n        },\n        \"preferredVersion\": {\n          \"description\": \"preferredVersion is the version preferred by the API server, which probably is the storage version.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"\n        },\n        \"serverAddressByClientCIDRs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\"\n          }\n        },\n        \"versions\": {\n          \"description\": \"versions are the versions supported in this group.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"\n          }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"APIGroup\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList\": {\n      \"description\": \"APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"groups\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"groups\": {\n          \"description\": \"groups is a list of APIGroup.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"APIGroupList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\": {\n      \"description\": \"APIResource specifies the name of a resource and whether it is namespaced.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"singularName\",\n        \"namespaced\",\n        \"kind\",\n        \"verbs\"\n      ],\n      \"properties\": {\n        \"categories\": {\n          \"description\": \"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"kind\": {\n          \"description\": \"kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"name is the plural name of the resource.\",\n          \"type\": \"string\"\n        },\n        \"namespaced\": {\n          \"description\": \"namespaced indicates if a resource is namespaced or not.\",\n          \"type\": \"boolean\"\n        },\n        \"shortNames\": {\n          \"description\": \"shortNames is a list of suggested short names of the resource.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        },\n        \"singularName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"verbs\": {\n          \"description\": \"verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"groupVersion\",\n        \"resources\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"groupVersion\": {\n          \"description\": \"groupVersion is the group and version this APIResourceList is for.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"resources\": {\n          \"description\": \"resources contains the name of the resources and if they are namespaced.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"\n          }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"APIResourceList\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"versions\",\n        \"serverAddressByClientCIDRs\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"serverAddressByClientCIDRs\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\"\n          }\n        },\n        \"versions\": {\n          \"description\": \"versions are the api versions that are available.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"APIVersions\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\": {\n      \"description\": \"DeleteOptions may be provided when deleting an API object.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"gracePeriodSeconds\": {\n          \"description\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"orphanDependents\": {\n          \"description\": \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n          \"type\": \"boolean\"\n        },\n        \"preconditions\": {\n          \"description\": \"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"\n        },\n        \"propagationPolicy\": {\n          \"description\": \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"admission.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"apps\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"apps\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta2\"\n        },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v2alpha1\"\n        },\n        {\n          \"group\": \"batch\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"batch\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"batch\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v2alpha1\"\n        },\n        {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"extensions\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"federation\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"imagepolicy.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"policy\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"settings.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"DeleteOptions\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\": {\n      \"description\": \"GroupVersion contains the \\\"group/version\\\" and \\\"version\\\" string of a version. It is made a struct to keep extensibility.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"groupVersion\",\n        \"version\"\n      ],\n      \"properties\": {\n        \"groupVersion\": {\n          \"description\": \"groupVersion specifies the API group and version in the form \\\"group/version\\\"\",\n          \"type\": \"string\"\n        },\n        \"version\": {\n          \"description\": \"version specifies the version in the form of \\\"version\\\". This is to save the clients the trouble of splitting the GroupVersion.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Initializer\": {\n      \"description\": \"Initializer is information about an initializer that has not yet completed.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"name\"\n      ],\n      \"properties\": {\n        \"name\": {\n          \"description\": \"name of the process that is responsible for initializing this object.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Initializers\": {\n      \"description\": \"Initializers tracks the progress of initialization.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"pending\"\n      ],\n      \"properties\": {\n        \"pending\": {\n          \"description\": \"Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializer\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"name\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"result\": {\n          \"description\": \"If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"matchExpressions\": {\n          \"description\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"\n          }\n        },\n        \"matchLabels\": {\n          \"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.\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\": {\n      \"description\": \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"key\",\n        \"operator\"\n      ],\n      \"properties\": {\n        \"key\": {\n          \"description\": \"key is the label key that the selector applies to.\",\n          \"type\": \"string\",\n          \"x-kubernetes-patch-merge-key\": \"key\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"operator\": {\n          \"description\": \"operator represents a key's relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist.\",\n          \"type\": \"string\"\n        },\n        \"values\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          }\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\": {\n      \"description\": \"ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"resourceVersion\": {\n          \"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/api-conventions.md#concurrency-control-and-consistency\",\n          \"type\": \"string\"\n        },\n        \"selfLink\": {\n          \"description\": \"SelfLink is a URL representing this object. Populated by the system. Read-only.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\": {\n      \"description\": \"ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"annotations\": {\n          \"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\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"clusterName\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"creationTimestamp\": {\n          \"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/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"deletionGracePeriodSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"deletionTimestamp\": {\n          \"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 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/api-conventions.md#metadata\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"\n        },\n        \"finalizers\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"generateName\": {\n          \"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/api-conventions.md#idempotency\",\n          \"type\": \"string\"\n        },\n        \"generation\": {\n          \"description\": \"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\n          \"type\": \"integer\",\n          \"format\": \"int64\"\n        },\n        \"initializers\": {\n          \"description\": \"An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\\n\\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializers\"\n        },\n        \"labels\": {\n          \"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\",\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"string\"\n          }\n        },\n        \"name\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"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\",\n          \"type\": \"string\"\n        },\n        \"ownerReferences\": {\n          \"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.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"\n          },\n          \"x-kubernetes-patch-merge-key\": \"uid\",\n          \"x-kubernetes-patch-strategy\": \"merge\"\n        },\n        \"resourceVersion\": {\n          \"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/api-conventions.md#concurrency-control-and-consistency\",\n          \"type\": \"string\"\n        },\n        \"selfLink\": {\n          \"description\": \"SelfLink is a URL representing this object. Populated by the system. Read-only.\",\n          \"type\": \"string\"\n        },\n        \"uid\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\": {\n      \"description\": \"OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"apiVersion\",\n        \"kind\",\n        \"name\",\n        \"uid\"\n      ],\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"API version of the referent.\",\n          \"type\": \"string\"\n        },\n        \"blockOwnerDeletion\": {\n          \"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.\",\n          \"type\": \"boolean\"\n        },\n        \"controller\": {\n          \"description\": \"If true, this reference points to the managing controller.\",\n          \"type\": \"boolean\"\n        },\n        \"kind\": {\n          \"description\": \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names\",\n          \"type\": \"string\"\n        },\n        \"uid\": {\n          \"description\": \"UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Patch\": {\n      \"description\": \"Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.\",\n      \"type\": \"object\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\": {\n      \"description\": \"Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"uid\": {\n          \"description\": \"Specifies the target UID.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\": {\n      \"description\": \"ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"clientCIDR\",\n        \"serverAddress\"\n      ],\n      \"properties\": {\n        \"clientCIDR\": {\n          \"description\": \"The CIDR with which clients can match their IP to figure out the server address that they should use.\",\n          \"type\": \"string\"\n        },\n        \"serverAddress\": {\n          \"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.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Status\": {\n      \"description\": \"Status is a return value for calls that don't return other objects.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"apiVersion\": {\n          \"description\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\n          \"type\": \"string\"\n        },\n        \"code\": {\n          \"description\": \"Suggested HTTP return code for this status, 0 if not set.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"details\": {\n          \"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.\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"\n        },\n        \"kind\": {\n          \"description\": \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"message\": {\n          \"description\": \"A human-readable description of the status of this operation.\",\n          \"type\": \"string\"\n        },\n        \"metadata\": {\n          \"description\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\n          \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"\n        },\n        \"reason\": {\n          \"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.\",\n          \"type\": \"string\"\n        },\n        \"status\": {\n          \"description\": \"Status of the operation. One of: \\\"Success\\\" or \\\"Failure\\\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"Status\",\n          \"version\": \"v1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\": {\n      \"description\": \"StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"field\": {\n          \"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\\\"\",\n          \"type\": \"string\"\n        },\n        \"message\": {\n          \"description\": \"A human-readable description of the cause of the error.  This field may be presented as-is to a reader.\",\n          \"type\": \"string\"\n        },\n        \"reason\": {\n          \"description\": \"A machine-readable description of the cause of the error. If this value is empty there is no information available.\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\": {\n      \"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.\",\n      \"type\": \"object\",\n      \"properties\": {\n        \"causes\": {\n          \"description\": \"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\n          \"type\": \"array\",\n          \"items\": {\n            \"$ref\": \"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"\n          }\n        },\n        \"group\": {\n          \"description\": \"The group attribute of the resource associated with the status StatusReason.\",\n          \"type\": \"string\"\n        },\n        \"kind\": {\n          \"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/api-conventions.md#types-kinds\",\n          \"type\": \"string\"\n        },\n        \"name\": {\n          \"description\": \"The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).\",\n          \"type\": \"string\"\n        },\n        \"retryAfterSeconds\": {\n          \"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.\",\n          \"type\": \"integer\",\n          \"format\": \"int32\"\n        },\n        \"uid\": {\n          \"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\",\n          \"type\": \"string\"\n        }\n      }\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.Time\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\"\n    },\n    \"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\": {\n      \"description\": \"Event represents a single event to a watched resource.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"type\",\n        \"object\"\n      ],\n      \"properties\": {\n        \"object\": {\n          \"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.\",\n          \"type\": \"object\"\n        },\n        \"type\": {\n          \"type\": \"string\"\n        }\n      },\n      \"x-kubernetes-group-version-kind\": [\n        {\n          \"group\": \"\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"admission.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"admissionregistration.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"apps\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"apps\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta2\"\n        },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"authentication.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"autoscaling\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v2alpha1\"\n        },\n        {\n          \"group\": \"batch\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"batch\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"batch\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v2alpha1\"\n        },\n        {\n          \"group\": \"certificates.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"extensions\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"federation\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"imagepolicy.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"networking.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"policy\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"rbac.authorization.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        },\n        {\n          \"group\": \"scheduling.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"settings.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1alpha1\"\n        },\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1\"\n        },\n        {\n          \"group\": \"storage.k8s.io\",\n          \"kind\": \"WatchEvent\",\n          \"version\": \"v1beta1\"\n        }\n      ]\n    },\n    \"io.k8s.apimachinery.pkg.util.intstr.IntOrString\": {\n      \"type\": \"string\",\n      \"format\": \"int-or-string\"\n    },\n    \"io.k8s.apimachinery.pkg.version.Info\": {\n      \"description\": \"Info contains versioning information. how we'll want to distribute that information.\",\n      \"type\": \"object\",\n      \"required\": [\n        \"major\",\n        \"minor\",\n        \"gitVersion\",\n        \"gitCommit\",\n        \"gitTreeState\",\n        \"buildDate\",\n        \"goVersion\",\n        \"compiler\",\n        \"platform\"\n      ],\n      \"properties\": {\n        \"buildDate\": {\n          \"type\": \"string\"\n        },\n        \"compiler\": {\n          \"type\": \"string\"\n        },\n        \"gitCommit\": {\n          \"type\": \"string\"\n        },\n        \"gitTreeState\": {\n          \"type\": \"string\"\n        },\n        \"gitVersion\": {\n          \"type\": \"string\"\n        },\n        \"goVersion\": {\n          \"type\": \"string\"\n        },\n        \"major\": {\n          \"type\": \"string\"\n        },\n        \"minor\": {\n          \"type\": \"string\"\n        },\n        \"platform\": {\n          \"type\": \"string\"\n        }\n      }\n    }\n  },\n  \"securityDefinitions\": {\n    \"BearerToken\": {\n      \"description\": \"Bearer Token authentication\",\n      \"type\": \"apiKey\",\n      \"name\": \"authorization\",\n      \"in\": \"header\"\n    }\n  },\n  \"security\": [\n    {\n      \"BearerToken\": []\n    }\n  ]\n}\n"
  },
  {
    "path": "pkg/util/proto/testing/openapi.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"os\"\n\t\"sync\"\n\n\topenapi_v2 \"github.com/google/gnostic-models/openapiv2\"\n)\n\n// Fake opens and returns a openapi swagger from a file Path. It will\n// parse only once and then return the same copy everytime.\ntype Fake struct {\n\tPath string\n\n\tonce     sync.Once\n\tdocument *openapi_v2.Document\n\terr      error\n}\n\n// OpenAPISchema returns the openapi document and a potential error.\nfunc (f *Fake) OpenAPISchema() (*openapi_v2.Document, error) {\n\tf.once.Do(func() {\n\t\t_, err := os.Stat(f.Path)\n\t\tif err != nil {\n\t\t\tf.err = err\n\t\t\treturn\n\t\t}\n\t\tspec, err := os.ReadFile(f.Path)\n\t\tif err != nil {\n\t\t\tf.err = err\n\t\t\treturn\n\t\t}\n\t\tf.document, f.err = openapi_v2.ParseDocument(spec)\n\t})\n\treturn f.document, f.err\n}\n\ntype Empty struct{}\n\nfunc (Empty) OpenAPISchema() (*openapi_v2.Document, error) {\n\treturn nil, nil\n}\n"
  },
  {
    "path": "pkg/util/proto/testing/openapi_v3.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"sync\"\n\n\topenapi_v3 \"github.com/google/gnostic-models/openapiv3\"\n)\n\ntype FakeV3 struct {\n\tPath string\n\n\tlock      sync.Mutex\n\tdocuments map[string]*openapi_v3.Document\n\terrors    map[string]error\n}\n\nfunc (f *FakeV3) OpenAPIV3Schema(groupVersion string) (*openapi_v3.Document, error) {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\n\tif existing, ok := f.documents[groupVersion]; ok {\n\t\treturn existing, nil\n\t} else if existingError, ok := f.errors[groupVersion]; ok {\n\t\treturn nil, existingError\n\t}\n\n\t_, err := os.Stat(f.Path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tspec, err := os.ReadFile(filepath.Join(f.Path, groupVersion+\".json\"))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif f.documents == nil {\n\t\tf.documents = make(map[string]*openapi_v3.Document)\n\t}\n\n\tif f.errors == nil {\n\t\tf.errors = make(map[string]error)\n\t}\n\n\tresult, err := openapi_v3.ParseDocument(spec)\n\tif err != nil {\n\t\tf.errors[groupVersion] = err\n\t\treturn nil, err\n\t}\n\n\tf.documents[groupVersion] = result\n\treturn result, nil\n}\n"
  },
  {
    "path": "pkg/util/proto/validation/errors.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation\n\nimport (\n\t\"fmt\"\n)\n\ntype errors struct {\n\terrors []error\n}\n\nfunc (e *errors) Errors() []error {\n\treturn e.errors\n}\n\nfunc (e *errors) AppendErrors(err ...error) {\n\te.errors = append(e.errors, err...)\n}\n\ntype ValidationError struct {\n\tPath string\n\tErr  error\n}\n\nfunc (e ValidationError) Error() string {\n\treturn fmt.Sprintf(\"ValidationError(%s): %v\", e.Path, e.Err)\n}\n\ntype InvalidTypeError struct {\n\tPath     string\n\tExpected string\n\tActual   string\n}\n\nfunc (e InvalidTypeError) Error() string {\n\treturn fmt.Sprintf(\"invalid type for %s: got %q, expected %q\", e.Path, e.Actual, e.Expected)\n}\n\ntype MissingRequiredFieldError struct {\n\tPath  string\n\tField string\n}\n\nfunc (e MissingRequiredFieldError) Error() string {\n\treturn fmt.Sprintf(\"missing required field %q in %s\", e.Field, e.Path)\n}\n\ntype UnknownFieldError struct {\n\tPath  string\n\tField string\n}\n\nfunc (e UnknownFieldError) Error() string {\n\treturn fmt.Sprintf(\"unknown field %q in %s\", e.Field, e.Path)\n}\n\ntype InvalidObjectTypeError struct {\n\tPath string\n\tType string\n}\n\nfunc (e InvalidObjectTypeError) Error() string {\n\treturn fmt.Sprintf(\"unknown object type %q in %s\", e.Type, e.Path)\n}\n"
  },
  {
    "path": "pkg/util/proto/validation/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation\n\nimport (\n\t\"reflect\"\n\t\"sort\"\n\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n)\n\ntype validationItem interface {\n\tproto.SchemaVisitor\n\n\tErrors() []error\n\tPath() *proto.Path\n}\n\ntype baseItem struct {\n\terrors errors\n\tpath   proto.Path\n}\n\n// Errors returns the list of errors found for this item.\nfunc (item *baseItem) Errors() []error {\n\treturn item.errors.Errors()\n}\n\n// AddValidationError wraps the given error into a ValidationError and\n// attaches it to this item.\nfunc (item *baseItem) AddValidationError(err error) {\n\titem.errors.AppendErrors(ValidationError{Path: item.path.String(), Err: err})\n}\n\n// AddError adds a regular (non-validation related) error to the list.\nfunc (item *baseItem) AddError(err error) {\n\titem.errors.AppendErrors(err)\n}\n\n// CopyErrors adds a list of errors to this item. This is useful to copy\n// errors from subitems.\nfunc (item *baseItem) CopyErrors(errs []error) {\n\titem.errors.AppendErrors(errs...)\n}\n\n// Path returns the path of this item, helps print useful errors.\nfunc (item *baseItem) Path() *proto.Path {\n\treturn &item.path\n}\n\n// mapItem represents a map entry in the yaml.\ntype mapItem struct {\n\tbaseItem\n\n\tMap map[string]interface{}\n}\n\nfunc (item *mapItem) sortedKeys() []string {\n\tsortedKeys := []string{}\n\tfor key := range item.Map {\n\t\tsortedKeys = append(sortedKeys, key)\n\t}\n\tsort.Strings(sortedKeys)\n\treturn sortedKeys\n}\n\nvar _ validationItem = &mapItem{}\n\nfunc (item *mapItem) VisitPrimitive(schema *proto.Primitive) {\n\titem.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: schema.Type, Actual: \"map\"})\n}\n\nfunc (item *mapItem) VisitArray(schema *proto.Array) {\n\titem.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: \"array\", Actual: \"map\"})\n}\n\nfunc (item *mapItem) VisitMap(schema *proto.Map) {\n\tfor _, key := range item.sortedKeys() {\n\t\tsubItem, err := itemFactory(item.Path().FieldPath(key), item.Map[key])\n\t\tif err != nil {\n\t\t\titem.AddError(err)\n\t\t\tcontinue\n\t\t}\n\t\tschema.SubType.Accept(subItem)\n\t\titem.CopyErrors(subItem.Errors())\n\t}\n}\n\nfunc (item *mapItem) VisitKind(schema *proto.Kind) {\n\t// Verify each sub-field.\n\tfor _, key := range item.sortedKeys() {\n\t\tif item.Map[key] == nil {\n\t\t\tcontinue\n\t\t}\n\t\tsubItem, err := itemFactory(item.Path().FieldPath(key), item.Map[key])\n\t\tif err != nil {\n\t\t\titem.AddError(err)\n\t\t\tcontinue\n\t\t}\n\t\tif _, ok := schema.Fields[key]; !ok {\n\t\t\titem.AddValidationError(UnknownFieldError{Path: schema.GetPath().String(), Field: key})\n\t\t\tcontinue\n\t\t}\n\t\tschema.Fields[key].Accept(subItem)\n\t\titem.CopyErrors(subItem.Errors())\n\t}\n\n\t// Verify that all required fields are present.\n\tfor _, required := range schema.RequiredFields {\n\t\tif v, ok := item.Map[required]; !ok || v == nil {\n\t\t\titem.AddValidationError(MissingRequiredFieldError{Path: schema.GetPath().String(), Field: required})\n\t\t}\n\t}\n}\n\nfunc (item *mapItem) VisitArbitrary(schema *proto.Arbitrary) {\n}\n\nfunc (item *mapItem) VisitReference(schema proto.Reference) {\n\t// passthrough\n\tschema.SubSchema().Accept(item)\n}\n\n// arrayItem represents a yaml array.\ntype arrayItem struct {\n\tbaseItem\n\n\tArray []interface{}\n}\n\nvar _ validationItem = &arrayItem{}\n\nfunc (item *arrayItem) VisitPrimitive(schema *proto.Primitive) {\n\titem.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: schema.Type, Actual: \"array\"})\n}\n\nfunc (item *arrayItem) VisitArray(schema *proto.Array) {\n\tfor i, v := range item.Array {\n\t\tpath := item.Path().ArrayPath(i)\n\t\tif v == nil {\n\t\t\titem.AddValidationError(InvalidObjectTypeError{Type: \"nil\", Path: path.String()})\n\t\t\tcontinue\n\t\t}\n\t\tsubItem, err := itemFactory(path, v)\n\t\tif err != nil {\n\t\t\titem.AddError(err)\n\t\t\tcontinue\n\t\t}\n\t\tschema.SubType.Accept(subItem)\n\t\titem.CopyErrors(subItem.Errors())\n\t}\n}\n\nfunc (item *arrayItem) VisitMap(schema *proto.Map) {\n\titem.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: \"map\", Actual: \"array\"})\n}\n\nfunc (item *arrayItem) VisitKind(schema *proto.Kind) {\n\titem.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: \"map\", Actual: \"array\"})\n}\n\nfunc (item *arrayItem) VisitArbitrary(schema *proto.Arbitrary) {\n}\n\nfunc (item *arrayItem) VisitReference(schema proto.Reference) {\n\t// passthrough\n\tschema.SubSchema().Accept(item)\n}\n\n// primitiveItem represents a yaml value.\ntype primitiveItem struct {\n\tbaseItem\n\n\tValue interface{}\n\tKind  string\n}\n\nvar _ validationItem = &primitiveItem{}\n\nfunc (item *primitiveItem) VisitPrimitive(schema *proto.Primitive) {\n\t// Some types of primitives can match more than one (a number\n\t// can be a string, but not the other way around). Return from\n\t// the switch if we have a valid possible type conversion\n\t// NOTE(apelisse): This logic is blindly copied from the\n\t// existing swagger logic, and I'm not sure I agree with it.\n\tswitch schema.Type {\n\tcase proto.Boolean:\n\t\tswitch item.Kind {\n\t\tcase proto.Boolean:\n\t\t\treturn\n\t\t}\n\tcase proto.Integer:\n\t\tswitch item.Kind {\n\t\tcase proto.Integer, proto.Number:\n\t\t\treturn\n\t\t}\n\tcase proto.Number:\n\t\tswitch item.Kind {\n\t\tcase proto.Integer, proto.Number:\n\t\t\treturn\n\t\t}\n\tcase proto.String:\n\t\treturn\n\t}\n\t// TODO(wrong): this misses \"null\"\n\n\titem.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: schema.Type, Actual: item.Kind})\n}\n\nfunc (item *primitiveItem) VisitArray(schema *proto.Array) {\n\titem.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: \"array\", Actual: item.Kind})\n}\n\nfunc (item *primitiveItem) VisitMap(schema *proto.Map) {\n\titem.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: \"map\", Actual: item.Kind})\n}\n\nfunc (item *primitiveItem) VisitKind(schema *proto.Kind) {\n\titem.AddValidationError(InvalidTypeError{Path: schema.GetPath().String(), Expected: \"map\", Actual: item.Kind})\n}\n\nfunc (item *primitiveItem) VisitArbitrary(schema *proto.Arbitrary) {\n}\n\nfunc (item *primitiveItem) VisitReference(schema proto.Reference) {\n\t// passthrough\n\tschema.SubSchema().Accept(item)\n}\n\n// itemFactory creates the relevant item type/visitor based on the current yaml type.\nfunc itemFactory(path proto.Path, v interface{}) (validationItem, error) {\n\t// We need to special case for no-type fields in yaml (e.g. empty item in list)\n\tif v == nil {\n\t\treturn nil, InvalidObjectTypeError{Type: \"nil\", Path: path.String()}\n\t}\n\tkind := reflect.TypeOf(v).Kind()\n\tswitch kind {\n\tcase reflect.Bool:\n\t\treturn &primitiveItem{\n\t\t\tbaseItem: baseItem{path: path},\n\t\t\tValue:    v,\n\t\t\tKind:     proto.Boolean,\n\t\t}, nil\n\tcase reflect.Int,\n\t\treflect.Int8,\n\t\treflect.Int16,\n\t\treflect.Int32,\n\t\treflect.Int64,\n\t\treflect.Uint,\n\t\treflect.Uint8,\n\t\treflect.Uint16,\n\t\treflect.Uint32,\n\t\treflect.Uint64:\n\t\treturn &primitiveItem{\n\t\t\tbaseItem: baseItem{path: path},\n\t\t\tValue:    v,\n\t\t\tKind:     proto.Integer,\n\t\t}, nil\n\tcase reflect.Float32,\n\t\treflect.Float64:\n\t\treturn &primitiveItem{\n\t\t\tbaseItem: baseItem{path: path},\n\t\t\tValue:    v,\n\t\t\tKind:     proto.Number,\n\t\t}, nil\n\tcase reflect.String:\n\t\treturn &primitiveItem{\n\t\t\tbaseItem: baseItem{path: path},\n\t\t\tValue:    v,\n\t\t\tKind:     proto.String,\n\t\t}, nil\n\tcase reflect.Array,\n\t\treflect.Slice:\n\t\treturn &arrayItem{\n\t\t\tbaseItem: baseItem{path: path},\n\t\t\tArray:    v.([]interface{}),\n\t\t}, nil\n\tcase reflect.Map:\n\t\treturn &mapItem{\n\t\t\tbaseItem: baseItem{path: path},\n\t\t\tMap:      v.(map[string]interface{}),\n\t\t}, nil\n\t}\n\treturn nil, InvalidObjectTypeError{Type: kind.String(), Path: path.String()}\n}\n"
  },
  {
    "path": "pkg/util/proto/validation/validation.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation\n\nimport (\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n)\n\nfunc ValidateModel(obj interface{}, schema proto.Schema, name string) []error {\n\trootValidation, err := itemFactory(proto.NewPath(name), obj)\n\tif err != nil {\n\t\treturn []error{err}\n\t}\n\tschema.Accept(rootValidation)\n\treturn rootValidation.Errors()\n}\n"
  },
  {
    "path": "pkg/util/proto/validation/validation_test.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation_test\n\nimport (\n\t\"fmt\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"sigs.k8s.io/yaml\"\n\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n\tprototesting \"k8s.io/kube-openapi/pkg/util/proto/testing\"\n\t\"k8s.io/kube-openapi/pkg/util/proto/validation\"\n)\n\nvar fakeSchema = prototesting.Fake{Path: filepath.Join(\"..\", \"testdata\", \"swagger.json\")}\n\nfunc Validate(models proto.Models, model string, data string) []error {\n\tvar obj interface{}\n\tif err := yaml.Unmarshal([]byte(data), &obj); err != nil {\n\t\treturn []error{fmt.Errorf(\"pre-validation: failed to parse yaml: %v\", err)}\n\t}\n\treturn ValidateObj(models, model, obj)\n}\n\n// ValidateObj validates an object produced by decoding json or yaml.\n// Numbers may be int64 or float64.\nfunc ValidateObj(models proto.Models, model string, obj interface{}) []error {\n\tschema := models.LookupModel(model)\n\tif schema == nil {\n\t\treturn []error{fmt.Errorf(\"pre-validation: couldn't find model %s\", model)}\n\t}\n\n\treturn validation.ValidateModel(obj, schema, model)\n}\n\nfunc loadModels(t *testing.T) proto.Models {\n\tt.Helper()\n\ts, err := fakeSchema.OpenAPISchema()\n\tif err != nil {\n\t\tt.Fatalf(\"failed to open schema: %v\", err)\n\t}\n\tmodels, err := proto.NewOpenAPIData(s)\n\tif err != nil {\n\t\tt.Fatalf(\"failed to create OpenAPI data: %v\", err)\n\t}\n\treturn models\n}\n\nfunc TestResourceValidation(t *testing.T) {\n\tt.Run(\"finds Deployment in Schema and validates it\", func(t *testing.T) {\n\t\tmodels := loadModels(t)\n\t\terr := Validate(models, \"io.k8s.api.apps.v1beta1.Deployment\", `\napiVersion: extensions/v1beta1\nkind: Deployment\nmetadata:\n  labels:\n    name: redis-master\n  name: name\nspec:\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        app: redis\n    spec:\n      containers:\n      - image: redis\n        name: redis\n`)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"unexpected error: %v\", err)\n\t\t}\n\t})\n\n\tt.Run(\"validates a valid pod\", func(t *testing.T) {\n\t\tmodels := loadModels(t)\n\t\terr := Validate(models, \"io.k8s.api.core.v1.Pod\", `\napiVersion: v1\nkind: Pod\nmetadata:\n  labels:\n    name: redis-master\n  name: name\nspec:\n  containers:\n  - args:\n    - this\n    - is\n    - an\n    - ok\n    - command\n    image: gcr.io/fake_project/fake_image:fake_tag\n    name: master\n`)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"unexpected error: %v\", err)\n\t\t}\n\t})\n\n\tt.Run(\"finds invalid command (string instead of []string) in Json Pod\", func(t *testing.T) {\n\t\tmodels := loadModels(t)\n\t\terr := Validate(models, \"io.k8s.api.core.v1.Pod\", `\n{\n  \"kind\": \"Pod\",\n  \"apiVersion\": \"v1\",\n  \"metadata\": {\n    \"name\": \"name\",\n    \"labels\": {\n      \"name\": \"redis-master\"\n    }\n  },\n  \"spec\": {\n    \"containers\": [\n      {\n        \"name\": \"master\",\n\t\"image\": \"gcr.io/fake_project/fake_image:fake_tag\",\n        \"args\": \"this is a bad command\"\n      }\n    ]\n  }\n}\n`)\n\t\twant := []error{\n\t\t\tvalidation.ValidationError{\n\t\t\t\tPath: \"io.k8s.api.core.v1.Pod.spec.containers[0].args\",\n\t\t\t\tErr: validation.InvalidTypeError{\n\t\t\t\t\tPath:     \"io.k8s.api.core.v1.Container.args\",\n\t\t\t\t\tExpected: \"array\",\n\t\t\t\t\tActual:   \"string\",\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\tif !reflect.DeepEqual(err, want) {\n\t\t\tt.Errorf(\"err = %v, want %v\", err, want)\n\t\t}\n\t})\n\n\tt.Run(\"fails because hostPort is string instead of int\", func(t *testing.T) {\n\t\tmodels := loadModels(t)\n\t\terr := Validate(models, \"io.k8s.api.core.v1.Pod\", `\n{\n  \"kind\": \"Pod\",\n  \"apiVersion\": \"v1\",\n  \"metadata\": {\n    \"name\": \"apache-php\",\n    \"labels\": {\n      \"name\": \"apache-php\"\n    }\n  },\n  \"spec\": {\n    \"volumes\": [{\n        \"name\": \"shared-disk\"\n    }],\n    \"containers\": [\n      {\n        \"name\": \"apache-php\",\n        \"image\": \"gcr.io/fake_project/fake_image:fake_tag\",\n        \"ports\": [\n          {\n            \"name\": \"apache\",\n            \"hostPort\": \"13380\",\n            \"containerPort\": 80,\n            \"protocol\": \"TCP\"\n          }\n        ],\n        \"volumeMounts\": [\n          {\n            \"name\": \"shared-disk\",\n            \"mountPath\": \"/var/www/html\"\n          }\n        ]\n      }\n    ]\n  }\n}\n`)\n\t\twant := []error{\n\t\t\tvalidation.ValidationError{\n\t\t\t\tPath: \"io.k8s.api.core.v1.Pod.spec.containers[0].ports[0].hostPort\",\n\t\t\t\tErr: validation.InvalidTypeError{\n\t\t\t\t\tPath:     \"io.k8s.api.core.v1.ContainerPort.hostPort\",\n\t\t\t\t\tExpected: \"integer\",\n\t\t\t\t\tActual:   \"string\",\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\tif !reflect.DeepEqual(err, want) {\n\t\t\tt.Errorf(\"err = %v, want %v\", err, want)\n\t\t}\n\t})\n\n\tt.Run(\"fails because volume is not an array of object\", func(t *testing.T) {\n\t\tmodels := loadModels(t)\n\t\terr := Validate(models, \"io.k8s.api.core.v1.Pod\", `\n{\n  \"kind\": \"Pod\",\n  \"apiVersion\": \"v1\",\n  \"metadata\": {\n    \"name\": \"apache-php\",\n    \"labels\": {\n      \"name\": \"apache-php\"\n    }\n  },\n  \"spec\": {\n    \"volumes\": [\n        \"name\": \"shared-disk\"\n    ],\n    \"containers\": [\n      {\n        \"name\": \"apache-php\",\n\t\"image\": \"gcr.io/fake_project/fake_image:fake_tag\",\n        \"ports\": [\n          {\n            \"name\": \"apache\",\n            \"hostPort\": 13380,\n            \"containerPort\": 80,\n            \"protocol\": \"TCP\"\n          }\n        ],\n        \"volumeMounts\": [\n          {\n            \"name\": \"shared-disk\",\n            \"mountPath\": \"/var/www/html\"\n          }\n        ]\n      }\n    ]\n  }\n}\n`)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"unexpected error: %v\", err)\n\t\t}\n\t})\n\n\tt.Run(\"fails because some string lists have empty strings\", func(t *testing.T) {\n\t\tmodels := loadModels(t)\n\t\terr := Validate(models, \"io.k8s.api.core.v1.Pod\", `\napiVersion: v1\nkind: Pod\nmetadata:\n  labels:\n    name: redis-master\n  name: name\nspec:\n  containers:\n  - image: gcr.io/fake_project/fake_image:fake_tag\n    name: master\n    args:\n    -\n    command:\n    -\n`)\n\t\twant := []error{\n\t\t\tvalidation.ValidationError{\n\t\t\t\tPath: \"io.k8s.api.core.v1.Pod.spec.containers[0].args\",\n\t\t\t\tErr: validation.InvalidObjectTypeError{\n\t\t\t\t\tPath: \"io.k8s.api.core.v1.Pod.spec.containers[0].args[0]\",\n\t\t\t\t\tType: \"nil\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalidation.ValidationError{\n\t\t\t\tPath: \"io.k8s.api.core.v1.Pod.spec.containers[0].command\",\n\t\t\t\tErr: validation.InvalidObjectTypeError{\n\t\t\t\t\tPath: \"io.k8s.api.core.v1.Pod.spec.containers[0].command[0]\",\n\t\t\t\t\tType: \"nil\",\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\tif !reflect.DeepEqual(err, want) {\n\t\t\tt.Errorf(\"err = %v, want %v\", err, want)\n\t\t}\n\t})\n\n\tt.Run(\"fails if required fields are missing\", func(t *testing.T) {\n\t\tmodels := loadModels(t)\n\t\terr := Validate(models, \"io.k8s.api.core.v1.Pod\", `\napiVersion: v1\nkind: Pod\nmetadata:\n  labels:\n    name: redis-master\n  name: name\nspec:\n  containers:\n  - command: [\"my\", \"command\"]\n`)\n\t\twant := []error{\n\t\t\tvalidation.ValidationError{\n\t\t\t\tPath: \"io.k8s.api.core.v1.Pod.spec.containers[0]\",\n\t\t\t\tErr: validation.MissingRequiredFieldError{\n\t\t\t\t\tPath:  \"io.k8s.api.core.v1.Container\",\n\t\t\t\t\tField: \"name\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalidation.ValidationError{\n\t\t\t\tPath: \"io.k8s.api.core.v1.Pod.spec.containers[0]\",\n\t\t\t\tErr: validation.MissingRequiredFieldError{\n\t\t\t\t\tPath:  \"io.k8s.api.core.v1.Container\",\n\t\t\t\t\tField: \"image\",\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\tif !reflect.DeepEqual(err, want) {\n\t\t\tt.Errorf(\"err = %v, want %v\", err, want)\n\t\t}\n\t})\n\n\tt.Run(\"fails if required fields are empty\", func(t *testing.T) {\n\t\tmodels := loadModels(t)\n\t\terr := Validate(models, \"io.k8s.api.core.v1.Pod\", `\napiVersion: v1\nkind: Pod\nmetadata:\n  labels:\n    name: redis-master\n  name: name\nspec:\n  containers:\n  - image:\n    name:\n`)\n\t\twant := []error{\n\t\t\tvalidation.ValidationError{\n\t\t\t\tPath: \"io.k8s.api.core.v1.Pod.spec.containers[0]\",\n\t\t\t\tErr: validation.MissingRequiredFieldError{\n\t\t\t\t\tPath:  \"io.k8s.api.core.v1.Container\",\n\t\t\t\t\tField: \"name\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalidation.ValidationError{\n\t\t\t\tPath: \"io.k8s.api.core.v1.Pod.spec.containers[0]\",\n\t\t\t\tErr: validation.MissingRequiredFieldError{\n\t\t\t\t\tPath:  \"io.k8s.api.core.v1.Container\",\n\t\t\t\t\tField: \"image\",\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t\tif !reflect.DeepEqual(err, want) {\n\t\t\tt.Errorf(\"err = %v, want %v\", err, want)\n\t\t}\n\t})\n\n\tt.Run(\"is fine with empty non-mandatory fields\", func(t *testing.T) {\n\t\tmodels := loadModels(t)\n\t\terr := Validate(models, \"io.k8s.api.core.v1.Pod\", `\napiVersion: v1\nkind: Pod\nmetadata:\n  labels:\n    name: redis-master\n  name: name\nspec:\n  containers:\n  - image: image\n    name: name\n    command:\n`)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"unexpected error: %v\", err)\n\t\t}\n\t})\n\n\tt.Run(\"fails because apiVersion is not provided\", func(t *testing.T) {\n\t\tmodels := loadModels(t)\n\t\terr := Validate(models, \"io.k8s.api.core.v1.Pod\", `\nkind: Pod\nmetadata:\n  name: name\nspec:\n  containers:\n  - name: name\n    image: image\n`)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"unexpected error: %v\", err)\n\t\t}\n\t})\n\n\tt.Run(\"fails because apiVersion type is not string and kind is not provided\", func(t *testing.T) {\n\t\tmodels := loadModels(t)\n\t\terr := Validate(models, \"io.k8s.api.core.v1.Pod\", `\napiVersion: 1\nmetadata:\n  name: name\nspec:\n  containers:\n  - name: name\n    image: image\n`)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"unexpected error: %v\", err)\n\t\t}\n\t})\n\n\tt.Run(\"validates integer values for float fields\", func(t *testing.T) {\n\t\tmodels := loadModels(t)\n\t\terr := ValidateObj(models, \"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinition\", map[string]interface{}{\n\t\t\t\"apiVersion\": \"apiextensions.k8s.io/v1\",\n\t\t\t\"kind\":       \"CustomResourceDefinition\",\n\t\t\t\"metadata\":   map[string]interface{}{\"name\": \"foo\"},\n\t\t\t\"spec\": map[string]interface{}{\n\t\t\t\t\"scope\": \"Namespaced\",\n\t\t\t\t\"group\": \"example.com\",\n\t\t\t\t\"names\": map[string]interface{}{\n\t\t\t\t\t\"plural\": \"numbers\",\n\t\t\t\t\t\"kind\":   \"Number\",\n\t\t\t\t},\n\t\t\t\t\"versions\": []interface{}{\n\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\"name\":    \"v1\",\n\t\t\t\t\t\t\"served\":  true,\n\t\t\t\t\t\t\"storage\": true,\n\t\t\t\t\t\t\"schema\": map[string]interface{}{\n\t\t\t\t\t\t\t\"openAPIV3Schema\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"properties\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\t\"replicas\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\t\t\"default\": int64(1),\n\t\t\t\t\t\t\t\t\t\t\"minimum\": int64(0),\n\t\t\t\t\t\t\t\t\t\t\"type\":    \"integer\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"resources\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\t\t\"default\": float64(1.1),\n\t\t\t\t\t\t\t\t\t\t\"minimum\": float64(0.1),\n\t\t\t\t\t\t\t\t\t\t\"type\":    \"number\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\tt.Errorf(\"unexpected error: %v\", err)\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "pkg/util/sets/empty.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by set-gen. DO NOT EDIT.\n\n// NOTE: This file is copied from k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/sets/empty.go\n// because in Kubernetes we don't allowed vendor code to import staging code. See\n// https://github.com/kubernetes/kube-openapi/pull/90 for more details.\n\npackage sets\n\n// Empty is public since it is used by some internal API objects for conversions between external\n// string arrays and internal sets, and conversion logic requires public types today.\ntype Empty struct{}\n"
  },
  {
    "path": "pkg/util/sets/string.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by set-gen. DO NOT EDIT.\n\n// NOTE: This file is copied from k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/sets/string.go\n// because in Kubernetes we don't allowed vendor code to import staging code. See\n// https://github.com/kubernetes/kube-openapi/pull/90 for more details.\n\npackage sets\n\nimport (\n\t\"reflect\"\n\t\"sort\"\n)\n\n// sets.String is a set of strings, implemented via map[string]struct{} for minimal memory consumption.\ntype String map[string]Empty\n\n// NewString creates a String from a list of values.\nfunc NewString(items ...string) String {\n\tss := String{}\n\tss.Insert(items...)\n\treturn ss\n}\n\n// StringKeySet creates a String from a keys of a map[string](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc StringKeySet(theMap interface{}) String {\n\tv := reflect.ValueOf(theMap)\n\tret := String{}\n\n\tfor _, keyValue := range v.MapKeys() {\n\t\tret.Insert(keyValue.Interface().(string))\n\t}\n\treturn ret\n}\n\n// Insert adds items to the set.\nfunc (s String) Insert(items ...string) {\n\tfor _, item := range items {\n\t\ts[item] = Empty{}\n\t}\n}\n\n// Delete removes all items from the set.\nfunc (s String) Delete(items ...string) {\n\tfor _, item := range items {\n\t\tdelete(s, item)\n\t}\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s String) Has(item string) bool {\n\t_, contained := s[item]\n\treturn contained\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s String) HasAll(items ...string) bool {\n\tfor _, item := range items {\n\t\tif !s.Has(item) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s String) HasAny(items ...string) bool {\n\tfor _, item := range items {\n\t\tif s.Has(item) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Difference returns a set of objects that are not in s2\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s String) Difference(s2 String) String {\n\tresult := NewString()\n\tfor key := range s {\n\t\tif !s2.Has(key) {\n\t\t\tresult.Insert(key)\n\t\t}\n\t}\n\treturn result\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 String) Union(s2 String) String {\n\tresult := NewString()\n\tfor key := range s1 {\n\t\tresult.Insert(key)\n\t}\n\tfor key := range s2 {\n\t\tresult.Insert(key)\n\t}\n\treturn result\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 String) Intersection(s2 String) String {\n\tvar walk, other String\n\tresult := NewString()\n\tif s1.Len() < s2.Len() {\n\t\twalk = s1\n\t\tother = s2\n\t} else {\n\t\twalk = s2\n\t\tother = s1\n\t}\n\tfor key := range walk {\n\t\tif other.Has(key) {\n\t\t\tresult.Insert(key)\n\t\t}\n\t}\n\treturn result\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 String) IsSuperset(s2 String) bool {\n\tfor item := range s2 {\n\t\tif !s1.Has(item) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 String) Equal(s2 String) bool {\n\treturn len(s1) == len(s2) && s1.IsSuperset(s2)\n}\n\ntype sortableSliceOfString []string\n\nfunc (s sortableSliceOfString) Len() int           { return len(s) }\nfunc (s sortableSliceOfString) Less(i, j int) bool { return lessString(s[i], s[j]) }\nfunc (s sortableSliceOfString) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }\n\n// List returns the contents as a sorted string slice.\nfunc (s String) List() []string {\n\tres := make(sortableSliceOfString, 0, len(s))\n\tfor key := range s {\n\t\tres = append(res, key)\n\t}\n\tsort.Sort(res)\n\treturn []string(res)\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s String) UnsortedList() []string {\n\tres := make([]string, 0, len(s))\n\tfor key := range s {\n\t\tres = append(res, key)\n\t}\n\treturn res\n}\n\n// Returns a single element from the set.\nfunc (s String) PopAny() (string, bool) {\n\tfor key := range s {\n\t\ts.Delete(key)\n\t\treturn key, true\n\t}\n\tvar zeroValue string\n\treturn zeroValue, false\n}\n\n// Len returns the size of the set.\nfunc (s String) Len() int {\n\treturn len(s)\n}\n\nfunc lessString(lhs, rhs string) bool {\n\treturn lhs < rhs\n}\n"
  },
  {
    "path": "pkg/util/trie.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage util\n\n// A simple trie implementation with Add and HasPrefix methods only.\ntype Trie struct {\n\tchildren map[byte]*Trie\n\twordTail bool\n\tword     string\n}\n\n// NewTrie creates a Trie and add all strings in the provided list to it.\nfunc NewTrie(list []string) Trie {\n\tret := Trie{\n\t\tchildren: make(map[byte]*Trie),\n\t\twordTail: false,\n\t}\n\tfor _, v := range list {\n\t\tret.Add(v)\n\t}\n\treturn ret\n}\n\n// Add adds a word to this trie\nfunc (t *Trie) Add(v string) {\n\troot := t\n\tfor _, b := range []byte(v) {\n\t\tchild, exists := root.children[b]\n\t\tif !exists {\n\t\t\tchild = &Trie{\n\t\t\t\tchildren: make(map[byte]*Trie),\n\t\t\t\twordTail: false,\n\t\t\t}\n\t\t\troot.children[b] = child\n\t\t}\n\t\troot = child\n\t}\n\troot.wordTail = true\n\troot.word = v\n}\n\n// HasPrefix returns true of v has any of the prefixes stored in this trie.\nfunc (t *Trie) HasPrefix(v string) bool {\n\t_, has := t.GetPrefix(v)\n\treturn has\n}\n\n// GetPrefix is like HasPrefix but return the prefix in case of match or empty string otherwise.\nfunc (t *Trie) GetPrefix(v string) (string, bool) {\n\troot := t\n\tif root.wordTail {\n\t\treturn root.word, true\n\t}\n\tfor _, b := range []byte(v) {\n\t\tchild, exists := root.children[b]\n\t\tif !exists {\n\t\t\treturn \"\", false\n\t\t}\n\t\tif child.wordTail {\n\t\t\treturn child.word, true\n\t\t}\n\t\troot = child\n\t}\n\treturn \"\", false\n}\n"
  },
  {
    "path": "pkg/util/util.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage util\n\nimport (\n\t\"reflect\"\n\t\"strings\"\n)\n\n// [DEPRECATED] ToCanonicalName converts Golang package/type canonical name into REST friendly OpenAPI name.\n// This method is deprecated because it has a misleading name. Please use ToRESTFriendlyName\n// instead\n//\n// NOTE: actually the \"canonical name\" in this method should be named \"REST friendly OpenAPI name\",\n// which is different from \"canonical name\" defined in GetCanonicalTypeName. The \"canonical name\" defined\n// in GetCanonicalTypeName means Go type names with full package path.\n//\n// Examples of REST friendly OpenAPI name:\n//\n//\tInput:  k8s.io/api/core/v1.Pod\n//\tOutput: io.k8s.api.core.v1.Pod\n//\n//\tInput:  k8s.io/api/core/v1\n//\tOutput: io.k8s.api.core.v1\n//\n//\tInput:  csi.storage.k8s.io/v1alpha1.CSINodeInfo\n//\tOutput: io.k8s.storage.csi.v1alpha1.CSINodeInfo\nfunc ToCanonicalName(name string) string {\n\treturn ToRESTFriendlyName(name)\n}\n\n// ToRESTFriendlyName converts Golang package/type canonical name into REST friendly OpenAPI name.\n//\n// Examples of REST friendly OpenAPI name:\n//\n//\tInput:  k8s.io/api/core/v1.Pod\n//\tOutput: io.k8s.api.core.v1.Pod\n//\n//\tInput:  k8s.io/api/core/v1\n//\tOutput: io.k8s.api.core.v1\n//\n//\tInput:  csi.storage.k8s.io/v1alpha1.CSINodeInfo\n//\tOutput: io.k8s.storage.csi.v1alpha1.CSINodeInfo\nfunc ToRESTFriendlyName(name string) string {\n\tnameParts := strings.Split(name, \"/\")\n\t// Reverse first part. e.g., io.k8s... instead of k8s.io...\n\tif len(nameParts) > 0 && strings.Contains(nameParts[0], \".\") {\n\t\tparts := strings.Split(nameParts[0], \".\")\n\t\tfor i, j := 0, len(parts)-1; i < j; i, j = i+1, j-1 {\n\t\t\tparts[i], parts[j] = parts[j], parts[i]\n\t\t}\n\t\tnameParts[0] = strings.Join(parts, \".\")\n\t}\n\treturn strings.Join(nameParts, \".\")\n}\n\n// OpenAPICanonicalTypeNamer is an interface for models without Go type to seed model name.\n//\n// OpenAPI canonical names are Go type names with full package path, for uniquely indentifying\n// a model / Go type. If a Go type is vendored from another package, only the path after \"/vendor/\"\n// should be used. For custom resource definition (CRD), the canonical name is expected to be\n//\n//\tgroup/version.kind\n//\n// Examples of canonical name:\n//\n//\tGo type: k8s.io/kubernetes/pkg/apis/core.Pod\n//\tCRD:     csi.storage.k8s.io/v1alpha1.CSINodeInfo\n//\n// Example for vendored Go type:\n//\n//\tOriginal full path:  k8s.io/kubernetes/vendor/k8s.io/api/core/v1.Pod\n//\tCanonical name:      k8s.io/api/core/v1.Pod\n//\n//\tOriginal full path:  vendor/k8s.io/api/core/v1.Pod\n//\tCanonical name:      k8s.io/api/core/v1.Pod\ntype OpenAPICanonicalTypeNamer interface {\n\tOpenAPICanonicalTypeName() string\n}\n\n// OpenAPIModelNamer is an interface Go types may implement to provide an OpenAPI model name.\n//\n// This takes precedence over OpenAPICanonicalTypeNamer, and should be used when a Go type has a model\n// name that differs from its canonical type name as determined by Go package name reflection.\ntype OpenAPIModelNamer interface {\n\tOpenAPIModelName() string\n}\n\n// GetCanonicalTypeName will find the canonical type name of a sample object, removing\n// the \"vendor\" part of the path\nfunc GetCanonicalTypeName(model interface{}) string {\n\tswitch namer := model.(type) {\n\tcase OpenAPIModelNamer:\n\t\treturn namer.OpenAPIModelName()\n\tcase OpenAPICanonicalTypeNamer:\n\t\treturn namer.OpenAPICanonicalTypeName()\n\t}\n\tt := reflect.TypeOf(model)\n\tif t.Kind() == reflect.Ptr {\n\t\tt = t.Elem()\n\t}\n\tif t.PkgPath() == \"\" {\n\t\treturn t.Name()\n\t}\n\tpath := t.PkgPath()\n\tif strings.Contains(path, \"/vendor/\") {\n\t\tpath = path[strings.Index(path, \"/vendor/\")+len(\"/vendor/\"):]\n\t} else if strings.HasPrefix(path, \"vendor/\") {\n\t\tpath = strings.TrimPrefix(path, \"vendor/\")\n\t}\n\treturn path + \".\" + t.Name()\n}\n"
  },
  {
    "path": "pkg/util/util_test.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage util\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n)\n\nfunc TestCanonicalName(t *testing.T) {\n\n\tvar tests = []struct {\n\t\tinput    string\n\t\texpected string\n\t}{\n\t\t{\"k8s.io/api/core/v1.Pod\", \"io.k8s.api.core.v1.Pod\"},\n\t\t{\"k8s.io/api/networking/v1/NetworkPolicy\", \"io.k8s.api.networking.v1.NetworkPolicy\"},\n\t\t{\"k8s.io/api/apps/v1beta2.Scale\", \"io.k8s.api.apps.v1beta2.Scale\"},\n\t\t{\"servicecatalog.k8s.io/foo/bar/v1alpha1.Baz\", \"io.k8s.servicecatalog.foo.bar.v1alpha1.Baz\"},\n\t}\n\tfor _, test := range tests {\n\t\tif got := ToRESTFriendlyName(test.input); got != test.expected {\n\t\t\tt.Errorf(\"ToRESTFriendlyName(%q) = %v\", test.input, got)\n\t\t}\n\t}\n}\n\ntype TestType struct{}\n\nfunc TestGetCanonicalTypeName(t *testing.T) {\n\n\tvar tests = []struct {\n\t\tinput    interface{}\n\t\texpected string\n\t}{\n\t\t{TestType{}, \"k8s.io/kube-openapi/pkg/util.TestType\"},\n\t\t{&TestType{}, \"k8s.io/kube-openapi/pkg/util.TestType\"},\n\t}\n\tfor _, test := range tests {\n\t\tif got := GetCanonicalTypeName(test.input); got != test.expected {\n\t\t\tt.Errorf(\"GetCanonicalTypeName(%q) = %v\", reflect.TypeOf(test.input), got)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\noptions:\n  no_parent_owners: true\napprovers:\n- sttts\n- liggitt\nreviewers:\n- apelisse\n- sttts\n- liggitt\n"
  },
  {
    "path": "pkg/validation/errors/.github/CONTRIBUTING.md",
    "content": "## Contribution Guidelines\n\n### Pull requests are always welcome\n\nWe are always thrilled to receive pull requests, and do our best to\nprocess them as fast as possible. Not sure if that typo is worth a pull\nrequest? Do it! We will appreciate it.\n\nIf your pull request is not accepted on the first try, don't be\ndiscouraged! If there's a problem with the implementation, hopefully you\nreceived feedback on what to improve.\n\nWe're trying very hard to keep go-swagger lean and focused. We don't want it\nto do everything for everybody. This means that we might decide against\nincorporating a new feature. However, there might be a way to implement\nthat feature *on top of* go-swagger.\n\n\n### Conventions\n\nFork the repo and make changes on your fork in a feature branch:\n\n- If it's a bugfix branch, name it XXX-something where XXX is the number of the\n  issue\n- If it's a feature branch, create an enhancement issue to announce your\n  intentions, and name it XXX-something where XXX is the number of the issue.\n\nSubmit unit tests for your changes.  Go has a great test framework built in; use\nit! Take a look at existing tests for inspiration. Run the full test suite on\nyour branch before submitting a pull request.\n\nUpdate the documentation when creating or modifying features. Test\nyour documentation changes for clarity, concision, and correctness, as\nwell as a clean documentation build. See ``docs/README.md`` for more\ninformation on building the docs and how docs get released.\n\nWrite clean code. Universally formatted code promotes ease of writing, reading,\nand maintenance. Always run `gofmt -s -w file.go` on each changed file before\ncommitting your changes. Most editors have plugins that do this automatically.\n\nPull requests descriptions should be as clear as possible and include a\nreference to all the issues that they address.\n\nPull requests must not contain commits from other users or branches.\n\nCommit messages must start with a capitalized and short summary (max. 50\nchars) written in the imperative, followed by an optional, more detailed\nexplanatory text which is separated from the summary by an empty line.\n\nCode review comments may be added to your pull request. Discuss, then make the\nsuggested modifications and push additional commits to your feature branch. Be\nsure to post a comment after pushing. The new commits will show up in the pull\nrequest automatically, but the reviewers will not be notified unless you\ncomment.\n\nBefore the pull request is merged, make sure that you squash your commits into\nlogical units of work using `git rebase -i` and `git push -f`. After every\ncommit the test suite should be passing. Include documentation changes in the\nsame commit so that a revert would remove all traces of the feature or fix.\n\nCommits that fix or close an issue should include a reference like `Closes #XXX`\nor `Fixes #XXX`, which will automatically close the issue when merged.\n\n### Sign your work\n\nThe sign-off is a simple line at the end of the explanation for the\npatch, which certifies that you wrote it or otherwise have the right to\npass it on as an open-source patch.  The rules are pretty simple: if you\ncan certify the below (from\n[developercertificate.org](http://developercertificate.org/)):\n\n```\nDeveloper Certificate of Origin\nVersion 1.1\n\nCopyright (C) 2004, 2006 The Linux Foundation and its contributors.\n660 York Street, Suite 102,\nSan Francisco, CA 94110 USA\n\nEveryone is permitted to copy and distribute verbatim copies of this\nlicense document, but changing it is not allowed.\n\n\nDeveloper's Certificate of Origin 1.1\n\nBy making a contribution to this project, I certify that:\n\n(a) The contribution was created in whole or in part by me and I\n    have the right to submit it under the open source license\n    indicated in the file; or\n\n(b) The contribution is based upon previous work that, to the best\n    of my knowledge, is covered under an appropriate open source\n    license and I have the right under that license to submit that\n    work with modifications, whether created in whole or in part\n    by me, under the same open source license (unless I am\n    permitted to submit under a different license), as indicated\n    in the file; or\n\n(c) The contribution was provided directly to me by some other\n    person who certified (a), (b) or (c) and I have not modified\n    it.\n\n(d) I understand and agree that this project and the contribution\n    are public and that a record of the contribution (including all\n    personal information I submit with it, including my sign-off) is\n    maintained indefinitely and may be redistributed consistent with\n    this project or the open source license(s) involved.\n```\n\nthen you just add a line to every git commit message:\n\n    Signed-off-by: Joe Smith <joe@gmail.com>\n\nusing your real name (sorry, no pseudonyms or anonymous contributions.)\n\nYou can add the sign off when creating the git commit via `git commit -s`.\n"
  },
  {
    "path": "pkg/validation/errors/.gitignore",
    "content": "secrets.yml\ncoverage.out\n"
  },
  {
    "path": "pkg/validation/errors/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "pkg/validation/errors/api.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage errors\n\nimport (\n\t\"fmt\"\n)\n\n// Error represents a error interface all swagger framework errors implement\ntype Error interface {\n\terror\n\tCode() int32\n}\n\ntype apiError struct {\n\tcode    int32\n\tmessage string\n}\n\nfunc (a *apiError) Error() string {\n\treturn a.message\n}\n\nfunc (a *apiError) Code() int32 {\n\treturn a.code\n}\n\n// New creates a new API error with a code and a message\nfunc New(code int32, message string, args ...interface{}) Error {\n\tif len(args) > 0 {\n\t\treturn &apiError{code, fmt.Sprintf(message, args...)}\n\t}\n\treturn &apiError{code, message}\n}\n"
  },
  {
    "path": "pkg/validation/errors/api_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage errors\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestValidateName(t *testing.T) {\n\tv := &Validation{Name: \"myValidation\", message: \"myMessage\"}\n\n\t// unchanged\n\tvv := v.ValidateName(\"\")\n\tassert.EqualValues(t, \"myValidation\", vv.Name)\n\tassert.EqualValues(t, \"myMessage\", vv.message)\n\n\t// unchanged\n\tvv = v.ValidateName(\"myNewName\")\n\tassert.EqualValues(t, \"myValidation\", vv.Name)\n\tassert.EqualValues(t, \"myMessage\", vv.message)\n\n\tv.Name = \"\"\n\n\t// unchanged\n\tvv = v.ValidateName(\"\")\n\tassert.EqualValues(t, \"\", vv.Name)\n\tassert.EqualValues(t, \"myMessage\", vv.message)\n\n\t// forced\n\tvv = v.ValidateName(\"myNewName\")\n\tassert.EqualValues(t, \"myNewName\", vv.Name)\n\tassert.EqualValues(t, \"myNewNamemyMessage\", vv.message)\n}\n"
  },
  {
    "path": "pkg/validation/errors/doc.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/*\nPackage errors provides an Error interface and several concrete types\nimplementing this interface to manage API errors and JSON-schema validation\nerrors.\n\nA middleware handler ServeError() is provided to serve the errors types\nit defines.\n\nIt is used throughout the various go-openapi toolkit libraries\n(https://github.com/go-openapi).\n*/\npackage errors\n"
  },
  {
    "path": "pkg/validation/errors/headers.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage errors\n\n// Validation represents a failure of a precondition\ntype Validation struct {\n\tcode    int32\n\tName    string\n\tIn      string\n\tValue   interface{}\n\tValid   interface{}\n\tmessage string\n\tValues  []interface{}\n}\n\nfunc (e *Validation) Error() string {\n\treturn e.message\n}\n\n// Code the error code\nfunc (e *Validation) Code() int32 {\n\treturn e.code\n}\n\n// ValidateName produces an error message name for an aliased property\nfunc (e *Validation) ValidateName(name string) *Validation {\n\tif e.Name == \"\" && name != \"\" {\n\t\te.Name = name\n\t\te.message = name + e.message\n\t}\n\treturn e\n}\n"
  },
  {
    "path": "pkg/validation/errors/schema.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage errors\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\nconst (\n\tinvalidType               = \"%s is an invalid type name\"\n\ttypeFail                  = \"%s in %s must be of type %s\"\n\ttypeFailWithData          = \"%s in %s must be of type %s: %q\"\n\ttypeFailWithError         = \"%s in %s must be of type %s, because: %s\"\n\trequiredFail              = \"%s in %s is required\"\n\ttooLongMessage            = \"%s in %s should be at most %d chars long\"\n\ttooShortMessage           = \"%s in %s should be at least %d chars long\"\n\tpatternFail               = \"%s in %s should match '%s'\"\n\tenumFail                  = \"%s in %s should be one of %v\"\n\tmultipleOfFail            = \"%s in %s should be a multiple of %v\"\n\tmaxIncFail                = \"%s in %s should be less than or equal to %v\"\n\tmaxExcFail                = \"%s in %s should be less than %v\"\n\tminIncFail                = \"%s in %s should be greater than or equal to %v\"\n\tminExcFail                = \"%s in %s should be greater than %v\"\n\tuniqueFail                = \"%s in %s shouldn't contain duplicates\"\n\tmaxItemsFail              = \"%s in %s should have at most %d items\"\n\tminItemsFail              = \"%s in %s should have at least %d items\"\n\ttypeFailNoIn              = \"%s must be of type %s\"\n\ttypeFailWithDataNoIn      = \"%s must be of type %s: %q\"\n\ttypeFailWithErrorNoIn     = \"%s must be of type %s, because: %s\"\n\trequiredFailNoIn          = \"%s is required\"\n\ttooLongMessageNoIn        = \"%s should be at most %d chars long\"\n\ttooShortMessageNoIn       = \"%s should be at least %d chars long\"\n\tpatternFailNoIn           = \"%s should match '%s'\"\n\tenumFailNoIn              = \"%s should be one of %v\"\n\tmultipleOfFailNoIn        = \"%s should be a multiple of %v\"\n\tmaxIncFailNoIn            = \"%s should be less than or equal to %v\"\n\tmaxExcFailNoIn            = \"%s should be less than %v\"\n\tminIncFailNoIn            = \"%s should be greater than or equal to %v\"\n\tminExcFailNoIn            = \"%s should be greater than %v\"\n\tuniqueFailNoIn            = \"%s shouldn't contain duplicates\"\n\tmaxItemsFailNoIn          = \"%s should have at most %d items\"\n\tminItemsFailNoIn          = \"%s should have at least %d items\"\n\tnoAdditionalItems         = \"%s in %s can't have additional items\"\n\tnoAdditionalItemsNoIn     = \"%s can't have additional items\"\n\ttooFewProperties          = \"%s in %s should have at least %d properties\"\n\ttooFewPropertiesNoIn      = \"%s should have at least %d properties\"\n\ttooManyProperties         = \"%s in %s should have at most %d properties\"\n\ttooManyPropertiesNoIn     = \"%s should have at most %d properties\"\n\tunallowedProperty         = \"%s.%s in %s is a forbidden property\"\n\tunallowedPropertyNoIn     = \"%s.%s is a forbidden property\"\n\tfailedAllPatternProps     = \"%s.%s in %s failed all pattern properties\"\n\tfailedAllPatternPropsNoIn = \"%s.%s failed all pattern properties\"\n\tmultipleOfMustBePositive  = \"factor MultipleOf declared for %s must be positive: %v\"\n)\n\n// All code responses can be used to differentiate errors for different handling\n// by the consuming program\nconst (\n\t// CompositeErrorCode remains 422 for backwards-compatibility\n\t// and to separate it from validation errors with cause\n\tCompositeErrorCode = 422\n\t// InvalidTypeCode is used for any subclass of invalid types\n\tInvalidTypeCode = 600 + iota\n\tRequiredFailCode\n\tTooLongFailCode\n\tTooShortFailCode\n\tPatternFailCode\n\tEnumFailCode\n\tMultipleOfFailCode\n\tMaxFailCode\n\tMinFailCode\n\tUniqueFailCode\n\tMaxItemsFailCode\n\tMinItemsFailCode\n\tNoAdditionalItemsCode\n\tTooFewPropertiesCode\n\tTooManyPropertiesCode\n\tUnallowedPropertyCode\n\tFailedAllPatternPropsCode\n\tMultipleOfMustBePositiveCode\n)\n\n// CompositeError is an error that groups several errors together\ntype CompositeError struct {\n\tErrors  []error\n\tcode    int32\n\tmessage string\n}\n\n// Code for this error\nfunc (c *CompositeError) Code() int32 {\n\treturn c.code\n}\n\nfunc (c *CompositeError) Error() string {\n\tif len(c.Errors) > 0 {\n\t\tmsgs := []string{c.message + \":\"}\n\t\tfor _, e := range c.Errors {\n\t\t\tmsgs = append(msgs, e.Error())\n\t\t}\n\t\treturn strings.Join(msgs, \"\\n\")\n\t}\n\treturn c.message\n}\n\n// CompositeValidationError an error to wrap a bunch of other errors\nfunc CompositeValidationError(errors ...error) *CompositeError {\n\treturn &CompositeError{\n\t\tcode:    CompositeErrorCode,\n\t\tErrors:  append([]error{}, errors...),\n\t\tmessage: \"validation failure list\",\n\t}\n}\n\n// FailedAllPatternProperties an error for when the property doesn't match a pattern\nfunc FailedAllPatternProperties(name, in, key string) *Validation {\n\tmsg := fmt.Sprintf(failedAllPatternProps, name, key, in)\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(failedAllPatternPropsNoIn, name, key)\n\t}\n\treturn &Validation{\n\t\tcode:    FailedAllPatternPropsCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   key,\n\t\tmessage: msg,\n\t}\n}\n\n// PropertyNotAllowed an error for when the property doesn't match a pattern\nfunc PropertyNotAllowed(name, in, key string) *Validation {\n\tmsg := fmt.Sprintf(unallowedProperty, name, key, in)\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(unallowedPropertyNoIn, name, key)\n\t}\n\treturn &Validation{\n\t\tcode:    UnallowedPropertyCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   key,\n\t\tmessage: msg,\n\t}\n}\n\n// TooFewProperties an error for an object with too few properties\nfunc TooFewProperties(name, in string, minProperties, size int64) *Validation {\n\tmsg := fmt.Sprintf(tooFewProperties, name, in, minProperties)\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(tooFewPropertiesNoIn, name, minProperties)\n\t}\n\treturn &Validation{\n\t\tcode:    TooFewPropertiesCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   size,\n\t\tValid:   minProperties,\n\t\tmessage: msg,\n\t}\n}\n\n// TooManyProperties an error for an object with too many properties\nfunc TooManyProperties(name, in string, maxProperties, size int64) *Validation {\n\tmsg := fmt.Sprintf(tooManyProperties, name, in, maxProperties)\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(tooManyPropertiesNoIn, name, maxProperties)\n\t}\n\treturn &Validation{\n\t\tcode:    TooManyPropertiesCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   size,\n\t\tValid:   maxProperties,\n\t\tmessage: msg,\n\t}\n}\n\n// AdditionalItemsNotAllowed an error for invalid additional items\nfunc AdditionalItemsNotAllowed(name, in string) *Validation {\n\tmsg := fmt.Sprintf(noAdditionalItems, name, in)\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(noAdditionalItemsNoIn, name)\n\t}\n\treturn &Validation{\n\t\tcode:    NoAdditionalItemsCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tmessage: msg,\n\t}\n}\n\n// InvalidCollectionFormat another flavor of invalid type error\nfunc InvalidCollectionFormat(name, in, format string) *Validation {\n\treturn &Validation{\n\t\tcode:    InvalidTypeCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   format,\n\t\tmessage: fmt.Sprintf(\"the collection format %q is not supported for the %s param %q\", format, in, name),\n\t}\n}\n\n// InvalidTypeName an error for when the type is invalid\nfunc InvalidTypeName(typeName string) *Validation {\n\treturn &Validation{\n\t\tcode:    InvalidTypeCode,\n\t\tValue:   typeName,\n\t\tmessage: fmt.Sprintf(invalidType, typeName),\n\t}\n}\n\n// InvalidType creates an error for when the type is invalid\nfunc InvalidType(name, in, typeName string, value interface{}) *Validation {\n\tvar message string\n\n\tif in != \"\" {\n\t\tswitch value.(type) {\n\t\tcase string:\n\t\t\tmessage = fmt.Sprintf(typeFailWithData, name, in, typeName, value)\n\t\tcase error:\n\t\t\tmessage = fmt.Sprintf(typeFailWithError, name, in, typeName, value)\n\t\tdefault:\n\t\t\tmessage = fmt.Sprintf(typeFail, name, in, typeName)\n\t\t}\n\t} else {\n\t\tswitch value.(type) {\n\t\tcase string:\n\t\t\tmessage = fmt.Sprintf(typeFailWithDataNoIn, name, typeName, value)\n\t\tcase error:\n\t\t\tmessage = fmt.Sprintf(typeFailWithErrorNoIn, name, typeName, value)\n\t\tdefault:\n\t\t\tmessage = fmt.Sprintf(typeFailNoIn, name, typeName)\n\t\t}\n\t}\n\n\treturn &Validation{\n\t\tcode:    InvalidTypeCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tmessage: message,\n\t}\n\n}\n\n// DuplicateItems error for when an array contains duplicates\nfunc DuplicateItems(name, in string) *Validation {\n\tmsg := fmt.Sprintf(uniqueFail, name, in)\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(uniqueFailNoIn, name)\n\t}\n\treturn &Validation{\n\t\tcode:    UniqueFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tmessage: msg,\n\t}\n}\n\n// TooManyItems error for when an array contains too many items\nfunc TooManyItems(name, in string, max int64, value interface{}) *Validation {\n\tmsg := fmt.Sprintf(maxItemsFail, name, in, max)\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(maxItemsFailNoIn, name, max)\n\t}\n\n\treturn &Validation{\n\t\tcode:    MaxItemsFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tValid:   max,\n\t\tmessage: msg,\n\t}\n}\n\n// TooFewItems error for when an array contains too few items\nfunc TooFewItems(name, in string, min int64, value interface{}) *Validation {\n\tmsg := fmt.Sprintf(minItemsFail, name, in, min)\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(minItemsFailNoIn, name, min)\n\t}\n\treturn &Validation{\n\t\tcode:    MinItemsFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tValid:   min,\n\t\tmessage: msg,\n\t}\n}\n\n// ExceedsMaximumInt error for when maxinum validation fails\nfunc ExceedsMaximumInt(name, in string, max int64, exclusive bool, value interface{}) *Validation {\n\tvar message string\n\tif in == \"\" {\n\t\tm := maxIncFailNoIn\n\t\tif exclusive {\n\t\t\tm = maxExcFailNoIn\n\t\t}\n\t\tmessage = fmt.Sprintf(m, name, max)\n\t} else {\n\t\tm := maxIncFail\n\t\tif exclusive {\n\t\t\tm = maxExcFail\n\t\t}\n\t\tmessage = fmt.Sprintf(m, name, in, max)\n\t}\n\treturn &Validation{\n\t\tcode:    MaxFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tmessage: message,\n\t}\n}\n\n// ExceedsMaximumUint error for when maxinum validation fails\nfunc ExceedsMaximumUint(name, in string, max uint64, exclusive bool, value interface{}) *Validation {\n\tvar message string\n\tif in == \"\" {\n\t\tm := maxIncFailNoIn\n\t\tif exclusive {\n\t\t\tm = maxExcFailNoIn\n\t\t}\n\t\tmessage = fmt.Sprintf(m, name, max)\n\t} else {\n\t\tm := maxIncFail\n\t\tif exclusive {\n\t\t\tm = maxExcFail\n\t\t}\n\t\tmessage = fmt.Sprintf(m, name, in, max)\n\t}\n\treturn &Validation{\n\t\tcode:    MaxFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tmessage: message,\n\t}\n}\n\n// ExceedsMaximum error for when maxinum validation fails\nfunc ExceedsMaximum(name, in string, max float64, exclusive bool, value interface{}) *Validation {\n\tvar message string\n\tif in == \"\" {\n\t\tm := maxIncFailNoIn\n\t\tif exclusive {\n\t\t\tm = maxExcFailNoIn\n\t\t}\n\t\tmessage = fmt.Sprintf(m, name, max)\n\t} else {\n\t\tm := maxIncFail\n\t\tif exclusive {\n\t\t\tm = maxExcFail\n\t\t}\n\t\tmessage = fmt.Sprintf(m, name, in, max)\n\t}\n\treturn &Validation{\n\t\tcode:    MaxFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tmessage: message,\n\t}\n}\n\n// ExceedsMinimumInt error for when maxinum validation fails\nfunc ExceedsMinimumInt(name, in string, min int64, exclusive bool, value interface{}) *Validation {\n\tvar message string\n\tif in == \"\" {\n\t\tm := minIncFailNoIn\n\t\tif exclusive {\n\t\t\tm = minExcFailNoIn\n\t\t}\n\t\tmessage = fmt.Sprintf(m, name, min)\n\t} else {\n\t\tm := minIncFail\n\t\tif exclusive {\n\t\t\tm = minExcFail\n\t\t}\n\t\tmessage = fmt.Sprintf(m, name, in, min)\n\t}\n\treturn &Validation{\n\t\tcode:    MinFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tmessage: message,\n\t}\n}\n\n// ExceedsMinimumUint error for when maxinum validation fails\nfunc ExceedsMinimumUint(name, in string, min uint64, exclusive bool, value interface{}) *Validation {\n\tvar message string\n\tif in == \"\" {\n\t\tm := minIncFailNoIn\n\t\tif exclusive {\n\t\t\tm = minExcFailNoIn\n\t\t}\n\t\tmessage = fmt.Sprintf(m, name, min)\n\t} else {\n\t\tm := minIncFail\n\t\tif exclusive {\n\t\t\tm = minExcFail\n\t\t}\n\t\tmessage = fmt.Sprintf(m, name, in, min)\n\t}\n\treturn &Validation{\n\t\tcode:    MinFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tmessage: message,\n\t}\n}\n\n// ExceedsMinimum error for when maxinum validation fails\nfunc ExceedsMinimum(name, in string, min float64, exclusive bool, value interface{}) *Validation {\n\tvar message string\n\tif in == \"\" {\n\t\tm := minIncFailNoIn\n\t\tif exclusive {\n\t\t\tm = minExcFailNoIn\n\t\t}\n\t\tmessage = fmt.Sprintf(m, name, min)\n\t} else {\n\t\tm := minIncFail\n\t\tif exclusive {\n\t\t\tm = minExcFail\n\t\t}\n\t\tmessage = fmt.Sprintf(m, name, in, min)\n\t}\n\treturn &Validation{\n\t\tcode:    MinFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tmessage: message,\n\t}\n}\n\n// NotMultipleOf error for when multiple of validation fails\nfunc NotMultipleOf(name, in string, multiple, value interface{}) *Validation {\n\tvar msg string\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(multipleOfFailNoIn, name, multiple)\n\t} else {\n\t\tmsg = fmt.Sprintf(multipleOfFail, name, in, multiple)\n\t}\n\treturn &Validation{\n\t\tcode:    MultipleOfFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tmessage: msg,\n\t}\n}\n\n// EnumFail error for when an enum validation fails\nfunc EnumFail(name, in string, value interface{}, values []interface{}) *Validation {\n\tvar msg string\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(enumFailNoIn, name, values)\n\t} else {\n\t\tmsg = fmt.Sprintf(enumFail, name, in, values)\n\t}\n\n\treturn &Validation{\n\t\tcode:    EnumFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tValues:  values,\n\t\tmessage: msg,\n\t}\n}\n\n// Required error for when a value is missing\nfunc Required(name, in string) *Validation {\n\tvar msg string\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(requiredFailNoIn, name)\n\t} else {\n\t\tmsg = fmt.Sprintf(requiredFail, name, in)\n\t}\n\treturn &Validation{\n\t\tcode:    RequiredFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tmessage: msg,\n\t}\n}\n\n// TooLong error for when a string is too long\nfunc TooLong(name, in string, max int64, value interface{}) *Validation {\n\tvar msg string\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(tooLongMessageNoIn, name, max)\n\t} else {\n\t\tmsg = fmt.Sprintf(tooLongMessage, name, in, max)\n\t}\n\treturn &Validation{\n\t\tcode:    TooLongFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tValid:   max,\n\t\tmessage: msg,\n\t}\n}\n\n// TooShort error for when a string is too short\nfunc TooShort(name, in string, min int64, value interface{}) *Validation {\n\tvar msg string\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(tooShortMessageNoIn, name, min)\n\t} else {\n\t\tmsg = fmt.Sprintf(tooShortMessage, name, in, min)\n\t}\n\n\treturn &Validation{\n\t\tcode:    TooShortFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tValid:   min,\n\t\tmessage: msg,\n\t}\n}\n\n// FailedPattern error for when a string fails a regex pattern match\n// the pattern that is returned is the ECMA syntax version of the pattern not the golang version.\nfunc FailedPattern(name, in, pattern string, value interface{}) *Validation {\n\tvar msg string\n\tif in == \"\" {\n\t\tmsg = fmt.Sprintf(patternFailNoIn, name, pattern)\n\t} else {\n\t\tmsg = fmt.Sprintf(patternFail, name, in, pattern)\n\t}\n\n\treturn &Validation{\n\t\tcode:    PatternFailCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   value,\n\t\tmessage: msg,\n\t}\n}\n\n// MultipleOfMustBePositive error for when a\n// multipleOf factor is negative\nfunc MultipleOfMustBePositive(name, in string, factor interface{}) *Validation {\n\treturn &Validation{\n\t\tcode:    MultipleOfMustBePositiveCode,\n\t\tName:    name,\n\t\tIn:      in,\n\t\tValue:   factor,\n\t\tmessage: fmt.Sprintf(multipleOfMustBePositive, name, factor),\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/errors/schema_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage errors\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestSchemaErrors(t *testing.T) {\n\terr := InvalidType(\"confirmed\", \"query\", \"boolean\", nil)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, InvalidTypeCode, err.Code())\n\tassert.Equal(t, \"confirmed in query must be of type boolean\", err.Error())\n\n\terr = InvalidType(\"confirmed\", \"\", \"boolean\", nil)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, InvalidTypeCode, err.Code())\n\tassert.Equal(t, \"confirmed must be of type boolean\", err.Error())\n\n\terr = InvalidType(\"confirmed\", \"query\", \"boolean\", \"hello\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, InvalidTypeCode, err.Code())\n\tassert.Equal(t, \"confirmed in query must be of type boolean: \\\"hello\\\"\", err.Error())\n\n\terr = InvalidType(\"confirmed\", \"query\", \"boolean\", errors.New(\"hello\"))\n\tassert.Error(t, err)\n\tassert.EqualValues(t, InvalidTypeCode, err.Code())\n\tassert.Equal(t, \"confirmed in query must be of type boolean, because: hello\", err.Error())\n\n\terr = InvalidType(\"confirmed\", \"\", \"boolean\", \"hello\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, InvalidTypeCode, err.Code())\n\tassert.Equal(t, \"confirmed must be of type boolean: \\\"hello\\\"\", err.Error())\n\n\terr = InvalidType(\"confirmed\", \"\", \"boolean\", errors.New(\"hello\"))\n\tassert.Error(t, err)\n\tassert.EqualValues(t, InvalidTypeCode, err.Code())\n\tassert.Equal(t, \"confirmed must be of type boolean, because: hello\", err.Error())\n\n\terr = DuplicateItems(\"uniques\", \"query\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, UniqueFailCode, err.Code())\n\tassert.Equal(t, \"uniques in query shouldn't contain duplicates\", err.Error())\n\n\terr = DuplicateItems(\"uniques\", \"\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, UniqueFailCode, err.Code())\n\tassert.Equal(t, \"uniques shouldn't contain duplicates\", err.Error())\n\n\terr = TooManyItems(\"something\", \"query\", 5, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxItemsFailCode, err.Code())\n\tassert.Equal(t, \"something in query should have at most 5 items\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = TooManyItems(\"something\", \"\", 5, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxItemsFailCode, err.Code())\n\tassert.Equal(t, \"something should have at most 5 items\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = TooFewItems(\"something\", \"\", 5, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinItemsFailCode, err.Code())\n\tassert.Equal(t, \"something should have at least 5 items\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = ExceedsMaximumInt(\"something\", \"query\", 5, false, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be less than or equal to 5\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = ExceedsMaximumInt(\"something\", \"\", 5, false, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxFailCode, err.Code())\n\tassert.Equal(t, \"something should be less than or equal to 5\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = ExceedsMaximumInt(\"something\", \"query\", 5, true, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be less than 5\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = ExceedsMaximumInt(\"something\", \"\", 5, true, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxFailCode, err.Code())\n\tassert.Equal(t, \"something should be less than 5\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = ExceedsMaximumUint(\"something\", \"query\", 5, false, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be less than or equal to 5\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = ExceedsMaximumUint(\"something\", \"\", 5, false, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxFailCode, err.Code())\n\tassert.Equal(t, \"something should be less than or equal to 5\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = ExceedsMaximumUint(\"something\", \"query\", 5, true, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be less than 5\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = ExceedsMaximumUint(\"something\", \"\", 5, true, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxFailCode, err.Code())\n\tassert.Equal(t, \"something should be less than 5\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = ExceedsMaximum(\"something\", \"query\", 5, false, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be less than or equal to 5\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = ExceedsMaximum(\"something\", \"\", 5, false, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxFailCode, err.Code())\n\tassert.Equal(t, \"something should be less than or equal to 5\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = ExceedsMaximum(\"something\", \"query\", 5, true, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be less than 5\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = ExceedsMaximum(\"something\", \"\", 5, true, 6)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MaxFailCode, err.Code())\n\tassert.Equal(t, \"something should be less than 5\", err.Error())\n\tassert.Equal(t, 6, err.Value)\n\n\terr = ExceedsMinimumInt(\"something\", \"query\", 5, false, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be greater than or equal to 5\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = ExceedsMinimumInt(\"something\", \"\", 5, false, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinFailCode, err.Code())\n\tassert.Equal(t, \"something should be greater than or equal to 5\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = ExceedsMinimumInt(\"something\", \"query\", 5, true, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be greater than 5\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = ExceedsMinimumInt(\"something\", \"\", 5, true, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinFailCode, err.Code())\n\tassert.Equal(t, \"something should be greater than 5\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = ExceedsMinimumUint(\"something\", \"query\", 5, false, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be greater than or equal to 5\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = ExceedsMinimumUint(\"something\", \"\", 5, false, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinFailCode, err.Code())\n\tassert.Equal(t, \"something should be greater than or equal to 5\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = ExceedsMinimumUint(\"something\", \"query\", 5, true, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be greater than 5\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = ExceedsMinimumUint(\"something\", \"\", 5, true, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinFailCode, err.Code())\n\tassert.Equal(t, \"something should be greater than 5\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = ExceedsMinimum(\"something\", \"query\", 5, false, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be greater than or equal to 5\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = ExceedsMinimum(\"something\", \"\", 5, false, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinFailCode, err.Code())\n\tassert.Equal(t, \"something should be greater than or equal to 5\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = ExceedsMinimum(\"something\", \"query\", 5, true, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be greater than 5\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = ExceedsMinimum(\"something\", \"\", 5, true, 4)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MinFailCode, err.Code())\n\tassert.Equal(t, \"something should be greater than 5\", err.Error())\n\tassert.Equal(t, 4, err.Value)\n\n\terr = NotMultipleOf(\"something\", \"query\", 5, 1)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MultipleOfFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be a multiple of 5\", err.Error())\n\tassert.Equal(t, 1, err.Value)\n\n\terr = NotMultipleOf(\"something\", \"query\", float64(5), float64(1))\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MultipleOfFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be a multiple of 5\", err.Error())\n\tassert.Equal(t, float64(1), err.Value)\n\n\terr = NotMultipleOf(\"something\", \"query\", uint64(5), uint64(1))\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MultipleOfFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be a multiple of 5\", err.Error())\n\tassert.Equal(t, uint64(1), err.Value)\n\n\terr = NotMultipleOf(\"something\", \"\", 5, 1)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MultipleOfFailCode, err.Code())\n\tassert.Equal(t, \"something should be a multiple of 5\", err.Error())\n\tassert.Equal(t, 1, err.Value)\n\n\terr = EnumFail(\"something\", \"query\", \"yada\", []interface{}{\"hello\", \"world\"})\n\tassert.Error(t, err)\n\tassert.EqualValues(t, EnumFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be one of [hello world]\", err.Error())\n\tassert.Equal(t, \"yada\", err.Value)\n\n\terr = EnumFail(\"something\", \"\", \"yada\", []interface{}{\"hello\", \"world\"})\n\tassert.Error(t, err)\n\tassert.EqualValues(t, EnumFailCode, err.Code())\n\tassert.Equal(t, \"something should be one of [hello world]\", err.Error())\n\tassert.Equal(t, \"yada\", err.Value)\n\n\terr = Required(\"something\", \"query\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, RequiredFailCode, err.Code())\n\tassert.Equal(t, \"something in query is required\", err.Error())\n\n\terr = Required(\"something\", \"\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, RequiredFailCode, err.Code())\n\tassert.Equal(t, \"something is required\", err.Error())\n\n\terr = TooLong(\"something\", \"query\", 5, \"abcdef\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, TooLongFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be at most 5 chars long\", err.Error())\n\tassert.Equal(t, \"abcdef\", err.Value)\n\n\terr = TooLong(\"something\", \"\", 5, \"abcdef\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, TooLongFailCode, err.Code())\n\tassert.Equal(t, \"something should be at most 5 chars long\", err.Error())\n\tassert.Equal(t, \"abcdef\", err.Value)\n\n\terr = TooShort(\"something\", \"query\", 5, \"a\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, TooShortFailCode, err.Code())\n\tassert.Equal(t, \"something in query should be at least 5 chars long\", err.Error())\n\tassert.Equal(t, \"a\", err.Value)\n\n\terr = TooShort(\"something\", \"\", 5, \"a\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, TooShortFailCode, err.Code())\n\tassert.Equal(t, \"something should be at least 5 chars long\", err.Error())\n\tassert.Equal(t, \"a\", err.Value)\n\n\terr = FailedPattern(\"something\", \"query\", \"\\\\d+\", \"a\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, PatternFailCode, err.Code())\n\tassert.Equal(t, \"something in query should match '\\\\d+'\", err.Error())\n\tassert.Equal(t, \"a\", err.Value)\n\n\terr = FailedPattern(\"something\", \"\", \"\\\\d+\", \"a\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, PatternFailCode, err.Code())\n\tassert.Equal(t, \"something should match '\\\\d+'\", err.Error())\n\tassert.Equal(t, \"a\", err.Value)\n\n\terr = InvalidTypeName(\"something\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, InvalidTypeCode, err.Code())\n\tassert.Equal(t, \"something is an invalid type name\", err.Error())\n\n\terr = AdditionalItemsNotAllowed(\"something\", \"query\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, NoAdditionalItemsCode, err.Code())\n\tassert.Equal(t, \"something in query can't have additional items\", err.Error())\n\n\terr = AdditionalItemsNotAllowed(\"something\", \"\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, NoAdditionalItemsCode, err.Code())\n\tassert.Equal(t, \"something can't have additional items\", err.Error())\n\n\terr = InvalidCollectionFormat(\"something\", \"query\", \"yada\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, InvalidTypeCode, err.Code())\n\tassert.Equal(t, \"the collection format \\\"yada\\\" is not supported for the query param \\\"something\\\"\", err.Error())\n\n\terr2 := CompositeValidationError()\n\tassert.Error(t, err2)\n\tassert.EqualValues(t, CompositeErrorCode, err2.Code())\n\tassert.Equal(t, \"validation failure list\", err2.Error())\n\n\terr2 = CompositeValidationError(fmt.Errorf(\"First error\"), fmt.Errorf(\"Second error\"))\n\tassert.Error(t, err2)\n\tassert.EqualValues(t, CompositeErrorCode, err2.Code())\n\tassert.Equal(t, \"validation failure list:\\nFirst error\\nSecond error\", err2.Error())\n\n\t//func MultipleOfMustBePositive(name, in string, factor interface{}) *Validation {\n\terr = MultipleOfMustBePositive(\"path\", \"body\", float64(-10))\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MultipleOfMustBePositiveCode, err.Code())\n\tassert.Equal(t, `factor MultipleOf declared for path must be positive: -10`, err.Error())\n\tassert.Equal(t, float64(-10), err.Value)\n\n\terr = MultipleOfMustBePositive(\"path\", \"body\", int64(-10))\n\tassert.Error(t, err)\n\tassert.EqualValues(t, MultipleOfMustBePositiveCode, err.Code())\n\tassert.Equal(t, `factor MultipleOf declared for path must be positive: -10`, err.Error())\n\tassert.Equal(t, int64(-10), err.Value)\n\n\t// func PropertyNotAllowed(name, in, key string) *Validation {\n\terr = PropertyNotAllowed(\"path\", \"body\", \"key\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, UnallowedPropertyCode, err.Code())\n\t//unallowedProperty         = \"%s.%s in %s is a forbidden property\"\n\tassert.Equal(t, \"path.key in body is a forbidden property\", err.Error())\n\n\terr = PropertyNotAllowed(\"path\", \"\", \"key\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, UnallowedPropertyCode, err.Code())\n\t//unallowedPropertyNoIn     = \"%s.%s is a forbidden property\"\n\tassert.Equal(t, \"path.key is a forbidden property\", err.Error())\n\n\t//func TooManyProperties(name, in string, n， size int64) *Validation {\n\terr = TooManyProperties(\"path\", \"body\", 10, 20)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, TooManyPropertiesCode, err.Code())\n\t//tooManyProperties         = \"%s in %s should have at most %d properties\"\n\tassert.Equal(t, \"path in body should have at most 10 properties\", err.Error())\n\n\terr = TooManyProperties(\"path\", \"\", 10, 20)\n\tassert.Error(t, err)\n\tassert.EqualValues(t, TooManyPropertiesCode, err.Code())\n\t//tooManyPropertiesNoIn     = \"%s should have at most %d properties\"\n\tassert.Equal(t, \"path should have at most 10 properties\", err.Error())\n\n\terr = TooFewProperties(\"path\", \"body\", 10, 1)\n\t// func TooFewProperties(name, in string, n int64) *Validation {\n\tassert.Error(t, err)\n\tassert.EqualValues(t, TooFewPropertiesCode, err.Code())\n\t//tooFewProperties          = \"%s in %s should have at least %d properties\"\n\tassert.Equal(t, \"path in body should have at least 10 properties\", err.Error())\n\n\terr = TooFewProperties(\"path\", \"\", 10, 1)\n\t// func TooFewProperties(name, in string, n int64) *Validation {\n\tassert.Error(t, err)\n\tassert.EqualValues(t, TooFewPropertiesCode, err.Code())\n\t//tooFewPropertiesNoIn      = \"%s should have at least %d properties\"\n\tassert.Equal(t, \"path should have at least 10 properties\", err.Error())\n\n\t//func FailedAllPatternProperties(name, in, key string) *Validation {\n\terr = FailedAllPatternProperties(\"path\", \"body\", \"key\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, FailedAllPatternPropsCode, err.Code())\n\t//failedAllPatternProps     = \"%s.%s in %s failed all pattern properties\"\n\tassert.Equal(t, \"path.key in body failed all pattern properties\", err.Error())\n\n\terr = FailedAllPatternProperties(\"path\", \"\", \"key\")\n\tassert.Error(t, err)\n\tassert.EqualValues(t, FailedAllPatternPropsCode, err.Code())\n\t//failedAllPatternPropsNoIn = \"%s.%s failed all pattern properties\"\n\tassert.Equal(t, \"path.key failed all pattern properties\", err.Error())\n}\n"
  },
  {
    "path": "pkg/validation/spec/.github/CONTRIBUTING.md",
    "content": "## Contribution Guidelines\n\n### Pull requests are always welcome\n\nWe are always thrilled to receive pull requests, and do our best to\nprocess them as fast as possible. Not sure if that typo is worth a pull\nrequest? Do it! We will appreciate it.\n\nIf your pull request is not accepted on the first try, don't be\ndiscouraged! If there's a problem with the implementation, hopefully you\nreceived feedback on what to improve.\n\nWe're trying very hard to keep go-swagger lean and focused. We don't want it\nto do everything for everybody. This means that we might decide against\nincorporating a new feature. However, there might be a way to implement\nthat feature *on top of* go-swagger.\n\n\n### Conventions\n\nFork the repo and make changes on your fork in a feature branch:\n\n- If it's a bugfix branch, name it XXX-something where XXX is the number of the\n  issue\n- If it's a feature branch, create an enhancement issue to announce your\n  intentions, and name it XXX-something where XXX is the number of the issue.\n\nSubmit unit tests for your changes.  Go has a great test framework built in; use\nit! Take a look at existing tests for inspiration. Run the full test suite on\nyour branch before submitting a pull request.\n\nUpdate the documentation when creating or modifying features. Test\nyour documentation changes for clarity, concision, and correctness, as\nwell as a clean documentation build. See ``docs/README.md`` for more\ninformation on building the docs and how docs get released.\n\nWrite clean code. Universally formatted code promotes ease of writing, reading,\nand maintenance. Always run `gofmt -s -w file.go` on each changed file before\ncommitting your changes. Most editors have plugins that do this automatically.\n\nPull requests descriptions should be as clear as possible and include a\nreference to all the issues that they address.\n\nPull requests must not contain commits from other users or branches.\n\nCommit messages must start with a capitalized and short summary (max. 50\nchars) written in the imperative, followed by an optional, more detailed\nexplanatory text which is separated from the summary by an empty line.\n\nCode review comments may be added to your pull request. Discuss, then make the\nsuggested modifications and push additional commits to your feature branch. Be\nsure to post a comment after pushing. The new commits will show up in the pull\nrequest automatically, but the reviewers will not be notified unless you\ncomment.\n\nBefore the pull request is merged, make sure that you squash your commits into\nlogical units of work using `git rebase -i` and `git push -f`. After every\ncommit the test suite should be passing. Include documentation changes in the\nsame commit so that a revert would remove all traces of the feature or fix.\n\nCommits that fix or close an issue should include a reference like `Closes #XXX`\nor `Fixes #XXX`, which will automatically close the issue when merged.\n\n### Sign your work\n\nThe sign-off is a simple line at the end of the explanation for the\npatch, which certifies that you wrote it or otherwise have the right to\npass it on as an open-source patch.  The rules are pretty simple: if you\ncan certify the below (from\n[developercertificate.org](http://developercertificate.org/)):\n\n```\nDeveloper Certificate of Origin\nVersion 1.1\n\nCopyright (C) 2004, 2006 The Linux Foundation and its contributors.\n660 York Street, Suite 102,\nSan Francisco, CA 94110 USA\n\nEveryone is permitted to copy and distribute verbatim copies of this\nlicense document, but changing it is not allowed.\n\n\nDeveloper's Certificate of Origin 1.1\n\nBy making a contribution to this project, I certify that:\n\n(a) The contribution was created in whole or in part by me and I\n    have the right to submit it under the open source license\n    indicated in the file; or\n\n(b) The contribution is based upon previous work that, to the best\n    of my knowledge, is covered under an appropriate open source\n    license and I have the right under that license to submit that\n    work with modifications, whether created in whole or in part\n    by me, under the same open source license (unless I am\n    permitted to submit under a different license), as indicated\n    in the file; or\n\n(c) The contribution was provided directly to me by some other\n    person who certified (a), (b) or (c) and I have not modified\n    it.\n\n(d) I understand and agree that this project and the contribution\n    are public and that a record of the contribution (including all\n    personal information I submit with it, including my sign-off) is\n    maintained indefinitely and may be redistributed consistent with\n    this project or the open source license(s) involved.\n```\n\nthen you just add a line to every git commit message:\n\n    Signed-off-by: Joe Smith <joe@gmail.com>\n\nusing your real name (sorry, no pseudonyms or anonymous contributions.)\n\nYou can add the sign off when creating the git commit via `git commit -s`.\n"
  },
  {
    "path": "pkg/validation/spec/.gitignore",
    "content": "secrets.yml\ncoverage.out\n"
  },
  {
    "path": "pkg/validation/spec/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "pkg/validation/spec/contact_info.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// ContactInfo contact information for the exposed API.\n//\n// For more information: http://goo.gl/8us55a#contactObject\ntype ContactInfo struct {\n\tName  string `json:\"name,omitempty\"`\n\tURL   string `json:\"url,omitempty\"`\n\tEmail string `json:\"email,omitempty\"`\n}\n"
  },
  {
    "path": "pkg/validation/spec/contact_info_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"testing\"\n)\n\nconst contactInfoJSON = `{\"name\":\"wordnik api team\",\"url\":\"http://developer.wordnik.com\",\"email\":\"some@mailayada.dkdkd\"}`\nconst contactInfoYAML = `name: wordnik api team\nurl: http://developer.wordnik.com\nemail: some@mailayada.dkdkd\n`\n\nvar contactInfo = ContactInfo{\n\tName:  \"wordnik api team\",\n\tURL:   \"http://developer.wordnik.com\",\n\tEmail: \"some@mailayada.dkdkd\",\n}\n\nfunc TestIntegrationContactInfo(t *testing.T) {\n\tassertSerializeJSON(t, contactInfo, contactInfoJSON)\n\tassertParsesJSON(t, contactInfoJSON, contactInfo)\n}\n"
  },
  {
    "path": "pkg/validation/spec/external_docs.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// ExternalDocumentation allows referencing an external resource for\n// extended documentation.\n//\n// For more information: http://goo.gl/8us55a#externalDocumentationObject\ntype ExternalDocumentation struct {\n\tDescription string `json:\"description,omitempty\"`\n\tURL         string `json:\"url,omitempty\"`\n}\n"
  },
  {
    "path": "pkg/validation/spec/external_docs_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"testing\"\n)\n\nfunc TestIntegrationExternalDocs(t *testing.T) {\n\tvar extDocs = ExternalDocumentation{Description: \"the name\", URL: \"the url\"}\n\tconst extDocsJSON = `{\"description\":\"the name\",\"url\":\"the url\"}`\n\tassertSerializeJSON(t, extDocs, extDocsJSON)\n\tassertParsesJSON(t, extDocsJSON, extDocs)\n}\n"
  },
  {
    "path": "pkg/validation/spec/fuzz_test.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n\thttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec\n\nimport (\n\t\"github.com/go-openapi/jsonreference\"\n\t\"github.com/google/go-cmp/cmp\"\n\t\"sigs.k8s.io/randfill\"\n)\n\nvar SwaggerFuzzFuncs []interface{} = []interface{}{\n\tfunc(v *Responses, c randfill.Continue) {\n\t\tc.FillNoCustom(v)\n\t\tif v.Default != nil {\n\t\t\t// Check if we hit maxDepth and left an incomplete value\n\t\t\tif v.Default.Description == \"\" {\n\t\t\t\tv.Default = nil\n\t\t\t\tv.StatusCodeResponses = nil\n\t\t\t}\n\t\t}\n\n\t\t// conversion has no way to discern empty statusCodeResponses from\n\t\t// nil, since \"default\" is always included in the map.\n\t\t// So avoid empty responses list\n\t\tif len(v.StatusCodeResponses) == 0 {\n\t\t\tv.StatusCodeResponses = nil\n\t\t}\n\t},\n\tfunc(v *Operation, c randfill.Continue) {\n\t\tc.FillNoCustom(v)\n\n\t\tif v != nil {\n\t\t\t// force non-nil\n\t\t\tv.Responses = &Responses{}\n\t\t\tc.Fill(v.Responses)\n\n\t\t\tv.Schemes = nil\n\t\t\tif c.Bool() {\n\t\t\t\tv.Schemes = append(v.Schemes, \"http\")\n\t\t\t}\n\n\t\t\tif c.Bool() {\n\t\t\t\tv.Schemes = append(v.Schemes, \"https\")\n\t\t\t}\n\n\t\t\tif c.Bool() {\n\t\t\t\tv.Schemes = append(v.Schemes, \"ws\")\n\t\t\t}\n\n\t\t\tif c.Bool() {\n\t\t\t\tv.Schemes = append(v.Schemes, \"wss\")\n\t\t\t}\n\n\t\t\t// Gnostic unconditionally makes security values non-null\n\t\t\t// So do not fuzz null values into the array.\n\t\t\tfor i, val := range v.Security {\n\t\t\t\tif val == nil {\n\t\t\t\t\tv.Security[i] = make(map[string][]string)\n\t\t\t\t}\n\n\t\t\t\tfor k, v := range val {\n\t\t\t\t\tif v == nil {\n\t\t\t\t\t\tval[k] = make([]string, 0)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v map[int]Response, c randfill.Continue) {\n\t\tn := 0\n\t\tc.Fill(&n)\n\t\tif n == 0 {\n\t\t\t// Test that fuzzer is not at maxDepth so we do not\n\t\t\t// end up with empty elements\n\t\t\treturn\n\t\t}\n\n\t\t// Prevent negative numbers\n\t\tnum := c.Intn(4)\n\t\tfor i := 0; i < num+2; i++ {\n\t\t\tval := Response{}\n\t\t\tc.Fill(&val)\n\n\t\t\tval.Description = c.String(0) + \"x\"\n\t\t\tv[100*(i+1)+c.Intn(100)] = val\n\t\t}\n\t},\n\tfunc(v map[string]PathItem, c randfill.Continue) {\n\t\tn := 0\n\t\tc.Fill(&n)\n\t\tif n == 0 {\n\t\t\t// Test that fuzzer is not at maxDepth so we do not\n\t\t\t// end up with empty elements\n\t\t\treturn\n\t\t}\n\n\t\tnum := c.Intn(5)\n\t\tfor i := 0; i < num+2; i++ {\n\t\t\tval := PathItem{}\n\t\t\tc.Fill(&val)\n\n\t\t\t// Ref params are only allowed in certain locations, so\n\t\t\t// possibly add a few to PathItems\n\t\t\tnumRefsToAdd := c.Intn(5)\n\t\t\tfor i := 0; i < numRefsToAdd; i++ {\n\t\t\t\ttheRef := Parameter{}\n\t\t\t\tc.Fill(&theRef.Refable)\n\n\t\t\t\tval.Parameters = append(val.Parameters, theRef)\n\t\t\t}\n\n\t\t\tv[\"/\"+c.String(0)] = val\n\t\t}\n\t},\n\tfunc(v *SchemaOrArray, c randfill.Continue) {\n\t\t*v = SchemaOrArray{}\n\t\t// gnostic parser just doesn't support more\n\t\t// than one Schema here\n\t\tv.Schema = &Schema{}\n\t\tc.Fill(&v.Schema)\n\n\t},\n\tfunc(v *SchemaOrBool, c randfill.Continue) {\n\t\t*v = SchemaOrBool{}\n\n\t\tif c.Bool() {\n\t\t\tv.Allows = c.Bool()\n\t\t} else {\n\t\t\tv.Schema = &Schema{}\n\t\t\tv.Allows = true\n\t\t\tc.Fill(&v.Schema)\n\t\t}\n\t},\n\tfunc(v map[string]Response, c randfill.Continue) {\n\t\tn := 0\n\t\tc.Fill(&n)\n\t\tif n == 0 {\n\t\t\t// Test that fuzzer is not at maxDepth so we do not\n\t\t\t// end up with empty elements\n\t\t\treturn\n\t\t}\n\n\t\t// Response definitions are not allowed to\n\t\t// be refs\n\t\tfor i := 0; i < c.Intn(5)+1; i++ {\n\t\t\tresp := &Response{}\n\n\t\t\tc.Fill(resp)\n\t\t\tresp.Ref = Ref{}\n\t\t\tresp.Description = c.String(0) + \"x\"\n\n\t\t\t// Response refs are not vendor extensible by gnostic\n\t\t\tresp.VendorExtensible.Extensions = nil\n\t\t\tv[c.String(0)+\"x\"] = *resp\n\t\t}\n\t},\n\tfunc(v *Header, c randfill.Continue) {\n\t\tif v != nil {\n\t\t\tc.FillNoCustom(v)\n\n\t\t\t// descendant Items of Header may not be refs\n\t\t\tcur := v.Items\n\t\t\tfor cur != nil {\n\t\t\t\tcur.Ref = Ref{}\n\t\t\t\tcur = cur.Items\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v *Ref, c randfill.Continue) {\n\t\t*v = Ref{}\n\t\tv.Ref, _ = jsonreference.New(\"http://asd.com/\" + c.String(0))\n\t},\n\tfunc(v *Response, c randfill.Continue) {\n\t\t*v = Response{}\n\t\tif c.Bool() {\n\t\t\tv.Ref = Ref{}\n\t\t\tv.Ref.Ref, _ = jsonreference.New(\"http://asd.com/\" + c.String(0))\n\t\t} else {\n\t\t\tc.Fill(&v.VendorExtensible)\n\t\t\tc.Fill(&v.Schema)\n\t\t\tc.Fill(&v.ResponseProps)\n\n\t\t\tv.Headers = nil\n\t\t\tv.Ref = Ref{}\n\n\t\t\tn := 0\n\t\t\tc.Fill(&n)\n\t\t\tif n != 0 {\n\t\t\t\t// Test that fuzzer is not at maxDepth so we do not\n\t\t\t\t// end up with empty elements\n\t\t\t\tnum := c.Intn(4)\n\t\t\t\tfor i := 0; i < num; i++ {\n\t\t\t\t\tif v.Headers == nil {\n\t\t\t\t\t\tv.Headers = make(map[string]Header)\n\t\t\t\t\t}\n\t\t\t\t\thdr := Header{}\n\t\t\t\t\tc.Fill(&hdr)\n\t\t\t\t\tif hdr.Type == \"\" {\n\t\t\t\t\t\t// hit maxDepth, just abort trying to make haders\n\t\t\t\t\t\tv.Headers = nil\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tv.Headers[c.String(0)+\"x\"] = hdr\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tv.Headers = nil\n\t\t\t}\n\t\t}\n\n\t\tv.Description = c.String(0) + \"x\"\n\n\t\t// Gnostic parses empty as nil, so to keep avoid putting empty\n\t\tif len(v.Headers) == 0 {\n\t\t\tv.Headers = nil\n\t\t}\n\t},\n\tfunc(v **Info, c randfill.Continue) {\n\t\t// Info is never nil\n\t\t*v = &Info{}\n\t\tc.FillNoCustom(*v)\n\n\t\t(*v).Title = c.String(0) + \"x\"\n\t},\n\tfunc(v *Extensions, c randfill.Continue) {\n\t\t// gnostic parser only picks up x- vendor extensions\n\t\tnumChildren := c.Intn(5)\n\t\tfor i := 0; i < numChildren; i++ {\n\t\t\tif *v == nil {\n\t\t\t\t*v = Extensions{}\n\t\t\t}\n\t\t\t(*v)[\"x-\"+c.String(0)] = c.String(0)\n\t\t}\n\t},\n\tfunc(v *Swagger, c randfill.Continue) {\n\t\tc.FillNoCustom(v)\n\n\t\tif v.Paths == nil {\n\t\t\t// Force paths non-nil since it does not have omitempty in json tag.\n\t\t\t// This means a perfect roundtrip (via json) is impossible,\n\t\t\t// since we can't tell the difference between empty/unspecified paths\n\t\t\tv.Paths = &Paths{}\n\t\t\tc.Fill(v.Paths)\n\t\t}\n\n\t\tv.Swagger = \"2.0\"\n\n\t\t// Gnostic support serializing ID at all\n\t\t// unavoidable data loss\n\t\tv.ID = \"\"\n\n\t\tv.Schemes = nil\n\t\tif c.Uint64()%2 == 1 {\n\t\t\tv.Schemes = append(v.Schemes, \"http\")\n\t\t}\n\n\t\tif c.Uint64()%2 == 1 {\n\t\t\tv.Schemes = append(v.Schemes, \"https\")\n\t\t}\n\n\t\tif c.Uint64()%2 == 1 {\n\t\t\tv.Schemes = append(v.Schemes, \"ws\")\n\t\t}\n\n\t\tif c.Uint64()%2 == 1 {\n\t\t\tv.Schemes = append(v.Schemes, \"wss\")\n\t\t}\n\n\t\t// Gnostic unconditionally makes security values non-null\n\t\t// So do not fuzz null values into the array.\n\t\tfor i, val := range v.Security {\n\t\t\tif val == nil {\n\t\t\t\tv.Security[i] = make(map[string][]string)\n\t\t\t}\n\n\t\t\tfor k, v := range val {\n\t\t\t\tif v == nil {\n\t\t\t\t\tval[k] = make([]string, 0)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v *SecurityScheme, c randfill.Continue) {\n\t\tv.Description = c.String(0) + \"x\"\n\t\tc.Fill(&v.VendorExtensible)\n\n\t\tswitch c.Intn(3) {\n\t\tcase 0:\n\t\t\tv.Type = \"basic\"\n\t\tcase 1:\n\t\t\tv.Type = \"apiKey\"\n\t\t\tswitch c.Intn(2) {\n\t\t\tcase 0:\n\t\t\t\tv.In = \"header\"\n\t\t\tcase 1:\n\t\t\t\tv.In = \"query\"\n\t\t\tdefault:\n\t\t\t\tpanic(\"unreachable\")\n\t\t\t}\n\t\t\tv.Name = \"x\" + c.String(0)\n\t\tcase 2:\n\t\t\tv.Type = \"oauth2\"\n\n\t\t\tswitch c.Intn(4) {\n\t\t\tcase 0:\n\t\t\t\tv.Flow = \"accessCode\"\n\t\t\t\tv.TokenURL = \"https://\" + c.String(0)\n\t\t\t\tv.AuthorizationURL = \"https://\" + c.String(0)\n\t\t\tcase 1:\n\t\t\t\tv.Flow = \"application\"\n\t\t\t\tv.TokenURL = \"https://\" + c.String(0)\n\t\t\tcase 2:\n\t\t\t\tv.Flow = \"implicit\"\n\t\t\t\tv.AuthorizationURL = \"https://\" + c.String(0)\n\t\t\tcase 3:\n\t\t\t\tv.Flow = \"password\"\n\t\t\t\tv.TokenURL = \"https://\" + c.String(0)\n\t\t\tdefault:\n\t\t\t\tpanic(\"unreachable\")\n\t\t\t}\n\t\t\tc.Fill(&v.Scopes)\n\t\tdefault:\n\t\t\tpanic(\"unreachable\")\n\t\t}\n\t},\n\tfunc(v *interface{}, c randfill.Continue) {\n\t\t*v = c.String(0) + \"x\"\n\t},\n\tfunc(v *string, c randfill.Continue) {\n\t\t*v = c.String(0) + \"x\"\n\t},\n\tfunc(v *ExternalDocumentation, c randfill.Continue) {\n\t\tv.Description = c.String(0) + \"x\"\n\t\tv.URL = c.String(0) + \"x\"\n\t},\n\tfunc(v *SimpleSchema, c randfill.Continue) {\n\t\tc.FillNoCustom(v)\n\n\t\tswitch c.Intn(5) {\n\t\tcase 0:\n\t\t\tv.Type = \"string\"\n\t\tcase 1:\n\t\t\tv.Type = \"number\"\n\t\tcase 2:\n\t\t\tv.Type = \"boolean\"\n\t\tcase 3:\n\t\t\tv.Type = \"integer\"\n\t\tcase 4:\n\t\t\tv.Type = \"array\"\n\t\tdefault:\n\t\t\tpanic(\"unreachable\")\n\t\t}\n\n\t\tswitch c.Intn(5) {\n\t\tcase 0:\n\t\t\tv.CollectionFormat = \"csv\"\n\t\tcase 1:\n\t\t\tv.CollectionFormat = \"ssv\"\n\t\tcase 2:\n\t\t\tv.CollectionFormat = \"tsv\"\n\t\tcase 3:\n\t\t\tv.CollectionFormat = \"pipes\"\n\t\tcase 4:\n\t\t\tv.CollectionFormat = \"\"\n\t\tdefault:\n\t\t\tpanic(\"unreachable\")\n\t\t}\n\n\t\t// None of the types which include SimpleSchema in our definitions\n\t\t// actually support \"example\" in the official spec\n\t\tv.Example = nil\n\n\t\t// unsupported by openapi\n\t\tv.Nullable = false\n\t},\n\tfunc(v *int64, c randfill.Continue) {\n\t\tc.Fill(v)\n\n\t\t// Gnostic does not differentiate between 0 and non-specified\n\t\t// so avoid using 0 for fuzzer\n\t\tif *v == 0 {\n\t\t\t*v = 1\n\t\t}\n\t},\n\tfunc(v *float64, c randfill.Continue) {\n\t\tc.Fill(v)\n\n\t\t// Gnostic does not differentiate between 0 and non-specified\n\t\t// so avoid using 0 for fuzzer\n\t\tif *v == 0.0 {\n\t\t\t*v = 1.0\n\t\t}\n\t},\n\tfunc(v *Parameter, c randfill.Continue) {\n\t\tif v == nil {\n\t\t\treturn\n\t\t}\n\t\tc.Fill(&v.VendorExtensible)\n\t\tif c.Bool() {\n\t\t\t// body param\n\t\t\tv.Description = c.String(0) + \"x\"\n\t\t\tv.Name = c.String(0) + \"x\"\n\t\t\tv.In = \"body\"\n\t\t\tc.Fill(&v.Description)\n\t\t\tc.Fill(&v.Required)\n\n\t\t\tv.Schema = &Schema{}\n\t\t\tc.Fill(&v.Schema)\n\n\t\t} else {\n\t\t\tc.Fill(&v.SimpleSchema)\n\t\t\tc.Fill(&v.CommonValidations)\n\t\t\tv.AllowEmptyValue = false\n\t\t\tv.Description = c.String(0) + \"x\"\n\t\t\tv.Name = c.String(0) + \"x\"\n\n\t\t\tswitch c.Intn(4) {\n\t\t\tcase 0:\n\t\t\t\t// Header param\n\t\t\t\tv.In = \"header\"\n\t\t\tcase 1:\n\t\t\t\t// Form data param\n\t\t\t\tv.In = \"formData\"\n\t\t\t\tv.AllowEmptyValue = c.Bool()\n\t\t\tcase 2:\n\t\t\t\t// Query param\n\t\t\t\tv.In = \"query\"\n\t\t\t\tv.AllowEmptyValue = c.Bool()\n\t\t\tcase 3:\n\t\t\t\t// Path param\n\t\t\t\tv.In = \"path\"\n\t\t\t\tv.Required = true\n\t\t\tdefault:\n\t\t\t\tpanic(\"unreachable\")\n\t\t\t}\n\n\t\t\t// descendant Items of Parameter may not be refs\n\t\t\tcur := v.Items\n\t\t\tfor cur != nil {\n\t\t\t\tcur.Ref = Ref{}\n\t\t\t\tcur = cur.Items\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v *Schema, c randfill.Continue) {\n\t\tif c.Bool() {\n\t\t\t// file schema\n\t\t\tc.Fill(&v.Default)\n\t\t\tc.Fill(&v.Description)\n\t\t\tc.Fill(&v.Example)\n\t\t\tc.Fill(&v.ExternalDocs)\n\n\t\t\tc.Fill(&v.Format)\n\t\t\tc.Fill(&v.ReadOnly)\n\t\t\tc.Fill(&v.Required)\n\t\t\tc.Fill(&v.Title)\n\t\t\tv.Type = StringOrArray{\"file\"}\n\n\t\t} else {\n\t\t\t// normal schema\n\t\t\tc.Fill(&v.SchemaProps)\n\t\t\tc.Fill(&v.SwaggerSchemaProps)\n\t\t\tc.Fill(&v.VendorExtensible)\n\t\t\t// c.Fill(&v.ExtraProps)\n\t\t\t// ExtraProps will not roundtrip - gnostic throws out\n\t\t\t// unrecognized keys\n\t\t}\n\n\t\t// Not supported by official openapi v2 spec\n\t\t// and stripped by k8s apiserver\n\t\tv.ID = \"\"\n\t\tv.AnyOf = nil\n\t\tv.OneOf = nil\n\t\tv.Not = nil\n\t\tv.Nullable = false\n\t\tv.AdditionalItems = nil\n\t\tv.Schema = \"\"\n\t\tv.PatternProperties = nil\n\t\tv.Definitions = nil\n\t\tv.Dependencies = nil\n\t},\n}\n\nvar SwaggerDiffOptions = []cmp.Option{\n\t// cmp.Diff panics on Ref since jsonreference.Ref uses unexported fields\n\tcmp.Comparer(func(a Ref, b Ref) bool {\n\t\treturn a.String() == b.String()\n\t}),\n}\n"
  },
  {
    "path": "pkg/validation/spec/gnostic.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\n\t\"github.com/go-openapi/jsonreference\"\n\topenapi_v2 \"github.com/google/gnostic-models/openapiv2\"\n)\n\n// Interfaces\ntype GnosticCommonValidations interface {\n\tGetMaximum() float64\n\tGetExclusiveMaximum() bool\n\tGetMinimum() float64\n\tGetExclusiveMinimum() bool\n\tGetMaxLength() int64\n\tGetMinLength() int64\n\tGetPattern() string\n\tGetMaxItems() int64\n\tGetMinItems() int64\n\tGetUniqueItems() bool\n\tGetMultipleOf() float64\n\tGetEnum() []*openapi_v2.Any\n}\n\nfunc (k *CommonValidations) FromGnostic(g GnosticCommonValidations) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tmax := g.GetMaximum()\n\tif max != 0 {\n\t\tk.Maximum = &max\n\t}\n\n\tk.ExclusiveMaximum = g.GetExclusiveMaximum()\n\n\tmin := g.GetMinimum()\n\tif min != 0 {\n\t\tk.Minimum = &min\n\t}\n\n\tk.ExclusiveMinimum = g.GetExclusiveMinimum()\n\n\tmaxLen := g.GetMaxLength()\n\tif maxLen != 0 {\n\t\tk.MaxLength = &maxLen\n\t}\n\n\tminLen := g.GetMinLength()\n\tif minLen != 0 {\n\t\tk.MinLength = &minLen\n\t}\n\n\tk.Pattern = g.GetPattern()\n\n\tmaxItems := g.GetMaxItems()\n\tif maxItems != 0 {\n\t\tk.MaxItems = &maxItems\n\t}\n\n\tminItems := g.GetMinItems()\n\tif minItems != 0 {\n\t\tk.MinItems = &minItems\n\t}\n\n\tk.UniqueItems = g.GetUniqueItems()\n\n\tmultOf := g.GetMultipleOf()\n\tif multOf != 0 {\n\t\tk.MultipleOf = &multOf\n\t}\n\n\tenums := g.GetEnum()\n\n\tif enums != nil {\n\t\tk.Enum = make([]interface{}, len(enums))\n\t\tfor i, v := range enums {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tvar convert interface{}\n\t\t\tif err := v.ToRawInfo().Decode(&convert); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\tk.Enum[i] = convert\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\ntype GnosticSimpleSchema interface {\n\tGetType() string\n\tGetFormat() string\n\tGetItems() *openapi_v2.PrimitivesItems\n\tGetCollectionFormat() string\n\tGetDefault() *openapi_v2.Any\n}\n\nfunc (k *SimpleSchema) FromGnostic(g GnosticSimpleSchema) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tk.Type = g.GetType()\n\tk.Format = g.GetFormat()\n\tk.CollectionFormat = g.GetCollectionFormat()\n\n\titems := g.GetItems()\n\tif items != nil {\n\t\tk.Items = &Items{}\n\t\tif err := k.Items.FromGnostic(items); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tdef := g.GetDefault()\n\tif def != nil {\n\t\tvar convert interface{}\n\t\tif err := def.ToRawInfo().Decode(&convert); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\tk.Default = convert\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (k *Items) FromGnostic(g *openapi_v2.PrimitivesItems) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tif err := k.SimpleSchema.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.CommonValidations.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (k *VendorExtensible) FromGnostic(g []*openapi_v2.NamedAny) error {\n\tif len(g) == 0 {\n\t\treturn nil\n\t}\n\n\tk.Extensions = make(Extensions, len(g))\n\tfor _, v := range g {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif v.Value == nil {\n\t\t\tk.Extensions[v.Name] = nil\n\t\t\tcontinue\n\t\t}\n\n\t\tvar iface interface{}\n\t\tif err := v.Value.ToRawInfo().Decode(&iface); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\tk.Extensions[v.Name] = iface\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (k *Refable) FromGnostic(g string) error {\n\treturn k.Ref.FromGnostic(g)\n}\n\nfunc (k *Ref) FromGnostic(g string) error {\n\tif g == \"\" {\n\t\treturn nil\n\t}\n\n\tref, err := jsonreference.New(g)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*k = Ref{\n\t\tRef: ref,\n\t}\n\n\treturn nil\n}\n\n// Converts a gnostic v2 Document to a kube-openapi Swagger Document\n//\n// Caveats:\n//\n// - gnostic v2 documents treats zero as unspecified for numerical fields of\n// CommonValidations fields such as Maximum, Minimum, MaximumItems, etc.\n// There will always be data loss if one of the values of these fields is set to zero.\n//\n// Returns:\n//\n// - `ok`: `false` if a value was present in the gnostic document which cannot be\n// roundtripped into kube-openapi types. In these instances, `ok` is set to\n// `false` and the value is skipped.\n//\n// - `err`: an unexpected error occurred in the conversion from the gnostic type\n// to kube-openapi type.\nfunc (k *Swagger) FromGnostic(g *openapi_v2.Document) (ok bool, err error) {\n\tok = true\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.SwaggerProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *SwaggerProps) FromGnostic(g *openapi_v2.Document) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\t// openapi_v2.Document does not support \"ID\" field, so it will not be\n\t// included\n\tk.Consumes = g.Consumes\n\tk.Produces = g.Produces\n\tk.Schemes = g.Schemes\n\tk.Swagger = g.Swagger\n\n\tif g.Info != nil {\n\t\tk.Info = &Info{}\n\t\tif nok, err := k.Info.FromGnostic(g.Info); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tk.Host = g.Host\n\tk.BasePath = g.BasePath\n\n\tif g.Paths != nil {\n\t\tk.Paths = &Paths{}\n\t\tif nok, err := k.Paths.FromGnostic(g.Paths); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Definitions != nil {\n\t\tk.Definitions = make(Definitions, len(g.Definitions.AdditionalProperties))\n\t\tfor _, v := range g.Definitions.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconverted := Schema{}\n\t\t\tif nok, err := converted.FromGnostic(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t\tk.Definitions[v.Name] = converted\n\n\t\t}\n\t}\n\n\tif g.Parameters != nil {\n\t\tk.Parameters = make(\n\t\t\tmap[string]Parameter,\n\t\t\tlen(g.Parameters.AdditionalProperties))\n\t\tfor _, v := range g.Parameters.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tp := Parameter{}\n\t\t\tif nok, err := p.FromGnostic(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tk.Parameters[v.Name] = p\n\t\t}\n\t}\n\n\tif g.Responses != nil {\n\t\tk.Responses = make(\n\t\t\tmap[string]Response,\n\t\t\tlen(g.Responses.AdditionalProperties))\n\n\t\tfor _, v := range g.Responses.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tp := Response{}\n\t\t\tif nok, err := p.FromGnostic(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tk.Responses[v.Name] = p\n\t\t}\n\t}\n\n\tif g.SecurityDefinitions != nil {\n\t\tk.SecurityDefinitions = make(SecurityDefinitions)\n\t\tif err := k.SecurityDefinitions.FromGnostic(g.SecurityDefinitions); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t}\n\n\tif g.Security != nil {\n\t\tk.Security = make([]map[string][]string, len(g.Security))\n\t\tfor i, v := range g.Security {\n\t\t\tif v == nil || v.AdditionalProperties == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tk.Security[i] = make(map[string][]string, len(v.AdditionalProperties))\n\t\t\tconverted := k.Security[i]\n\t\t\tfor _, p := range v.AdditionalProperties {\n\t\t\t\tif p == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif p.Value != nil {\n\t\t\t\t\tconverted[p.Name] = p.Value.Value\n\t\t\t\t} else {\n\t\t\t\t\tconverted[p.Name] = nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif g.Tags != nil {\n\t\tk.Tags = make([]Tag, len(g.Tags))\n\t\tfor i, v := range g.Tags {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t} else if nok, err := k.Tags[i].FromGnostic(v); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\tif g.ExternalDocs != nil {\n\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\tif nok, err := k.ExternalDocs.FromGnostic(g.ExternalDocs); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// Info\n\nfunc (k *Info) FromGnostic(g *openapi_v2.Info) (ok bool, err error) {\n\tok = true\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.InfoProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *InfoProps) FromGnostic(g *openapi_v2.Info) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tk.Description = g.Description\n\tk.Title = g.Title\n\tk.TermsOfService = g.TermsOfService\n\n\tif g.Contact != nil {\n\t\tk.Contact = &ContactInfo{}\n\n\t\tif nok, err := k.Contact.FromGnostic(g.Contact); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.License != nil {\n\t\tk.License = &License{}\n\t\tif nok, err := k.License.FromGnostic(g.License); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tk.Version = g.Version\n\treturn ok, nil\n}\n\nfunc (k *License) FromGnostic(g *openapi_v2.License) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tk.Name = g.Name\n\tk.URL = g.Url\n\n\t// License does not embed to VendorExtensible!\n\t// data loss from g.VendorExtension\n\tif len(g.VendorExtension) != 0 {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *ContactInfo) FromGnostic(g *openapi_v2.Contact) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tk.Name = g.Name\n\tk.URL = g.Url\n\tk.Email = g.Email\n\n\t// ContactInfo does not embed to VendorExtensible!\n\t// data loss from g.VendorExtension\n\tif len(g.VendorExtension) != 0 {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\n// Paths\n\nfunc (k *Paths) FromGnostic(g *openapi_v2.Paths) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tif g.Path != nil {\n\t\tk.Paths = make(map[string]PathItem, len(g.Path))\n\t\tfor _, v := range g.Path {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconverted := PathItem{}\n\t\t\tif nok, err := converted.FromGnostic(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tk.Paths[v.Name] = converted\n\t\t}\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\treturn ok, nil\n}\n\nfunc (k *PathItem) FromGnostic(g *openapi_v2.PathItem) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\n\tif nok, err := k.PathItemProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\tif err := k.Refable.FromGnostic(g.XRef); err != nil {\n\t\treturn false, err\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\treturn ok, nil\n}\n\nfunc (k *PathItemProps) FromGnostic(g *openapi_v2.PathItem) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tif g.Get != nil {\n\t\tk.Get = &Operation{}\n\t\tif nok, err := k.Get.FromGnostic(g.Get); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Put != nil {\n\t\tk.Put = &Operation{}\n\t\tif nok, err := k.Put.FromGnostic(g.Put); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Post != nil {\n\t\tk.Post = &Operation{}\n\t\tif nok, err := k.Post.FromGnostic(g.Post); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Delete != nil {\n\t\tk.Delete = &Operation{}\n\t\tif nok, err := k.Delete.FromGnostic(g.Delete); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Options != nil {\n\t\tk.Options = &Operation{}\n\t\tif nok, err := k.Options.FromGnostic(g.Options); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Head != nil {\n\t\tk.Head = &Operation{}\n\t\tif nok, err := k.Head.FromGnostic(g.Head); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Patch != nil {\n\t\tk.Patch = &Operation{}\n\t\tif nok, err := k.Patch.FromGnostic(g.Patch); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Parameters != nil {\n\t\tk.Parameters = make([]Parameter, len(g.Parameters))\n\t\tfor i, v := range g.Parameters {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t} else if nok, err := k.Parameters[i].FromGnosticParametersItem(v); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *Operation) FromGnostic(g *openapi_v2.Operation) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.OperationProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *OperationProps) FromGnostic(g *openapi_v2.Operation) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tk.Description = g.Description\n\tk.Consumes = g.Consumes\n\tk.Produces = g.Produces\n\tk.Schemes = g.Schemes\n\tk.Tags = g.Tags\n\tk.Summary = g.Summary\n\n\tif g.ExternalDocs != nil {\n\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\tif nok, err := k.ExternalDocs.FromGnostic(g.ExternalDocs); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tk.ID = g.OperationId\n\tk.Deprecated = g.Deprecated\n\n\tif g.Security != nil {\n\t\tk.Security = make([]map[string][]string, len(g.Security))\n\t\tfor i, v := range g.Security {\n\t\t\tif v == nil || v.AdditionalProperties == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tk.Security[i] = make(map[string][]string, len(v.AdditionalProperties))\n\t\t\tconverted := k.Security[i]\n\t\t\tfor _, p := range v.AdditionalProperties {\n\t\t\t\tif p == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif p.Value != nil {\n\t\t\t\t\tconverted[p.Name] = p.Value.Value\n\t\t\t\t} else {\n\t\t\t\t\tconverted[p.Name] = nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif g.Parameters != nil {\n\t\tk.Parameters = make([]Parameter, len(g.Parameters))\n\t\tfor i, v := range g.Parameters {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t} else if nok, err := k.Parameters[i].FromGnosticParametersItem(v); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\tif g.Responses != nil {\n\t\tk.Responses = &Responses{}\n\t\tif nok, err := k.Responses.FromGnostic(g.Responses); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// Responses\n\nfunc (k *Responses) FromGnostic(g *openapi_v2.Responses) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.ResponsesProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *ResponsesProps) FromGnostic(g *openapi_v2.Responses) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t} else if g.ResponseCode == nil {\n\t\treturn ok, nil\n\t}\n\n\tok = true\n\tfor _, v := range g.ResponseCode {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif v.Name == \"default\" {\n\t\t\tk.Default = &Response{}\n\t\t\tif nok, err := k.Default.FromGnosticResponseValue(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t} else if nk, err := strconv.Atoi(v.Name); err != nil {\n\t\t\t// This should actually never fail, unless gnostic struct was\n\t\t\t// manually/purposefully tampered with at runtime.\n\t\t\t// Gnostic's ParseDocument validates that all StatusCodeResponses\n\t\t\t// \tkeys adhere to the following regex ^([0-9]{3})$|^(default)$\n\t\t\tok = false\n\t\t} else {\n\t\t\tif k.StatusCodeResponses == nil {\n\t\t\t\tk.StatusCodeResponses = map[int]Response{}\n\t\t\t}\n\n\t\t\tres := Response{}\n\t\t\tif nok, err := res.FromGnosticResponseValue(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t\tk.StatusCodeResponses[nk] = res\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *Response) FromGnostic(g *openapi_v2.Response) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\t// Refable case handled in FromGnosticResponseValue\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.ResponseProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *Response) FromGnosticResponseValue(g *openapi_v2.ResponseValue) (ok bool, err error) {\n\tok = true\n\tif ref := g.GetJsonReference(); ref != nil {\n\t\tk.Description = ref.Description\n\n\t\tif err := k.Refable.FromGnostic(ref.XRef); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t} else if nok, err := k.FromGnostic(g.GetResponse()); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *ResponseProps) FromGnostic(g *openapi_v2.Response) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tk.Description = g.Description\n\n\tif g.Schema != nil {\n\t\tk.Schema = &Schema{}\n\t\tif nok, err := k.Schema.FromGnosticSchemaItem(g.Schema); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Headers != nil {\n\t\tk.Headers = make(map[string]Header, len(g.Headers.AdditionalProperties))\n\t\tfor _, v := range g.Headers.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconverted := Header{}\n\t\t\tif err := converted.FromGnostic(v.GetValue()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tk.Headers[v.Name] = converted\n\t\t}\n\t}\n\n\tif g.Examples != nil {\n\t\tk.Examples = make(map[string]interface{}, len(g.Examples.AdditionalProperties))\n\t\tfor _, v := range g.Examples.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t} else if v.Value == nil {\n\t\t\t\tk.Examples[v.Name] = nil\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tvar iface interface{}\n\t\t\tif err := v.Value.ToRawInfo().Decode(&iface); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else {\n\t\t\t\tk.Examples[v.Name] = iface\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// Header\n\nfunc (k *Header) FromGnostic(g *openapi_v2.Header) (err error) {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tif err := k.CommonValidations.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.SimpleSchema.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.HeaderProps.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (k *HeaderProps) FromGnostic(g *openapi_v2.Header) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\t// All other fields of openapi_v2.Header are handled by\n\t// the embeded fields, commonvalidations, etc.\n\tk.Description = g.Description\n\treturn nil\n}\n\n// Parameters\n\nfunc (k *Parameter) FromGnostic(g *openapi_v2.Parameter) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tswitch p := g.Oneof.(type) {\n\tcase *openapi_v2.Parameter_BodyParameter:\n\t\tif nok, err := k.ParamProps.FromGnostic(p.BodyParameter); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\n\t\tif err := k.VendorExtensible.FromGnostic(p.BodyParameter.GetVendorExtension()); err != nil {\n\t\t\treturn false, err\n\t\t}\n\n\t\treturn ok, nil\n\tcase *openapi_v2.Parameter_NonBodyParameter:\n\t\tswitch nb := g.GetNonBodyParameter().Oneof.(type) {\n\t\tcase *openapi_v2.NonBodyParameter_HeaderParameterSubSchema:\n\t\t\tif nok, err := k.ParamProps.FromGnostic(nb.HeaderParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tif err := k.SimpleSchema.FromGnostic(nb.HeaderParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.CommonValidations.FromGnostic(nb.HeaderParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.VendorExtensible.FromGnostic(nb.HeaderParameterSubSchema.GetVendorExtension()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\treturn ok, nil\n\t\tcase *openapi_v2.NonBodyParameter_FormDataParameterSubSchema:\n\t\t\tif nok, err := k.ParamProps.FromGnostic(nb.FormDataParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tif err := k.SimpleSchema.FromGnostic(nb.FormDataParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.CommonValidations.FromGnostic(nb.FormDataParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.VendorExtensible.FromGnostic(nb.FormDataParameterSubSchema.GetVendorExtension()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\treturn ok, nil\n\t\tcase *openapi_v2.NonBodyParameter_QueryParameterSubSchema:\n\t\t\tif nok, err := k.ParamProps.FromGnostic(nb.QueryParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tif err := k.SimpleSchema.FromGnostic(nb.QueryParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.CommonValidations.FromGnostic(nb.QueryParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.VendorExtensible.FromGnostic(nb.QueryParameterSubSchema.GetVendorExtension()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\treturn ok, nil\n\t\tcase *openapi_v2.NonBodyParameter_PathParameterSubSchema:\n\t\t\tif nok, err := k.ParamProps.FromGnostic(nb.PathParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tif err := k.SimpleSchema.FromGnostic(nb.PathParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.CommonValidations.FromGnostic(nb.PathParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.VendorExtensible.FromGnostic(nb.PathParameterSubSchema.GetVendorExtension()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\treturn ok, nil\n\t\tdefault:\n\t\t\treturn false, errors.New(\"unrecognized nonbody type for Parameter\")\n\t\t}\n\tdefault:\n\t\treturn false, errors.New(\"unrecognized type for Parameter\")\n\t}\n}\n\ntype GnosticCommonParamProps interface {\n\tGetName() string\n\tGetRequired() bool\n\tGetIn() string\n\tGetDescription() string\n}\n\ntype GnosticCommonParamPropsBodyParameter interface {\n\tGetSchema() *openapi_v2.Schema\n}\n\ntype GnosticCommonParamPropsFormData interface {\n\tGetAllowEmptyValue() bool\n}\n\nfunc (k *ParamProps) FromGnostic(g GnosticCommonParamProps) (ok bool, err error) {\n\tok = true\n\tk.Description = g.GetDescription()\n\tk.In = g.GetIn()\n\tk.Name = g.GetName()\n\tk.Required = g.GetRequired()\n\n\tif formDataParameter, success := g.(GnosticCommonParamPropsFormData); success {\n\t\tk.AllowEmptyValue = formDataParameter.GetAllowEmptyValue()\n\t}\n\n\tif bodyParameter, success := g.(GnosticCommonParamPropsBodyParameter); success {\n\t\tif bodyParameter.GetSchema() != nil {\n\t\t\tk.Schema = &Schema{}\n\t\t\tif nok, err := k.Schema.FromGnostic(bodyParameter.GetSchema()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// PB types use a different structure than we do for \"refable\". For PB, there is\n// a wrappign oneof type that could be a ref or the type\nfunc (k *Parameter) FromGnosticParametersItem(g *openapi_v2.ParametersItem) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\tif ref := g.GetJsonReference(); ref != nil {\n\t\tk.Description = ref.Description\n\n\t\tif err := k.Refable.FromGnostic(ref.XRef); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t} else if nok, err := k.FromGnostic(g.GetParameter()); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\n// Schema\n\nfunc (k *Schema) FromGnostic(g *openapi_v2.Schema) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\t// SwaggerSchemaProps\n\tk.Discriminator = g.Discriminator\n\tk.ReadOnly = g.ReadOnly\n\tk.Description = g.Description\n\tif g.ExternalDocs != nil {\n\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\tif nok, err := k.ExternalDocs.FromGnostic(g.ExternalDocs); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Example != nil {\n\t\tif err := g.Example.ToRawInfo().Decode(&k.Example); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t}\n\n\t// SchemaProps\n\tif err := k.Ref.FromGnostic(g.XRef); err != nil {\n\t\treturn false, err\n\t}\n\tk.Type = g.Type.GetValue()\n\tk.Format = g.GetFormat()\n\tk.Title = g.GetTitle()\n\n\t// These below fields are not available in gnostic types, so will never\n\t// be populated. This means roundtrips which make use of these\n\t//\t(non-official, kube-only) fields will lose information.\n\t//\n\t// Schema.ID is not available in official spec\n\t// Schema.$schema\n\t// Schema.Nullable - in openapiv3, not v2\n\t// Schema.AnyOf - in openapiv3, not v2\n\t// Schema.OneOf - in openapiv3, not v2\n\t// Schema.Not - in openapiv3, not v2\n\t// Schema.PatternProperties - in openapiv3, not v2\n\t// Schema.Dependencies - in openapiv3, not v2\n\t// Schema.AdditionalItems\n\t// Schema.Definitions - not part of spec\n\t// Schema.ExtraProps - gnostic parser rejects any keys it does not recognize\n\n\tif g.GetDefault() != nil {\n\t\tif err := g.GetDefault().ToRawInfo().Decode(&k.Default); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t}\n\n\t// These conditionals (!= 0) follow gnostic's logic for ToRawInfo\n\t// The keys in gnostic source are only included if nonzero.\n\n\tif g.Maximum != 0.0 {\n\t\tk.Maximum = &g.Maximum\n\t}\n\n\tif g.Minimum != 0.0 {\n\t\tk.Minimum = &g.Minimum\n\t}\n\n\tk.ExclusiveMaximum = g.ExclusiveMaximum\n\tk.ExclusiveMinimum = g.ExclusiveMinimum\n\n\tif g.MaxLength != 0 {\n\t\tk.MaxLength = &g.MaxLength\n\t}\n\n\tif g.MinLength != 0 {\n\t\tk.MinLength = &g.MinLength\n\t}\n\n\tk.Pattern = g.GetPattern()\n\n\tif g.MaxItems != 0 {\n\t\tk.MaxItems = &g.MaxItems\n\t}\n\n\tif g.MinItems != 0 {\n\t\tk.MinItems = &g.MinItems\n\t}\n\tk.UniqueItems = g.UniqueItems\n\n\tif g.MultipleOf != 0 {\n\t\tk.MultipleOf = &g.MultipleOf\n\t}\n\n\tfor _, v := range g.GetEnum() {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar convert interface{}\n\t\tif err := v.ToRawInfo().Decode(&convert); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tk.Enum = append(k.Enum, convert)\n\t}\n\n\tif g.MaxProperties != 0 {\n\t\tk.MaxProperties = &g.MaxProperties\n\t}\n\n\tif g.MinProperties != 0 {\n\t\tk.MinProperties = &g.MinProperties\n\t}\n\n\tk.Required = g.Required\n\n\tif g.GetItems() != nil {\n\t\tk.Items = &SchemaOrArray{}\n\t\tfor _, v := range g.Items.GetSchema() {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tschema := Schema{}\n\t\t\tif nok, err := schema.FromGnostic(v); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t\tk.Items.Schemas = append(k.Items.Schemas, schema)\n\t\t}\n\n\t\tif len(k.Items.Schemas) == 1 {\n\t\t\tk.Items.Schema = &k.Items.Schemas[0]\n\t\t\tk.Items.Schemas = nil\n\t\t}\n\t}\n\n\tfor i, v := range g.GetAllOf() {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tk.AllOf = append(k.AllOf, Schema{})\n\t\tif nok, err := k.AllOf[i].FromGnostic(v); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Properties != nil {\n\t\tk.Properties = make(map[string]Schema)\n\t\tfor _, namedSchema := range g.Properties.AdditionalProperties {\n\t\t\tif namedSchema == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tval := &Schema{}\n\t\t\tif nok, err := val.FromGnostic(namedSchema.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tk.Properties[namedSchema.Name] = *val\n\t\t}\n\t}\n\n\tif g.AdditionalProperties != nil {\n\t\tk.AdditionalProperties = &SchemaOrBool{}\n\t\tif g.AdditionalProperties.GetSchema() == nil {\n\t\t\tk.AdditionalProperties.Allows = g.AdditionalProperties.GetBoolean()\n\t\t} else {\n\t\t\tk.AdditionalProperties.Schema = &Schema{}\n\t\t\tk.AdditionalProperties.Allows = true\n\n\t\t\tif nok, err := k.AdditionalProperties.Schema.FromGnostic(g.AdditionalProperties.GetSchema()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *Schema) FromGnosticSchemaItem(g *openapi_v2.SchemaItem) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\n\tswitch p := g.Oneof.(type) {\n\tcase *openapi_v2.SchemaItem_FileSchema:\n\t\tfileSchema := p.FileSchema\n\n\t\tif err := k.VendorExtensible.FromGnostic(fileSchema.VendorExtension); err != nil {\n\t\t\treturn false, err\n\t\t}\n\n\t\tk.Format = fileSchema.Format\n\t\tk.Title = fileSchema.Title\n\t\tk.Description = fileSchema.Description\n\t\tk.Required = fileSchema.Required\n\t\tk.Type = []string{fileSchema.Type}\n\t\tk.ReadOnly = fileSchema.ReadOnly\n\n\t\tif fileSchema.ExternalDocs != nil {\n\t\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\t\tif nok, err := k.ExternalDocs.FromGnostic(fileSchema.ExternalDocs); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\n\t\tif fileSchema.Example != nil {\n\t\t\tif err := fileSchema.Example.ToRawInfo().Decode(&k.Example); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\t\t}\n\n\t\tif fileSchema.Default != nil {\n\t\t\tif err := fileSchema.Default.ToRawInfo().Decode(&k.Default); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\t\t}\n\n\tcase *openapi_v2.SchemaItem_Schema:\n\t\tschema := p.Schema\n\n\t\tif nok, err := k.FromGnostic(schema); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\tdefault:\n\t\treturn false, errors.New(\"unrecognized type for SchemaItem\")\n\t}\n\n\treturn ok, nil\n}\n\n// SecurityDefinitions\n\nfunc (k SecurityDefinitions) FromGnostic(g *openapi_v2.SecurityDefinitions) error {\n\tfor _, v := range g.GetAdditionalProperties() {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\t\tsecScheme := &SecurityScheme{}\n\t\tif err := secScheme.FromGnostic(v.Value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk[v.Name] = secScheme\n\t}\n\n\treturn nil\n}\n\ntype GnosticCommonSecurityDefinition interface {\n\tGetType() string\n\tGetDescription() string\n}\n\nfunc (k *SecuritySchemeProps) FromGnostic(g GnosticCommonSecurityDefinition) error {\n\tk.Type = g.GetType()\n\tk.Description = g.GetDescription()\n\n\tif hasName, success := g.(interface{ GetName() string }); success {\n\t\tk.Name = hasName.GetName()\n\t}\n\n\tif hasIn, success := g.(interface{ GetIn() string }); success {\n\t\tk.In = hasIn.GetIn()\n\t}\n\n\tif hasFlow, success := g.(interface{ GetFlow() string }); success {\n\t\tk.Flow = hasFlow.GetFlow()\n\t}\n\n\tif hasAuthURL, success := g.(interface{ GetAuthorizationUrl() string }); success {\n\t\tk.AuthorizationURL = hasAuthURL.GetAuthorizationUrl()\n\t}\n\n\tif hasTokenURL, success := g.(interface{ GetTokenUrl() string }); success {\n\t\tk.TokenURL = hasTokenURL.GetTokenUrl()\n\t}\n\n\tif hasScopes, success := g.(interface {\n\t\tGetScopes() *openapi_v2.Oauth2Scopes\n\t}); success {\n\t\tscopes := hasScopes.GetScopes()\n\t\tif scopes != nil {\n\t\t\tk.Scopes = make(map[string]string, len(scopes.AdditionalProperties))\n\t\t\tfor _, v := range scopes.AdditionalProperties {\n\t\t\t\tif v == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tk.Scopes[v.Name] = v.Value\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (k *SecurityScheme) FromGnostic(g *openapi_v2.SecurityDefinitionsItem) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tswitch s := g.Oneof.(type) {\n\tcase *openapi_v2.SecurityDefinitionsItem_ApiKeySecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.ApiKeySecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.ApiKeySecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_BasicAuthenticationSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.BasicAuthenticationSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.BasicAuthenticationSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_Oauth2AccessCodeSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.Oauth2AccessCodeSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.Oauth2AccessCodeSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_Oauth2ApplicationSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.Oauth2ApplicationSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.Oauth2ApplicationSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_Oauth2ImplicitSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.Oauth2ImplicitSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.Oauth2ImplicitSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_Oauth2PasswordSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.Oauth2PasswordSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.Oauth2PasswordSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tdefault:\n\t\treturn errors.New(\"unrecognized SecurityDefinitionsItem\")\n\t}\n}\n\n// Tag\n\nfunc (k *Tag) FromGnostic(g *openapi_v2.Tag) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tif nok, err := k.TagProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\treturn ok, nil\n}\n\nfunc (k *TagProps) FromGnostic(g *openapi_v2.Tag) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tk.Description = g.Description\n\tk.Name = g.Name\n\n\tif g.ExternalDocs != nil {\n\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\tif nok, err := k.ExternalDocs.FromGnostic(g.ExternalDocs); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// ExternalDocumentation\n\nfunc (k *ExternalDocumentation) FromGnostic(g *openapi_v2.ExternalDocs) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tk.Description = g.Description\n\tk.URL = g.Url\n\n\t// data loss! g.VendorExtension\n\tif len(g.VendorExtension) != 0 {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n"
  },
  {
    "path": "pkg/validation/spec/gnostic_test.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec_test\n\nimport (\n\t\"encoding/json\"\n\t\"io\"\n\t\"os\"\n\t\"reflect\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/google/gnostic-models/compiler\"\n\topenapi_v2 \"github.com/google/gnostic-models/openapiv2\"\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/require\"\n\t\"go.yaml.in/yaml/v3\"\n\t\"google.golang.org/protobuf/proto\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t. \"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"sigs.k8s.io/randfill\"\n)\n\nfunc gnosticCommonTest(t testing.TB, fuzzer *randfill.Filler) {\n\tfuzzer.Funcs(\n\t\tSwaggerFuzzFuncs...,\n\t)\n\n\texpected := Swagger{}\n\tfuzzer.Fill(&expected)\n\n\t// Convert to gnostic via JSON to compare\n\tjsonBytes, err := expected.MarshalJSON()\n\trequire.NoError(t, err)\n\n\tt.Log(\"Specimen\", string(jsonBytes))\n\n\tgnosticSpec, err := openapi_v2.ParseDocument(jsonBytes)\n\trequire.NoError(t, err)\n\n\tactual := Swagger{}\n\tok, err := actual.FromGnostic(gnosticSpec)\n\trequire.NoError(t, err)\n\trequire.True(t, ok)\n\tif !cmp.Equal(expected, actual, SwaggerDiffOptions...) {\n\t\tt.Fatal(cmp.Diff(expected, actual, SwaggerDiffOptions...))\n\t}\n\n\tnewJsonBytes, err := actual.MarshalJSON()\n\trequire.NoError(t, err)\n\tif err := jsontesting.JsonCompare(jsonBytes, newJsonBytes); err != nil {\n\t\tt.Fatal(err)\n\t}\n}\n\nfunc TestGnosticConversionSmallDeterministic(t *testing.T) {\n\tgnosticCommonTest(\n\t\tt,\n\t\trandfill.\n\t\t\tNewWithSeed(15).\n\t\t\tNilChance(0.8).\n\t\t\tMaxDepth(10).\n\t\t\tNumElements(1, 2),\n\t)\n}\n\nfunc TestGnosticConversionSmallDeterministic2(t *testing.T) {\n\t// A failed case of TestGnosticConversionSmallRandom\n\t// which failed during development/testing loop\n\tgnosticCommonTest(\n\t\tt,\n\t\trandfill.\n\t\t\tNewWithSeed(1646770841).\n\t\t\tNilChance(0.8).\n\t\t\tMaxDepth(10).\n\t\t\tNumElements(1, 2),\n\t)\n}\n\nfunc TestGnosticConversionSmallDeterministic3(t *testing.T) {\n\t// A failed case of TestGnosticConversionSmallRandom\n\t// which failed during development/testing loop\n\tgnosticCommonTest(\n\t\tt,\n\t\trandfill.\n\t\t\tNewWithSeed(1646772024).\n\t\t\tNilChance(0.8).\n\t\t\tMaxDepth(10).\n\t\t\tNumElements(1, 2),\n\t)\n}\n\nfunc TestGnosticConversionSmallDeterministic4(t *testing.T) {\n\t// A failed case of TestGnosticConversionSmallRandom\n\t// which failed during development/testing loop\n\tgnosticCommonTest(\n\t\tt,\n\t\trandfill.\n\t\t\tNewWithSeed(1646791953).\n\t\t\tNilChance(0.8).\n\t\t\tMaxDepth(10).\n\t\t\tNumElements(1, 2),\n\t)\n}\n\nfunc TestGnosticConversionSmallDeterministic5(t *testing.T) {\n\t// A failed case of TestGnosticConversionSmallRandom\n\t// which failed during development/testing loop\n\tgnosticCommonTest(\n\t\tt,\n\t\trandfill.\n\t\t\tNewWithSeed(1646940131).\n\t\t\tNilChance(0.8).\n\t\t\tMaxDepth(10).\n\t\t\tNumElements(1, 2),\n\t)\n}\n\nfunc TestGnosticConversionSmallDeterministic6(t *testing.T) {\n\t// A failed case of TestGnosticConversionSmallRandom\n\t// which failed during development/testing loop\n\tgnosticCommonTest(\n\t\tt,\n\t\trandfill.\n\t\t\tNewWithSeed(1646941926).\n\t\t\tNilChance(0.8).\n\t\t\tMaxDepth(10).\n\t\t\tNumElements(1, 2),\n\t)\n}\n\nfunc TestGnosticConversionSmallDeterministic7(t *testing.T) {\n\t// A failed case of TestGnosticConversionSmallRandom\n\t// which failed during development/testing loop\n\t// This case did not convert nil/empty array within OperationProps.Security\n\t// correctly\n\tgnosticCommonTest(\n\t\tt,\n\t\trandfill.\n\t\t\tNewWithSeed(1647297721085690000).\n\t\t\tNilChance(0.8).\n\t\t\tMaxDepth(10).\n\t\t\tNumElements(1, 2),\n\t)\n}\n\nfunc TestGnosticConversionSmallRandom(t *testing.T) {\n\tseed := time.Now().UnixNano()\n\tt.Log(\"Using seed: \", seed)\n\tfuzzer := randfill.\n\t\tNewWithSeed(seed).\n\t\tNilChance(0.8).\n\t\tMaxDepth(10).\n\t\tNumElements(1, 2)\n\n\tfor i := 0; i <= 50; i++ {\n\t\tgnosticCommonTest(\n\t\t\tt,\n\t\t\tfuzzer,\n\t\t)\n\t}\n}\n\nfunc TestGnosticConversionMediumDeterministic(t *testing.T) {\n\tgnosticCommonTest(\n\t\tt,\n\t\trandfill.\n\t\t\tNewWithSeed(15).\n\t\t\tNilChance(0.4).\n\t\t\tMaxDepth(12).\n\t\t\tNumElements(3, 5),\n\t)\n}\n\nfunc TestGnosticConversionLargeDeterministic(t *testing.T) {\n\tgnosticCommonTest(\n\t\tt,\n\t\trandfill.\n\t\t\tNewWithSeed(15).\n\t\t\tNilChance(0.1).\n\t\t\tMaxDepth(15).\n\t\t\tNumElements(3, 5),\n\t)\n}\n\nfunc TestGnosticConversionLargeRandom(t *testing.T) {\n\tvar seed int64 = time.Now().UnixNano()\n\tt.Log(\"Using seed: \", seed)\n\tfuzzer := randfill.\n\t\tNewWithSeed(seed).\n\t\tNilChance(0).\n\t\tMaxDepth(15).\n\t\tNumElements(3, 5)\n\n\tfor i := 0; i < 5; i++ {\n\t\tgnosticCommonTest(\n\t\t\tt,\n\t\t\tfuzzer,\n\t\t)\n\t}\n}\n\nfunc BenchmarkGnosticConversion(b *testing.B) {\n\t// Download kube-openapi swagger json\n\tswagFile, err := os.Open(\"../../schemaconv/testdata/swagger.json\")\n\tif err != nil {\n\t\tb.Fatal(err)\n\t}\n\tdefer swagFile.Close()\n\n\toriginalJSON, err := io.ReadAll(swagFile)\n\tif err != nil {\n\t\tb.Fatal(err)\n\t}\n\n\t// Parse into kube-openapi types\n\tvar result *Swagger\n\tb.Run(\"json->swagger\", func(b2 *testing.B) {\n\t\tfor i := 0; i < b2.N; i++ {\n\t\t\tif err := json.Unmarshal(originalJSON, &result); err != nil {\n\t\t\t\tb2.Fatal(err)\n\t\t\t}\n\t\t}\n\t})\n\n\t// Convert to JSON\n\tvar encodedJSON []byte\n\tb.Run(\"swagger->json\", func(b2 *testing.B) {\n\t\tfor i := 0; i < b2.N; i++ {\n\t\t\tencodedJSON, err = json.Marshal(result)\n\t\t\tif err != nil {\n\t\t\t\tb2.Fatal(err)\n\t\t\t}\n\t\t}\n\t})\n\n\t// Convert to gnostic\n\tvar originalGnostic *openapi_v2.Document\n\tb.Run(\"json->gnostic\", func(b2 *testing.B) {\n\t\tfor i := 0; i < b2.N; i++ {\n\t\t\toriginalGnostic, err = openapi_v2.ParseDocument(encodedJSON)\n\t\t\tif err != nil {\n\t\t\t\tb2.Fatal(err)\n\t\t\t}\n\t\t}\n\t})\n\n\t// Convert to PB\n\tvar encodedProto []byte\n\tb.Run(\"gnostic->pb\", func(b2 *testing.B) {\n\t\tfor i := 0; i < b2.N; i++ {\n\t\t\tencodedProto, err = proto.Marshal(originalGnostic)\n\t\t\tif err != nil {\n\t\t\t\tb2.Fatal(err)\n\t\t\t}\n\t\t}\n\t})\n\n\t// Convert to gnostic\n\tvar backToGnostic openapi_v2.Document\n\tb.Run(\"pb->gnostic\", func(b2 *testing.B) {\n\t\tfor i := 0; i < b2.N; i++ {\n\t\t\tif err := proto.Unmarshal(encodedProto, &backToGnostic); err != nil {\n\t\t\t\tb2.Fatal(err)\n\t\t\t}\n\t\t}\n\t})\n\n\tfor i := 0; i < b.N; i++ {\n\t\tb.Run(\"gnostic->kube\", func(b2 *testing.B) {\n\t\t\tfor i := 0; i < b2.N; i++ {\n\t\t\t\tdecodedSwagger := &Swagger{}\n\t\t\t\tif ok, err := decodedSwagger.FromGnostic(&backToGnostic); err != nil {\n\t\t\t\t\tb2.Fatal(err)\n\t\t\t\t} else if !ok {\n\t\t\t\t\tb2.Fatal(\"conversion lost data\")\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\n// Ensure all variants of SecurityDefinition are being exercised by tests\nfunc TestSecurityDefinitionVariants(t *testing.T) {\n\ttype TestPattern struct {\n\t\tName    string\n\t\tPattern string\n\t}\n\n\tpatterns := []TestPattern{\n\t\t{\n\t\t\tName:    \"Basic Authentication\",\n\t\t\tPattern: `{\"type\": \"basic\", \"description\": \"cool basic auth\"}`,\n\t\t},\n\t\t{\n\t\t\tName:    \"API Key Query\",\n\t\t\tPattern: `{\"type\": \"apiKey\", \"description\": \"cool api key auth\", \"in\": \"query\", \"name\": \"coolAuth\"}`,\n\t\t},\n\t\t{\n\t\t\tName:    \"API Key Header\",\n\t\t\tPattern: `{\"type\": \"apiKey\", \"description\": \"cool api key auth\", \"in\": \"header\", \"name\": \"coolAuth\"}`,\n\t\t},\n\t\t{\n\t\t\tName:    \"OAuth2 Implicit\",\n\t\t\tPattern: `{\"type\": \"oauth2\", \"flow\": \"implicit\", \"authorizationUrl\": \"https://google.com\", \"scopes\": {\"scope1\": \"a scope\", \"scope2\": \"a scope\"}, \"description\": \"cool oauth2 auth\"}`,\n\t\t},\n\t\t{\n\t\t\tName:    \"OAuth2 Password\",\n\t\t\tPattern: `{\"type\": \"oauth2\", \"flow\": \"password\", \"tokenUrl\": \"https://google.com\", \"scopes\": {\"scope1\": \"a scope\", \"scope2\": \"a scope\"}, \"description\": \"cool oauth2 auth\"}`,\n\t\t},\n\t\t{\n\t\t\tName:    \"OAuth2 Application\",\n\t\t\tPattern: `{\"type\": \"oauth2\", \"flow\": \"application\", \"tokenUrl\": \"https://google.com\", \"scopes\": {\"scope1\": \"a scope\", \"scope2\": \"a scope\"}, \"description\": \"cool oauth2 auth\"}`,\n\t\t},\n\t\t{\n\t\t\tName:    \"OAuth2 Access Code\",\n\t\t\tPattern: `{\"type\": \"oauth2\", \"flow\": \"accessCode\", \"authorizationUrl\": \"https://google.com\", \"tokenUrl\": \"https://google.com\", \"scopes\": {\"scope1\": \"a scope\", \"scope2\": \"a scope\"}, \"description\": \"cool oauth2 auth\"}`,\n\t\t},\n\t}\n\n\tfor _, p := range patterns {\n\t\tt.Run(p.Name, func(t *testing.T) {\n\t\t\t// Parse JSON into yaml\n\t\t\tvar nodes yaml.Node\n\t\t\tif err := yaml.Unmarshal([]byte(p.Pattern), &nodes); err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t} else if len(nodes.Content) != 1 {\n\t\t\t\tt.Errorf(\"unexpected yaml parse result\")\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\troot := nodes.Content[0]\n\n\t\t\tparsed, err := openapi_v2.NewSecurityDefinitionsItem(root, compiler.NewContextWithExtensions(\"$root\", root, nil, nil))\n\t\t\tif err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconverted := SecurityScheme{}\n\t\t\tif err := converted.FromGnostic(parsed); err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Ensure that the same JSON parsed via kube-openapi gives the same\n\t\t\t// result\n\t\t\tvar expected SecurityScheme\n\t\t\tif err := json.Unmarshal([]byte(p.Pattern), &expected); err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t} else if !reflect.DeepEqual(expected, converted) {\n\t\t\t\tt.Errorf(\"expected equal values: %v\", cmp.Diff(expected, converted, SwaggerDiffOptions...))\n\t\t\t\treturn\n\t\t\t}\n\t\t})\n\t}\n}\n\n// Ensure all variants of Parameter are being exercised by tests\nfunc TestParamVariants(t *testing.T) {\n\ttype TestPattern struct {\n\t\tName    string\n\t\tPattern string\n\t}\n\n\tpatterns := []TestPattern{\n\t\t{\n\t\t\tName:    \"Body Parameter\",\n\t\t\tPattern: `{\"in\": \"body\", \"name\": \"myBodyParam\", \"schema\": {}}`,\n\t\t},\n\t\t{\n\t\t\tName:    \"NonBody Header Parameter\",\n\t\t\tPattern: `{\"in\": \"header\", \"name\": \"myHeaderParam\", \"description\": \"a cool parameter\", \"type\": \"string\", \"collectionFormat\": \"pipes\"}`,\n\t\t},\n\t\t{\n\t\t\tName:    \"NonBody FormData Parameter\",\n\t\t\tPattern: `{\"in\": \"formData\", \"name\": \"myFormDataParam\", \"description\": \"a cool parameter\", \"type\": \"string\", \"collectionFormat\": \"pipes\"}`,\n\t\t},\n\t\t{\n\t\t\tName:    \"NonBody Query Parameter\",\n\t\t\tPattern: `{\"in\": \"query\", \"name\": \"myQueryParam\", \"description\": \"a cool parameter\", \"type\": \"string\", \"collectionFormat\": \"pipes\"}`,\n\t\t},\n\t\t{\n\t\t\tName:    \"NonBody Path Parameter\",\n\t\t\tPattern: `{\"required\": true, \"in\": \"path\", \"name\": \"myPathParam\", \"description\": \"a cool parameter\", \"type\": \"string\", \"collectionFormat\": \"pipes\"}`,\n\t\t},\n\t}\n\n\tfor _, p := range patterns {\n\t\tt.Run(p.Name, func(t *testing.T) {\n\t\t\t// Parse JSON into yaml\n\t\t\tvar nodes yaml.Node\n\t\t\tif err := yaml.Unmarshal([]byte(p.Pattern), &nodes); err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t} else if len(nodes.Content) != 1 {\n\t\t\t\tt.Errorf(\"unexpected yaml parse result\")\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\troot := nodes.Content[0]\n\n\t\t\tctx := compiler.NewContextWithExtensions(\"$root\", root, nil, nil)\n\t\t\tparsed, err := openapi_v2.NewParameter(root, ctx)\n\t\t\tif err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconverted := Parameter{}\n\t\t\tif ok, err := converted.FromGnostic(parsed); err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t} else if !ok {\n\t\t\t\tt.Errorf(\"expected no data loss while converting parameter: %v\", p.Pattern)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Ensure that the same JSON parsed via kube-openapi gives the same\n\t\t\t// result\n\t\t\tvar expected Parameter\n\t\t\tif err := json.Unmarshal([]byte(p.Pattern), &expected); err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t} else if !reflect.DeepEqual(expected, converted) {\n\t\t\t\tt.Errorf(\"expected equal values: %v\", cmp.Diff(expected, converted, SwaggerDiffOptions...))\n\t\t\t\treturn\n\t\t\t}\n\t\t})\n\t}\n}\n\n// Test that a few patterns of obvious data loss are detected\nfunc TestCommonDataLoss(t *testing.T) {\n\ttype TestPattern struct {\n\t\tName          string\n\t\tBadInstance   string\n\t\tFixedInstance string\n\t}\n\n\tpatterns := []TestPattern{\n\t\t{\n\t\t\tName:          \"License with Vendor Extension\",\n\t\t\tBadInstance:   `{\"swagger\": \"2.0\", \"info\": {\"title\": \"test\", \"version\": \"1.0\", \"license\": {\"name\": \"MIT\", \"x-hello\": \"ignored\"}}, \"paths\": {}}`,\n\t\t\tFixedInstance: `{\"swagger\": \"2.0\", \"info\": {\"title\": \"test\", \"version\": \"1.0\", \"license\": {\"name\": \"MIT\"}}, \"paths\": {}}`,\n\t\t},\n\t\t{\n\t\t\tName:          \"Contact with Vendor Extension\",\n\t\t\tBadInstance:   `{\"swagger\": \"2.0\", \"info\": {\"title\": \"test\", \"version\": \"1.0\", \"contact\": {\"name\": \"bill\", \"x-hello\": \"ignored\"}}, \"paths\": {}}`,\n\t\t\tFixedInstance: `{\"swagger\": \"2.0\", \"info\": {\"title\": \"test\", \"version\": \"1.0\", \"contact\": {\"name\": \"bill\"}}, \"paths\": {}}`,\n\t\t},\n\t\t{\n\t\t\tName:          \"External Documentation with Vendor Extension\",\n\t\t\tBadInstance:   `{\"swagger\": \"2.0\", \"info\": {\"title\": \"test\", \"version\": \"1.0\", \"contact\": {\"name\": \"bill\", \"x-hello\": \"ignored\"}}, \"paths\": {}}`,\n\t\t\tFixedInstance: `{\"swagger\": \"2.0\", \"info\": {\"title\": \"test\", \"version\": \"1.0\", \"contact\": {\"name\": \"bill\"}}, \"paths\": {}}`,\n\t\t},\n\t}\n\n\tfor _, v := range patterns {\n\t\tt.Run(v.Name, func(t *testing.T) {\n\t\t\tbad, err := openapi_v2.ParseDocument([]byte(v.BadInstance))\n\t\t\tif err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfixed, err := openapi_v2.ParseDocument([]byte(v.FixedInstance))\n\t\t\tif err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tbadConverted := Swagger{}\n\t\t\tif ok, err := badConverted.FromGnostic(bad); err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t} else if ok {\n\t\t\t\tt.Errorf(\"expected test to have data loss\")\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfixedConverted := Swagger{}\n\t\t\tif ok, err := fixedConverted.FromGnostic(fixed); err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t} else if !ok {\n\t\t\t\tt.Errorf(\"expected fixed test to not have data loss\")\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Convert JSON directly into our kube-openapi type and check that\n\t\t\t// it is exactly equal to the converted instance\n\t\t\tfixedDirect := Swagger{}\n\t\t\tif err := json.Unmarshal([]byte(v.FixedInstance), &fixedDirect); err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif !reflect.DeepEqual(fixedConverted, badConverted) {\n\t\t\t\tt.Errorf(\"expected equal documents: %v\", cmp.Diff(fixedConverted, badConverted, SwaggerDiffOptions...))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Make sure that they were exactly the same, except for the data loss\n\t\t\t//\tby checking JSON encodes the some\n\t\t\tbadConvertedJSON, err := badConverted.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfixedConvertedJSON, err := fixedConverted.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tfixedDirectJSON, err := fixedDirect.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\tt.Error(err)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif !reflect.DeepEqual(badConvertedJSON, fixedConvertedJSON) {\n\t\t\t\tt.Errorf(\"encoded json values for bad and fixed tests are not identical: %v\", cmp.Diff(string(badConvertedJSON), string(fixedConvertedJSON)))\n\t\t\t}\n\n\t\t\tif !reflect.DeepEqual(fixedDirectJSON, fixedConvertedJSON) {\n\t\t\t\tt.Errorf(\"encoded json values for fixed direct and fixed-from-gnostic tests are not identical: %v\", cmp.Diff(string(fixedDirectJSON), string(fixedConvertedJSON)))\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestBadStatusCode(t *testing.T) {\n\tconst testCase = `{\"swagger\": \"2.0\", \"info\": {\"title\": \"test\", \"version\": \"1.0\"}, \"paths\": {\"/\": {\"get\": {\"responses\" : { \"default\": { \"$ref\": \"#/definitions/a\" }, \"200\": { \"$ref\": \"#/definitions/b\" }}}}}}`\n\tconst dropped = `{\"swagger\": \"2.0\", \"info\": {\"title\": \"test\", \"version\": \"1.0\"}, \"paths\": {\"/\": {\"get\": {\"responses\" : { \"200\": { \"$ref\": \"#/definitions/b\" }}}}}}`\n\tgnosticInstance, err := openapi_v2.ParseDocument([]byte(testCase))\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tdroppedGnosticInstance, err := openapi_v2.ParseDocument([]byte(dropped))\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\t// Manually poke an response code name which gnostic's json parser would not allow\n\tgnosticInstance.Paths.Path[0].Value.Get.Responses.ResponseCode[0].Name = \"bad\"\n\n\tbadConverted := Swagger{}\n\tdroppedConverted := Swagger{}\n\n\tif ok, err := badConverted.FromGnostic(gnosticInstance); err != nil {\n\t\tt.Fatal(err)\n\t} else if ok {\n\t\tt.Fatalf(\"expected data loss converting an operation with a response code 'bad'\")\n\t}\n\n\tif ok, err := droppedConverted.FromGnostic(droppedGnosticInstance); err != nil {\n\t\tt.Fatal(err)\n\t} else if !ok {\n\t\tt.Fatalf(\"expected no data loss converting a known good operation\")\n\t}\n\n\t// Make sure that they were exactly the same, except for the data loss\n\t//\tby checking JSON encodes the some\n\tbadConvertedJSON, err := badConverted.MarshalJSON()\n\tif err != nil {\n\t\tt.Error(err)\n\t\treturn\n\t}\n\n\tdroppedConvertedJSON, err := droppedConverted.MarshalJSON()\n\tif err != nil {\n\t\tt.Error(err)\n\t\treturn\n\t}\n\n\tif !reflect.DeepEqual(badConvertedJSON, droppedConvertedJSON) {\n\t\tt.Errorf(\"encoded json values for bad and fixed tests are not identical: %v\", cmp.Diff(string(badConvertedJSON), string(droppedConvertedJSON)))\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/header.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\nconst (\n\tjsonArray = \"array\"\n)\n\n// HeaderProps describes a response header\ntype HeaderProps struct {\n\tDescription string `json:\"description,omitempty\"`\n}\n\n// Header describes a header for a response of the API\n//\n// For more information: http://goo.gl/8us55a#headerObject\ntype Header struct {\n\tCommonValidations\n\tSimpleSchema\n\tVendorExtensible\n\tHeaderProps\n}\n\n// MarshalJSON marshal this to JSON\nfunc (h Header) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(h)\n\t}\n\tb1, err := json.Marshal(h.CommonValidations)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(h.SimpleSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(h.HeaderProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(h.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3, b4), nil\n}\n\nfunc (h Header) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tCommonValidations commonValidationsOmitZero `json:\",inline\"`\n\t\tSimpleSchema      simpleSchemaOmitZero      `json:\",inline\"`\n\t\tExtensions\n\t\tHeaderProps\n\t}\n\tx.CommonValidations = commonValidationsOmitZero(h.CommonValidations)\n\tx.SimpleSchema = simpleSchemaOmitZero(h.SimpleSchema)\n\tx.Extensions = internal.SanitizeExtensions(h.Extensions)\n\tx.HeaderProps = h.HeaderProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON unmarshals this header from JSON\nfunc (h *Header) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, h)\n\t}\n\n\tif err := json.Unmarshal(data, &h.CommonValidations); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.SimpleSchema); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &h.HeaderProps)\n}\n\nfunc (h *Header) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tCommonValidations\n\t\tSimpleSchema\n\t\tExtensions\n\t\tHeaderProps\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\n\th.CommonValidations = x.CommonValidations\n\th.SimpleSchema = x.SimpleSchema\n\th.Extensions = internal.SanitizeExtensions(x.Extensions)\n\th.HeaderProps = x.HeaderProps\n\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/validation/spec/header_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n)\n\nfunc float64Ptr(f float64) *float64 {\n\treturn &f\n}\nfunc int64Ptr(f int64) *int64 {\n\treturn &f\n}\n\nvar header = Header{\n\tVendorExtensible: VendorExtensible{Extensions: map[string]interface{}{\n\t\t\"x-framework\": \"swagger-go\",\n\t}},\n\tHeaderProps: HeaderProps{Description: \"the description of this header\"},\n\tSimpleSchema: SimpleSchema{\n\t\tItems: &Items{\n\t\t\tRefable: Refable{Ref: MustCreateRef(\"Cat\")},\n\t\t},\n\t\tType:    \"string\",\n\t\tFormat:  \"date\",\n\t\tDefault: \"8\",\n\t},\n\tCommonValidations: CommonValidations{\n\t\tMaximum:          float64Ptr(100),\n\t\tExclusiveMaximum: true,\n\t\tExclusiveMinimum: true,\n\t\tMinimum:          float64Ptr(5),\n\t\tMaxLength:        int64Ptr(100),\n\t\tMinLength:        int64Ptr(5),\n\t\tPattern:          \"\\\\w{1,5}\\\\w+\",\n\t\tMaxItems:         int64Ptr(100),\n\t\tMinItems:         int64Ptr(5),\n\t\tUniqueItems:      true,\n\t\tMultipleOf:       float64Ptr(5),\n\t\tEnum:             []interface{}{\"hello\", \"world\"},\n\t},\n}\n\nconst headerJSON = `{\n  \"items\": {\n    \"$ref\": \"Cat\"\n  },\n  \"x-framework\": \"swagger-go\",\n  \"description\": \"the description of this header\",\n  \"maximum\": 100,\n  \"minimum\": 5,\n  \"exclusiveMaximum\": true,\n  \"exclusiveMinimum\": true,\n  \"maxLength\": 100,\n  \"minLength\": 5,\n  \"pattern\": \"\\\\w{1,5}\\\\w+\",\n  \"maxItems\": 100,\n  \"minItems\": 5,\n  \"uniqueItems\": true,\n  \"multipleOf\": 5,\n  \"enum\": [\"hello\", \"world\"],\n  \"type\": \"string\",\n  \"format\": \"date\",\n  \"default\": \"8\"\n}`\n\n// cmp.Diff panics when reflecting unexported fields under jsonreference.Ref\n// a custom comparator is required\nvar swaggerDiffOptions = []cmp.Option{cmp.Comparer(func(a Ref, b Ref) bool {\n\treturn a.String() == b.String()\n})}\n\nfunc TestIntegrationHeader(t *testing.T) {\n\tvar actual Header\n\tif assert.NoError(t, json.Unmarshal([]byte(headerJSON), &actual)) {\n\t\tif !reflect.DeepEqual(header, actual) {\n\t\t\tt.Fatal(cmp.Diff(header, actual, swaggerDiffOptions...))\n\t\t}\n\t}\n\n\tassertParsesJSON(t, headerJSON, header)\n}\n\n// Makes sure that a Header unmarshaled from known good JSON, and one unmarshaled\n// from generated JSON are equivalent.\nfunc TestHeaderSerialization(t *testing.T) {\n\tgeneratedJSON, err := json.Marshal(header)\n\trequire.NoError(t, err)\n\n\tgeneratedJSONActual := Header{}\n\trequire.NoError(t, json.Unmarshal(generatedJSON, &generatedJSONActual))\n\tif !reflect.DeepEqual(header, generatedJSONActual) {\n\t\tt.Fatal(cmp.Diff(header, generatedJSONActual, swaggerDiffOptions...))\n\t}\n\n\tgoodJSONActual := Header{}\n\trequire.NoError(t, json.Unmarshal([]byte(headerJSON), &goodJSONActual))\n\tif !reflect.DeepEqual(header, goodJSONActual) {\n\t\tt.Fatal(cmp.Diff(header, goodJSONActual, swaggerDiffOptions...))\n\t}\n}\n\nfunc TestHeaderRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tJSON: `{\n\t\t\t\t\"pattern\": \"x-^\",\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t\"description\": \"the description of this header\"\n\t\t\t  }`,\n\t\t\tObject: &Header{\n\t\t\t\tCommonValidations{\n\t\t\t\t\tPattern: \"x-^\",\n\t\t\t\t},\n\t\t\t\tSimpleSchema{\n\t\t\t\t\tType: \"string\",\n\t\t\t\t},\n\t\t\t\tVendorExtensible{Extensions{\n\t\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t}},\n\t\t\t\tHeaderProps{\n\t\t\t\t\tDescription: \"the description of this header\",\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:   \"BasicCase\",\n\t\t\tJSON:   headerJSON,\n\t\t\tObject: &header,\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&Header{}))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/info.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// Extensions vendor specific extensions\ntype Extensions map[string]interface{}\n\n// Add adds a value to these extensions\nfunc (e Extensions) Add(key string, value interface{}) {\n\trealKey := strings.ToLower(key)\n\te[realKey] = value\n}\n\n// GetString gets a string value from the extensions\nfunc (e Extensions) GetString(key string) (string, bool) {\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tstr, ok := v.(string)\n\t\treturn str, ok\n\t}\n\treturn \"\", false\n}\n\n// GetBool gets a string value from the extensions\nfunc (e Extensions) GetBool(key string) (bool, bool) {\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tstr, ok := v.(bool)\n\t\treturn str, ok\n\t}\n\treturn false, false\n}\n\n// GetStringSlice gets a string value from the extensions\nfunc (e Extensions) GetStringSlice(key string) ([]string, bool) {\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tarr, isSlice := v.([]interface{})\n\t\tif !isSlice {\n\t\t\treturn nil, false\n\t\t}\n\t\tvar strs []string\n\t\tfor _, iface := range arr {\n\t\t\tstr, isString := iface.(string)\n\t\t\tif !isString {\n\t\t\t\treturn nil, false\n\t\t\t}\n\t\t\tstrs = append(strs, str)\n\t\t}\n\t\treturn strs, ok\n\t}\n\treturn nil, false\n}\n\n// GetObject gets the object value from the extensions.\n// out must be a json serializable type; the json go struct\n// tags of out are used to populate it.\nfunc (e Extensions) GetObject(key string, out interface{}) error {\n\t// This json serialization/deserialization could be replaced with\n\t// an approach using reflection if the optimization becomes justified.\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tb, err := json.Marshal(v)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\terr = json.Unmarshal(b, out)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (e Extensions) sanitizeWithExtra() (extra map[string]any) {\n\tfor k, v := range e {\n\t\tif !internal.IsExtensionKey(k) {\n\t\t\tif extra == nil {\n\t\t\t\textra = make(map[string]any)\n\t\t\t}\n\t\t\textra[k] = v\n\t\t\tdelete(e, k)\n\t\t}\n\t}\n\treturn extra\n}\n\n// VendorExtensible composition block.\ntype VendorExtensible struct {\n\tExtensions Extensions\n}\n\n// AddExtension adds an extension to this extensible object\nfunc (v *VendorExtensible) AddExtension(key string, value interface{}) {\n\tif value == nil {\n\t\treturn\n\t}\n\tif v.Extensions == nil {\n\t\tv.Extensions = make(map[string]interface{})\n\t}\n\tv.Extensions.Add(key, value)\n}\n\n// MarshalJSON marshals the extensions to json\nfunc (v VendorExtensible) MarshalJSON() ([]byte, error) {\n\ttoser := make(map[string]interface{})\n\tfor k, v := range v.Extensions {\n\t\tlk := strings.ToLower(k)\n\t\tif strings.HasPrefix(lk, \"x-\") {\n\t\t\ttoser[k] = v\n\t\t}\n\t}\n\treturn json.Marshal(toser)\n}\n\n// UnmarshalJSON for this extensible object\nfunc (v *VendorExtensible) UnmarshalJSON(data []byte) error {\n\tvar d map[string]interface{}\n\tif err := json.Unmarshal(data, &d); err != nil {\n\t\treturn err\n\t}\n\tfor k, vv := range d {\n\t\tlk := strings.ToLower(k)\n\t\tif strings.HasPrefix(lk, \"x-\") {\n\t\t\tif v.Extensions == nil {\n\t\t\t\tv.Extensions = map[string]interface{}{}\n\t\t\t}\n\t\t\tv.Extensions[k] = vv\n\t\t}\n\t}\n\treturn nil\n}\n\n// InfoProps the properties for an info definition\ntype InfoProps struct {\n\tDescription    string       `json:\"description,omitempty\"`\n\tTitle          string       `json:\"title,omitempty\"`\n\tTermsOfService string       `json:\"termsOfService,omitempty\"`\n\tContact        *ContactInfo `json:\"contact,omitempty\"`\n\tLicense        *License     `json:\"license,omitempty\"`\n\tVersion        string       `json:\"version,omitempty\"`\n}\n\n// Info object provides metadata about the API.\n// The metadata can be used by the clients if needed, and can be presented in the Swagger-UI for convenience.\n//\n// For more information: http://goo.gl/8us55a#infoObject\ntype Info struct {\n\tVendorExtensible\n\tInfoProps\n}\n\n// MarshalJSON marshal this to JSON\nfunc (i Info) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(i)\n\t}\n\tb1, err := json.Marshal(i.InfoProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(i.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (i Info) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tInfoProps\n\t}\n\tx.Extensions = i.Extensions\n\tx.InfoProps = i.InfoProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (i *Info) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, i)\n\t}\n\n\tif err := json.Unmarshal(data, &i.InfoProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &i.VendorExtensible)\n}\n\nfunc (i *Info) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tInfoProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ti.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ti.InfoProps = x.InfoProps\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/validation/spec/info_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n)\n\nconst infoJSON = `{\n\t\"description\": \"A sample API that uses a petstore as an example to demonstrate features in ` +\n\t`the swagger-2.0 specification\",\n\t\"title\": \"Swagger Sample API\",\n\t\"termsOfService\": \"http://helloreverb.com/terms/\",\n\t\"contact\": {\n\t\t\"name\": \"wordnik api team\",\n\t\t\"url\": \"http://developer.wordnik.com\"\n\t},\n\t\"license\": {\n\t\t\"name\": \"Creative Commons 4.0 International\",\n\t\t\"url\": \"http://creativecommons.org/licenses/by/4.0/\"\n\t},\n\t\"version\": \"1.0.9-abcd\",\n\t\"x-framework\": \"go-swagger\"\n}`\n\nvar info = Info{\n\tInfoProps: InfoProps{\n\t\tVersion: \"1.0.9-abcd\",\n\t\tTitle:   \"Swagger Sample API\",\n\t\tDescription: \"A sample API that uses a petstore as an example to demonstrate features in \" +\n\t\t\t\"the swagger-2.0 specification\",\n\t\tTermsOfService: \"http://helloreverb.com/terms/\",\n\t\tContact:        &ContactInfo{Name: \"wordnik api team\", URL: \"http://developer.wordnik.com\"},\n\t\tLicense: &License{\n\t\t\tName: \"Creative Commons 4.0 International\",\n\t\t\tURL:  \"http://creativecommons.org/licenses/by/4.0/\",\n\t\t},\n\t},\n\tVendorExtensible: VendorExtensible{Extensions: map[string]interface{}{\"x-framework\": \"go-swagger\"}},\n}\n\nfunc TestIntegrationInfo_Serialize(t *testing.T) {\n\tb, err := json.MarshalIndent(info, \"\", \"\\t\")\n\tif assert.NoError(t, err) {\n\t\tassert.Equal(t, infoJSON, string(b))\n\t}\n}\n\nfunc TestIntegrationInfo_Deserialize(t *testing.T) {\n\tactual := Info{}\n\terr := json.Unmarshal([]byte(infoJSON), &actual)\n\tif assert.NoError(t, err) {\n\t\tassert.EqualValues(t, info, actual)\n\t}\n}\n\nfunc TestInfoRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tJSON: `{\n\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t\"description\": \"the description of this object\"\n\t\t\t  }`,\n\t\t\tObject: &Info{\n\t\t\t\tVendorExtensible{Extensions{\n\t\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t}},\n\t\t\t\tInfoProps{\n\t\t\t\t\tDescription: \"the description of this object\",\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:   \"BasicCase\",\n\t\t\tJSON:   infoJSON,\n\t\t\tObject: &info,\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&Info{}))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/items.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\nconst (\n\tjsonRef = \"$ref\"\n)\n\n// SimpleSchema describe swagger simple schemas for parameters and headers\ntype SimpleSchema struct {\n\tType             string      `json:\"type,omitempty\"`\n\tNullable         bool        `json:\"nullable,omitempty\"`\n\tFormat           string      `json:\"format,omitempty\"`\n\tItems            *Items      `json:\"items,omitempty\"`\n\tCollectionFormat string      `json:\"collectionFormat,omitempty\"`\n\tDefault          interface{} `json:\"default,omitempty\"`\n\tExample          interface{} `json:\"example,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype simpleSchemaOmitZero struct {\n\tType             string      `json:\"type,omitempty\"`\n\tNullable         bool        `json:\"nullable,omitzero\"`\n\tFormat           string      `json:\"format,omitempty\"`\n\tItems            *Items      `json:\"items,omitzero\"`\n\tCollectionFormat string      `json:\"collectionFormat,omitempty\"`\n\tDefault          interface{} `json:\"default,omitempty\"`\n\tExample          interface{} `json:\"example,omitempty\"`\n}\n\n// CommonValidations describe common JSON-schema validations\ntype CommonValidations struct {\n\tMaximum          *float64      `json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool          `json:\"exclusiveMaximum,omitempty\"`\n\tMinimum          *float64      `json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool          `json:\"exclusiveMinimum,omitempty\"`\n\tMaxLength        *int64        `json:\"maxLength,omitempty\"`\n\tMinLength        *int64        `json:\"minLength,omitempty\"`\n\tPattern          string        `json:\"pattern,omitempty\"`\n\tMaxItems         *int64        `json:\"maxItems,omitempty\"`\n\tMinItems         *int64        `json:\"minItems,omitempty\"`\n\tUniqueItems      bool          `json:\"uniqueItems,omitempty\"`\n\tMultipleOf       *float64      `json:\"multipleOf,omitempty\"`\n\tEnum             []interface{} `json:\"enum,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype commonValidationsOmitZero struct {\n\tMaximum          *float64      `json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool          `json:\"exclusiveMaximum,omitzero\"`\n\tMinimum          *float64      `json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool          `json:\"exclusiveMinimum,omitzero\"`\n\tMaxLength        *int64        `json:\"maxLength,omitempty\"`\n\tMinLength        *int64        `json:\"minLength,omitempty\"`\n\tPattern          string        `json:\"pattern,omitempty\"`\n\tMaxItems         *int64        `json:\"maxItems,omitempty\"`\n\tMinItems         *int64        `json:\"minItems,omitempty\"`\n\tUniqueItems      bool          `json:\"uniqueItems,omitzero\"`\n\tMultipleOf       *float64      `json:\"multipleOf,omitempty\"`\n\tEnum             []interface{} `json:\"enum,omitempty\"`\n}\n\n// Items a limited subset of JSON-Schema's items object.\n// It is used by parameter definitions that are not located in \"body\".\n//\n// For more information: http://goo.gl/8us55a#items-object\ntype Items struct {\n\tRefable\n\tCommonValidations\n\tSimpleSchema\n\tVendorExtensible\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (i *Items) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, i)\n\t}\n\n\tvar validations CommonValidations\n\tif err := json.Unmarshal(data, &validations); err != nil {\n\t\treturn err\n\t}\n\tvar ref Refable\n\tif err := json.Unmarshal(data, &ref); err != nil {\n\t\treturn err\n\t}\n\tvar simpleSchema SimpleSchema\n\tif err := json.Unmarshal(data, &simpleSchema); err != nil {\n\t\treturn err\n\t}\n\tvar vendorExtensible VendorExtensible\n\tif err := json.Unmarshal(data, &vendorExtensible); err != nil {\n\t\treturn err\n\t}\n\ti.Refable = ref\n\ti.CommonValidations = validations\n\ti.SimpleSchema = simpleSchema\n\ti.VendorExtensible = vendorExtensible\n\treturn nil\n}\n\nfunc (i *Items) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tCommonValidations\n\t\tSimpleSchema\n\t\tExtensions\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := i.Refable.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\n\ti.CommonValidations = x.CommonValidations\n\ti.SimpleSchema = x.SimpleSchema\n\ti.Extensions = internal.SanitizeExtensions(x.Extensions)\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (i Items) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(i)\n\t}\n\tb1, err := json.Marshal(i.CommonValidations)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(i.SimpleSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(i.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(i.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b4, b3, b1, b2), nil\n}\n\nfunc (i Items) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tCommonValidations commonValidationsOmitZero `json:\",inline\"`\n\t\tSimpleSchema      simpleSchemaOmitZero      `json:\",inline\"`\n\t\tRef               string                    `json:\"$ref,omitempty\"`\n\t\tExtensions\n\t}\n\tx.CommonValidations = commonValidationsOmitZero(i.CommonValidations)\n\tx.SimpleSchema = simpleSchemaOmitZero(i.SimpleSchema)\n\tx.Ref = i.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(i.Extensions)\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "pkg/validation/spec/items_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n)\n\nvar items = Items{\n\tRefable: Refable{Ref: MustCreateRef(\"Dog\")},\n\tCommonValidations: CommonValidations{\n\t\tMaximum:          float64Ptr(100),\n\t\tExclusiveMaximum: true,\n\t\tExclusiveMinimum: true,\n\t\tMinimum:          float64Ptr(5),\n\t\tMaxLength:        int64Ptr(100),\n\t\tMinLength:        int64Ptr(5),\n\t\tPattern:          \"\\\\w{1,5}\\\\w+\",\n\t\tMaxItems:         int64Ptr(100),\n\t\tMinItems:         int64Ptr(5),\n\t\tUniqueItems:      true,\n\t\tMultipleOf:       float64Ptr(5),\n\t\tEnum:             []interface{}{\"hello\", \"world\"},\n\t},\n\tSimpleSchema: SimpleSchema{\n\t\tType:   \"string\",\n\t\tFormat: \"date\",\n\t\tItems: &Items{\n\t\t\tRefable: Refable{Ref: MustCreateRef(\"Cat\")},\n\t\t},\n\t\tCollectionFormat: \"csv\",\n\t\tDefault:          \"8\",\n\t},\n}\n\nconst itemsJSON = `{\n\t\"items\": {\n\t\t\"$ref\": \"Cat\"\n\t},\n  \"$ref\": \"Dog\",\n  \"maximum\": 100,\n  \"minimum\": 5,\n  \"exclusiveMaximum\": true,\n  \"exclusiveMinimum\": true,\n  \"maxLength\": 100,\n  \"minLength\": 5,\n  \"pattern\": \"\\\\w{1,5}\\\\w+\",\n  \"maxItems\": 100,\n  \"minItems\": 5,\n  \"uniqueItems\": true,\n  \"multipleOf\": 5,\n  \"enum\": [\"hello\", \"world\"],\n  \"type\": \"string\",\n  \"format\": \"date\",\n\t\"collectionFormat\": \"csv\",\n\t\"default\": \"8\"\n}`\n\nfunc TestIntegrationItems(t *testing.T) {\n\tvar actual Items\n\tif assert.NoError(t, json.Unmarshal([]byte(itemsJSON), &actual)) {\n\t\tassert.EqualValues(t, actual, items)\n\t}\n\n\tassertParsesJSON(t, itemsJSON, items)\n}\n\nfunc TestItemsRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tJSON: `{\n\t\t\t\t\"$ref\": \"/components/my.cool.Schema\",\n\t\t\t\t\"pattern\": \"x-^\",\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"x-framework\": \"swagger-go\"\n\t\t\t  }`,\n\t\t\tObject: &Items{\n\t\t\t\tRefable{MustCreateRef(\"/components/my.cool.Schema\")},\n\t\t\t\tCommonValidations{\n\t\t\t\t\tPattern: \"x-^\",\n\t\t\t\t},\n\t\t\t\tSimpleSchema{\n\t\t\t\t\tType: \"string\",\n\t\t\t\t},\n\t\t\t\tVendorExtensible{Extensions{\n\t\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t}},\n\t\t\t},\n\t\t}, {\n\t\t\tName:   \"BasicCase\",\n\t\t\tJSON:   itemsJSON,\n\t\t\tObject: &items,\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&Items{}))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/license.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// License information for the exposed API.\n//\n// For more information: http://goo.gl/8us55a#licenseObject\ntype License struct {\n\tName string `json:\"name,omitempty\"`\n\tURL  string `json:\"url,omitempty\"`\n}\n"
  },
  {
    "path": "pkg/validation/spec/license_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport \"testing\"\n\nfunc TestIntegrationLicense(t *testing.T) {\n\tlicense := License{Name: \"the name\", URL: \"the url\"}\n\tconst licenseJSON = `{\"name\":\"the name\",\"url\":\"the url\"}`\n\tconst licenseYAML = \"name: the name\\nurl: the url\\n\"\n\n\tassertSerializeJSON(t, license, licenseJSON)\n\tassertParsesJSON(t, licenseJSON, license)\n}\n"
  },
  {
    "path": "pkg/validation/spec/operation.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// OperationProps describes an operation\n//\n// NOTES:\n// - schemes, when present must be from [http, https, ws, wss]: see validate\n// - Security is handled as a special case: see MarshalJSON function\ntype OperationProps struct {\n\tDescription  string                 `json:\"description,omitempty\"`\n\tConsumes     []string               `json:\"consumes,omitempty\"`\n\tProduces     []string               `json:\"produces,omitempty\"`\n\tSchemes      []string               `json:\"schemes,omitempty\"`\n\tTags         []string               `json:\"tags,omitempty\"`\n\tSummary      string                 `json:\"summary,omitempty\"`\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n\tID           string                 `json:\"operationId,omitempty\"`\n\tDeprecated   bool                   `json:\"deprecated,omitempty\"`\n\tSecurity     []map[string][]string  `json:\"security,omitempty\"`\n\tParameters   []Parameter            `json:\"parameters,omitempty\"`\n\tResponses    *Responses             `json:\"responses,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype operationPropsOmitZero struct {\n\tDescription  string                 `json:\"description,omitempty\"`\n\tConsumes     []string               `json:\"consumes,omitempty\"`\n\tProduces     []string               `json:\"produces,omitempty\"`\n\tSchemes      []string               `json:\"schemes,omitempty\"`\n\tTags         []string               `json:\"tags,omitempty\"`\n\tSummary      string                 `json:\"summary,omitempty\"`\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitzero\"`\n\tID           string                 `json:\"operationId,omitempty\"`\n\tDeprecated   bool                   `json:\"deprecated,omitempty,omitzero\"`\n\tSecurity     []map[string][]string  `json:\"security,omitempty\"`\n\tParameters   []Parameter            `json:\"parameters,omitempty\"`\n\tResponses    *Responses             `json:\"responses,omitzero\"`\n}\n\n// MarshalJSON takes care of serializing operation properties to JSON\n//\n// We use a custom marhaller here to handle a special cases related to\n// the Security field. We need to preserve zero length slice\n// while omitting the field when the value is nil/unset.\nfunc (op OperationProps) MarshalJSON() ([]byte, error) {\n\ttype Alias OperationProps\n\tif op.Security == nil {\n\t\treturn json.Marshal(&struct {\n\t\t\tSecurity []map[string][]string `json:\"security,omitempty\"`\n\t\t\t*Alias\n\t\t}{\n\t\t\tSecurity: op.Security,\n\t\t\tAlias:    (*Alias)(&op),\n\t\t})\n\t}\n\treturn json.Marshal(&struct {\n\t\tSecurity []map[string][]string `json:\"security\"`\n\t\t*Alias\n\t}{\n\t\tSecurity: op.Security,\n\t\tAlias:    (*Alias)(&op),\n\t})\n}\n\n// Operation describes a single API operation on a path.\n//\n// For more information: http://goo.gl/8us55a#operationObject\ntype Operation struct {\n\tVendorExtensible\n\tOperationProps\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (o *Operation) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, o)\n\t}\n\n\tif err := json.Unmarshal(data, &o.OperationProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &o.VendorExtensible)\n}\n\nfunc (o *Operation) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\ttype OperationPropsNoMethods OperationProps // strip MarshalJSON method\n\tvar x struct {\n\t\tExtensions\n\t\tOperationPropsNoMethods\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\to.Extensions = internal.SanitizeExtensions(x.Extensions)\n\to.OperationProps = OperationProps(x.OperationPropsNoMethods)\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (o Operation) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(o)\n\t}\n\tb1, err := json.Marshal(o.OperationProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(o.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\nfunc (o Operation) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tOperationProps operationPropsOmitZero `json:\",inline\"`\n\t}\n\tx.Extensions = internal.SanitizeExtensions(o.Extensions)\n\tx.OperationProps = operationPropsOmitZero(o.OperationProps)\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "pkg/validation/spec/operation_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n)\n\nvar operation = Operation{\n\tVendorExtensible: VendorExtensible{\n\t\tExtensions: map[string]interface{}{\n\t\t\t\"x-framework\": \"go-swagger\",\n\t\t},\n\t},\n\tOperationProps: OperationProps{\n\t\tDescription: \"operation description\",\n\t\tConsumes:    []string{\"application/json\", \"application/x-yaml\"},\n\t\tProduces:    []string{\"application/json\", \"application/x-yaml\"},\n\t\tSchemes:     []string{\"http\", \"https\"},\n\t\tTags:        []string{\"dogs\"},\n\t\tSummary:     \"the summary of the operation\",\n\t\tID:          \"sendCat\",\n\t\tDeprecated:  true,\n\t\tSecurity: []map[string][]string{\n\t\t\t{\n\t\t\t\t\"apiKey\": {},\n\t\t\t},\n\t\t},\n\t\tParameters: []Parameter{\n\t\t\t{Refable: Refable{Ref: MustCreateRef(\"Cat\")}},\n\t\t},\n\t\tResponses: &Responses{\n\t\t\tResponsesProps: ResponsesProps{\n\t\t\t\tDefault: &Response{\n\t\t\t\t\tResponseProps: ResponseProps{\n\t\t\t\t\t\tDescription: \"void response\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst operationJSON = `{\n\t\"description\": \"operation description\",\n\t\"x-framework\": \"go-swagger\",\n\t\"consumes\": [ \"application/json\", \"application/x-yaml\" ],\n\t\"produces\": [ \"application/json\", \"application/x-yaml\" ],\n\t\"schemes\": [\"http\", \"https\"],\n\t\"tags\": [\"dogs\"],\n\t\"summary\": \"the summary of the operation\",\n\t\"operationId\": \"sendCat\",\n\t\"deprecated\": true,\n\t\"security\": [ { \"apiKey\": [] } ],\n\t\"parameters\": [{\"$ref\":\"Cat\"}],\n\t\"responses\": {\n\t\t\"default\": {\n\t\t\t\"description\": \"void response\"\n\t\t}\n\t}\n}`\n\nfunc TestIntegrationOperation(t *testing.T) {\n\tvar actual Operation\n\tif assert.NoError(t, json.Unmarshal([]byte(operationJSON), &actual)) {\n\t\tassert.EqualValues(t, actual, operation)\n\t}\n\n\tassertParsesJSON(t, operationJSON, operation)\n}\n\nfunc TestOperationRoundtrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tJSON: `{\n\t\t\t\t\"description\": \"a cool description\",\n\t\t\t\t\"x-framework\": \"swagger-go\"\n\t\t\t  }`,\n\t\t\tObject: &Operation{\n\t\t\t\tVendorExtensible{Extensions{\n\t\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t}},\n\t\t\t\tOperationProps{\n\t\t\t\t\tDescription: \"a cool description\",\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:   \"BasicCase\",\n\t\t\tJSON:   operationJSON,\n\t\t\tObject: &operation,\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&Operation{}))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/parameter.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// ParamProps describes the specific attributes of an operation parameter\n//\n// NOTE:\n// - Schema is defined when \"in\" == \"body\": see validate\n// - AllowEmptyValue is allowed where \"in\" == \"query\" || \"formData\"\ntype ParamProps struct {\n\tDescription     string  `json:\"description,omitempty\"`\n\tName            string  `json:\"name,omitempty\"`\n\tIn              string  `json:\"in,omitempty\"`\n\tRequired        bool    `json:\"required,omitempty\"`\n\tSchema          *Schema `json:\"schema,omitempty\"`\n\tAllowEmptyValue bool    `json:\"allowEmptyValue,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype paramPropsOmitZero struct {\n\tDescription     string  `json:\"description,omitempty\"`\n\tName            string  `json:\"name,omitempty\"`\n\tIn              string  `json:\"in,omitempty\"`\n\tRequired        bool    `json:\"required,omitzero\"`\n\tSchema          *Schema `json:\"schema,omitzero\"`\n\tAllowEmptyValue bool    `json:\"allowEmptyValue,omitzero\"`\n}\n\n// Parameter a unique parameter is defined by a combination of a [name](#parameterName) and [location](#parameterIn).\n//\n// There are five possible parameter types.\n// * Path - Used together with [Path Templating](#pathTemplating), where the parameter value is actually part\n//\n//\tof the operation's URL. This does not include the host or base path of the API. For example, in `/items/{itemId}`,\n//\tthe path parameter is `itemId`.\n//\n// * Query - Parameters that are appended to the URL. For example, in `/items?id=###`, the query parameter is `id`.\n// * Header - Custom headers that are expected as part of the request.\n// * Body - The payload that's appended to the HTTP request. Since there can only be one payload, there can only be\n//\n//\t_one_ body parameter. The name of the body parameter has no effect on the parameter itself and is used for\n//\tdocumentation purposes only. Since Form parameters are also in the payload, body and form parameters cannot exist\n//\ttogether for the same operation.\n//\n// * Form - Used to describe the payload of an HTTP request when either `application/x-www-form-urlencoded` or\n//\n//\t`multipart/form-data` are used as the content type of the request (in Swagger's definition,\n//\tthe [`consumes`](#operationConsumes) property of an operation). This is the only parameter type that can be used\n//\tto send files, thus supporting the `file` type. Since form parameters are sent in the payload, they cannot be\n//\tdeclared together with a body parameter for the same operation. Form parameters have a different format based on\n//\tthe content-type used (for further details, consult http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4).\n//\t* `application/x-www-form-urlencoded` - Similar to the format of Query parameters but as a payload.\n//\tFor example, `foo=1&bar=swagger` - both `foo` and `bar` are form parameters. This is normally used for simple\n//\tparameters that are being transferred.\n//\t* `multipart/form-data` - each parameter takes a section in the payload with an internal header.\n//\tFor example, for the header `Content-Disposition: form-data; name=\"submit-name\"` the name of the parameter is\n//\t`submit-name`. This type of form parameters is more commonly used for file transfers.\n//\n// For more information: http://goo.gl/8us55a#parameterObject\ntype Parameter struct {\n\tRefable\n\tCommonValidations\n\tSimpleSchema\n\tVendorExtensible\n\tParamProps\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *Parameter) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\n\tif err := json.Unmarshal(data, &p.CommonValidations); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.SimpleSchema); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &p.ParamProps)\n}\n\nfunc (p *Parameter) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tCommonValidations\n\t\tSimpleSchema\n\t\tExtensions\n\t\tParamProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := p.Refable.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tp.CommonValidations = x.CommonValidations\n\tp.SimpleSchema = x.SimpleSchema\n\tp.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tp.ParamProps = x.ParamProps\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (p Parameter) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb1, err := json.Marshal(p.CommonValidations)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(p.SimpleSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb5, err := json.Marshal(p.ParamProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b3, b1, b2, b4, b5), nil\n}\n\nfunc (p Parameter) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tCommonValidations commonValidationsOmitZero `json:\",inline\"`\n\t\tSimpleSchema      simpleSchemaOmitZero      `json:\",inline\"`\n\t\tParamProps        paramPropsOmitZero        `json:\",inline\"`\n\t\tRef               string                    `json:\"$ref,omitempty\"`\n\t\tExtensions\n\t}\n\tx.CommonValidations = commonValidationsOmitZero(p.CommonValidations)\n\tx.SimpleSchema = simpleSchemaOmitZero(p.SimpleSchema)\n\tx.Extensions = internal.SanitizeExtensions(p.Extensions)\n\tx.ParamProps = paramPropsOmitZero(p.ParamProps)\n\tx.Ref = p.Refable.Ref.String()\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "pkg/validation/spec/parameters_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n)\n\nvar parameter = Parameter{\n\tVendorExtensible: VendorExtensible{Extensions: map[string]interface{}{\n\t\t\"x-framework\": \"swagger-go\",\n\t}},\n\tRefable: Refable{Ref: MustCreateRef(\"Dog\")},\n\tCommonValidations: CommonValidations{\n\t\tMaximum:          float64Ptr(100),\n\t\tExclusiveMaximum: true,\n\t\tExclusiveMinimum: true,\n\t\tMinimum:          float64Ptr(5),\n\t\tMaxLength:        int64Ptr(100),\n\t\tMinLength:        int64Ptr(5),\n\t\tPattern:          \"\\\\w{1,5}\\\\w+\",\n\t\tMaxItems:         int64Ptr(100),\n\t\tMinItems:         int64Ptr(5),\n\t\tUniqueItems:      true,\n\t\tMultipleOf:       float64Ptr(5),\n\t\tEnum:             []interface{}{\"hello\", \"world\"},\n\t},\n\tSimpleSchema: SimpleSchema{\n\t\tType:             \"string\",\n\t\tFormat:           \"date\",\n\t\tCollectionFormat: \"csv\",\n\t\tItems: &Items{\n\t\t\tRefable: Refable{Ref: MustCreateRef(\"Cat\")},\n\t\t},\n\t\tDefault: \"8\",\n\t},\n\tParamProps: ParamProps{\n\t\tName:        \"param-name\",\n\t\tIn:          \"header\",\n\t\tRequired:    true,\n\t\tSchema:      &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}}},\n\t\tDescription: \"the description of this parameter\",\n\t},\n}\n\nvar parameterJSON = `{\n\t\"items\": {\n\t\t\"$ref\": \"Cat\"\n\t},\n\t\"x-framework\": \"swagger-go\",\n  \"$ref\": \"Dog\",\n  \"description\": \"the description of this parameter\",\n  \"maximum\": 100,\n  \"minimum\": 5,\n  \"exclusiveMaximum\": true,\n  \"exclusiveMinimum\": true,\n  \"maxLength\": 100,\n  \"minLength\": 5,\n  \"pattern\": \"\\\\w{1,5}\\\\w+\",\n  \"maxItems\": 100,\n  \"minItems\": 5,\n  \"uniqueItems\": true,\n  \"multipleOf\": 5,\n  \"enum\": [\"hello\", \"world\"],\n  \"type\": \"string\",\n  \"format\": \"date\",\n\t\"name\": \"param-name\",\n\t\"in\": \"header\",\n\t\"required\": true,\n\t\"schema\": {\n\t\t\"type\": \"string\"\n\t},\n\t\"collectionFormat\": \"csv\",\n\t\"default\": \"8\"\n}`\n\nfunc TestIntegrationParameter(t *testing.T) {\n\tvar actual Parameter\n\tif assert.NoError(t, json.Unmarshal([]byte(parameterJSON), &actual)) {\n\t\tassert.EqualValues(t, actual, parameter)\n\t}\n\n\tassertParsesJSON(t, parameterJSON, parameter)\n}\n\nfunc TestParameterRoundtrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tJSON: `{\n\t\t\t\t\"$ref\": \"/components/ref/to/something.foo\",\n\t\t\t\t\"maxLength\": 100,\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t\"description\": \"a really cool description\"\n\t\t\t  }`,\n\t\t\tObject: &Parameter{\n\t\t\t\tRefable{MustCreateRef(\"/components/ref/to/something.foo\")},\n\t\t\t\tCommonValidations{\n\t\t\t\t\tMaxLength: int64Ptr(100),\n\t\t\t\t},\n\t\t\t\tSimpleSchema{\n\t\t\t\t\tType: \"string\",\n\t\t\t\t},\n\t\t\t\tVendorExtensible{Extensions{\n\t\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t}},\n\t\t\t\tParamProps{\n\t\t\t\t\tDescription: \"a really cool description\",\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:   \"BasicCase\",\n\t\t\tJSON:   parameterJSON,\n\t\t\tObject: &parameter,\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&Parameter{}))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/path_item.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// PathItemProps the path item specific properties\ntype PathItemProps struct {\n\tGet        *Operation  `json:\"get,omitempty\"`\n\tPut        *Operation  `json:\"put,omitempty\"`\n\tPost       *Operation  `json:\"post,omitempty\"`\n\tDelete     *Operation  `json:\"delete,omitempty\"`\n\tOptions    *Operation  `json:\"options,omitempty\"`\n\tHead       *Operation  `json:\"head,omitempty\"`\n\tPatch      *Operation  `json:\"patch,omitempty\"`\n\tParameters []Parameter `json:\"parameters,omitempty\"`\n}\n\n// PathItem describes the operations available on a single path.\n// A Path Item may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering).\n// The path itself is still exposed to the documentation viewer but they will\n// not know which operations and parameters are available.\n//\n// For more information: http://goo.gl/8us55a#pathItemObject\ntype PathItem struct {\n\tRefable\n\tVendorExtensible\n\tPathItemProps\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *PathItem) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &p.PathItemProps)\n}\n\nfunc (p *PathItem) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tPathItemProps\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := p.Refable.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tp.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tp.PathItemProps = x.PathItemProps\n\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (p PathItem) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb3, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb5, err := json.Marshal(p.PathItemProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b3, b4, b5)\n\treturn concated, nil\n}\n\nfunc (p PathItem) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef string `json:\"$ref,omitempty\"`\n\t\tExtensions\n\t\tPathItemProps\n\t}\n\tx.Ref = p.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(p.Extensions)\n\tx.PathItemProps = p.PathItemProps\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "pkg/validation/spec/path_item_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n)\n\nvar pathItem = PathItem{\n\tRefable: Refable{Ref: MustCreateRef(\"Dog\")},\n\tVendorExtensible: VendorExtensible{\n\t\tExtensions: map[string]interface{}{\n\t\t\t\"x-framework\": \"go-swagger\",\n\t\t},\n\t},\n\tPathItemProps: PathItemProps{\n\t\tGet: &Operation{\n\t\t\tOperationProps: OperationProps{Description: \"get operation description\"},\n\t\t},\n\t\tPut: &Operation{\n\t\t\tOperationProps: OperationProps{Description: \"put operation description\"},\n\t\t},\n\t\tPost: &Operation{\n\t\t\tOperationProps: OperationProps{Description: \"post operation description\"},\n\t\t},\n\t\tDelete: &Operation{\n\t\t\tOperationProps: OperationProps{Description: \"delete operation description\"},\n\t\t},\n\t\tOptions: &Operation{\n\t\t\tOperationProps: OperationProps{Description: \"options operation description\"},\n\t\t},\n\t\tHead: &Operation{\n\t\t\tOperationProps: OperationProps{Description: \"head operation description\"},\n\t\t},\n\t\tPatch: &Operation{\n\t\t\tOperationProps: OperationProps{Description: \"patch operation description\"},\n\t\t},\n\t\tParameters: []Parameter{\n\t\t\t{\n\t\t\t\tParamProps: ParamProps{In: \"path\"},\n\t\t\t},\n\t\t},\n\t},\n}\n\nconst pathItemJSON = `{\n\t\"$ref\": \"Dog\",\n\t\"x-framework\": \"go-swagger\",\n\t\"get\": { \"description\": \"get operation description\" },\n\t\"put\": { \"description\": \"put operation description\" },\n\t\"post\": { \"description\": \"post operation description\" },\n\t\"delete\": { \"description\": \"delete operation description\" },\n\t\"options\": { \"description\": \"options operation description\" },\n\t\"head\": { \"description\": \"head operation description\" },\n\t\"patch\": { \"description\": \"patch operation description\" },\n\t\"parameters\": [{\"in\":\"path\"}]\n}`\n\nfunc TestIntegrationPathItem(t *testing.T) {\n\tvar actual PathItem\n\tif assert.NoError(t, json.Unmarshal([]byte(pathItemJSON), &actual)) {\n\t\tassert.EqualValues(t, actual, pathItem)\n\t}\n\n\tassertParsesJSON(t, pathItemJSON, pathItem)\n}\n\nfunc TestPathItemRoundTrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tJSON: `{\n\t\t\t\t\"$ref\": \"/components/ref/to/something.foo\",\n\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t\"get\": {\n\t\t\t\t\t\"description\": \"a cool operation\"\n\t\t\t\t}\n\t\t\t  }`,\n\t\t\tObject: &PathItem{\n\t\t\t\tRefable{MustCreateRef(\"/components/ref/to/something.foo\")},\n\t\t\t\tVendorExtensible{Extensions{\"x-framework\": \"swagger-go\"}},\n\t\t\t\tPathItemProps{Get: &Operation{OperationProps: OperationProps{Description: \"a cool operation\"}}},\n\t\t\t},\n\t\t}, {\n\t\t\tName:   \"BasicCase\",\n\t\t\tJSON:   pathItemJSON,\n\t\t\tObject: &pathItem,\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&PathItem{}))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/paths.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// Paths holds the relative paths to the individual endpoints.\n// The path is appended to the [`basePath`](http://goo.gl/8us55a#swaggerBasePath) in order\n// to construct the full URL.\n// The Paths may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering).\n//\n// For more information: http://goo.gl/8us55a#pathsObject\ntype Paths struct {\n\tVendorExtensible\n\tPaths map[string]PathItem `json:\"-\"` // custom serializer to flatten this, each entry must start with \"/\"\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *Paths) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range res {\n\t\tif strings.HasPrefix(strings.ToLower(k), \"x-\") {\n\t\t\tif p.Extensions == nil {\n\t\t\t\tp.Extensions = make(map[string]interface{})\n\t\t\t}\n\t\t\tvar d interface{}\n\t\t\tif err := json.Unmarshal(v, &d); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Extensions[k] = d\n\t\t}\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tif p.Paths == nil {\n\t\t\t\tp.Paths = make(map[string]PathItem)\n\t\t\t}\n\t\t\tvar pi PathItem\n\t\t\tif err := json.Unmarshal(v, &pi); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Paths[k] = pi\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (p *Paths) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar ext any\n\tvar pi PathItem\n\tswitch k := tok.Kind(); k {\n\tcase 'n':\n\t\treturn nil // noop\n\tcase '{':\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif tok.Kind() == '}' {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tswitch k := tok.String(); {\n\t\t\tcase internal.IsExtensionKey(k):\n\t\t\t\text = nil\n\t\t\t\tif err := opts.UnmarshalNext(dec, &ext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif p.Extensions == nil {\n\t\t\t\t\tp.Extensions = make(map[string]any)\n\t\t\t\t}\n\t\t\t\tp.Extensions[k] = ext\n\t\t\tcase len(k) > 0 && k[0] == '/':\n\t\t\t\tpi = PathItem{}\n\t\t\t\tif err := opts.UnmarshalNext(dec, &pi); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif p.Paths == nil {\n\t\t\t\t\tp.Paths = make(map[string]PathItem)\n\t\t\t\t}\n\t\t\t\tp.Paths[k] = pi\n\t\t\tdefault:\n\t\t\t\t_, err := dec.ReadValue() // skip value\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown JSON kind: %v\", k)\n\t}\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (p Paths) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb1, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpths := make(map[string]PathItem)\n\tfor k, v := range p.Paths {\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tpths[k] = v\n\t\t}\n\t}\n\tb2, err := json.Marshal(pths)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\nfunc (p Paths) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tm := make(map[string]any, len(p.Extensions)+len(p.Paths))\n\tfor k, v := range p.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tm[k] = v\n\t\t}\n\t}\n\tfor k, v := range p.Paths {\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tm[k] = v\n\t\t}\n\t}\n\treturn opts.MarshalNext(enc, m)\n}\n"
  },
  {
    "path": "pkg/validation/spec/paths_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n)\n\nvar paths = Paths{\n\tVendorExtensible: VendorExtensible{Extensions: map[string]interface{}{\"x-framework\": \"go-swagger\"}},\n\tPaths: map[string]PathItem{\n\t\t\"/\": {\n\t\t\tRefable: Refable{Ref: MustCreateRef(\"cats\")},\n\t\t},\n\t},\n}\n\nconst pathsJSON = `{\"x-framework\":\"go-swagger\",\"/\":{\"$ref\":\"cats\"}}`\nconst pathsJSONInvalidKey = `{\"x-framework\":\"go-swagger\",\"not-path-nor-extension\":\"invalid\",\"/\":{\"$ref\":\"cats\"}}`\n\nfunc TestIntegrationPaths(t *testing.T) {\n\tvar actual Paths\n\tif assert.NoError(t, json.Unmarshal([]byte(pathsJSON), &actual)) {\n\t\tassert.EqualValues(t, actual, paths)\n\t}\n\tif assert.NoError(t, json.Unmarshal([]byte(pathsJSONInvalidKey), &actual)) {\n\t\tassert.EqualValues(t, actual, paths)\n\t}\n\n\tassertParsesJSON(t, pathsJSON, paths)\n\tassertParsesJSON(t, pathsJSONInvalidKey, paths)\n}\n\nfunc TestPathsRoundtrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tJSON: `{\n\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t\"/this-is-a-path\": {\n\t\t\t\t\t\"$ref\": \"/components/a/path/item\"\n\t\t\t\t}\n\t\t\t  }`,\n\t\t\tObject: &Paths{\n\t\t\t\tVendorExtensible{Extensions{\n\t\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t}},\n\t\t\t\tmap[string]PathItem{\n\t\t\t\t\t\"/this-is-a-path\": {Refable: Refable{MustCreateRef(\"/components/a/path/item\")}},\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:   \"BasicCase\",\n\t\t\tJSON:   pathsJSON,\n\t\t\tObject: &paths,\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&Paths{}))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/ref.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"github.com/go-openapi/jsonreference\"\n\n\t\"k8s.io/kube-openapi/pkg/internal\"\n)\n\n// Refable is a struct for things that accept a $ref property\ntype Refable struct {\n\tRef Ref\n}\n\n// MarshalJSON marshals the ref to json\nfunc (r Refable) MarshalJSON() ([]byte, error) {\n\treturn r.Ref.MarshalJSON()\n}\n\n// UnmarshalJSON unmarshalss the ref from json\nfunc (r *Refable) UnmarshalJSON(d []byte) error {\n\treturn json.Unmarshal(d, &r.Ref)\n}\n\n// Ref represents a json reference that is potentially resolved\ntype Ref struct {\n\tjsonreference.Ref\n}\n\n// RemoteURI gets the remote uri part of the ref\nfunc (r *Ref) RemoteURI() string {\n\tif r.String() == \"\" {\n\t\treturn r.String()\n\t}\n\n\tu := *r.GetURL()\n\tu.Fragment = \"\"\n\treturn u.String()\n}\n\n// Inherits creates a new reference from a parent and a child\n// If the child cannot inherit from the parent, an error is returned\nfunc (r *Ref) Inherits(child Ref) (*Ref, error) {\n\tref, err := r.Ref.Inherits(child.Ref)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Ref{Ref: *ref}, nil\n}\n\n// NewRef creates a new instance of a ref object\n// returns an error when the reference uri is an invalid uri\nfunc NewRef(refURI string) (Ref, error) {\n\tref, err := jsonreference.New(refURI)\n\tif err != nil {\n\t\treturn Ref{}, err\n\t}\n\treturn Ref{Ref: ref}, nil\n}\n\n// MustCreateRef creates a ref object but panics when refURI is invalid.\n// Use the NewRef method for a version that returns an error.\nfunc MustCreateRef(refURI string) Ref {\n\treturn Ref{Ref: jsonreference.MustCreateRef(refURI)}\n}\n\n// MarshalJSON marshals this ref into a JSON object\nfunc (r Ref) MarshalJSON() ([]byte, error) {\n\tstr := r.String()\n\tif str == \"\" {\n\t\tif r.IsRoot() {\n\t\t\treturn []byte(`{\"$ref\":\"\"}`), nil\n\t\t}\n\t\treturn []byte(\"{}\"), nil\n\t}\n\tv := map[string]interface{}{\"$ref\": str}\n\treturn json.Marshal(v)\n}\n\n// UnmarshalJSON unmarshals this ref from a JSON object\nfunc (r *Ref) UnmarshalJSON(d []byte) error {\n\tvar v map[string]interface{}\n\tif err := json.Unmarshal(d, &v); err != nil {\n\t\treturn err\n\t}\n\treturn r.fromMap(v)\n}\n\nfunc (r *Ref) fromMap(v map[string]interface{}) error {\n\treturn internal.JSONRefFromMap(&r.Ref, v)\n}\n"
  },
  {
    "path": "pkg/validation/spec/ref_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"bytes\"\n\t\"encoding/gob\"\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\n// pin pointing go-swagger/go-swagger#1816 issue with cloning ref's\nfunc TestCloneRef(t *testing.T) {\n\tvar b bytes.Buffer\n\tsrc := MustCreateRef(\"#/definitions/test\")\n\terr := gob.NewEncoder(&b).Encode(&src)\n\tif !assert.NoError(t, err) {\n\t\tt.FailNow()\n\t}\n\n\tjazon, err := json.Marshal(src)\n\tif !assert.NoError(t, err) {\n\t\tt.FailNow()\n\t}\n\n\tassert.Equal(t, `{\"$ref\":\"#/definitions/test\"}`, string(jazon))\n}\n"
  },
  {
    "path": "pkg/validation/spec/response.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// ResponseProps properties specific to a response\ntype ResponseProps struct {\n\tDescription string                 `json:\"description,omitempty\"`\n\tSchema      *Schema                `json:\"schema,omitempty\"`\n\tHeaders     map[string]Header      `json:\"headers,omitempty\"`\n\tExamples    map[string]interface{} `json:\"examples,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype responsePropsOmitZero struct {\n\tDescription string                 `json:\"description,omitempty\"`\n\tSchema      *Schema                `json:\"schema,omitzero\"`\n\tHeaders     map[string]Header      `json:\"headers,omitempty\"`\n\tExamples    map[string]interface{} `json:\"examples,omitempty\"`\n}\n\n// Response describes a single response from an API Operation.\n//\n// For more information: http://goo.gl/8us55a#responseObject\ntype Response struct {\n\tRefable\n\tResponseProps\n\tVendorExtensible\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (r *Response) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\n\tif err := json.Unmarshal(data, &r.ResponseProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (r *Response) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tResponseProps\n\t\tExtensions\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\n\tif err := r.Refable.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tr.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tr.ResponseProps = x.ResponseProps\n\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (r Response) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.ResponseProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (r Response) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef string `json:\"$ref,omitempty\"`\n\t\tExtensions\n\t\tResponseProps responsePropsOmitZero `json:\",inline\"`\n\t}\n\tx.Ref = r.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(r.Extensions)\n\tx.ResponseProps = responsePropsOmitZero(r.ResponseProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\n// NewResponse creates a new response instance\nfunc NewResponse() *Response {\n\treturn new(Response)\n}\n\n// ResponseRef creates a response as a json reference\nfunc ResponseRef(url string) *Response {\n\tresp := NewResponse()\n\tresp.Ref = MustCreateRef(url)\n\treturn resp\n}\n"
  },
  {
    "path": "pkg/validation/spec/response_test.go",
    "content": "// Copyright 2017 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n)\n\nvar response = Response{\n\tRefable: Refable{Ref: MustCreateRef(\"Dog\")},\n\tVendorExtensible: VendorExtensible{\n\t\tExtensions: map[string]interface{}{\n\t\t\t\"x-go-name\": \"PutDogExists\",\n\t\t},\n\t},\n\tResponseProps: ResponseProps{\n\t\tDescription: \"Dog exists\",\n\t\tSchema:      &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}}},\n\t},\n}\n\nconst responseJSON = `{\n\t\"$ref\": \"Dog\",\n\t\"x-go-name\": \"PutDogExists\",\n\t\"description\": \"Dog exists\",\n\t\"schema\": {\n\t\t\"type\": \"string\"\n\t}\n}`\n\nfunc TestIntegrationResponse(t *testing.T) {\n\tvar actual Response\n\tif assert.NoError(t, json.Unmarshal([]byte(responseJSON), &actual)) {\n\t\tassert.EqualValues(t, actual, response)\n\t}\n\n\tassertParsesJSON(t, responseJSON, response)\n}\n\nfunc TestResponseRoundtrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tJSON: `{\n\t\t\t\t\"$ref\": \"/components/ref/to/something.foo\",\n\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t\"description\": \"a really cool description\"\n\t\t\t  }`,\n\t\t\tObject: &Response{\n\t\t\t\tRefable{MustCreateRef(\"/components/ref/to/something.foo\")},\n\t\t\t\tResponseProps{Description: \"a really cool description\"},\n\t\t\t\tVendorExtensible{Extensions{\"x-framework\": \"swagger-go\"}},\n\t\t\t},\n\t\t}, {\n\t\t\tName:   \"BasicCase\",\n\t\t\tJSON:   responseJSON,\n\t\t\tObject: &response,\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&Response{}))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/responses.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// Responses is a container for the expected responses of an operation.\n// The container maps a HTTP response code to the expected response.\n// It is not expected from the documentation to necessarily cover all possible HTTP response codes,\n// since they may not be known in advance. However, it is expected from the documentation to cover\n// a successful operation response and any known errors.\n//\n// The `default` can be used a default response object for all HTTP codes that are not covered\n// individually by the specification.\n//\n// The `Responses Object` MUST contain at least one response code, and it SHOULD be the response\n// for a successful operation call.\n//\n// For more information: http://goo.gl/8us55a#responsesObject\ntype Responses struct {\n\tVendorExtensible\n\tResponsesProps\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (r *Responses) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\n\tif err := json.Unmarshal(data, &r.ResponsesProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\tif reflect.DeepEqual(ResponsesProps{}, r.ResponsesProps) {\n\t\tr.ResponsesProps = ResponsesProps{}\n\t}\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (r Responses) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.ResponsesProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\nfunc (r Responses) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\ttype ArbitraryKeys map[string]interface{}\n\tvar x struct {\n\t\tArbitraryKeys\n\t\tDefault *Response `json:\"default,omitempty\"`\n\t}\n\tx.ArbitraryKeys = make(map[string]any, len(r.Extensions)+len(r.StatusCodeResponses))\n\tfor k, v := range r.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tx.ArbitraryKeys[k] = v\n\t\t}\n\t}\n\tfor k, v := range r.StatusCodeResponses {\n\t\tx.ArbitraryKeys[strconv.Itoa(k)] = v\n\t}\n\tx.Default = r.Default\n\treturn opts.MarshalNext(enc, x)\n}\n\n// ResponsesProps describes all responses for an operation.\n// It tells what is the default response and maps all responses with a\n// HTTP status code.\ntype ResponsesProps struct {\n\tDefault             *Response\n\tStatusCodeResponses map[int]Response\n}\n\n// MarshalJSON marshals responses as JSON\nfunc (r ResponsesProps) MarshalJSON() ([]byte, error) {\n\ttoser := map[string]Response{}\n\tif r.Default != nil {\n\t\ttoser[\"default\"] = *r.Default\n\t}\n\tfor k, v := range r.StatusCodeResponses {\n\t\ttoser[strconv.Itoa(k)] = v\n\t}\n\treturn json.Marshal(toser)\n}\n\n// UnmarshalJSON unmarshals responses from JSON\nfunc (r *ResponsesProps) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tif v, ok := res[\"default\"]; ok {\n\t\tvalue := Response{}\n\t\tif err := json.Unmarshal(v, &value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tr.Default = &value\n\t\tdelete(res, \"default\")\n\t}\n\tfor k, v := range res {\n\t\t// Take all integral keys\n\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\tr.StatusCodeResponses = map[int]Response{}\n\t\t\t}\n\t\t\tvalue := Response{}\n\t\t\tif err := json.Unmarshal(v, &value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tr.StatusCodeResponses[nk] = value\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *Responses) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) (err error) {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar ext any\n\tvar resp Response\n\tswitch k := tok.Kind(); k {\n\tcase 'n':\n\t\treturn nil // noop\n\tcase '{':\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif tok.Kind() == '}' {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tswitch k := tok.String(); {\n\t\t\tcase internal.IsExtensionKey(k):\n\t\t\t\text = nil\n\t\t\t\tif err := opts.UnmarshalNext(dec, &ext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif r.Extensions == nil {\n\t\t\t\t\tr.Extensions = make(map[string]any)\n\t\t\t\t}\n\t\t\t\tr.Extensions[k] = ext\n\t\t\tcase k == \"default\":\n\t\t\t\tresp = Response{}\n\t\t\t\tif err := opts.UnmarshalNext(dec, &resp); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\trespCopy := resp\n\t\t\t\tr.ResponsesProps.Default = &respCopy\n\t\t\tdefault:\n\t\t\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\t\t\tresp = Response{}\n\t\t\t\t\tif err := opts.UnmarshalNext(dec, &resp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\n\t\t\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\t\t\tr.StatusCodeResponses = map[int]Response{}\n\t\t\t\t\t}\n\t\t\t\t\tr.StatusCodeResponses[nk] = resp\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown JSON kind: %v\", k)\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/responses_test.go",
    "content": "/*\n Copyright 2022 The Kubernetes Authors.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n*/\n\npackage spec\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n)\n\nfunc TestResponsesRoundtrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tJSON: `{\n\t\t\t\t\"default\": {\n\t\t\t\t\t\"$ref\": \"/components/some/ref.foo\"\n\t\t\t\t},\n\t\t\t\t\"x-framework\": \"swagger-go\"\n\t\t\t  }`,\n\t\t\tObject: &Responses{\n\t\t\t\tVendorExtensible: VendorExtensible{\n\t\t\t\t\tExtensions: Extensions{\n\t\t\t\t\t\t\"x-framework\": \"swagger-go\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tResponsesProps: ResponsesProps{\n\t\t\t\t\tDefault: &Response{\n\t\t\t\t\t\tRefable: Refable{Ref: MustCreateRef(\"/components/some/ref.foo\")},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tName: \"Decode Ref Object\",\n\t\t\tObject: &Responses{\n\t\t\t\tVendorExtensible: VendorExtensible{Extensions: map[string]interface{}{\n\t\t\t\t\t\"x-<vBŤç,ʡËdSS暙ɑɮ\":     \"鄲兴ȑʦ衈覻鋕嚮峡jw逓:鮕虫F迢.\",\n\t\t\t\t\t\"x-h\":                  \"\",\n\t\t\t\t\t\"x-岡ʍ\":                 \"Đɻ/nǌo鿻曑Œ TĀyĢ\",\n\t\t\t\t\t\"x-绅ƄȆ疩ã[魑銒;苎#砠zPȺ5Aù\": \"閲ǉǠyư\"},\n\t\t\t\t},\n\t\t\t\tResponsesProps: ResponsesProps{\n\t\t\t\t\tDefault: &Response{\n\t\t\t\t\t\tResponseProps: ResponseProps{Description: \"梱bȿF)渽Ɲō-%x\"},\n\t\t\t\t\t},\n\t\t\t\t\tStatusCodeResponses: map[int]Response{\n\t\t\t\t\t\t200: {\n\t\t\t\t\t\t\tRefable: Refable{Ref: MustCreateRef(\"Cat\")},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tName: \"Default Full Object\",\n\t\t\tObject: &Responses{\n\t\t\t\tVendorExtensible: VendorExtensible{Extensions: map[string]interface{}{\n\t\t\t\t\t\"x-<vBŤç,ʡËdSS暙ɑɮ\":     \"鄲兴ȑʦ衈覻鋕嚮峡jw逓:鮕虫F迢.\",\n\t\t\t\t\t\"x-h\":                  \"\",\n\t\t\t\t\t\"x-岡ʍ\":                 \"Đɻ/nǌo鿻曑Œ TĀyĢ\",\n\t\t\t\t\t\"x-绅ƄȆ疩ã[魑銒;苎#砠zPȺ5Aù\": \"閲ǉǠyư\"},\n\t\t\t\t},\n\t\t\t\tResponsesProps: ResponsesProps{\n\t\t\t\t\tDefault: &Response{\n\t\t\t\t\t\tRefable: Refable{Ref: MustCreateRef(\"Dog\")},\n\t\t\t\t\t},\n\t\t\t\t\tStatusCodeResponses: map[int]Response{\n\t\t\t\t\t\t200: {\n\t\t\t\t\t\t\tResponseProps: ResponseProps{\n\t\t\t\t\t\t\t\tDescription: \"梱bȿF)渽Ɲō-%x\",\n\t\t\t\t\t\t\t\tHeaders: map[string]Header{\n\t\t\t\t\t\t\t\t\t\"a header\": header,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tSchema: &Schema{\n\t\t\t\t\t\t\t\t\tVendorExtensible: VendorExtensible{Extensions: map[string]interface{}{\"x-framework\": \"go-swagger\"}},\n\t\t\t\t\t\t\t\t\tSchemaProps: SchemaProps{\n\t\t\t\t\t\t\t\t\t\tRef:              MustCreateRef(\"Cat\"),\n\t\t\t\t\t\t\t\t\t\tType:             []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:           \"date\",\n\t\t\t\t\t\t\t\t\t\tDescription:      \"the description of this schema\",\n\t\t\t\t\t\t\t\t\t\tTitle:            \"the title\",\n\t\t\t\t\t\t\t\t\t\tDefault:          \"blah\",\n\t\t\t\t\t\t\t\t\t\tMaximum:          float64Ptr(100),\n\t\t\t\t\t\t\t\t\t\tExclusiveMaximum: true,\n\t\t\t\t\t\t\t\t\t\tExclusiveMinimum: true,\n\t\t\t\t\t\t\t\t\t\tMinimum:          float64Ptr(5),\n\t\t\t\t\t\t\t\t\t\tMaxLength:        int64Ptr(100),\n\t\t\t\t\t\t\t\t\t\tMinLength:        int64Ptr(5),\n\t\t\t\t\t\t\t\t\t\tPattern:          \"\\\\w{1,5}\\\\w+\",\n\t\t\t\t\t\t\t\t\t\tMaxItems:         int64Ptr(100),\n\t\t\t\t\t\t\t\t\t\tMinItems:         int64Ptr(5),\n\t\t\t\t\t\t\t\t\t\tUniqueItems:      true,\n\t\t\t\t\t\t\t\t\t\tMultipleOf:       float64Ptr(5),\n\t\t\t\t\t\t\t\t\t\tEnum:             []interface{}{\"hello\", \"world\"},\n\t\t\t\t\t\t\t\t\t\tMaxProperties:    int64Ptr(5),\n\t\t\t\t\t\t\t\t\t\tMinProperties:    int64Ptr(1),\n\t\t\t\t\t\t\t\t\t\tRequired:         []string{\"id\", \"name\"},\n\t\t\t\t\t\t\t\t\t\tItems:            &SchemaOrArray{Schema: &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}}}},\n\t\t\t\t\t\t\t\t\t\tAllOf:            []Schema{{SchemaProps: SchemaProps{Type: []string{\"string\"}}}},\n\t\t\t\t\t\t\t\t\t\tProperties: map[string]Schema{\n\t\t\t\t\t\t\t\t\t\t\t\"id\":   {SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int64\"}},\n\t\t\t\t\t\t\t\t\t\t\t\"name\": {SchemaProps: SchemaProps{Type: []string{\"string\"}}},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tAdditionalProperties: &SchemaOrBool{Allows: true, Schema: &Schema{SchemaProps: SchemaProps{\n\t\t\t\t\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t\t\t\t\t}}},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tSwaggerSchemaProps: SwaggerSchemaProps{\n\t\t\t\t\t\t\t\t\t\tDiscriminator: \"not this\",\n\t\t\t\t\t\t\t\t\t\tReadOnly:      true,\n\t\t\t\t\t\t\t\t\t\tExternalDocs: &ExternalDocumentation{\n\t\t\t\t\t\t\t\t\t\t\tDescription: \"the documentation etc\",\n\t\t\t\t\t\t\t\t\t\t\tURL:         \"http://readthedocs.org/swagger\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tExample: []interface{}{\n\t\t\t\t\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\":   float64(1),\n\t\t\t\t\t\t\t\t\t\t\t\t\"name\": \"a book\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\t\t\t\t\t\"id\":   float64(2),\n\t\t\t\t\t\t\t\t\t\t\t\t\"name\": \"the thing\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tExamples: map[string]interface{}{\n\t\t\t\t\t\t\t\t\t\"example1\": \"example text\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// Show we cannot decode a string into something expecting object\n\t\t\tName:                   \"FailDecodeDefault\",\n\t\t\tJSON:                   `{\"x-extension\":\"an extension\",\"default\":\"wrong type object\"}`,\n\t\t\tExpectedUnmarshalError: \"unmarshal JSON string into Go value of type struct\",\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&Responses{}))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/schema.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// BooleanProperty creates a boolean property\nfunc BooleanProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"boolean\"}}}\n}\n\n// BoolProperty creates a boolean property\nfunc BoolProperty() *Schema { return BooleanProperty() }\n\n// StringProperty creates a string property\nfunc StringProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}}}\n}\n\n// CharProperty creates a string property\nfunc CharProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}}}\n}\n\n// Float64Property creates a float64/double property\nfunc Float64Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"number\"}, Format: \"double\"}}\n}\n\n// Float32Property creates a float32/float property\nfunc Float32Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"number\"}, Format: \"float\"}}\n}\n\n// Int8Property creates an int8 property\nfunc Int8Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int8\"}}\n}\n\n// Int16Property creates an int16 property\nfunc Int16Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int16\"}}\n}\n\n// Int32Property creates an int32 property\nfunc Int32Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int32\"}}\n}\n\n// Int64Property creates an int64 property\nfunc Int64Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int64\"}}\n}\n\n// StrFmtProperty creates a property for the named string format\nfunc StrFmtProperty(format string) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}, Format: format}}\n}\n\n// DateProperty creates a date property\nfunc DateProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}, Format: \"date\"}}\n}\n\n// DateTimeProperty creates a date time property\nfunc DateTimeProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}, Format: \"date-time\"}}\n}\n\n// MapProperty creates a map property\nfunc MapProperty(property *Schema) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"object\"},\n\t\tAdditionalProperties: &SchemaOrBool{Allows: true, Schema: property}}}\n}\n\n// RefProperty creates a ref property\nfunc RefProperty(name string) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Ref: MustCreateRef(name)}}\n}\n\n// RefSchema creates a ref property\nfunc RefSchema(name string) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Ref: MustCreateRef(name)}}\n}\n\n// ArrayProperty creates an array property\nfunc ArrayProperty(items *Schema) *Schema {\n\tif items == nil {\n\t\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"array\"}}}\n\t}\n\treturn &Schema{SchemaProps: SchemaProps{Items: &SchemaOrArray{Schema: items}, Type: []string{\"array\"}}}\n}\n\n// ComposedSchema creates a schema with allOf\nfunc ComposedSchema(schemas ...Schema) *Schema {\n\ts := new(Schema)\n\ts.AllOf = schemas\n\treturn s\n}\n\n// SchemaURL represents a schema url\ntype SchemaURL string\n\n// MarshalJSON marshal this to JSON\nfunc (r SchemaURL) MarshalJSON() ([]byte, error) {\n\tif r == \"\" {\n\t\treturn []byte(\"{}\"), nil\n\t}\n\tv := map[string]interface{}{\"$schema\": string(r)}\n\treturn json.Marshal(v)\n}\n\n// UnmarshalJSON unmarshal this from JSON\nfunc (r *SchemaURL) UnmarshalJSON(data []byte) error {\n\tvar v map[string]interface{}\n\tif err := json.Unmarshal(data, &v); err != nil {\n\t\treturn err\n\t}\n\treturn r.fromMap(v)\n}\n\nfunc (r *SchemaURL) fromMap(v map[string]interface{}) error {\n\tif v == nil {\n\t\treturn nil\n\t}\n\tif vv, ok := v[\"$schema\"]; ok {\n\t\tif str, ok := vv.(string); ok {\n\t\t\tu, err := url.Parse(str)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t*r = SchemaURL(u.String())\n\t\t}\n\t}\n\treturn nil\n}\n\n// SchemaProps describes a JSON schema (draft 4)\ntype SchemaProps struct {\n\tID                   string            `json:\"id,omitempty\"`\n\tRef                  Ref               `json:\"-\"`\n\tSchema               SchemaURL         `json:\"-\"`\n\tDescription          string            `json:\"description,omitempty\"`\n\tType                 StringOrArray     `json:\"type,omitempty\"`\n\tNullable             bool              `json:\"nullable,omitempty\"`\n\tFormat               string            `json:\"format,omitempty\"`\n\tTitle                string            `json:\"title,omitempty\"`\n\tDefault              interface{}       `json:\"default,omitempty\"`\n\tMaximum              *float64          `json:\"maximum,omitempty\"`\n\tExclusiveMaximum     bool              `json:\"exclusiveMaximum,omitempty\"`\n\tMinimum              *float64          `json:\"minimum,omitempty\"`\n\tExclusiveMinimum     bool              `json:\"exclusiveMinimum,omitempty\"`\n\tMaxLength            *int64            `json:\"maxLength,omitempty\"`\n\tMinLength            *int64            `json:\"minLength,omitempty\"`\n\tPattern              string            `json:\"pattern,omitempty\"`\n\tMaxItems             *int64            `json:\"maxItems,omitempty\"`\n\tMinItems             *int64            `json:\"minItems,omitempty\"`\n\tUniqueItems          bool              `json:\"uniqueItems,omitempty\"`\n\tMultipleOf           *float64          `json:\"multipleOf,omitempty\"`\n\tEnum                 []interface{}     `json:\"enum,omitempty\"`\n\tMaxProperties        *int64            `json:\"maxProperties,omitempty\"`\n\tMinProperties        *int64            `json:\"minProperties,omitempty\"`\n\tRequired             []string          `json:\"required,omitempty\"`\n\tItems                *SchemaOrArray    `json:\"items,omitempty\"`\n\tAllOf                []Schema          `json:\"allOf,omitempty\"`\n\tOneOf                []Schema          `json:\"oneOf,omitempty\"`\n\tAnyOf                []Schema          `json:\"anyOf,omitempty\"`\n\tNot                  *Schema           `json:\"not,omitempty\"`\n\tProperties           map[string]Schema `json:\"properties,omitempty\"`\n\tAdditionalProperties *SchemaOrBool     `json:\"additionalProperties,omitempty\"`\n\tPatternProperties    map[string]Schema `json:\"patternProperties,omitempty\"`\n\tDependencies         Dependencies      `json:\"dependencies,omitempty\"`\n\tAdditionalItems      *SchemaOrBool     `json:\"additionalItems,omitempty\"`\n\tDefinitions          Definitions       `json:\"definitions,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype schemaPropsOmitZero struct {\n\tID                   string            `json:\"id,omitempty\"`\n\tRef                  Ref               `json:\"-\"`\n\tSchema               SchemaURL         `json:\"-\"`\n\tDescription          string            `json:\"description,omitempty\"`\n\tType                 StringOrArray     `json:\"type,omitzero\"`\n\tNullable             bool              `json:\"nullable,omitzero\"`\n\tFormat               string            `json:\"format,omitempty\"`\n\tTitle                string            `json:\"title,omitempty\"`\n\tDefault              interface{}       `json:\"default,omitzero\"`\n\tMaximum              *float64          `json:\"maximum,omitempty\"`\n\tExclusiveMaximum     bool              `json:\"exclusiveMaximum,omitzero\"`\n\tMinimum              *float64          `json:\"minimum,omitempty\"`\n\tExclusiveMinimum     bool              `json:\"exclusiveMinimum,omitzero\"`\n\tMaxLength            *int64            `json:\"maxLength,omitempty\"`\n\tMinLength            *int64            `json:\"minLength,omitempty\"`\n\tPattern              string            `json:\"pattern,omitempty\"`\n\tMaxItems             *int64            `json:\"maxItems,omitempty\"`\n\tMinItems             *int64            `json:\"minItems,omitempty\"`\n\tUniqueItems          bool              `json:\"uniqueItems,omitzero\"`\n\tMultipleOf           *float64          `json:\"multipleOf,omitempty\"`\n\tEnum                 []interface{}     `json:\"enum,omitempty\"`\n\tMaxProperties        *int64            `json:\"maxProperties,omitempty\"`\n\tMinProperties        *int64            `json:\"minProperties,omitempty\"`\n\tRequired             []string          `json:\"required,omitempty\"`\n\tItems                *SchemaOrArray    `json:\"items,omitzero\"`\n\tAllOf                []Schema          `json:\"allOf,omitempty\"`\n\tOneOf                []Schema          `json:\"oneOf,omitempty\"`\n\tAnyOf                []Schema          `json:\"anyOf,omitempty\"`\n\tNot                  *Schema           `json:\"not,omitzero\"`\n\tProperties           map[string]Schema `json:\"properties,omitempty\"`\n\tAdditionalProperties *SchemaOrBool     `json:\"additionalProperties,omitzero\"`\n\tPatternProperties    map[string]Schema `json:\"patternProperties,omitempty\"`\n\tDependencies         Dependencies      `json:\"dependencies,omitempty\"`\n\tAdditionalItems      *SchemaOrBool     `json:\"additionalItems,omitzero\"`\n\tDefinitions          Definitions       `json:\"definitions,omitempty\"`\n}\n\n// SwaggerSchemaProps are additional properties supported by swagger schemas, but not JSON-schema (draft 4)\ntype SwaggerSchemaProps struct {\n\tDiscriminator string                 `json:\"discriminator,omitempty\"`\n\tReadOnly      bool                   `json:\"readOnly,omitempty\"`\n\tExternalDocs  *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n\tExample       interface{}            `json:\"example,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype swaggerSchemaPropsOmitZero struct {\n\tDiscriminator string                 `json:\"discriminator,omitempty\"`\n\tReadOnly      bool                   `json:\"readOnly,omitzero\"`\n\tExternalDocs  *ExternalDocumentation `json:\"externalDocs,omitzero\"`\n\tExample       interface{}            `json:\"example,omitempty\"`\n}\n\n// Schema the schema object allows the definition of input and output data types.\n// These types can be objects, but also primitives and arrays.\n// This object is based on the [JSON Schema Specification Draft 4](http://json-schema.org/)\n// and uses a predefined subset of it.\n// On top of this subset, there are extensions provided by this specification to allow for more complete documentation.\n//\n// For more information: http://goo.gl/8us55a#schemaObject\ntype Schema struct {\n\tVendorExtensible\n\tSchemaProps\n\tSwaggerSchemaProps\n\tExtraProps map[string]interface{} `json:\"-\"`\n}\n\n// WithID sets the id for this schema, allows for chaining\nfunc (s *Schema) WithID(id string) *Schema {\n\ts.ID = id\n\treturn s\n}\n\n// WithTitle sets the title for this schema, allows for chaining\nfunc (s *Schema) WithTitle(title string) *Schema {\n\ts.Title = title\n\treturn s\n}\n\n// WithDescription sets the description for this schema, allows for chaining\nfunc (s *Schema) WithDescription(description string) *Schema {\n\ts.Description = description\n\treturn s\n}\n\n// WithProperties sets the properties for this schema\nfunc (s *Schema) WithProperties(schemas map[string]Schema) *Schema {\n\ts.Properties = schemas\n\treturn s\n}\n\n// SetProperty sets a property on this schema\nfunc (s *Schema) SetProperty(name string, schema Schema) *Schema {\n\tif s.Properties == nil {\n\t\ts.Properties = make(map[string]Schema)\n\t}\n\ts.Properties[name] = schema\n\treturn s\n}\n\n// WithAllOf sets the all of property\nfunc (s *Schema) WithAllOf(schemas ...Schema) *Schema {\n\ts.AllOf = schemas\n\treturn s\n}\n\n// WithMaxProperties sets the max number of properties an object can have\nfunc (s *Schema) WithMaxProperties(max int64) *Schema {\n\ts.MaxProperties = &max\n\treturn s\n}\n\n// WithMinProperties sets the min number of properties an object must have\nfunc (s *Schema) WithMinProperties(min int64) *Schema {\n\ts.MinProperties = &min\n\treturn s\n}\n\n// Typed sets the type of this schema for a single value item\nfunc (s *Schema) Typed(tpe, format string) *Schema {\n\ts.Type = []string{tpe}\n\ts.Format = format\n\treturn s\n}\n\n// AddType adds a type with potential format to the types for this schema\nfunc (s *Schema) AddType(tpe, format string) *Schema {\n\ts.Type = append(s.Type, tpe)\n\tif format != \"\" {\n\t\ts.Format = format\n\t}\n\treturn s\n}\n\n// AsNullable flags this schema as nullable.\nfunc (s *Schema) AsNullable() *Schema {\n\ts.Nullable = true\n\treturn s\n}\n\n// CollectionOf a fluent builder method for an array parameter\nfunc (s *Schema) CollectionOf(items Schema) *Schema {\n\ts.Type = []string{jsonArray}\n\ts.Items = &SchemaOrArray{Schema: &items}\n\treturn s\n}\n\n// WithDefault sets the default value on this parameter\nfunc (s *Schema) WithDefault(defaultValue interface{}) *Schema {\n\ts.Default = defaultValue\n\treturn s\n}\n\n// WithRequired flags this parameter as required\nfunc (s *Schema) WithRequired(items ...string) *Schema {\n\ts.Required = items\n\treturn s\n}\n\n// AddRequired  adds field names to the required properties array\nfunc (s *Schema) AddRequired(items ...string) *Schema {\n\ts.Required = append(s.Required, items...)\n\treturn s\n}\n\n// WithMaxLength sets a max length value\nfunc (s *Schema) WithMaxLength(max int64) *Schema {\n\ts.MaxLength = &max\n\treturn s\n}\n\n// WithMinLength sets a min length value\nfunc (s *Schema) WithMinLength(min int64) *Schema {\n\ts.MinLength = &min\n\treturn s\n}\n\n// WithPattern sets a pattern value\nfunc (s *Schema) WithPattern(pattern string) *Schema {\n\ts.Pattern = pattern\n\treturn s\n}\n\n// WithMultipleOf sets a multiple of value\nfunc (s *Schema) WithMultipleOf(number float64) *Schema {\n\ts.MultipleOf = &number\n\treturn s\n}\n\n// WithMaximum sets a maximum number value\nfunc (s *Schema) WithMaximum(max float64, exclusive bool) *Schema {\n\ts.Maximum = &max\n\ts.ExclusiveMaximum = exclusive\n\treturn s\n}\n\n// WithMinimum sets a minimum number value\nfunc (s *Schema) WithMinimum(min float64, exclusive bool) *Schema {\n\ts.Minimum = &min\n\ts.ExclusiveMinimum = exclusive\n\treturn s\n}\n\n// WithEnum sets a the enum values (replace)\nfunc (s *Schema) WithEnum(values ...interface{}) *Schema {\n\ts.Enum = append([]interface{}{}, values...)\n\treturn s\n}\n\n// WithMaxItems sets the max items\nfunc (s *Schema) WithMaxItems(size int64) *Schema {\n\ts.MaxItems = &size\n\treturn s\n}\n\n// WithMinItems sets the min items\nfunc (s *Schema) WithMinItems(size int64) *Schema {\n\ts.MinItems = &size\n\treturn s\n}\n\n// UniqueValues dictates that this array can only have unique items\nfunc (s *Schema) UniqueValues() *Schema {\n\ts.UniqueItems = true\n\treturn s\n}\n\n// AllowDuplicates this array can have duplicates\nfunc (s *Schema) AllowDuplicates() *Schema {\n\ts.UniqueItems = false\n\treturn s\n}\n\n// AddToAllOf adds a schema to the allOf property\nfunc (s *Schema) AddToAllOf(schemas ...Schema) *Schema {\n\ts.AllOf = append(s.AllOf, schemas...)\n\treturn s\n}\n\n// WithDiscriminator sets the name of the discriminator field\nfunc (s *Schema) WithDiscriminator(discriminator string) *Schema {\n\ts.Discriminator = discriminator\n\treturn s\n}\n\n// AsReadOnly flags this schema as readonly\nfunc (s *Schema) AsReadOnly() *Schema {\n\ts.ReadOnly = true\n\treturn s\n}\n\n// AsWritable flags this schema as writeable (not read-only)\nfunc (s *Schema) AsWritable() *Schema {\n\ts.ReadOnly = false\n\treturn s\n}\n\n// WithExample sets the example for this schema\nfunc (s *Schema) WithExample(example interface{}) *Schema {\n\ts.Example = example\n\treturn s\n}\n\n// WithExternalDocs sets/removes the external docs for/from this schema.\n// When you pass empty strings as params the external documents will be removed.\n// When you pass non-empty string as one value then those values will be used on the external docs object.\n// So when you pass a non-empty description, you should also pass the url and vice versa.\nfunc (s *Schema) WithExternalDocs(description, url string) *Schema {\n\tif description == \"\" && url == \"\" {\n\t\ts.ExternalDocs = nil\n\t\treturn s\n\t}\n\n\tif s.ExternalDocs == nil {\n\t\ts.ExternalDocs = &ExternalDocumentation{}\n\t}\n\ts.ExternalDocs.Description = description\n\ts.ExternalDocs.URL = url\n\treturn s\n}\n\n// MarshalJSON marshal this to JSON\nfunc (s Schema) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.SchemaProps)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"schema props %v\", err)\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"vendor props %v\", err)\n\t}\n\tb3, err := s.Ref.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"ref prop %v\", err)\n\t}\n\tb4, err := s.Schema.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"schema prop %v\", err)\n\t}\n\tb5, err := json.Marshal(s.SwaggerSchemaProps)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"common validations %v\", err)\n\t}\n\tvar b6 []byte\n\tif s.ExtraProps != nil {\n\t\tjj, err := json.Marshal(s.ExtraProps)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"extra props %v\", err)\n\t\t}\n\t\tb6 = jj\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3, b4, b5, b6), nil\n}\n\nfunc (s Schema) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\ttype ArbitraryKeys map[string]interface{}\n\tvar x struct {\n\t\tArbitraryKeys\n\t\tSchemaProps        schemaPropsOmitZero        `json:\",inline\"`\n\t\tSwaggerSchemaProps swaggerSchemaPropsOmitZero `json:\",inline\"`\n\t\tSchema             string                     `json:\"$schema,omitempty\"`\n\t\tRef                string                     `json:\"$ref,omitempty\"`\n\t}\n\tx.ArbitraryKeys = make(map[string]any, len(s.Extensions)+len(s.ExtraProps))\n\tfor k, v := range s.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tx.ArbitraryKeys[k] = v\n\t\t}\n\t}\n\tfor k, v := range s.ExtraProps {\n\t\tx.ArbitraryKeys[k] = v\n\t}\n\tx.SchemaProps = schemaPropsOmitZero(s.SchemaProps)\n\tx.SwaggerSchemaProps = swaggerSchemaPropsOmitZero(s.SwaggerSchemaProps)\n\tx.Ref = s.Ref.String()\n\tx.Schema = string(s.Schema)\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (s *Schema) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tprops := struct {\n\t\tSchemaProps\n\t\tSwaggerSchemaProps\n\t}{}\n\tif err := json.Unmarshal(data, &props); err != nil {\n\t\treturn err\n\t}\n\n\tsch := Schema{\n\t\tSchemaProps:        props.SchemaProps,\n\t\tSwaggerSchemaProps: props.SwaggerSchemaProps,\n\t}\n\n\tvar d map[string]interface{}\n\tif err := json.Unmarshal(data, &d); err != nil {\n\t\treturn err\n\t}\n\n\t_ = sch.Ref.fromMap(d)\n\t_ = sch.Schema.fromMap(d)\n\n\tdelete(d, \"$ref\")\n\tdelete(d, \"$schema\")\n\tfor _, pn := range swag.DefaultJSONNameProvider.GetJSONNames(s) {\n\t\tdelete(d, pn)\n\t}\n\n\tfor k, vv := range d {\n\t\tlk := strings.ToLower(k)\n\t\tif strings.HasPrefix(lk, \"x-\") {\n\t\t\tif sch.Extensions == nil {\n\t\t\t\tsch.Extensions = map[string]interface{}{}\n\t\t\t}\n\t\t\tsch.Extensions[k] = vv\n\t\t\tcontinue\n\t\t}\n\t\tif sch.ExtraProps == nil {\n\t\t\tsch.ExtraProps = map[string]interface{}{}\n\t\t}\n\t\tsch.ExtraProps[k] = vv\n\t}\n\n\t*s = sch\n\n\treturn nil\n}\n\nfunc (s *Schema) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tSchemaProps\n\t\tSwaggerSchemaProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\n\tif err := x.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\n\tif err := x.Schema.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\n\tdelete(x.Extensions, \"$ref\")\n\tdelete(x.Extensions, \"$schema\")\n\n\tfor _, pn := range swag.DefaultJSONNameProvider.GetJSONNames(s) {\n\t\tdelete(x.Extensions, pn)\n\t}\n\tif len(x.Extensions) == 0 {\n\t\tx.Extensions = nil\n\t}\n\n\ts.ExtraProps = x.Extensions.sanitizeWithExtra()\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.SchemaProps = x.SchemaProps\n\ts.SwaggerSchemaProps = x.SwaggerSchemaProps\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/validation/spec/schema_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n)\n\nvar schema = Schema{\n\tVendorExtensible: VendorExtensible{Extensions: map[string]interface{}{\"x-framework\": \"go-swagger\"}},\n\tSchemaProps: SchemaProps{\n\t\tRef:              MustCreateRef(\"Cat\"),\n\t\tSchema:           \"schemaURL\",\n\t\tType:             []string{\"string\"},\n\t\tFormat:           \"date\",\n\t\tDescription:      \"the description of this schema\",\n\t\tTitle:            \"the title\",\n\t\tDefault:          \"blah\",\n\t\tMaximum:          float64Ptr(100),\n\t\tExclusiveMaximum: true,\n\t\tExclusiveMinimum: true,\n\t\tMinimum:          float64Ptr(5),\n\t\tMaxLength:        int64Ptr(100),\n\t\tMinLength:        int64Ptr(5),\n\t\tPattern:          \"\\\\w{1,5}\\\\w+\",\n\t\tMaxItems:         int64Ptr(100),\n\t\tMinItems:         int64Ptr(5),\n\t\tUniqueItems:      true,\n\t\tMultipleOf:       float64Ptr(5),\n\t\tEnum:             []interface{}{\"hello\", \"world\"},\n\t\tMaxProperties:    int64Ptr(5),\n\t\tMinProperties:    int64Ptr(1),\n\t\tRequired:         []string{\"id\", \"name\"},\n\t\tItems:            &SchemaOrArray{Schema: &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}}}},\n\t\tAllOf:            []Schema{{SchemaProps: SchemaProps{Type: []string{\"string\"}}}},\n\t\tProperties: map[string]Schema{\n\t\t\t\"id\":   {SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int64\"}},\n\t\t\t\"name\": {SchemaProps: SchemaProps{Type: []string{\"string\"}}},\n\t\t},\n\t\tAdditionalProperties: &SchemaOrBool{Allows: true, Schema: &Schema{SchemaProps: SchemaProps{\n\t\t\tType:   []string{\"integer\"},\n\t\t\tFormat: \"int32\",\n\t\t}}},\n\t},\n\tSwaggerSchemaProps: SwaggerSchemaProps{\n\t\tDiscriminator: \"not this\",\n\t\tReadOnly:      true,\n\t\tExternalDocs: &ExternalDocumentation{\n\t\t\tDescription: \"the documentation etc\",\n\t\t\tURL:         \"http://readthedocs.org/swagger\",\n\t\t},\n\t\tExample: []interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"id\":   1,\n\t\t\t\t\"name\": \"a book\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"id\":   2,\n\t\t\t\t\"name\": \"the thing\",\n\t\t\t},\n\t\t},\n\t},\n}\n\nvar schemaJSON = `{\n\t\"x-framework\": \"go-swagger\",\n  \"$ref\": \"Cat\",\n  \"$schema\": \"schemaURL\",\n  \"description\": \"the description of this schema\",\n  \"maximum\": 100,\n  \"minimum\": 5,\n  \"exclusiveMaximum\": true,\n  \"exclusiveMinimum\": true,\n  \"maxLength\": 100,\n  \"minLength\": 5,\n  \"pattern\": \"\\\\w{1,5}\\\\w+\",\n  \"maxItems\": 100,\n  \"minItems\": 5,\n  \"uniqueItems\": true,\n  \"multipleOf\": 5,\n  \"enum\": [\"hello\", \"world\"],\n  \"type\": \"string\",\n  \"format\": \"date\",\n  \"title\": \"the title\",\n  \"default\": \"blah\",\n  \"maxProperties\": 5,\n  \"minProperties\": 1,\n  \"required\": [\"id\", \"name\"],\n  \"items\": {\n    \"type\": \"string\"\n  },\n  \"allOf\": [\n    {\n      \"type\": \"string\"\n    }\n  ],\n  \"properties\": {\n    \"id\": {\n      \"type\": \"integer\",\n      \"format\": \"int64\"\n    },\n    \"name\": {\n      \"type\": \"string\"\n    }\n  },\n  \"discriminator\": \"not this\",\n  \"readOnly\": true,\n  \"externalDocs\": {\n    \"description\": \"the documentation etc\",\n    \"url\": \"http://readthedocs.org/swagger\"\n  },\n  \"example\": [\n    {\n      \"id\": 1,\n      \"name\": \"a book\"\n    },\n    {\n      \"id\": 2,\n      \"name\": \"the thing\"\n    }\n  ],\n  \"additionalProperties\": {\n    \"type\": \"integer\",\n    \"format\": \"int32\"\n  }\n}\n`\n\nfunc TestSchema(t *testing.T) {\n\n\texpected := map[string]interface{}{}\n\t_ = json.Unmarshal([]byte(schemaJSON), &expected)\n\tb, err := json.Marshal(schema)\n\tif assert.NoError(t, err) {\n\t\tvar actual map[string]interface{}\n\t\t_ = json.Unmarshal(b, &actual)\n\t\tassert.Equal(t, expected, actual)\n\t}\n\n\tactual2 := Schema{}\n\tif assert.NoError(t, json.Unmarshal([]byte(schemaJSON), &actual2)) {\n\t\tassert.Equal(t, schema.Ref, actual2.Ref)\n\t\tassert.Equal(t, schema.Schema, actual2.Schema)\n\t\tassert.Equal(t, schema.Description, actual2.Description)\n\t\tassert.Equal(t, schema.Maximum, actual2.Maximum)\n\t\tassert.Equal(t, schema.Minimum, actual2.Minimum)\n\t\tassert.Equal(t, schema.ExclusiveMinimum, actual2.ExclusiveMinimum)\n\t\tassert.Equal(t, schema.ExclusiveMaximum, actual2.ExclusiveMaximum)\n\t\tassert.Equal(t, schema.MaxLength, actual2.MaxLength)\n\t\tassert.Equal(t, schema.MinLength, actual2.MinLength)\n\t\tassert.Equal(t, schema.Pattern, actual2.Pattern)\n\t\tassert.Equal(t, schema.MaxItems, actual2.MaxItems)\n\t\tassert.Equal(t, schema.MinItems, actual2.MinItems)\n\t\tassert.True(t, actual2.UniqueItems)\n\t\tassert.Equal(t, schema.MultipleOf, actual2.MultipleOf)\n\t\tassert.Equal(t, schema.Enum, actual2.Enum)\n\t\tassert.Equal(t, schema.Type, actual2.Type)\n\t\tassert.Equal(t, schema.Format, actual2.Format)\n\t\tassert.Equal(t, schema.Title, actual2.Title)\n\t\tassert.Equal(t, schema.MaxProperties, actual2.MaxProperties)\n\t\tassert.Equal(t, schema.MinProperties, actual2.MinProperties)\n\t\tassert.Equal(t, schema.Required, actual2.Required)\n\t\tassert.Equal(t, schema.Items, actual2.Items)\n\t\tassert.Equal(t, schema.AllOf, actual2.AllOf)\n\t\tassert.Equal(t, schema.Properties, actual2.Properties)\n\t\tassert.Equal(t, schema.Discriminator, actual2.Discriminator)\n\t\tassert.Equal(t, schema.ReadOnly, actual2.ReadOnly)\n\t\tassert.Equal(t, schema.ExternalDocs, actual2.ExternalDocs)\n\t\tassert.Equal(t, schema.AdditionalProperties, actual2.AdditionalProperties)\n\t\tassert.Equal(t, schema.Extensions, actual2.Extensions)\n\t\texamples := actual2.Example.([]interface{})\n\t\texpEx := schema.Example.([]interface{})\n\t\tex1 := examples[0].(map[string]interface{})\n\t\tex2 := examples[1].(map[string]interface{})\n\t\texp1 := expEx[0].(map[string]interface{})\n\t\texp2 := expEx[1].(map[string]interface{})\n\n\t\tassert.EqualValues(t, exp1[\"id\"], ex1[\"id\"])\n\t\tassert.Equal(t, exp1[\"name\"], ex1[\"name\"])\n\t\tassert.EqualValues(t, exp2[\"id\"], ex2[\"id\"])\n\t\tassert.Equal(t, exp2[\"name\"], ex2[\"name\"])\n\t}\n\n}\n\nfunc TestSchemaRoundtrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tObject: &Schema{\n\t\t\t\tVendorExtensible{Extensions: Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t\tSchemaProps{\n\t\t\t\t\tDescription: \"this is a description\",\n\t\t\t\t},\n\t\t\t\tSwaggerSchemaProps{\n\t\t\t\t\tExample: \"this is an example\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"unknown/prop\": \"test prop\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t// Can't add this case due to map[string]interface{} unmarshaling\n\t\t// numbers unconditionally into float. But schema uses ints\n\t\t// {\n\t\t// \tName:   \"BasicCase\",\n\t\t// \tJSON:   schemaJSON,\n\t\t// \tObject: &schema,\n\t\t// },\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&Schema{}))\n\t\t})\n\t}\n}\n\nfunc BenchmarkSchemaUnmarshal(b *testing.B) {\n\tfor i := 0; i < b.N; i++ {\n\t\tsch := &Schema{}\n\t\t_ = sch.UnmarshalJSON([]byte(schemaJSON))\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/security_scheme.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// SecuritySchemeProps describes a swagger security scheme in the securityDefinitions section\ntype SecuritySchemeProps struct {\n\tDescription      string            `json:\"description,omitempty\"`\n\tType             string            `json:\"type\"`\n\tName             string            `json:\"name,omitempty\"`             // api key\n\tIn               string            `json:\"in,omitempty\"`               // api key\n\tFlow             string            `json:\"flow,omitempty\"`             // oauth2\n\tAuthorizationURL string            `json:\"authorizationUrl,omitempty\"` // oauth2\n\tTokenURL         string            `json:\"tokenUrl,omitempty\"`         // oauth2\n\tScopes           map[string]string `json:\"scopes,omitempty\"`           // oauth2\n}\n\n// SecurityScheme allows the definition of a security scheme that can be used by the operations.\n// Supported schemes are basic authentication, an API key (either as a header or as a query parameter)\n// and OAuth2's common flows (implicit, password, application and access code).\n//\n// For more information: http://goo.gl/8us55a#securitySchemeObject\ntype SecurityScheme struct {\n\tVendorExtensible\n\tSecuritySchemeProps\n}\n\n// MarshalJSON marshal this to JSON\nfunc (s SecurityScheme) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.SecuritySchemeProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (s SecurityScheme) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tSecuritySchemeProps\n\t}\n\tx.Extensions = internal.SanitizeExtensions(s.Extensions)\n\tx.SecuritySchemeProps = s.SecuritySchemeProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (s *SecurityScheme) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &s.SecuritySchemeProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &s.VendorExtensible)\n}\n\nfunc (s *SecurityScheme) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tSecuritySchemeProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.SecuritySchemeProps = x.SecuritySchemeProps\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/validation/spec/security_scheme_test.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n)\n\nfunc TestSecuritySchemeRoundtrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tJSON: `{\n\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t\"type\": \"string\"\n\t\t\t}`,\n\t\t\tObject: &SecurityScheme{\n\t\t\t\tVendorExtensible{Extensions: Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t\tSecuritySchemeProps{\n\t\t\t\t\tType: \"string\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&SecurityScheme{}))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/structs_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc assertSerializeJSON(t testing.TB, actual interface{}, expected string) bool {\n\tser, err := json.Marshal(actual)\n\tif err != nil {\n\t\treturn assert.Fail(t, \"unable to marshal to json (%s): %#v\", err, actual)\n\t}\n\treturn assert.Equal(t, string(ser), expected)\n}\n\nfunc derefTypeOf(expected interface{}) (tpe reflect.Type) {\n\ttpe = reflect.TypeOf(expected)\n\tif tpe.Kind() == reflect.Ptr {\n\t\ttpe = tpe.Elem()\n\t}\n\treturn\n}\n\nfunc isPointed(expected interface{}) (pointed bool) {\n\ttpe := reflect.TypeOf(expected)\n\tif tpe.Kind() == reflect.Ptr {\n\t\tpointed = true\n\t}\n\treturn\n}\n\nfunc assertParsesJSON(t testing.TB, actual string, expected interface{}) bool {\n\tparsed := reflect.New(derefTypeOf(expected))\n\terr := json.Unmarshal([]byte(actual), parsed.Interface())\n\tif err != nil {\n\t\treturn assert.Fail(t, \"Failed to unmarshal JSON\", \"unable to unmarshal from json (%v): %s\", err, actual)\n\t}\n\tact := parsed.Interface()\n\tif !isPointed(expected) {\n\t\tact = reflect.Indirect(parsed).Interface()\n\t}\n\treturn assert.Equal(t, act, expected)\n}\n\nfunc TestSerialization_SerializeJSON(t *testing.T) {\n\tassertSerializeJSON(t, []string{\"hello\"}, \"[\\\"hello\\\"]\")\n\tassertSerializeJSON(t, []string{\"hello\", \"world\", \"and\", \"stuff\"}, \"[\\\"hello\\\",\\\"world\\\",\\\"and\\\",\\\"stuff\\\"]\")\n\tassertSerializeJSON(t, StringOrArray(nil), \"null\")\n\tassertSerializeJSON(t, SchemaOrArray{\n\t\tSchemas: []Schema{\n\t\t\t{SchemaProps: SchemaProps{Type: []string{\"string\"}}}},\n\t}, \"[{\\\"type\\\":\\\"string\\\"}]\")\n\tassertSerializeJSON(t, SchemaOrArray{\n\t\tSchemas: []Schema{\n\t\t\t{SchemaProps: SchemaProps{Type: []string{\"string\"}}},\n\t\t\t{SchemaProps: SchemaProps{Type: []string{\"string\"}}},\n\t\t}}, \"[{\\\"type\\\":\\\"string\\\"},{\\\"type\\\":\\\"string\\\"}]\")\n\tassertSerializeJSON(t, SchemaOrArray{}, \"null\")\n}\n\nfunc TestSerialization_DeserializeJSON(t *testing.T) {\n\t// String\n\tassertParsesJSON(t, \"\\\"hello\\\"\", StringOrArray([]string{\"hello\"}))\n\tassertParsesJSON(t, \"[\\\"hello\\\",\\\"world\\\",\\\"and\\\",\\\"stuff\\\"]\",\n\t\tStringOrArray([]string{\"hello\", \"world\", \"and\", \"stuff\"}))\n\tassertParsesJSON(t, \"[\\\"hello\\\",\\\"world\\\",null,\\\"stuff\\\"]\", StringOrArray([]string{\"hello\", \"world\", \"\", \"stuff\"}))\n\tassertParsesJSON(t, \"null\", StringOrArray(nil))\n\n\t// Schema\n\tassertParsesJSON(t, \"{\\\"type\\\":\\\"string\\\"}\", SchemaOrArray{Schema: &Schema{\n\t\tSchemaProps: SchemaProps{Type: []string{\"string\"}}},\n\t})\n\tassertParsesJSON(t, \"[{\\\"type\\\":\\\"string\\\"},{\\\"type\\\":\\\"string\\\"}]\", &SchemaOrArray{\n\t\tSchemas: []Schema{\n\t\t\t{SchemaProps: SchemaProps{Type: []string{\"string\"}}},\n\t\t\t{SchemaProps: SchemaProps{Type: []string{\"string\"}}},\n\t\t},\n\t})\n\tassertParsesJSON(t, \"null\", SchemaOrArray{})\n}\n"
  },
  {
    "path": "pkg/validation/spec/swagger.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// Swagger this is the root document object for the API specification.\n// It combines what previously was the Resource Listing and API Declaration (version 1.2 and earlier)\n// together into one document.\n//\n// For more information: http://goo.gl/8us55a#swagger-object-\ntype Swagger struct {\n\tVendorExtensible\n\tSwaggerProps\n}\n\n// MarshalJSON marshals this swagger structure to json\nfunc (s Swagger) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.SwaggerProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\n// MarshalJSON marshals this swagger structure to json\nfunc (s Swagger) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tSwaggerProps\n\t}\n\tx.Extensions = internal.SanitizeExtensions(s.Extensions)\n\tx.SwaggerProps = s.SwaggerProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON unmarshals a swagger spec from json\nfunc (s *Swagger) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\tvar sw Swagger\n\tif err := json.Unmarshal(data, &sw.SwaggerProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &sw.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\t*s = sw\n\treturn nil\n}\n\nfunc (s *Swagger) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\t// Note: If you're willing to make breaking changes, it is possible to\n\t// optimize this and other usages of this pattern:\n\t// https://github.com/kubernetes/kube-openapi/pull/319#discussion_r983165948\n\tvar x struct {\n\t\tExtensions\n\t\tSwaggerProps\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.SwaggerProps = x.SwaggerProps\n\treturn nil\n}\n\n// SwaggerProps captures the top-level properties of an Api specification\n//\n// NOTE: validation rules\n// - the scheme, when present must be from [http, https, ws, wss]\n// - BasePath must start with a leading \"/\"\n// - Paths is required\ntype SwaggerProps struct {\n\tID                  string                 `json:\"id,omitempty\"`\n\tConsumes            []string               `json:\"consumes,omitempty\"`\n\tProduces            []string               `json:\"produces,omitempty\"`\n\tSchemes             []string               `json:\"schemes,omitempty\"`\n\tSwagger             string                 `json:\"swagger,omitempty\"`\n\tInfo                *Info                  `json:\"info,omitempty\"`\n\tHost                string                 `json:\"host,omitempty\"`\n\tBasePath            string                 `json:\"basePath,omitempty\"`\n\tPaths               *Paths                 `json:\"paths\"`\n\tDefinitions         Definitions            `json:\"definitions,omitempty\"`\n\tParameters          map[string]Parameter   `json:\"parameters,omitempty\"`\n\tResponses           map[string]Response    `json:\"responses,omitempty\"`\n\tSecurityDefinitions SecurityDefinitions    `json:\"securityDefinitions,omitempty\"`\n\tSecurity            []map[string][]string  `json:\"security,omitempty\"`\n\tTags                []Tag                  `json:\"tags,omitempty\"`\n\tExternalDocs        *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n}\n\n// Dependencies represent a dependencies property\ntype Dependencies map[string]SchemaOrStringArray\n\n// SchemaOrBool represents a schema or boolean value, is biased towards true for the boolean property\ntype SchemaOrBool struct {\n\tAllows bool\n\tSchema *Schema\n}\n\nvar jsTrue = []byte(\"true\")\nvar jsFalse = []byte(\"false\")\n\n// MarshalJSON convert this object to JSON\nfunc (s SchemaOrBool) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tif s.Schema != nil {\n\t\treturn json.Marshal(s.Schema)\n\t}\n\n\tif s.Schema == nil && !s.Allows {\n\t\treturn jsFalse, nil\n\t}\n\treturn jsTrue, nil\n}\n\n// MarshalJSON convert this object to JSON\nfunc (s SchemaOrBool) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tif s.Schema != nil {\n\t\treturn opts.MarshalNext(enc, s.Schema)\n\t}\n\n\tif s.Schema == nil && !s.Allows {\n\t\treturn enc.WriteToken(jsonv2.False)\n\t}\n\treturn enc.WriteToken(jsonv2.True)\n}\n\n// UnmarshalJSON converts this bool or schema object from a JSON structure\nfunc (s *SchemaOrBool) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tvar nw SchemaOrBool\n\tif len(data) > 0 && data[0] == '{' {\n\t\tvar sch Schema\n\t\tif err := json.Unmarshal(data, &sch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnw.Schema = &sch\n\t\tnw.Allows = true\n\t} else {\n\t\tjson.Unmarshal(data, &nw.Allows)\n\t}\n\t*s = nw\n\treturn nil\n}\n\nfunc (s *SchemaOrBool) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tswitch k := dec.PeekKind(); k {\n\tcase '{':\n\t\terr := opts.UnmarshalNext(dec, &s.Schema)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ts.Allows = true\n\t\treturn nil\n\tcase 't', 'f':\n\t\terr := opts.UnmarshalNext(dec, &s.Allows)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"expected object or bool, not '%v'\", k.String())\n\t}\n}\n\n// SchemaOrStringArray represents a schema or a string array\ntype SchemaOrStringArray struct {\n\tSchema   *Schema\n\tProperty []string\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrStringArray) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tif len(s.Property) > 0 {\n\t\treturn json.Marshal(s.Property)\n\t}\n\tif s.Schema != nil {\n\t\treturn json.Marshal(s.Schema)\n\t}\n\treturn []byte(\"null\"), nil\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrStringArray) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tif len(s.Property) > 0 {\n\t\treturn opts.MarshalNext(enc, s.Property)\n\t}\n\tif s.Schema != nil {\n\t\treturn opts.MarshalNext(enc, s.Schema)\n\t}\n\treturn enc.WriteToken(jsonv2.Null)\n}\n\n// UnmarshalJSON converts this schema object or array from a JSON structure\nfunc (s *SchemaOrStringArray) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tvar first byte\n\tif len(data) > 1 {\n\t\tfirst = data[0]\n\t}\n\tvar nw SchemaOrStringArray\n\tif first == '{' {\n\t\tvar sch Schema\n\t\tif err := json.Unmarshal(data, &sch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnw.Schema = &sch\n\t}\n\tif first == '[' {\n\t\tif err := json.Unmarshal(data, &nw.Property); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s = nw\n\treturn nil\n}\n\nfunc (s *SchemaOrStringArray) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tswitch dec.PeekKind() {\n\tcase '{':\n\t\treturn opts.UnmarshalNext(dec, &s.Schema)\n\tcase '[':\n\t\treturn opts.UnmarshalNext(dec, &s.Property)\n\tdefault:\n\t\t_, err := dec.ReadValue()\n\t\treturn err\n\t}\n}\n\n// Definitions contains the models explicitly defined in this spec\n// An object to hold data types that can be consumed and produced by operations.\n// These data types can be primitives, arrays or models.\n//\n// For more information: http://goo.gl/8us55a#definitionsObject\ntype Definitions map[string]Schema\n\n// SecurityDefinitions a declaration of the security schemes available to be used in the specification.\n// This does not enforce the security schemes on the operations and only serves to provide\n// the relevant details for each scheme.\n//\n// For more information: http://goo.gl/8us55a#securityDefinitionsObject\ntype SecurityDefinitions map[string]*SecurityScheme\n\n// StringOrArray represents a value that can either be a string\n// or an array of strings. Mainly here for serialization purposes\ntype StringOrArray []string\n\n// Contains returns true when the value is contained in the slice\nfunc (s StringOrArray) Contains(value string) bool {\n\tfor _, str := range s {\n\t\tif str == value {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// UnmarshalJSON unmarshals this string or array object from a JSON array or JSON string\nfunc (s *StringOrArray) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tvar first byte\n\tif len(data) > 1 {\n\t\tfirst = data[0]\n\t}\n\n\tif first == '[' {\n\t\tvar parsed []string\n\t\tif err := json.Unmarshal(data, &parsed); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*s = StringOrArray(parsed)\n\t\treturn nil\n\t}\n\n\tvar single interface{}\n\tif err := json.Unmarshal(data, &single); err != nil {\n\t\treturn err\n\t}\n\tif single == nil {\n\t\treturn nil\n\t}\n\tswitch v := single.(type) {\n\tcase string:\n\t\t*s = StringOrArray([]string{v})\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"only string or array is allowed, not %T\", single)\n\t}\n}\n\nfunc (s *StringOrArray) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tswitch k := dec.PeekKind(); k {\n\tcase '[':\n\t\t*s = StringOrArray{}\n\t\treturn opts.UnmarshalNext(dec, (*[]string)(s))\n\tcase '\"':\n\t\t*s = StringOrArray{\"\"}\n\t\treturn opts.UnmarshalNext(dec, &(*s)[0])\n\tcase 'n':\n\t\t// Throw out null token\n\t\t_, _ = dec.ReadToken()\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"expected string or array, not '%v'\", k.String())\n\t}\n}\n\n// MarshalJSON converts this string or array to a JSON array or JSON string\nfunc (s StringOrArray) MarshalJSON() ([]byte, error) {\n\tif len(s) == 1 {\n\t\treturn json.Marshal([]string(s)[0])\n\t}\n\treturn json.Marshal([]string(s))\n}\n\n// SchemaOrArray represents a value that can either be a Schema\n// or an array of Schema. Mainly here for serialization purposes\ntype SchemaOrArray struct {\n\tSchema  *Schema\n\tSchemas []Schema\n}\n\n// Len returns the number of schemas in this property\nfunc (s SchemaOrArray) Len() int {\n\tif s.Schema != nil {\n\t\treturn 1\n\t}\n\treturn len(s.Schemas)\n}\n\n// ContainsType returns true when one of the schemas is of the specified type\nfunc (s *SchemaOrArray) ContainsType(name string) bool {\n\tif s.Schema != nil {\n\t\treturn s.Schema.Type != nil && s.Schema.Type.Contains(name)\n\t}\n\treturn false\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrArray) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tif s.Schemas != nil {\n\t\treturn json.Marshal(s.Schemas)\n\t}\n\treturn json.Marshal(s.Schema)\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrArray) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tif s.Schemas != nil {\n\t\treturn opts.MarshalNext(enc, s.Schemas)\n\t}\n\treturn opts.MarshalNext(enc, s.Schema)\n}\n\n// UnmarshalJSON converts this schema object or array from a JSON structure\nfunc (s *SchemaOrArray) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tvar nw SchemaOrArray\n\tvar first byte\n\tif len(data) > 1 {\n\t\tfirst = data[0]\n\t}\n\tif first == '{' {\n\t\tvar sch Schema\n\t\tif err := json.Unmarshal(data, &sch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnw.Schema = &sch\n\t}\n\tif first == '[' {\n\t\tif err := json.Unmarshal(data, &nw.Schemas); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s = nw\n\treturn nil\n}\n\nfunc (s *SchemaOrArray) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tswitch dec.PeekKind() {\n\tcase '{':\n\t\treturn opts.UnmarshalNext(dec, &s.Schema)\n\tcase '[':\n\t\treturn opts.UnmarshalNext(dec, &s.Schemas)\n\tdefault:\n\t\t_, err := dec.ReadValue()\n\t\treturn err\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/spec/swagger_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n\t\"sigs.k8s.io/randfill\"\n)\n\nvar spec = Swagger{\n\tSwaggerProps: SwaggerProps{\n\t\tID:          \"http://localhost:3849/api-docs\",\n\t\tSwagger:     \"2.0\",\n\t\tConsumes:    []string{\"application/json\", \"application/x-yaml\"},\n\t\tProduces:    []string{\"application/json\"},\n\t\tSchemes:     []string{\"http\", \"https\"},\n\t\tInfo:        &info,\n\t\tHost:        \"some.api.out.there\",\n\t\tBasePath:    \"/\",\n\t\tPaths:       &paths,\n\t\tDefinitions: map[string]Schema{\"Category\": {SchemaProps: SchemaProps{Type: []string{\"string\"}}}},\n\t\tParameters: map[string]Parameter{\n\t\t\t\"categoryParam\": {ParamProps: ParamProps{Name: \"category\", In: \"query\"}, SimpleSchema: SimpleSchema{Type: \"string\"}},\n\t\t},\n\t\tResponses: map[string]Response{\n\t\t\t\"EmptyAnswer\": {\n\t\t\t\tResponseProps: ResponseProps{\n\t\t\t\t\tDescription: \"no data to return for this operation\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tSecurityDefinitions: map[string]*SecurityScheme{\n\t\t\t\"internalApiKey\": &(SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{Type: \"apiKey\", Name: \"api_key\", In: \"header\"}}),\n\t\t},\n\t\tSecurity: []map[string][]string{\n\t\t\t{\"internalApiKey\": {}},\n\t\t},\n\t\tTags:         []Tag{{TagProps: TagProps{Description: \"\", Name: \"pets\", ExternalDocs: nil}}},\n\t\tExternalDocs: &ExternalDocumentation{Description: \"the name\", URL: \"the url\"},\n\t},\n\tVendorExtensible: VendorExtensible{Extensions: map[string]interface{}{\n\t\t\"x-some-extension\": \"vendor\",\n\t\t\"x-schemes\":        []interface{}{\"unix\", \"amqp\"},\n\t}},\n}\n\nconst specJSON = `{\n\t\"id\": \"http://localhost:3849/api-docs\",\n\t\"consumes\": [\"application/json\", \"application/x-yaml\"],\n\t\"produces\": [\"application/json\"],\n\t\"schemes\": [\"http\", \"https\"],\n\t\"swagger\": \"2.0\",\n\t\"info\": {\n\t\t\"contact\": {\n\t\t\t\"name\": \"wordnik api team\",\n\t\t\t\"url\": \"http://developer.wordnik.com\"\n\t\t},\n\t\t\"description\": \"A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0` +\n\t` specification\",\n\t\t\"license\": {\n\t\t\t\"name\": \"Creative Commons 4.0 International\",\n\t\t\t\"url\": \"http://creativecommons.org/licenses/by/4.0/\"\n\t\t},\n\t\t\"termsOfService\": \"http://helloreverb.com/terms/\",\n\t\t\"title\": \"Swagger Sample API\",\n\t\t\"version\": \"1.0.9-abcd\",\n\t\t\"x-framework\": \"go-swagger\"\n\t},\n\t\"host\": \"some.api.out.there\",\n\t\"basePath\": \"/\",\n\t\"paths\": {\"x-framework\":\"go-swagger\",\"/\":{\"$ref\":\"cats\"}},\n\t\"definitions\": { \"Category\": { \"type\": \"string\"} },\n\t\"parameters\": {\n\t\t\"categoryParam\": {\n\t\t\t\"name\": \"category\",\n\t\t\t\"in\": \"query\",\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"responses\": { \"EmptyAnswer\": { \"description\": \"no data to return for this operation\" } },\n\t\"securityDefinitions\": {\n\t\t\"internalApiKey\": {\n\t\t\t\"type\": \"apiKey\",\n\t\t\t\"in\": \"header\",\n\t\t\t\"name\": \"api_key\"\n\t\t}\n\t},\n\t\"security\": [{\"internalApiKey\":[]}],\n\t\"tags\": [{\"name\":\"pets\"}],\n\t\"externalDocs\": {\"description\":\"the name\",\"url\":\"the url\"},\n\t\"x-some-extension\": \"vendor\",\n\t\"x-schemes\": [\"unix\",\"amqp\"]\n}`\n\nfunc TestSwaggerSpec_Serialize(t *testing.T) {\n\texpected := make(map[string]interface{})\n\t_ = json.Unmarshal([]byte(specJSON), &expected)\n\tb, err := spec.MarshalJSON()\n\tif assert.NoError(t, err) {\n\t\tvar actual map[string]interface{}\n\t\terr := json.Unmarshal(b, &actual)\n\t\tif assert.NoError(t, err) {\n\t\t\tassert.EqualValues(t, actual, expected)\n\t\t}\n\t}\n}\n\nfunc TestSwaggerSpec_Deserialize(t *testing.T) {\n\tvar actual Swagger\n\terr := json.Unmarshal([]byte(specJSON), &actual)\n\tif assert.NoError(t, err) {\n\t\tassert.EqualValues(t, actual, spec)\n\t}\n}\n\nfunc TestSwaggerRoundtrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tObject: &Swagger{\n\t\t\t\tVendorExtensible{Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t\tSwaggerProps{\n\t\t\t\t\tSwagger: \"2.0.0\",\n\t\t\t\t},\n\t\t\t},\n\t\t}, {\n\t\t\tName:   \"BasicCase\",\n\t\t\tJSON:   specJSON,\n\t\t\tObject: &spec,\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&Swagger{}))\n\t\t})\n\t}\n}\n\nfunc TestSwaggerSpec_Marshalv2Fuzzed(t *testing.T) {\n\tfuzzer := randfill.\n\t\tNewWithSeed(1646791953).\n\t\tNilChance(0.075).\n\t\tMaxDepth(13).\n\t\tNumElements(1, 2)\n\n\tfuzzer.Funcs(\n\t\tSwaggerFuzzFuncs...,\n\t)\n\n\tfor i := 0; i < 100; i++ {\n\t\tt.Run(fmt.Sprintf(\"%d\", i), func(t *testing.T) {\n\t\t\tswagger := Swagger{}\n\t\t\tfuzzer.Fill(&swagger)\n\n\t\t\tinternal.UseOptimizedJSONMarshaling = false\n\t\t\twant, err := json.Marshal(swagger)\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"failed to marshal swagger: %v\", err)\n\t\t\t}\n\t\t\tinternal.UseOptimizedJSONMarshaling = true\n\t\t\tgot, err := swagger.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"failed to marshal next swagger: %v\", err)\n\t\t\t}\n\t\t\tif err := jsontesting.JsonCompare(want, got); err != nil {\n\t\t\t\tt.Errorf(\"fuzzed marshal doesn't match: %v\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSwaggerSpec_Marshalv2FuzzedIsStable(t *testing.T) {\n\tswagFile, err := os.Open(\"../../schemaconv/testdata/swagger.json\")\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tdefer swagFile.Close()\n\n\tjs, err := io.ReadAll(swagFile)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tswagger := Swagger{}\n\tassert.NoError(t, json.Unmarshal(js, &swagger))\n\n\tfor i := 0; i < 5; i++ {\n\t\tt.Run(fmt.Sprintf(\"%d\", i), func(t *testing.T) {\n\t\t\twant, err := swagger.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"failed to marshal swagger: %v\", err)\n\t\t\t}\n\t\t\tgot, err := swagger.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\tt.Errorf(\"failed to marshal swagger again: %v\", err)\n\t\t\t}\n\t\t\tif err := cmp.Diff(want, got); err != \"\" {\n\t\t\t\tt.Fatalf(\"expected both marshal to be identical/stable: %v\", err)\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestUnmarshalAdditionalProperties(t *testing.T) {\n\tcases := []string{\n\t\t`{}`,\n\t\t`{\"description\": \"the description of this schema\"}`,\n\t\t`false`,\n\t\t`true`,\n\t}\n\n\tfor _, tc := range cases {\n\t\tt.Run(tc, func(t *testing.T) {\n\t\t\tvar v1, v2 SchemaOrBool\n\t\t\tinternal.UseOptimizedJSONUnmarshaling = true\n\t\t\trequire.NoError(t, json.Unmarshal([]byte(tc), &v2))\n\t\t\tinternal.UseOptimizedJSONUnmarshaling = false\n\t\t\trequire.NoError(t, json.Unmarshal([]byte(tc), &v1))\n\t\t\tif !cmp.Equal(v1, v2, SwaggerDiffOptions...) {\n\t\t\t\tt.Fatal(cmp.Diff(v1, v2, SwaggerDiffOptions...))\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc TestSwaggerSpec_ExperimentalUnmarshal(t *testing.T) {\n\tfuzzer := randfill.\n\t\tNewWithSeed(1646791953).\n\t\tNilChance(0.01).\n\t\tMaxDepth(10).\n\t\tNumElements(1, 2)\n\n\tfuzzer.Funcs(\n\t\tSwaggerFuzzFuncs...,\n\t)\n\n\texpected := Swagger{}\n\tfuzzer.Fill(&expected)\n\n\t// Serialize into JSON\n\tjsonBytes, err := json.Marshal(expected)\n\trequire.NoError(t, err)\n\n\tt.Log(\"Specimen\", string(jsonBytes))\n\n\tactual := Swagger{}\n\tinternal.UseOptimizedJSONUnmarshaling = true\n\n\terr = json.Unmarshal(jsonBytes, &actual)\n\trequire.NoError(t, err)\n\n\tif !cmp.Equal(expected, actual, SwaggerDiffOptions...) {\n\t\tt.Fatal(cmp.Diff(expected, actual, SwaggerDiffOptions...))\n\t}\n\n\tcontrol := Swagger{}\n\tinternal.UseOptimizedJSONUnmarshaling = false\n\terr = json.Unmarshal(jsonBytes, &control)\n\trequire.NoError(t, err)\n\n\tif !reflect.DeepEqual(control, actual) {\n\t\tt.Fatal(cmp.Diff(control, actual, SwaggerDiffOptions...))\n\t}\n}\n\nfunc BenchmarkSwaggerSpec_ExperimentalUnmarshal(b *testing.B) {\n\t// Download kube-openapi swagger json\n\tswagFile, err := os.Open(\"../../schemaconv/testdata/swagger.json\")\n\tif err != nil {\n\t\tb.Fatal(err)\n\t}\n\tdefer swagFile.Close()\n\n\toriginalJSON, err := io.ReadAll(swagFile)\n\tif err != nil {\n\t\tb.Fatal(err)\n\t}\n\n\tb.ResetTimer()\n\n\t// Parse into kube-openapi types\n\tb.Run(\"jsonv1\", func(b2 *testing.B) {\n\t\tinternal.UseOptimizedJSONUnmarshaling = false\n\t\tfor i := 0; i < b2.N; i++ {\n\t\t\tvar result *Swagger\n\t\t\tif err := json.Unmarshal(originalJSON, &result); err != nil {\n\t\t\t\tb2.Fatal(err)\n\t\t\t}\n\t\t}\n\t})\n\n\tb.Run(\"jsonv2 via jsonv1\", func(b2 *testing.B) {\n\t\tinternal.UseOptimizedJSONUnmarshaling = true\n\t\tfor i := 0; i < b2.N; i++ {\n\t\t\tvar result *Swagger\n\t\t\tif err := json.Unmarshal(originalJSON, &result); err != nil {\n\t\t\t\tb2.Fatal(err)\n\t\t\t}\n\t\t}\n\t})\n\n\t// Our UnmarshalJSON implementation which defers to jsonv2 causes the\n\t// text to be parsed/validated twice. This costs a significant amount of time.\n\tb.Run(\"jsonv2\", func(b2 *testing.B) {\n\t\tinternal.UseOptimizedJSONUnmarshaling = true\n\t\tfor i := 0; i < b2.N; i++ {\n\t\t\tvar result Swagger\n\t\t\tif err := result.UnmarshalJSON(originalJSON); err != nil {\n\t\t\t\tb2.Fatal(err)\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc BenchmarkSwaggerSpec_ExperimentalMarshal(b *testing.B) {\n\t// Load kube-openapi swagger json\n\tswagFile, err := os.Open(\"../../schemaconv/testdata/swagger.json\")\n\tif err != nil {\n\t\tb.Fatal(err)\n\t}\n\tdefer swagFile.Close()\n\n\toriginalJSON, err := io.ReadAll(swagFile)\n\tif err != nil {\n\t\tb.Fatal(err)\n\t}\n\n\tvar swagger *Swagger\n\tif err := json.Unmarshal(originalJSON, &swagger); err != nil {\n\t\tb.Fatal(err)\n\t}\n\n\tb.ResetTimer()\n\n\t// Serialize kube-openapi types\n\tb.Run(\"jsonv1\", func(b2 *testing.B) {\n\t\tb2.ReportAllocs()\n\t\tinternal.UseOptimizedJSONMarshaling = false\n\t\tfor i := 0; i < b2.N; i++ {\n\t\t\tif _, err = json.Marshal(swagger); err != nil {\n\t\t\t\tb2.Fatal(err)\n\t\t\t}\n\t\t}\n\t})\n\n\tb.Run(\"jsonv2 via jsonv1\", func(b2 *testing.B) {\n\t\tb2.ReportAllocs()\n\t\tinternal.UseOptimizedJSONMarshaling = true\n\t\tfor i := 0; i < b2.N; i++ {\n\t\t\tif _, err := json.Marshal(swagger); err != nil {\n\t\t\t\tb2.Fatal(err)\n\t\t\t}\n\t\t}\n\t})\n\n\tb.Run(\"jsonv2\", func(b2 *testing.B) {\n\t\tb2.ReportAllocs()\n\t\tinternal.UseOptimizedJSONUnmarshaling = true\n\t\tfor i := 0; i < b2.N; i++ {\n\t\t\tif _, err = swagger.MarshalJSON(); err != nil {\n\t\t\t\tb2.Fatal(err)\n\t\t\t}\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "pkg/validation/spec/tag.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// TagProps describe a tag entry in the top level tags section of a swagger spec\ntype TagProps struct {\n\tDescription  string                 `json:\"description,omitempty\"`\n\tName         string                 `json:\"name,omitempty\"`\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n}\n\n// Tag allows adding meta data to a single tag that is used by the\n// [Operation Object](http://goo.gl/8us55a#operationObject).\n// It is not mandatory to have a Tag Object per tag used there.\n//\n// For more information: http://goo.gl/8us55a#tagObject\ntype Tag struct {\n\tVendorExtensible\n\tTagProps\n}\n\n// MarshalJSON marshal this to JSON\nfunc (t Tag) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(t)\n\t}\n\tb1, err := json.Marshal(t.TagProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(t.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (t Tag) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tTagProps\n\t}\n\tx.Extensions = internal.SanitizeExtensions(t.Extensions)\n\tx.TagProps = t.TagProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (t *Tag) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, t)\n\t}\n\n\tif err := json.Unmarshal(data, &t.TagProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &t.VendorExtensible)\n}\n\nfunc (t *Tag) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tTagProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tt.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tt.TagProps = x.TagProps\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/validation/spec/tag_test.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/require\"\n\tjsontesting \"k8s.io/kube-openapi/pkg/util/jsontesting\"\n)\n\nfunc TestTagRoundtrip(t *testing.T) {\n\tcases := []jsontesting.RoundTripTestCase{\n\t\t{\n\t\t\t// Show at least one field from each embededd struct sitll allows\n\t\t\t// roundtrips successfully\n\t\t\tName: \"UnmarshalEmbedded\",\n\t\t\tJSON: `{\n\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t\"description\": \"this is a description\"\n\t\t\t}`,\n\t\t\tObject: &Tag{\n\t\t\t\tVendorExtensible{Extensions: Extensions{\n\t\t\t\t\t\"x-framework\": \"go-swagger\",\n\t\t\t\t}},\n\t\t\t\tTagProps{\n\t\t\t\t\tDescription: \"this is a description\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tcase := range cases {\n\t\tt.Run(tcase.Name, func(t *testing.T) {\n\t\t\trequire.NoError(t, tcase.RoundTripTest(&Tag{}))\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/.github/CONTRIBUTING.md",
    "content": "## Contribution Guidelines\n\n### Pull requests are always welcome\n\nWe are always thrilled to receive pull requests, and do our best to\nprocess them as fast as possible. Not sure if that typo is worth a pull\nrequest? Do it! We will appreciate it.\n\nIf your pull request is not accepted on the first try, don't be\ndiscouraged! If there's a problem with the implementation, hopefully you\nreceived feedback on what to improve.\n\nWe're trying very hard to keep go-swagger lean and focused. We don't want it\nto do everything for everybody. This means that we might decide against\nincorporating a new feature. However, there might be a way to implement\nthat feature *on top of* go-swagger.\n\n\n### Conventions\n\nFork the repo and make changes on your fork in a feature branch:\n\n- If it's a bugfix branch, name it XXX-something where XXX is the number of the\n  issue\n- If it's a feature branch, create an enhancement issue to announce your\n  intentions, and name it XXX-something where XXX is the number of the issue.\n\nSubmit unit tests for your changes.  Go has a great test framework built in; use\nit! Take a look at existing tests for inspiration. Run the full test suite on\nyour branch before submitting a pull request.\n\nUpdate the documentation when creating or modifying features. Test\nyour documentation changes for clarity, concision, and correctness, as\nwell as a clean documentation build. See ``docs/README.md`` for more\ninformation on building the docs and how docs get released.\n\nWrite clean code. Universally formatted code promotes ease of writing, reading,\nand maintenance. Always run `gofmt -s -w file.go` on each changed file before\ncommitting your changes. Most editors have plugins that do this automatically.\n\nPull requests descriptions should be as clear as possible and include a\nreference to all the issues that they address.\n\nPull requests must not contain commits from other users or branches.\n\nCommit messages must start with a capitalized and short summary (max. 50\nchars) written in the imperative, followed by an optional, more detailed\nexplanatory text which is separated from the summary by an empty line.\n\nCode review comments may be added to your pull request. Discuss, then make the\nsuggested modifications and push additional commits to your feature branch. Be\nsure to post a comment after pushing. The new commits will show up in the pull\nrequest automatically, but the reviewers will not be notified unless you\ncomment.\n\nBefore the pull request is merged, make sure that you squash your commits into\nlogical units of work using `git rebase -i` and `git push -f`. After every\ncommit the test suite should be passing. Include documentation changes in the\nsame commit so that a revert would remove all traces of the feature or fix.\n\nCommits that fix or close an issue should include a reference like `Closes #XXX`\nor `Fixes #XXX`, which will automatically close the issue when merged.\n\n### Sign your work\n\nThe sign-off is a simple line at the end of the explanation for the\npatch, which certifies that you wrote it or otherwise have the right to\npass it on as an open-source patch.  The rules are pretty simple: if you\ncan certify the below (from\n[developercertificate.org](http://developercertificate.org/)):\n\n```\nDeveloper Certificate of Origin\nVersion 1.1\n\nCopyright (C) 2004, 2006 The Linux Foundation and its contributors.\n660 York Street, Suite 102,\nSan Francisco, CA 94110 USA\n\nEveryone is permitted to copy and distribute verbatim copies of this\nlicense document, but changing it is not allowed.\n\n\nDeveloper's Certificate of Origin 1.1\n\nBy making a contribution to this project, I certify that:\n\n(a) The contribution was created in whole or in part by me and I\n    have the right to submit it under the open source license\n    indicated in the file; or\n\n(b) The contribution is based upon previous work that, to the best\n    of my knowledge, is covered under an appropriate open source\n    license and I have the right under that license to submit that\n    work with modifications, whether created in whole or in part\n    by me, under the same open source license (unless I am\n    permitted to submit under a different license), as indicated\n    in the file; or\n\n(c) The contribution was provided directly to me by some other\n    person who certified (a), (b) or (c) and I have not modified\n    it.\n\n(d) I understand and agree that this project and the contribution\n    are public and that a record of the contribution (including all\n    personal information I submit with it, including my sign-off) is\n    maintained indefinitely and may be redistributed consistent with\n    this project or the open source license(s) involved.\n```\n\nthen you just add a line to every git commit message:\n\n    Signed-off-by: Joe Smith <joe@gmail.com>\n\nusing your real name (sorry, no pseudonyms or anonymous contributions.)\n\nYou can add the sign off when creating the git commit via `git commit -s`.\n"
  },
  {
    "path": "pkg/validation/strfmt/.gitignore",
    "content": "secrets.yml\ncoverage.out\n"
  },
  {
    "path": "pkg/validation/strfmt/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "pkg/validation/strfmt/bson/objectid.go",
    "content": "// Copyright (C) MongoDB, Inc. 2017-present.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\"); you may\n// not use this file except in compliance with the License. You may obtain\n// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n//\n// Based on gopkg.in/mgo.v2/bson by Gustavo Niemeyer\n// See THIRD-PARTY-NOTICES for original license terms.\n\npackage bson\n\nimport (\n\t\"bytes\"\n\t\"encoding/hex\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n)\n\n// ErrInvalidHex indicates that a hex string cannot be converted to an ObjectID.\nvar ErrInvalidHex = errors.New(\"the provided hex string is not a valid ObjectID\")\n\n// ObjectID is the BSON ObjectID type.\ntype ObjectID [12]byte\n\n// NilObjectID is the zero value for ObjectID.\nvar NilObjectID ObjectID\n\n// Hex returns the hex encoding of the ObjectID as a string.\nfunc (id ObjectID) Hex() string {\n\treturn hex.EncodeToString(id[:])\n}\n\nfunc (id ObjectID) String() string {\n\treturn fmt.Sprintf(\"ObjectID(%q)\", id.Hex())\n}\n\n// IsZero returns true if id is the empty ObjectID.\nfunc (id ObjectID) IsZero() bool {\n\treturn bytes.Equal(id[:], NilObjectID[:])\n}\n\n// ObjectIDFromHex creates a new ObjectID from a hex string. It returns an error if the hex string is not a\n// valid ObjectID.\nfunc ObjectIDFromHex(s string) (ObjectID, error) {\n\tb, err := hex.DecodeString(s)\n\tif err != nil {\n\t\treturn NilObjectID, err\n\t}\n\n\tif len(b) != 12 {\n\t\treturn NilObjectID, ErrInvalidHex\n\t}\n\n\tvar oid [12]byte\n\tcopy(oid[:], b[:])\n\n\treturn oid, nil\n}\n\n// MarshalJSON returns the ObjectID as a string\nfunc (id ObjectID) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(id.Hex())\n}\n\n// UnmarshalJSON populates the byte slice with the ObjectID. If the byte slice is 24 bytes long, it\n// will be populated with the hex representation of the ObjectID. If the byte slice is twelve bytes\n// long, it will be populated with the BSON representation of the ObjectID. This method also accepts empty strings and\n// decodes them as NilObjectID. For any other inputs, an error will be returned.\nfunc (id *ObjectID) UnmarshalJSON(b []byte) error {\n\t// Ignore \"null\" to keep parity with the standard library. Decoding a JSON null into a non-pointer ObjectID field\n\t// will leave the field unchanged. For pointer values, encoding/json will set the pointer to nil and will not\n\t// enter the UnmarshalJSON hook.\n\tif string(b) == \"null\" {\n\t\treturn nil\n\t}\n\n\tvar err error\n\tswitch len(b) {\n\tcase 12:\n\t\tcopy(id[:], b)\n\tdefault:\n\t\t// Extended JSON\n\t\tvar res interface{}\n\t\terr := json.Unmarshal(b, &res)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstr, ok := res.(string)\n\t\tif !ok {\n\t\t\tm, ok := res.(map[string]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn errors.New(\"not an extended JSON ObjectID\")\n\t\t\t}\n\t\t\toid, ok := m[\"$oid\"]\n\t\t\tif !ok {\n\t\t\t\treturn errors.New(\"not an extended JSON ObjectID\")\n\t\t\t}\n\t\t\tstr, ok = oid.(string)\n\t\t\tif !ok {\n\t\t\t\treturn errors.New(\"not an extended JSON ObjectID\")\n\t\t\t}\n\t\t}\n\n\t\t// An empty string is not a valid ObjectID, but we treat it as a special value that decodes as NilObjectID.\n\t\tif len(str) == 0 {\n\t\t\tcopy(id[:], NilObjectID[:])\n\t\t\treturn nil\n\t\t}\n\n\t\tif len(str) != 24 {\n\t\t\treturn fmt.Errorf(\"cannot unmarshal into an ObjectID, the length must be 24 but it is %d\", len(str))\n\t\t}\n\n\t\t_, err = hex.Decode(id[:], []byte(str))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn err\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/bson.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\tbsonprim \"k8s.io/kube-openapi/pkg/validation/strfmt/bson\"\n)\n\nfunc init() {\n\tvar id ObjectId\n\t// register this format in the default registry\n\tDefault.Add(\"bsonobjectid\", &id, IsBSONObjectID)\n}\n\n// IsBSONObjectID returns true when the string is a valid BSON.ObjectId\nfunc IsBSONObjectID(str string) bool {\n\t_, err := bsonprim.ObjectIDFromHex(str)\n\treturn err == nil\n}\n\n// ObjectId represents a BSON object ID (alias to go.mongodb.org/mongo-driver/bson/primitive.ObjectID)\n//\n// swagger:strfmt bsonobjectid\ntype ObjectId bsonprim.ObjectID\n\n// NewObjectId creates a ObjectId from a Hex String\nfunc NewObjectId(hex string) ObjectId {\n\toid, err := bsonprim.ObjectIDFromHex(hex)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn ObjectId(oid)\n}\n\n// MarshalText turns this instance into text\nfunc (id ObjectId) MarshalText() ([]byte, error) {\n\toid := bsonprim.ObjectID(id)\n\tif oid == bsonprim.NilObjectID {\n\t\treturn nil, nil\n\t}\n\treturn []byte(oid.Hex()), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (id *ObjectId) UnmarshalText(data []byte) error { // validation is performed later on\n\tif len(data) == 0 {\n\t\t*id = ObjectId(bsonprim.NilObjectID)\n\t\treturn nil\n\t}\n\toidstr := string(data)\n\toid, err := bsonprim.ObjectIDFromHex(oidstr)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*id = ObjectId(oid)\n\treturn nil\n}\n\nfunc (id ObjectId) String() string {\n\treturn bsonprim.ObjectID(id).String()\n}\n\n// MarshalJSON returns the ObjectId as JSON\nfunc (id ObjectId) MarshalJSON() ([]byte, error) {\n\treturn bsonprim.ObjectID(id).MarshalJSON()\n}\n\n// UnmarshalJSON sets the ObjectId from JSON\nfunc (id *ObjectId) UnmarshalJSON(data []byte) error {\n\tvar obj bsonprim.ObjectID\n\tif err := obj.UnmarshalJSON(data); err != nil {\n\t\treturn err\n\t}\n\t*id = ObjectId(obj)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (id *ObjectId) DeepCopyInto(out *ObjectId) {\n\t*out = *id\n}\n\n// DeepCopy copies the receiver into a new ObjectId.\nfunc (id *ObjectId) DeepCopy() *ObjectId {\n\tif id == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectId)\n\tid.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/bson_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestBSONObjectId_fullCycle(t *testing.T) {\n\tid := NewObjectId(\"507f1f77bcf86cd799439011\")\n\tbytes, err := id.MarshalText()\n\tassert.NoError(t, err)\n\n\tvar idCopy ObjectId\n\n\terr = idCopy.UnmarshalText(bytes)\n\tassert.NoError(t, err)\n\tassert.Equal(t, id, idCopy)\n\n\tjsonBytes, err := id.MarshalJSON()\n\tassert.NoError(t, err)\n\n\terr = idCopy.UnmarshalJSON(jsonBytes)\n\tassert.NoError(t, err)\n\tassert.Equal(t, id, idCopy)\n}\n\nfunc TestDeepCopyObjectId(t *testing.T) {\n\tid := NewObjectId(\"507f1f77bcf86cd799439011\")\n\tin := &id\n\n\tout := new(ObjectId)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *ObjectId\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/date.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"encoding/json\"\n\t\"time\"\n)\n\nfunc init() {\n\td := Date{}\n\t// register this format in the default registry\n\tDefault.Add(\"date\", &d, IsDate)\n}\n\n// IsDate returns true when the string is a valid date\nfunc IsDate(str string) bool {\n\t_, err := time.Parse(RFC3339FullDate, str)\n\treturn err == nil\n}\n\nconst (\n\t// RFC3339FullDate represents a full-date as specified by RFC3339\n\t// See: http://goo.gl/xXOvVd\n\tRFC3339FullDate = \"2006-01-02\"\n)\n\n// Date represents a date from the API\n//\n// swagger:strfmt date\ntype Date time.Time\n\n// String converts this date into a string\nfunc (d Date) String() string {\n\treturn time.Time(d).Format(RFC3339FullDate)\n}\n\n// UnmarshalText parses a text representation into a date type\nfunc (d *Date) UnmarshalText(text []byte) error {\n\tif len(text) == 0 {\n\t\treturn nil\n\t}\n\tdd, err := time.Parse(RFC3339FullDate, string(text))\n\tif err != nil {\n\t\treturn err\n\t}\n\t*d = Date(dd)\n\treturn nil\n}\n\n// MarshalText serializes this date type to string\nfunc (d Date) MarshalText() ([]byte, error) {\n\treturn []byte(d.String()), nil\n}\n\n// MarshalJSON returns the Date as JSON\nfunc (d Date) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(time.Time(d).Format(RFC3339FullDate))\n}\n\n// UnmarshalJSON sets the Date from JSON\nfunc (d *Date) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar strdate string\n\tif err := json.Unmarshal(data, &strdate); err != nil {\n\t\treturn err\n\t}\n\ttt, err := time.Parse(RFC3339FullDate, strdate)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*d = Date(tt)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (d *Date) DeepCopyInto(out *Date) {\n\t*out = *d\n}\n\n// DeepCopy copies the receiver into a new Date.\nfunc (d *Date) DeepCopy() *Date {\n\tif d == nil {\n\t\treturn nil\n\t}\n\tout := new(Date)\n\td.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/date_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestDate(t *testing.T) {\n\tpp := Date{}\n\terr := pp.UnmarshalText([]byte{})\n\tassert.NoError(t, err)\n\terr = pp.UnmarshalText([]byte(\"yada\"))\n\tassert.Error(t, err)\n\n\torig := \"2014-12-15\"\n\tbj := []byte(\"\\\"\" + orig + \"\\\"\")\n\terr = pp.UnmarshalText([]byte(orig))\n\tassert.NoError(t, err)\n\n\ttxt, err := pp.MarshalText()\n\tassert.NoError(t, err)\n\tassert.Equal(t, orig, string(txt))\n\n\terr = pp.UnmarshalJSON(bj)\n\tassert.NoError(t, err)\n\tassert.EqualValues(t, orig, pp.String())\n\n\terr = pp.UnmarshalJSON([]byte(`\"1972/01/01\"`))\n\tassert.Error(t, err)\n\n\tb, err := pp.MarshalJSON()\n\tassert.NoError(t, err)\n\tassert.Equal(t, bj, b)\n\n\tvar dateZero Date\n\terr = dateZero.UnmarshalJSON([]byte(jsonNull))\n\tassert.NoError(t, err)\n\tassert.Equal(t, Date{}, dateZero)\n}\n\nfunc TestDate_IsDate(t *testing.T) {\n\ttests := []struct {\n\t\tvalue string\n\t\tvalid bool\n\t}{\n\t\t{\"2017-12-22\", true},\n\t\t{\"2017-1-1\", false},\n\t\t{\"17-13-22\", false},\n\t\t{\"2017-02-29\", false}, // not a valid date : 2017 is not a leap year\n\t\t{\"1900-02-29\", false}, // not a valid date : 1900 is not a leap year\n\t\t{\"2100-02-29\", false}, // not a valid date : 2100 is not a leap year\n\t\t{\"2000-02-29\", true},  // a valid date : 2000 is a leap year\n\t\t{\"2400-02-29\", true},  // a valid date : 2000 is a leap year\n\t\t{\"2017-13-22\", false},\n\t\t{\"2017-12-32\", false},\n\t\t{\"20171-12-32\", false},\n\t\t{\"YYYY-MM-DD\", false},\n\t\t{\"20-17-2017\", false},\n\t\t{\"2017-12-22T01:02:03Z\", false},\n\t}\n\tfor _, test := range tests {\n\t\tassert.Equal(t, test.valid, IsDate(test.value), \"value [%s] should be valid: [%t]\", test.value, test.valid)\n\t}\n}\n\nfunc TestDeepCopyDate(t *testing.T) {\n\tref := time.Now().Truncate(24 * time.Hour).UTC()\n\tdate := Date(ref)\n\tin := &date\n\n\tout := new(Date)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *Date\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/default.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"net/mail\"\n\t\"regexp\"\n\t\"strings\"\n\n\tnetutils \"k8s.io/utils/net\"\n\n\t\"k8s.io/kube-openapi/pkg/internal/third_party/govalidator\"\n)\n\nconst (\n\t// HostnamePattern http://json-schema.org/latest/json-schema-validation.html#anchor114\n\t//  A string instance is valid against this attribute if it is a valid\n\t//  representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034].\n\t//  http://tools.ietf.org/html/rfc1034#section-3.5\n\t//  <digit> ::= any one of the ten digits 0 through 9\n\t//  var digit = /[0-9]/;\n\t//  <letter> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case\n\t//  var letter = /[a-zA-Z]/;\n\t//  <let-dig> ::= <letter> | <digit>\n\t//  var letDig = /[0-9a-zA-Z]/;\n\t//  <let-dig-hyp> ::= <let-dig> | \"-\"\n\t//  var letDigHyp = /[-0-9a-zA-Z]/;\n\t//  <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>\n\t//  var ldhStr = /[-0-9a-zA-Z]+/;\n\t//  <label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]\n\t//  var label = /[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?/;\n\t//  <subdomain> ::= <label> | <subdomain> \".\" <label>\n\t//  var subdomain = /^[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?(\\.[a-zA-Z](([-0-9a-zA-Z]+)?[0-9a-zA-Z])?)*$/;\n\t//  <domain> ::= <subdomain> | \" \"\n\t//\n\t// Additional validations:\n\t//   - for FDQNs, top-level domain (e.g. \".com\"), is at least to letters long (no special characters here)\n\t//   - hostnames may start with a digit [RFC1123]\n\t//   - special registered names with an underscore ('_') are not allowed in this context\n\t//   - dashes are permitted, but not at the start or the end of a segment\n\t//   - long top-level domain names (e.g. example.london) are permitted\n\t//   - symbol unicode points are permitted (e.g. emoji) (not for top-level domain)\n\tHostnamePattern = `^([a-zA-Z0-9\\p{S}\\p{L}]((-?[a-zA-Z0-9\\p{S}\\p{L}]{0,62})?)|([a-zA-Z0-9\\p{S}\\p{L}](([a-zA-Z0-9-\\p{S}\\p{L}]{0,61}[a-zA-Z0-9\\p{S}\\p{L}])?)(\\.)){1,}([a-zA-Z\\p{L}]){2,63})$`\n\t// UUIDPattern Regex for UUID that allows uppercase\n\tUUIDPattern = `(?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$`\n\t// UUID3Pattern Regex for UUID3 that allows uppercase\n\tUUID3Pattern = `(?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$`\n\t// UUID4Pattern Regex for UUID4 that allows uppercase\n\tUUID4Pattern = `(?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$`\n\t// UUID5Pattern Regex for UUID5 that allows uppercase\n\tUUID5Pattern = `(?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$`\n\t// json null type\n\tjsonNull = \"null\"\n)\n\nvar (\n\trxHostname = regexp.MustCompile(HostnamePattern)\n\trxUUID     = regexp.MustCompile(UUIDPattern)\n\trxUUID3    = regexp.MustCompile(UUID3Pattern)\n\trxUUID4    = regexp.MustCompile(UUID4Pattern)\n\trxUUID5    = regexp.MustCompile(UUID5Pattern)\n)\n\n// IsHostname returns true when the string is a valid hostname\nfunc IsHostname(str string) bool {\n\tif !rxHostname.MatchString(str) {\n\t\treturn false\n\t}\n\n\t// the sum of all label octets and label lengths is limited to 255.\n\tif len(str) > 255 {\n\t\treturn false\n\t}\n\n\t// Each node has a label, which is zero to 63 octets in length\n\tparts := strings.Split(str, \".\")\n\tvalid := true\n\tfor _, p := range parts {\n\t\tif len(p) > 63 {\n\t\t\tvalid = false\n\t\t}\n\t}\n\treturn valid\n}\n\n// IsUUID returns true is the string matches a UUID, upper case is allowed\nfunc IsUUID(str string) bool {\n\treturn rxUUID.MatchString(str)\n}\n\n// IsUUID3 returns true is the string matches a UUID, upper case is allowed\nfunc IsUUID3(str string) bool {\n\treturn rxUUID3.MatchString(str)\n}\n\n// IsUUID4 returns true is the string matches a UUID, upper case is allowed\nfunc IsUUID4(str string) bool {\n\treturn rxUUID4.MatchString(str)\n}\n\n// IsUUID5 returns true is the string matches a UUID, upper case is allowed\nfunc IsUUID5(str string) bool {\n\treturn rxUUID5.MatchString(str)\n}\n\n// IsEmail validates an email address.\nfunc IsEmail(str string) bool {\n\taddr, e := mail.ParseAddress(str)\n\treturn e == nil && addr.Address != \"\"\n}\n\nfunc init() {\n\t// register formats in the default registry:\n\t//   - byte\n\t//   - creditcard\n\t//   - email\n\t//   - hexcolor\n\t//   - hostname\n\t//   - ipv4\n\t//   - ipv6\n\t//   - cidr\n\t//   - isbn\n\t//   - isbn10\n\t//   - isbn13\n\t//   - mac\n\t//   - password\n\t//   - rgbcolor\n\t//   - ssn\n\t//   - uri\n\t//   - uuid\n\t//   - uuid3\n\t//   - uuid4\n\t//   - uuid5\n\tu := URI(\"\")\n\tDefault.Add(\"uri\", &u, govalidator.IsRequestURI)\n\n\teml := Email(\"\")\n\tDefault.Add(\"email\", &eml, IsEmail)\n\n\thn := Hostname(\"\")\n\tDefault.Add(\"hostname\", &hn, IsHostname)\n\n\tip4 := IPv4(\"\")\n\tDefault.Add(\"ipv4\", &ip4, isIPv4)\n\n\tip6 := IPv6(\"\")\n\tDefault.Add(\"ipv6\", &ip6, govalidator.IsIPv6)\n\n\tcidr := CIDR(\"\")\n\tDefault.Add(\"cidr\", &cidr, isCIDR)\n\n\tmac := MAC(\"\")\n\tDefault.Add(\"mac\", &mac, govalidator.IsMAC)\n\n\tuid := UUID(\"\")\n\tDefault.Add(\"uuid\", &uid, IsUUID)\n\n\tuid3 := UUID3(\"\")\n\tDefault.Add(\"uuid3\", &uid3, IsUUID3)\n\n\tuid4 := UUID4(\"\")\n\tDefault.Add(\"uuid4\", &uid4, IsUUID4)\n\n\tuid5 := UUID5(\"\")\n\tDefault.Add(\"uuid5\", &uid5, IsUUID5)\n\n\tisbn := ISBN(\"\")\n\tDefault.Add(\"isbn\", &isbn, func(str string) bool { return govalidator.IsISBN10(str) || govalidator.IsISBN13(str) })\n\n\tisbn10 := ISBN10(\"\")\n\tDefault.Add(\"isbn10\", &isbn10, govalidator.IsISBN10)\n\n\tisbn13 := ISBN13(\"\")\n\tDefault.Add(\"isbn13\", &isbn13, govalidator.IsISBN13)\n\n\tcc := CreditCard(\"\")\n\tDefault.Add(\"creditcard\", &cc, govalidator.IsCreditCard)\n\n\tssn := SSN(\"\")\n\tDefault.Add(\"ssn\", &ssn, govalidator.IsSSN)\n\n\thc := HexColor(\"\")\n\tDefault.Add(\"hexcolor\", &hc, govalidator.IsHexcolor)\n\n\trc := RGBColor(\"\")\n\tDefault.Add(\"rgbcolor\", &rc, govalidator.IsRGBcolor)\n\n\tb64 := Base64([]byte(nil))\n\tDefault.Add(\"byte\", &b64, govalidator.IsBase64)\n\n\tpw := Password(\"\")\n\tDefault.Add(\"password\", &pw, func(_ string) bool { return true })\n}\n\n// isIPv4 checks if the string is an IPv4 address, tolerating leading 0's for compatibility with go < 1.17.\nfunc isIPv4(s string) bool {\n\tip := netutils.ParseIPSloppy(s)\n\treturn ip != nil && strings.Contains(s, \".\")\n}\n\n// isCIDR checks if the string is valid CIDR notation, tolerating leading 0's for compatibility with go < 1.17.\nfunc isCIDR(s string) bool {\n\t_, _, err := netutils.ParseCIDRSloppy(s)\n\treturn err == nil\n}\n\n// Base64 represents a base64 encoded string, using URLEncoding alphabet\n//\n// swagger:strfmt byte\ntype Base64 []byte\n\n// MarshalText turns this instance into text\nfunc (b Base64) MarshalText() ([]byte, error) {\n\tenc := base64.URLEncoding\n\tsrc := []byte(b)\n\tbuf := make([]byte, enc.EncodedLen(len(src)))\n\tenc.Encode(buf, src)\n\treturn buf, nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (b *Base64) UnmarshalText(data []byte) error { // validation is performed later on\n\tenc := base64.URLEncoding\n\tdbuf := make([]byte, enc.DecodedLen(len(data)))\n\n\tn, err := enc.Decode(dbuf, data)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*b = dbuf[:n]\n\treturn nil\n}\n\nfunc (b Base64) String() string {\n\treturn base64.StdEncoding.EncodeToString([]byte(b))\n}\n\n// MarshalJSON returns the Base64 as JSON\nfunc (b Base64) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(b.String())\n}\n\n// UnmarshalJSON sets the Base64 from JSON\nfunc (b *Base64) UnmarshalJSON(data []byte) error {\n\tvar b64str string\n\tif err := json.Unmarshal(data, &b64str); err != nil {\n\t\treturn err\n\t}\n\tvb, err := base64.StdEncoding.DecodeString(b64str)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*b = Base64(vb)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (b *Base64) DeepCopyInto(out *Base64) {\n\t*out = *b\n}\n\n// DeepCopy copies the receiver into a new Base64.\nfunc (b *Base64) DeepCopy() *Base64 {\n\tif b == nil {\n\t\treturn nil\n\t}\n\tout := new(Base64)\n\tb.DeepCopyInto(out)\n\treturn out\n}\n\n// URI represents the uri string format as specified by the json schema spec\n//\n// swagger:strfmt uri\ntype URI string\n\n// MarshalText turns this instance into text\nfunc (u URI) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *URI) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = URI(string(data))\n\treturn nil\n}\n\nfunc (u URI) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the URI as JSON\nfunc (u URI) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the URI from JSON\nfunc (u *URI) UnmarshalJSON(data []byte) error {\n\tvar uristr string\n\tif err := json.Unmarshal(data, &uristr); err != nil {\n\t\treturn err\n\t}\n\t*u = URI(uristr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *URI) DeepCopyInto(out *URI) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new URI.\nfunc (u *URI) DeepCopy() *URI {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(URI)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// Email represents the email string format as specified by the json schema spec\n//\n// swagger:strfmt email\ntype Email string\n\n// MarshalText turns this instance into text\nfunc (e Email) MarshalText() ([]byte, error) {\n\treturn []byte(string(e)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (e *Email) UnmarshalText(data []byte) error { // validation is performed later on\n\t*e = Email(string(data))\n\treturn nil\n}\n\nfunc (e Email) String() string {\n\treturn string(e)\n}\n\n// MarshalJSON returns the Email as JSON\nfunc (e Email) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(e))\n}\n\n// UnmarshalJSON sets the Email from JSON\nfunc (e *Email) UnmarshalJSON(data []byte) error {\n\tvar estr string\n\tif err := json.Unmarshal(data, &estr); err != nil {\n\t\treturn err\n\t}\n\t*e = Email(estr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (e *Email) DeepCopyInto(out *Email) {\n\t*out = *e\n}\n\n// DeepCopy copies the receiver into a new Email.\nfunc (e *Email) DeepCopy() *Email {\n\tif e == nil {\n\t\treturn nil\n\t}\n\tout := new(Email)\n\te.DeepCopyInto(out)\n\treturn out\n}\n\n// Hostname represents the hostname string format as specified by the json schema spec\n//\n// swagger:strfmt hostname\ntype Hostname string\n\n// MarshalText turns this instance into text\nfunc (h Hostname) MarshalText() ([]byte, error) {\n\treturn []byte(string(h)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (h *Hostname) UnmarshalText(data []byte) error { // validation is performed later on\n\t*h = Hostname(string(data))\n\treturn nil\n}\n\nfunc (h Hostname) String() string {\n\treturn string(h)\n}\n\n// MarshalJSON returns the Hostname as JSON\nfunc (h Hostname) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(h))\n}\n\n// UnmarshalJSON sets the Hostname from JSON\nfunc (h *Hostname) UnmarshalJSON(data []byte) error {\n\tvar hstr string\n\tif err := json.Unmarshal(data, &hstr); err != nil {\n\t\treturn err\n\t}\n\t*h = Hostname(hstr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (h *Hostname) DeepCopyInto(out *Hostname) {\n\t*out = *h\n}\n\n// DeepCopy copies the receiver into a new Hostname.\nfunc (h *Hostname) DeepCopy() *Hostname {\n\tif h == nil {\n\t\treturn nil\n\t}\n\tout := new(Hostname)\n\th.DeepCopyInto(out)\n\treturn out\n}\n\n// IPv4 represents an IP v4 address\n//\n// swagger:strfmt ipv4\ntype IPv4 string\n\n// MarshalText turns this instance into text\nfunc (u IPv4) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *IPv4) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = IPv4(string(data))\n\treturn nil\n}\n\nfunc (u IPv4) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the IPv4 as JSON\nfunc (u IPv4) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the IPv4 from JSON\nfunc (u *IPv4) UnmarshalJSON(data []byte) error {\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = IPv4(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *IPv4) DeepCopyInto(out *IPv4) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new IPv4.\nfunc (u *IPv4) DeepCopy() *IPv4 {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(IPv4)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// IPv6 represents an IP v6 address\n//\n// swagger:strfmt ipv6\ntype IPv6 string\n\n// MarshalText turns this instance into text\nfunc (u IPv6) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *IPv6) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = IPv6(string(data))\n\treturn nil\n}\n\nfunc (u IPv6) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the IPv6 as JSON\nfunc (u IPv6) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the IPv6 from JSON\nfunc (u *IPv6) UnmarshalJSON(data []byte) error {\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = IPv6(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *IPv6) DeepCopyInto(out *IPv6) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new IPv6.\nfunc (u *IPv6) DeepCopy() *IPv6 {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(IPv6)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// CIDR represents a Classless Inter-Domain Routing notation\n//\n// swagger:strfmt cidr\ntype CIDR string\n\n// MarshalText turns this instance into text\nfunc (u CIDR) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *CIDR) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = CIDR(string(data))\n\treturn nil\n}\n\nfunc (u CIDR) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the CIDR as JSON\nfunc (u CIDR) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the CIDR from JSON\nfunc (u *CIDR) UnmarshalJSON(data []byte) error {\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = CIDR(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *CIDR) DeepCopyInto(out *CIDR) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new CIDR.\nfunc (u *CIDR) DeepCopy() *CIDR {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(CIDR)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// MAC represents a 48 bit MAC address\n//\n// swagger:strfmt mac\ntype MAC string\n\n// MarshalText turns this instance into text\nfunc (u MAC) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *MAC) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = MAC(string(data))\n\treturn nil\n}\n\nfunc (u MAC) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the MAC as JSON\nfunc (u MAC) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the MAC from JSON\nfunc (u *MAC) UnmarshalJSON(data []byte) error {\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = MAC(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *MAC) DeepCopyInto(out *MAC) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new MAC.\nfunc (u *MAC) DeepCopy() *MAC {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(MAC)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// UUID represents a uuid string format\n//\n// swagger:strfmt uuid\ntype UUID string\n\n// MarshalText turns this instance into text\nfunc (u UUID) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *UUID) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = UUID(string(data))\n\treturn nil\n}\n\nfunc (u UUID) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the UUID as JSON\nfunc (u UUID) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the UUID from JSON\nfunc (u *UUID) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = UUID(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *UUID) DeepCopyInto(out *UUID) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new UUID.\nfunc (u *UUID) DeepCopy() *UUID {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(UUID)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// UUID3 represents a uuid3 string format\n//\n// swagger:strfmt uuid3\ntype UUID3 string\n\n// MarshalText turns this instance into text\nfunc (u UUID3) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *UUID3) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = UUID3(string(data))\n\treturn nil\n}\n\nfunc (u UUID3) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the UUID as JSON\nfunc (u UUID3) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the UUID from JSON\nfunc (u *UUID3) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = UUID3(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *UUID3) DeepCopyInto(out *UUID3) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new UUID3.\nfunc (u *UUID3) DeepCopy() *UUID3 {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(UUID3)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// UUID4 represents a uuid4 string format\n//\n// swagger:strfmt uuid4\ntype UUID4 string\n\n// MarshalText turns this instance into text\nfunc (u UUID4) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *UUID4) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = UUID4(string(data))\n\treturn nil\n}\n\nfunc (u UUID4) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the UUID as JSON\nfunc (u UUID4) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the UUID from JSON\nfunc (u *UUID4) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = UUID4(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *UUID4) DeepCopyInto(out *UUID4) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new UUID4.\nfunc (u *UUID4) DeepCopy() *UUID4 {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(UUID4)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// UUID5 represents a uuid5 string format\n//\n// swagger:strfmt uuid5\ntype UUID5 string\n\n// MarshalText turns this instance into text\nfunc (u UUID5) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *UUID5) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = UUID5(string(data))\n\treturn nil\n}\n\nfunc (u UUID5) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the UUID as JSON\nfunc (u UUID5) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the UUID from JSON\nfunc (u *UUID5) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = UUID5(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *UUID5) DeepCopyInto(out *UUID5) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new UUID5.\nfunc (u *UUID5) DeepCopy() *UUID5 {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(UUID5)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// ISBN represents an isbn string format\n//\n// swagger:strfmt isbn\ntype ISBN string\n\n// MarshalText turns this instance into text\nfunc (u ISBN) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *ISBN) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = ISBN(string(data))\n\treturn nil\n}\n\nfunc (u ISBN) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the ISBN as JSON\nfunc (u ISBN) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the ISBN from JSON\nfunc (u *ISBN) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = ISBN(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *ISBN) DeepCopyInto(out *ISBN) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new ISBN.\nfunc (u *ISBN) DeepCopy() *ISBN {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(ISBN)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// ISBN10 represents an isbn 10 string format\n//\n// swagger:strfmt isbn10\ntype ISBN10 string\n\n// MarshalText turns this instance into text\nfunc (u ISBN10) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *ISBN10) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = ISBN10(string(data))\n\treturn nil\n}\n\nfunc (u ISBN10) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the ISBN10 as JSON\nfunc (u ISBN10) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the ISBN10 from JSON\nfunc (u *ISBN10) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = ISBN10(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *ISBN10) DeepCopyInto(out *ISBN10) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new ISBN10.\nfunc (u *ISBN10) DeepCopy() *ISBN10 {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(ISBN10)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// ISBN13 represents an isbn 13 string format\n//\n// swagger:strfmt isbn13\ntype ISBN13 string\n\n// MarshalText turns this instance into text\nfunc (u ISBN13) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *ISBN13) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = ISBN13(string(data))\n\treturn nil\n}\n\nfunc (u ISBN13) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the ISBN13 as JSON\nfunc (u ISBN13) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the ISBN13 from JSON\nfunc (u *ISBN13) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = ISBN13(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *ISBN13) DeepCopyInto(out *ISBN13) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new ISBN13.\nfunc (u *ISBN13) DeepCopy() *ISBN13 {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(ISBN13)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// CreditCard represents a credit card string format\n//\n// swagger:strfmt creditcard\ntype CreditCard string\n\n// MarshalText turns this instance into text\nfunc (u CreditCard) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *CreditCard) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = CreditCard(string(data))\n\treturn nil\n}\n\nfunc (u CreditCard) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the CreditCard as JSON\nfunc (u CreditCard) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the CreditCard from JSON\nfunc (u *CreditCard) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = CreditCard(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *CreditCard) DeepCopyInto(out *CreditCard) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new CreditCard.\nfunc (u *CreditCard) DeepCopy() *CreditCard {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(CreditCard)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// SSN represents a social security string format\n//\n// swagger:strfmt ssn\ntype SSN string\n\n// MarshalText turns this instance into text\nfunc (u SSN) MarshalText() ([]byte, error) {\n\treturn []byte(string(u)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (u *SSN) UnmarshalText(data []byte) error { // validation is performed later on\n\t*u = SSN(string(data))\n\treturn nil\n}\n\nfunc (u SSN) String() string {\n\treturn string(u)\n}\n\n// MarshalJSON returns the SSN as JSON\nfunc (u SSN) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(u))\n}\n\n// UnmarshalJSON sets the SSN from JSON\nfunc (u *SSN) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*u = SSN(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (u *SSN) DeepCopyInto(out *SSN) {\n\t*out = *u\n}\n\n// DeepCopy copies the receiver into a new SSN.\nfunc (u *SSN) DeepCopy() *SSN {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(SSN)\n\tu.DeepCopyInto(out)\n\treturn out\n}\n\n// HexColor represents a hex color string format\n//\n// swagger:strfmt hexcolor\ntype HexColor string\n\n// MarshalText turns this instance into text\nfunc (h HexColor) MarshalText() ([]byte, error) {\n\treturn []byte(string(h)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (h *HexColor) UnmarshalText(data []byte) error { // validation is performed later on\n\t*h = HexColor(string(data))\n\treturn nil\n}\n\nfunc (h HexColor) String() string {\n\treturn string(h)\n}\n\n// MarshalJSON returns the HexColor as JSON\nfunc (h HexColor) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(h))\n}\n\n// UnmarshalJSON sets the HexColor from JSON\nfunc (h *HexColor) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*h = HexColor(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (h *HexColor) DeepCopyInto(out *HexColor) {\n\t*out = *h\n}\n\n// DeepCopy copies the receiver into a new HexColor.\nfunc (h *HexColor) DeepCopy() *HexColor {\n\tif h == nil {\n\t\treturn nil\n\t}\n\tout := new(HexColor)\n\th.DeepCopyInto(out)\n\treturn out\n}\n\n// RGBColor represents a RGB color string format\n//\n// swagger:strfmt rgbcolor\ntype RGBColor string\n\n// MarshalText turns this instance into text\nfunc (r RGBColor) MarshalText() ([]byte, error) {\n\treturn []byte(string(r)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (r *RGBColor) UnmarshalText(data []byte) error { // validation is performed later on\n\t*r = RGBColor(string(data))\n\treturn nil\n}\n\nfunc (r RGBColor) String() string {\n\treturn string(r)\n}\n\n// MarshalJSON returns the RGBColor as JSON\nfunc (r RGBColor) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(r))\n}\n\n// UnmarshalJSON sets the RGBColor from JSON\nfunc (r *RGBColor) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*r = RGBColor(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (r *RGBColor) DeepCopyInto(out *RGBColor) {\n\t*out = *r\n}\n\n// DeepCopy copies the receiver into a new RGBColor.\nfunc (r *RGBColor) DeepCopy() *RGBColor {\n\tif r == nil {\n\t\treturn nil\n\t}\n\tout := new(RGBColor)\n\tr.DeepCopyInto(out)\n\treturn out\n}\n\n// Password represents a password.\n// This has no validations and is mainly used as a marker for UI components.\n//\n// swagger:strfmt password\ntype Password string\n\n// MarshalText turns this instance into text\nfunc (r Password) MarshalText() ([]byte, error) {\n\treturn []byte(string(r)), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (r *Password) UnmarshalText(data []byte) error { // validation is performed later on\n\t*r = Password(string(data))\n\treturn nil\n}\n\nfunc (r Password) String() string {\n\treturn string(r)\n}\n\n// MarshalJSON returns the Password as JSON\nfunc (r Password) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(r))\n}\n\n// UnmarshalJSON sets the Password from JSON\nfunc (r *Password) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*r = Password(ustr)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (r *Password) DeepCopyInto(out *Password) {\n\t*out = *r\n}\n\n// DeepCopy copies the receiver into a new Password.\nfunc (r *Password) DeepCopy() *Password {\n\tif r == nil {\n\t\treturn nil\n\t}\n\tout := new(Password)\n\tr.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/default_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/google/uuid\"\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestFormatURI(t *testing.T) {\n\turi := URI(\"http://somewhere.com\")\n\tstr := \"http://somewhereelse.com\"\n\ttestStringFormat(t, &uri, \"uri\", str, []string{}, []string{\"somewhere.com\"})\n}\n\nfunc TestFormatEmail(t *testing.T) {\n\temail := Email(\"somebody@somewhere.com\")\n\tstr := string(\"somebodyelse@somewhere.com\")\n\tvalidEmails := []string{\n\t\t\"blah@gmail.com\",\n\t\t\"test@d.verylongtoplevel\",\n\t\t\"email+tag@gmail.com\",\n\t\t`\" \"@example.com`,\n\t\t`\"Abc\\@def\"@example.com`,\n\t\t`\"Fred Bloggs\"@example.com`,\n\t\t`\"Joe\\\\Blow\"@example.com`,\n\t\t`\"Abc@def\"@example.com`,\n\t\t\"customer/department=shipping@example.com\",\n\t\t\"$A12345@example.com\",\n\t\t\"!def!xyz%abc@example.com\",\n\t\t\"_somename@example.com\",\n\t\t\"!#$%&'*+-/=?^_`{}|~@example.com\",\n\t\t\"Miles.O'Brian@example.com\",\n\t\t\"postmaster@☁→❄→☃→☀→☺→☂→☹→✝.ws\",\n\t\t\"root@localhost\",\n\t\t\"john@com\",\n\t\t\"api@piston.ninja\",\n\t}\n\n\ttestStringFormat(t, &email, \"email\", str, validEmails, []string{\"somebody@somewhere@com\"})\n}\n\nfunc TestFormatHostname(t *testing.T) {\n\thostname := Hostname(\"somewhere.com\")\n\tstr := string(\"somewhere.com\")\n\tveryLongStr := strings.Repeat(\"a\", 256)\n\tlongStr := strings.Repeat(\"a\", 64)\n\tlongAddrSegment := strings.Join([]string{\"x\", \"y\", longStr}, \".\")\n\tinvalidHostnames := []string{\n\t\t\"somewhere.com!\",\n\t\t\"user@email.domain\",\n\t\t\"1.1.1.1\",\n\t\tveryLongStr,\n\t\tlongAddrSegment,\n\t\t// dashes\n\t\t\"www.example-.org\",\n\t\t\"www.--example.org\",\n\t\t\"-www.example.org\",\n\t\t\"www-.example.org\",\n\t\t\"www.d-.org\",\n\t\t\"www.-d.org\",\n\t\t\"www-\",\n\t\t\"-www\",\n\t\t// other characters (not in symbols)\n\t\t\"www.ex ample.org\",\n\t\t\"_www.example.org\",\n\t\t\"www.ex;ample.org\",\n\t\t\"www.example_underscored.org\",\n\t\t// short top-level domains\n\t\t\"www.詹姆斯.x\",\n\t\t\"a.b.c.d\",\n\t\t\"-xyz\",\n\t\t\"xyz-\",\n\t\t\"x.\",\n\t\t\"a.b.c.dot-\",\n\t\t\"a.b.c.é;ö\",\n\t}\n\tvalidHostnames := []string{\n\t\t\"somewhere.com\",\n\t\t\"888.com\",\n\t\t\"a.com\",\n\t\t\"a.b.com\",\n\t\t\"a.b.c.com\",\n\t\t\"a.b.c.d.com\",\n\t\t\"a.b.c.d.e.com\",\n\t\t\"1.com\",\n\t\t\"1.2.com\",\n\t\t\"1.2.3.com\",\n\t\t\"1.2.3.4.com\",\n\t\t\"99.domain.com\",\n\t\t\"99.99.domain.com\",\n\t\t\"1wwworg.example.com\", // valid, per RFC1123\n\t\t\"1000wwworg.example.com\",\n\t\t\"xn--bcher-kva.example.com\", // puny encoded\n\t\t\"xn-80ak6aa92e.co\",\n\t\t\"xn-80ak6aa92e.com\",\n\t\t\"xn--ls8h.la\",\n\t\t\"☁→❄→☃→☀→☺→☂→☹→✝.ws\",\n\t\t\"www.example.onion\",\n\t\t\"www.example.ôlà\",\n\t\t\"ôlà.ôlà\",\n\t\t\"ôlà.ôlà.ôlà\",\n\t\t\"ex$ample\",\n\t\t\"localhost\",\n\t\t\"example\",\n\t\t\"x\",\n\t\t\"x-y\",\n\t\t\"a.b.c.dot\",\n\t\t\"www.example.org\",\n\t\t\"a.b.c.d.e.f.g.dot\",\n\t\t// extended symbol alphabet\n\t\t\"ex=ample.com\",\n\t\t\"<foo>\",\n\t\t\"www.example-hyphenated.org\",\n\t\t// localized hostnames\n\t\t\"www.詹姆斯.org\",\n\t\t\"www.élégigôö.org\",\n\t\t// long top-level domains\n\t\t\"www.詹姆斯.london\",\n\t}\n\n\ttestStringFormat(t, &hostname, \"hostname\", str, []string{}, invalidHostnames)\n\ttestStringFormat(t, &hostname, \"hostname\", str, validHostnames, []string{})\n}\n\nfunc TestFormatIPv4(t *testing.T) {\n\tipv4 := IPv4(\"192.168.254.1\")\n\tstr := string(\"192.168.254.2\")\n\ttestStringFormat(t, &ipv4, \"ipv4\", str, []string{\n\t\t\"127.0.0.1\",    // local\n\t\t\"192.168.1.1\",  // normal\n\t\t\"192.168.1.01\", // leading zeros (compatibility with go < 1.17)\n\t}, []string{\"198.168.254.2.2\"})\n}\n\nfunc TestFormatIPv6(t *testing.T) {\n\tipv6 := IPv6(\"::1\")\n\tstr := string(\"::2\")\n\t// TODO: test ipv6 zones\n\ttestStringFormat(t, &ipv6, \"ipv6\", str, []string{}, []string{\"127.0.0.1\"})\n}\n\nfunc TestFormatCIDR(t *testing.T) {\n\tcidr := CIDR(\"192.168.254.1/24\")\n\tstr := string(\"192.168.254.2/24\")\n\ttestStringFormat(t, &cidr, \"cidr\", str, []string{\n\t\t\"192.0.2.1/24\",  // normal\n\t\t\"192.0.02.1/24\", // leading zeros (compatibility with go < 1.17)\n\t\t\"2001:db8:a0b:12f0::1/32\",\n\t}, []string{\"198.168.254.2\", \"2001:db8:a0b:12f0::1\"})\n}\n\nfunc TestFormatMAC(t *testing.T) {\n\tmac := MAC(\"01:02:03:04:05:06\")\n\tstr := string(\"06:05:04:03:02:01\")\n\ttestStringFormat(t, &mac, \"mac\", str, []string{}, []string{\"01:02:03:04:05\"})\n}\n\nfunc TestFormatUUID3(t *testing.T) {\n\tfirst3 := uuid.NewMD5(uuid.NameSpaceURL, []byte(\"somewhere.com\"))\n\tother3 := uuid.NewMD5(uuid.NameSpaceURL, []byte(\"somewhereelse.com\"))\n\tuuid3 := UUID3(first3.String())\n\tstr := other3.String()\n\ttestStringFormat(t, &uuid3, \"uuid3\", str, []string{}, []string{\"not-a-uuid\"})\n\n\t// special case for zero UUID\n\tvar uuidZero UUID3\n\terr := uuidZero.UnmarshalJSON([]byte(jsonNull))\n\tassert.NoError(t, err)\n\tassert.EqualValues(t, UUID3(\"\"), uuidZero)\n}\n\nfunc TestFormatUUID4(t *testing.T) {\n\tfirst4 := uuid.Must(uuid.NewRandom())\n\tother4 := uuid.Must(uuid.NewRandom())\n\tuuid4 := UUID4(first4.String())\n\tstr := other4.String()\n\ttestStringFormat(t, &uuid4, \"uuid4\", str, []string{}, []string{\"not-a-uuid\"})\n\n\t// special case for zero UUID\n\tvar uuidZero UUID4\n\terr := uuidZero.UnmarshalJSON([]byte(jsonNull))\n\tassert.NoError(t, err)\n\tassert.EqualValues(t, UUID4(\"\"), uuidZero)\n}\n\nfunc TestFormatUUID5(t *testing.T) {\n\tfirst5 := uuid.NewSHA1(uuid.NameSpaceURL, []byte(\"somewhere.com\"))\n\tother5 := uuid.NewSHA1(uuid.NameSpaceURL, []byte(\"somewhereelse.com\"))\n\tuuid5 := UUID5(first5.String())\n\tstr := other5.String()\n\ttestStringFormat(t, &uuid5, \"uuid5\", str, []string{}, []string{\"not-a-uuid\"})\n\n\t// special case for zero UUID\n\tvar uuidZero UUID5\n\terr := uuidZero.UnmarshalJSON([]byte(jsonNull))\n\tassert.NoError(t, err)\n\tassert.EqualValues(t, UUID5(\"\"), uuidZero)\n}\n\nfunc TestFormatUUID(t *testing.T) {\n\tfirst5 := uuid.NewSHA1(uuid.NameSpaceURL, []byte(\"somewhere.com\"))\n\tother5 := uuid.NewSHA1(uuid.NameSpaceURL, []byte(\"somewhereelse.com\"))\n\tuuid := UUID(first5.String())\n\tstr := other5.String()\n\ttestStringFormat(t, &uuid, \"uuid\", str, []string{}, []string{\"not-a-uuid\"})\n\n\t// special case for zero UUID\n\tvar uuidZero UUID\n\terr := uuidZero.UnmarshalJSON([]byte(jsonNull))\n\tassert.NoError(t, err)\n\tassert.EqualValues(t, UUID(\"\"), uuidZero)\n}\n\nfunc TestFormatISBN(t *testing.T) {\n\tisbn := ISBN(\"0321751043\")\n\tstr := string(\"0321751043\")\n\ttestStringFormat(t, &isbn, \"isbn\", str, []string{}, []string{\"836217463\"}) // bad checksum\n}\n\nfunc TestFormatISBN10(t *testing.T) {\n\tisbn10 := ISBN10(\"0321751043\")\n\tstr := string(\"0321751043\")\n\ttestStringFormat(t, &isbn10, \"isbn10\", str, []string{}, []string{\"836217463\"}) // bad checksum\n}\n\nfunc TestFormatISBN13(t *testing.T) {\n\tisbn13 := ISBN13(\"978-0321751041\")\n\tstr := string(\"978-0321751041\")\n\ttestStringFormat(t, &isbn13, \"isbn13\", str, []string{}, []string{\"978-0321751042\"}) // bad checksum\n}\n\nfunc TestFormatHexColor(t *testing.T) {\n\thexColor := HexColor(\"#FFFFFF\")\n\tstr := string(\"#000000\")\n\ttestStringFormat(t, &hexColor, \"hexcolor\", str, []string{}, []string{\"#fffffffz\"})\n}\n\nfunc TestFormatRGBColor(t *testing.T) {\n\trgbColor := RGBColor(\"rgb(255,255,255)\")\n\tstr := string(\"rgb(0,0,0)\")\n\ttestStringFormat(t, &rgbColor, \"rgbcolor\", str, []string{}, []string{\"rgb(300,0,0)\"})\n}\n\nfunc TestFormatSSN(t *testing.T) {\n\tssn := SSN(\"111-11-1111\")\n\tstr := string(\"999 99 9999\")\n\ttestStringFormat(t, &ssn, \"ssn\", str, []string{}, []string{\"999 99 999\"})\n}\n\nfunc TestFormatCreditCard(t *testing.T) {\n\tcreditCard := CreditCard(\"4111-1111-1111-1111\")\n\tstr := string(\"4012-8888-8888-1881\")\n\ttestStringFormat(t, &creditCard, \"creditcard\", str, []string{}, []string{\"9999-9999-9999-999\"})\n}\n\nfunc TestFormatPassword(t *testing.T) {\n\tpassword := Password(\"super secret stuff here\")\n\ttestStringFormat(t, &password, \"password\", \"super secret!!!\", []string{\"even more secret\"}, []string{})\n}\n\nfunc TestFormatBase64(t *testing.T) {\n\tconst b64 string = \"This is a byte array with unprintable chars, but it also isn\"\n\tstr := base64.URLEncoding.EncodeToString([]byte(b64))\n\tb := []byte(b64)\n\texpected := Base64(b)\n\tbj := []byte(\"\\\"\" + str + \"\\\"\")\n\n\tvar subj Base64\n\terr := subj.UnmarshalText([]byte(str))\n\tassert.NoError(t, err)\n\tassert.EqualValues(t, expected, subj)\n\n\tb, err = subj.MarshalText()\n\tassert.NoError(t, err)\n\tassert.Equal(t, []byte(str), b)\n\n\tvar subj2 Base64\n\terr = subj2.UnmarshalJSON(bj)\n\tassert.NoError(t, err)\n\tassert.EqualValues(t, expected, subj2)\n\n\tb, err = subj2.MarshalJSON()\n\tassert.NoError(t, err)\n\tassert.Equal(t, bj, b)\n\n\ttestValid(t, \"byte\", str)\n\ttestInvalid(t, \"byte\", \"ZWxpemFiZXRocG9zZXk\") // missing pad char\n}\n\ntype testableFormat interface {\n\tencoding.TextMarshaler\n\tencoding.TextUnmarshaler\n\tjson.Marshaler\n\tjson.Unmarshaler\n\tfmt.Stringer\n}\n\nfunc testStringFormat(t *testing.T, what testableFormat, format, with string, validSamples, invalidSamples []string) {\n\ttestStringFormatWithRegistry(t, Default, what, format, with, validSamples, invalidSamples)\n}\n\nfunc testStringFormatWithRegistry(t *testing.T, registry Registry, what testableFormat, format, with string, validSamples, invalidSamples []string) {\n\t// text encoding interface\n\tb := []byte(with)\n\terr := what.UnmarshalText(b)\n\tassert.NoError(t, err)\n\n\tval := reflect.Indirect(reflect.ValueOf(what))\n\tstrVal := val.String()\n\tassert.Equalf(t, with, strVal, \"[%s]UnmarshalText: expected %v and %v to be value equal\", format, strVal, with)\n\n\tb, err = what.MarshalText()\n\tassert.NoError(t, err)\n\tassert.Equalf(t, []byte(with), b, \"[%s]MarshalText: expected %v and %v to be value equal as []byte\", format, string(b), with)\n\n\t// Stringer\n\tstrVal = what.String()\n\tassert.Equalf(t, []byte(with), b, \"[%s]String: expected %v and %v to be equal\", strVal, with)\n\n\t// JSON encoding interface\n\tbj := []byte(\"\\\"\" + with + \"\\\"\")\n\terr = what.UnmarshalJSON(bj)\n\tassert.NoError(t, err)\n\tval = reflect.Indirect(reflect.ValueOf(what))\n\tstrVal = val.String()\n\tassert.EqualValuesf(t, with, strVal, \"[%s]UnmarshalJSON: expected %v and %v to be value equal\", format, strVal, with)\n\n\tb, err = what.MarshalJSON()\n\tassert.NoError(t, err)\n\tassert.Equalf(t, bj, b, \"[%s]MarshalJSON: expected %v and %v to be value equal as []byte\", format, string(b), with)\n\n\t// validation with Registry\n\tt.Run(\"valid\", func(t *testing.T) {\n\t\tfor _, valid := range append(validSamples, with) {\n\t\t\tt.Run(valid, func(t *testing.T) {\n\t\t\t\ttestValidWithRegistry(t, registry, format, valid)\n\t\t\t})\n\t\t}\n\t})\n\tt.Run(\"invalid\", func(t *testing.T) {\n\t\tfor _, invalid := range invalidSamples {\n\t\t\tt.Run(invalid, func(t *testing.T) {\n\t\t\t\ttestInvalidWithRegistry(t, registry, format, invalid)\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunc testValid(t *testing.T, name, value string) {\n\ttestValidWithRegistry(t, Default, name, value)\n}\n\nfunc testValidWithRegistry(t *testing.T, registry Registry, name, value string) {\n\tok := registry.Validates(name, value)\n\tif !ok {\n\t\tt.Errorf(\"expected %q of type %s to be valid\", value, name)\n\t}\n}\n\nfunc testInvalid(t *testing.T, name, value string) {\n\ttestInvalidWithRegistry(t, Default, name, value)\n}\n\nfunc testInvalidWithRegistry(t *testing.T, registry Registry, name, value string) {\n\tok := registry.Validates(name, value)\n\tif ok {\n\t\tt.Errorf(\"expected %q of type %s to be invalid\", value, name)\n\t}\n}\n\nfunc TestDeepCopyBase64(t *testing.T) {\n\tb64 := Base64(\"ZWxpemFiZXRocG9zZXk=\")\n\tin := &b64\n\n\tout := new(Base64)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *Base64\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyURI(t *testing.T) {\n\turi := URI(\"http://somewhere.com\")\n\tin := &uri\n\n\tout := new(URI)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *URI\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyEmail(t *testing.T) {\n\temail := Email(\"somebody@somewhere.com\")\n\tin := &email\n\n\tout := new(Email)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *Email\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyHostname(t *testing.T) {\n\thostname := Hostname(\"somewhere.com\")\n\tin := &hostname\n\n\tout := new(Hostname)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *Hostname\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyIPv4(t *testing.T) {\n\tipv4 := IPv4(\"192.168.254.1\")\n\tin := &ipv4\n\n\tout := new(IPv4)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *IPv4\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyIPv6(t *testing.T) {\n\tipv6 := IPv6(\"::1\")\n\tin := &ipv6\n\n\tout := new(IPv6)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *IPv6\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyCIDR(t *testing.T) {\n\tcidr := CIDR(\"192.0.2.1/24\")\n\tin := &cidr\n\n\tout := new(CIDR)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *CIDR\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyMAC(t *testing.T) {\n\tmac := MAC(\"01:02:03:04:05:06\")\n\tin := &mac\n\n\tout := new(MAC)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *MAC\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyUUID(t *testing.T) {\n\tfirst5 := uuid.NewSHA1(uuid.NameSpaceURL, []byte(\"somewhere.com\"))\n\tuuid := UUID(first5.String())\n\tin := &uuid\n\n\tout := new(UUID)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *UUID\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyUUID3(t *testing.T) {\n\tfirst3 := uuid.NewMD5(uuid.NameSpaceURL, []byte(\"somewhere.com\"))\n\tuuid3 := UUID3(first3.String())\n\tin := &uuid3\n\n\tout := new(UUID3)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *UUID3\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyUUID4(t *testing.T) {\n\tfirst4 := uuid.Must(uuid.NewRandom())\n\tuuid4 := UUID4(first4.String())\n\tin := &uuid4\n\n\tout := new(UUID4)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *UUID4\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyUUID5(t *testing.T) {\n\tfirst5 := uuid.NewSHA1(uuid.NameSpaceURL, []byte(\"somewhere.com\"))\n\tuuid5 := UUID5(first5.String())\n\tin := &uuid5\n\n\tout := new(UUID5)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *UUID5\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyISBN(t *testing.T) {\n\tisbn := ISBN(\"0321751043\")\n\tin := &isbn\n\n\tout := new(ISBN)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *ISBN\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyISBN10(t *testing.T) {\n\tisbn10 := ISBN10(\"0321751043\")\n\tin := &isbn10\n\n\tout := new(ISBN10)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *ISBN10\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyISBN13(t *testing.T) {\n\tisbn13 := ISBN13(\"978-0321751041\")\n\tin := &isbn13\n\n\tout := new(ISBN13)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *ISBN13\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyCreditCard(t *testing.T) {\n\tcreditCard := CreditCard(\"4111-1111-1111-1111\")\n\tin := &creditCard\n\n\tout := new(CreditCard)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *CreditCard\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopySSN(t *testing.T) {\n\tssn := SSN(\"111-11-1111\")\n\tin := &ssn\n\n\tout := new(SSN)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *SSN\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyHexColor(t *testing.T) {\n\thexColor := HexColor(\"#FFFFFF\")\n\tin := &hexColor\n\n\tout := new(HexColor)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *HexColor\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyRGBColor(t *testing.T) {\n\trgbColor := RGBColor(\"rgb(255,255,255)\")\n\tin := &rgbColor\n\n\tout := new(RGBColor)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *RGBColor\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n\nfunc TestDeepCopyPassword(t *testing.T) {\n\tpassword := Password(\"super secret stuff here\")\n\tin := &password\n\n\tout := new(Password)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *Password\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/doc.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package strfmt contains custom string formats\n//\n// TODO: add info on how to define and register a custom format\npackage strfmt\n"
  },
  {
    "path": "pkg/validation/strfmt/duration.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\nfunc init() {\n\td := Duration(0)\n\t// register this format in the default registry\n\tDefault.Add(\"duration\", &d, IsDuration)\n}\n\nvar (\n\ttimeUnits = [][]string{\n\t\t{\"ns\", \"nano\"},\n\t\t{\"us\", \"µs\", \"micro\"},\n\t\t{\"ms\", \"milli\"},\n\t\t{\"s\", \"sec\"},\n\t\t{\"m\", \"min\"},\n\t\t{\"h\", \"hr\", \"hour\"},\n\t\t{\"d\", \"day\"},\n\t\t{\"w\", \"wk\", \"week\"},\n\t}\n\n\ttimeMultiplier = map[string]time.Duration{\n\t\t\"ns\": time.Nanosecond,\n\t\t\"us\": time.Microsecond,\n\t\t\"ms\": time.Millisecond,\n\t\t\"s\":  time.Second,\n\t\t\"m\":  time.Minute,\n\t\t\"h\":  time.Hour,\n\t\t\"d\":  24 * time.Hour,\n\t\t\"w\":  7 * 24 * time.Hour,\n\t}\n\n\tdurationMatcher = regexp.MustCompile(`((\\d+)\\s*([A-Za-zµ]+))`)\n)\n\n// IsDuration returns true if the provided string is a valid duration\nfunc IsDuration(str string) bool {\n\t_, err := ParseDuration(str)\n\treturn err == nil\n}\n\n// Duration represents a duration\n//\n// Duration stores a period of time as a nanosecond count, with the largest\n// repesentable duration being approximately 290 years.\n//\n// swagger:strfmt duration\ntype Duration time.Duration\n\n// MarshalText turns this instance into text\nfunc (d Duration) MarshalText() ([]byte, error) {\n\treturn []byte(time.Duration(d).String()), nil\n}\n\n// UnmarshalText hydrates this instance from text\nfunc (d *Duration) UnmarshalText(data []byte) error { // validation is performed later on\n\tdd, err := ParseDuration(string(data))\n\tif err != nil {\n\t\treturn err\n\t}\n\t*d = Duration(dd)\n\treturn nil\n}\n\n// ParseDuration parses a duration from a string, compatible with scala duration syntax\nfunc ParseDuration(cand string) (time.Duration, error) {\n\tif dur, err := time.ParseDuration(cand); err == nil {\n\t\treturn dur, nil\n\t}\n\n\tvar dur time.Duration\n\tok := false\n\tfor _, match := range durationMatcher.FindAllStringSubmatch(cand, -1) {\n\n\t\tfactor, err := strconv.Atoi(match[2]) // converts string to int\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tunit := strings.ToLower(strings.TrimSpace(match[3]))\n\n\t\tfor _, variants := range timeUnits {\n\t\t\tlast := len(variants) - 1\n\t\t\tmultiplier := timeMultiplier[variants[0]]\n\n\t\t\tfor i, variant := range variants {\n\t\t\t\tif (last == i && strings.HasPrefix(unit, variant)) || strings.EqualFold(variant, unit) {\n\t\t\t\t\tok = true\n\t\t\t\t\tdur += time.Duration(factor) * multiplier\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif ok {\n\t\treturn dur, nil\n\t}\n\treturn 0, fmt.Errorf(\"unable to parse %s as duration\", cand)\n}\n\n// String converts this duration to a string\nfunc (d Duration) String() string {\n\treturn time.Duration(d).String()\n}\n\n// MarshalJSON returns the Duration as JSON\nfunc (d Duration) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(time.Duration(d).String())\n}\n\n// UnmarshalJSON sets the Duration from JSON\nfunc (d *Duration) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\n\tvar dstr string\n\tif err := json.Unmarshal(data, &dstr); err != nil {\n\t\treturn err\n\t}\n\ttt, err := ParseDuration(dstr)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*d = Duration(tt)\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (d *Duration) DeepCopyInto(out *Duration) {\n\t*out = *d\n}\n\n// DeepCopy copies the receiver into a new Duration.\nfunc (d *Duration) DeepCopy() *Duration {\n\tif d == nil {\n\t\treturn nil\n\t}\n\tout := new(Duration)\n\td.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/duration_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestDuration(t *testing.T) {\n\tpp := Duration(0)\n\n\terr := pp.UnmarshalText([]byte(\"0ms\"))\n\tassert.NoError(t, err)\n\terr = pp.UnmarshalText([]byte(\"yada\"))\n\tassert.Error(t, err)\n\n\torig := \"2ms\"\n\tb := []byte(orig)\n\tbj := []byte(\"\\\"\" + orig + \"\\\"\")\n\n\terr = pp.UnmarshalText(b)\n\tassert.NoError(t, err)\n\n\terr = pp.UnmarshalText([]byte(\"three week\"))\n\tassert.Error(t, err)\n\n\terr = pp.UnmarshalText([]byte(\"9999999999999999999999999999999999999999999999999999999 weeks\"))\n\tassert.Error(t, err)\n\n\ttxt, err := pp.MarshalText()\n\tassert.NoError(t, err)\n\tassert.Equal(t, orig, string(txt))\n\n\terr = pp.UnmarshalJSON(bj)\n\tassert.NoError(t, err)\n\tassert.EqualValues(t, orig, pp.String())\n\n\terr = pp.UnmarshalJSON([]byte(\"yada\"))\n\tassert.Error(t, err)\n\n\terr = pp.UnmarshalJSON([]byte(`\"12 parsecs\"`))\n\tassert.Error(t, err)\n\n\terr = pp.UnmarshalJSON([]byte(`\"12 y\"`))\n\tassert.Error(t, err)\n\n\tb, err = pp.MarshalJSON()\n\tassert.NoError(t, err)\n\tassert.Equal(t, bj, b)\n}\n\nfunc testDurationParser(t *testing.T, toParse string, expected time.Duration) {\n\tr, e := ParseDuration(toParse)\n\tassert.NoError(t, e)\n\tassert.Equal(t, expected, r)\n}\n\nfunc TestDurationParser_Failed(t *testing.T) {\n\t_, e := ParseDuration(\"45 wekk\")\n\tassert.Error(t, e)\n}\n\nfunc TestIsDuration_Failed(t *testing.T) {\n\te := IsDuration(\"45 weeekks\")\n\tassert.False(t, e)\n}\n\nfunc TestDurationParser(t *testing.T) {\n\ttestcases := map[string]time.Duration{\n\n\t\t// parse the short forms without spaces\n\t\t\"1ns\": 1 * time.Nanosecond,\n\t\t\"1us\": 1 * time.Microsecond,\n\t\t\"1µs\": 1 * time.Microsecond,\n\t\t\"1ms\": 1 * time.Millisecond,\n\t\t\"1s\":  1 * time.Second,\n\t\t\"1m\":  1 * time.Minute,\n\t\t\"1h\":  1 * time.Hour,\n\t\t\"1hr\": 1 * time.Hour,\n\t\t\"1d\":  24 * time.Hour,\n\t\t\"1w\":  7 * 24 * time.Hour,\n\t\t\"1wk\": 7 * 24 * time.Hour,\n\n\t\t// parse the long forms without spaces\n\t\t\"1nanoseconds\":  1 * time.Nanosecond,\n\t\t\"1nanos\":        1 * time.Nanosecond,\n\t\t\"1microseconds\": 1 * time.Microsecond,\n\t\t\"1micros\":       1 * time.Microsecond,\n\t\t\"1millis\":       1 * time.Millisecond,\n\t\t\"1milliseconds\": 1 * time.Millisecond,\n\t\t\"1second\":       1 * time.Second,\n\t\t\"1sec\":          1 * time.Second,\n\t\t\"1min\":          1 * time.Minute,\n\t\t\"1minute\":       1 * time.Minute,\n\t\t\"1hour\":         1 * time.Hour,\n\t\t\"1day\":          24 * time.Hour,\n\t\t\"1week\":         7 * 24 * time.Hour,\n\n\t\t// parse the short forms with spaces\n\t\t\"1  ns\": 1 * time.Nanosecond,\n\t\t\"1  us\": 1 * time.Microsecond,\n\t\t\"1  µs\": 1 * time.Microsecond,\n\t\t\"1  ms\": 1 * time.Millisecond,\n\t\t\"1  s\":  1 * time.Second,\n\t\t\"1  m\":  1 * time.Minute,\n\t\t\"1  h\":  1 * time.Hour,\n\t\t\"1  hr\": 1 * time.Hour,\n\t\t\"1  d\":  24 * time.Hour,\n\t\t\"1  w\":  7 * 24 * time.Hour,\n\t\t\"1  wk\": 7 * 24 * time.Hour,\n\n\t\t// parse the long forms without spaces\n\t\t\"1  nanoseconds\":  1 * time.Nanosecond,\n\t\t\"1  nanos\":        1 * time.Nanosecond,\n\t\t\"1  microseconds\": 1 * time.Microsecond,\n\t\t\"1  micros\":       1 * time.Microsecond,\n\t\t\"1  millis\":       1 * time.Millisecond,\n\t\t\"1  milliseconds\": 1 * time.Millisecond,\n\t\t\"1  second\":       1 * time.Second,\n\t\t\"1  sec\":          1 * time.Second,\n\t\t\"1  min\":          1 * time.Minute,\n\t\t\"1  minute\":       1 * time.Minute,\n\t\t\"1  hour\":         1 * time.Hour,\n\t\t\"1  day\":          24 * time.Hour,\n\t\t\"1  week\":         7 * 24 * time.Hour,\n\t}\n\n\tfor str, dur := range testcases {\n\t\ttestDurationParser(t, str, dur)\n\t}\n}\nfunc TestIsDuration_Caveats(t *testing.T) {\n\t// This works too\n\te := IsDuration(\"45 weeks\")\n\tassert.True(t, e)\n\n\t// This works too\n\te = IsDuration(\"45 weekz\")\n\tassert.True(t, e)\n\n\t// This works too\n\te = IsDuration(\"12 hours\")\n\tassert.True(t, e)\n\n\t// This works too\n\te = IsDuration(\"12 minutes\")\n\tassert.True(t, e)\n\n\t// This does not work\n\te = IsDuration(\"12 phours\")\n\tassert.False(t, e)\n\n}\n\nfunc TestDeepCopyDuration(t *testing.T) {\n\tdur := Duration(42)\n\tin := &dur\n\n\tout := new(Duration)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *Duration\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/format.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"encoding\"\n\t\"encoding/json\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/errors\"\n)\n\n// Default is the default formats registry\nvar Default = NewSeededFormats(nil, nil)\n\n// Validator represents a validator for a string format.\ntype Validator func(string) bool\n\n// Format represents a string format.\n//\n// All implementations of Format provide a string representation and text\n// marshaling/unmarshaling interface to be used by encoders (e.g. encoding/json).\ntype Format interface {\n\tString() string\n\tencoding.TextMarshaler\n\tencoding.TextUnmarshaler\n}\n\n// Registry is a registry of string formats, with a validation method.\ntype Registry interface {\n\tAdd(string, Format, Validator) bool\n\tDelByName(string) bool\n\tGetType(string) (reflect.Type, bool)\n\tContainsName(string) bool\n\tValidates(string, string) bool\n\tParse(string, string) (interface{}, error)\n}\n\ntype knownFormat struct {\n\tName      string\n\tOrigName  string\n\tType      reflect.Type\n\tValidator Validator\n}\n\n// NameNormalizer is a function that normalizes a format name.\ntype NameNormalizer func(string) string\n\n// DefaultNameNormalizer removes all dashes\nfunc DefaultNameNormalizer(name string) string {\n\treturn strings.Replace(name, \"-\", \"\", -1)\n}\n\ntype defaultFormats struct {\n\tsync.Mutex\n\tdata          []knownFormat\n\tnormalizeName NameNormalizer\n}\n\n// NewFormats creates a new formats registry seeded with the values from the default\nfunc NewFormats() Registry {\n\treturn NewSeededFormats(Default.(*defaultFormats).data, nil)\n}\n\n// NewSeededFormats creates a new formats registry\nfunc NewSeededFormats(seeds []knownFormat, normalizer NameNormalizer) Registry {\n\tif normalizer == nil {\n\t\tnormalizer = DefaultNameNormalizer\n\t}\n\t// copy here, don't modify original\n\td := append([]knownFormat(nil), seeds...)\n\treturn &defaultFormats{\n\t\tdata:          d,\n\t\tnormalizeName: normalizer,\n\t}\n}\n\n// Add adds a new format, return true if this was a new item instead of a replacement\nfunc (f *defaultFormats) Add(name string, strfmt Format, validator Validator) bool {\n\tf.Lock()\n\tdefer f.Unlock()\n\n\tnme := f.normalizeName(name)\n\n\ttpe := reflect.TypeOf(strfmt)\n\tif tpe.Kind() == reflect.Ptr {\n\t\ttpe = tpe.Elem()\n\t}\n\n\tfor i := range f.data {\n\t\tv := &f.data[i]\n\t\tif v.Name == nme {\n\t\t\tv.Type = tpe\n\t\t\tv.Validator = validator\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// turns out it's new after all\n\tf.data = append(f.data, knownFormat{Name: nme, OrigName: name, Type: tpe, Validator: validator})\n\treturn true\n}\n\n// GetType gets the type for the specified name\nfunc (f *defaultFormats) GetType(name string) (reflect.Type, bool) {\n\tf.Lock()\n\tdefer f.Unlock()\n\tnme := f.normalizeName(name)\n\tfor _, v := range f.data {\n\t\tif v.Name == nme {\n\t\t\treturn v.Type, true\n\t\t}\n\t}\n\treturn nil, false\n}\n\n// DelByName removes the format by the specified name, returns true when an item was actually removed\nfunc (f *defaultFormats) DelByName(name string) bool {\n\tf.Lock()\n\tdefer f.Unlock()\n\n\tnme := f.normalizeName(name)\n\n\tfor i, v := range f.data {\n\t\tif v.Name == nme {\n\t\t\tf.data[i] = knownFormat{} // release\n\t\t\tf.data = append(f.data[:i], f.data[i+1:]...)\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// DelByFormat removes the specified format, returns true when an item was actually removed\nfunc (f *defaultFormats) DelByFormat(strfmt Format) bool {\n\tf.Lock()\n\tdefer f.Unlock()\n\n\ttpe := reflect.TypeOf(strfmt)\n\tif tpe.Kind() == reflect.Ptr {\n\t\ttpe = tpe.Elem()\n\t}\n\n\tfor i, v := range f.data {\n\t\tif v.Type == tpe {\n\t\t\tf.data[i] = knownFormat{} // release\n\t\t\tf.data = append(f.data[:i], f.data[i+1:]...)\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// ContainsName returns true if this registry contains the specified name\nfunc (f *defaultFormats) ContainsName(name string) bool {\n\tf.Lock()\n\tdefer f.Unlock()\n\tnme := f.normalizeName(name)\n\tfor _, v := range f.data {\n\t\tif v.Name == nme {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// ContainsFormat returns true if this registry contains the specified format\nfunc (f *defaultFormats) ContainsFormat(strfmt Format) bool {\n\tf.Lock()\n\tdefer f.Unlock()\n\ttpe := reflect.TypeOf(strfmt)\n\tif tpe.Kind() == reflect.Ptr {\n\t\ttpe = tpe.Elem()\n\t}\n\n\tfor _, v := range f.data {\n\t\tif v.Type == tpe {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Validates passed data against format.\n//\n// Note that the format name is automatically normalized, e.g. one may\n// use \"date-time\" to use the \"datetime\" format validator.\nfunc (f *defaultFormats) Validates(name, data string) bool {\n\tf.Lock()\n\tdefer f.Unlock()\n\tnme := f.normalizeName(name)\n\tfor _, v := range f.data {\n\t\tif v.Name == nme {\n\t\t\treturn v.Validator(data)\n\t\t}\n\t}\n\treturn false\n}\n\n// Parse a string into the appropriate format representation type.\n//\n// E.g. parsing a string a \"date\" will return a Date type.\nfunc (f *defaultFormats) Parse(name, data string) (interface{}, error) {\n\tf.Lock()\n\tdefer f.Unlock()\n\tnme := f.normalizeName(name)\n\tfor _, v := range f.data {\n\t\tif v.Name == nme {\n\t\t\tnw := reflect.New(v.Type).Interface()\n\t\t\tif dec, ok := nw.(encoding.TextUnmarshaler); ok {\n\t\t\t\tif err := dec.UnmarshalText([]byte(data)); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\treturn nw, nil\n\t\t\t}\n\t\t\treturn nil, errors.InvalidTypeName(name)\n\t\t}\n\t}\n\treturn nil, errors.InvalidTypeName(name)\n}\n\n// unmarshalJSON provides a generic implementation of json.Unmarshaler interface's UnmarshalJSON function for basic string formats.\nfunc unmarshalJSON[T ~string](r *T, data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\tvar ustr string\n\tif err := json.Unmarshal(data, &ustr); err != nil {\n\t\treturn err\n\t}\n\t*r = T(ustr)\n\treturn nil\n}\n\n// deepCopy provides a generic implementation of DeepCopy for basic string formats.\nfunc deepCopy[T ~string](r *T) *T {\n\tif r == nil {\n\t\treturn nil\n\t}\n\tout := new(T)\n\t*out = *r\n\treturn out\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/format_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\ntype testFormat string\n\nfunc (t testFormat) MarshalText() ([]byte, error) {\n\treturn []byte(string(t)), nil\n}\n\nfunc (t *testFormat) UnmarshalText(b []byte) error {\n\t*t = testFormat(string(b))\n\treturn nil\n}\n\nfunc (t testFormat) String() string {\n\treturn string(t)\n}\n\nfunc isTestFormat(s string) bool {\n\treturn strings.HasPrefix(s, \"tf\")\n}\n\ntype tf2 string\n\nfunc (t tf2) MarshalText() ([]byte, error) {\n\treturn []byte(string(t)), nil\n}\n\nfunc (t *tf2) UnmarshalText(b []byte) error {\n\t*t = tf2(string(b))\n\treturn nil\n}\n\nfunc istf2(s string) bool {\n\treturn strings.HasPrefix(s, \"af\")\n}\n\nfunc (t tf2) String() string {\n\treturn string(t)\n}\n\ntype bf string\n\nfunc (t bf) MarshalText() ([]byte, error) {\n\treturn []byte(string(t)), nil\n}\n\nfunc (t *bf) UnmarshalText(b []byte) error {\n\t*t = bf(string(b))\n\treturn nil\n}\n\nfunc (t bf) String() string {\n\treturn string(t)\n}\n\nfunc isbf(s string) bool {\n\treturn strings.HasPrefix(s, \"bf\")\n}\n\nfunc istf3(s string) bool {\n\treturn strings.HasPrefix(s, \"ff\")\n}\n\nfunc init() {\n\ttf := testFormat(\"\")\n\tDefault.Add(\"test-format\", &tf, isTestFormat)\n}\n\nfunc TestFormatRegistry(t *testing.T) {\n\tf2 := tf2(\"\")\n\tf3 := bf(\"\")\n\tregistry := NewFormats()\n\n\tassert.True(t, registry.ContainsName(\"test-format\"))\n\tassert.True(t, registry.ContainsName(\"testformat\"))\n\tassert.False(t, registry.ContainsName(\"ttt\"))\n\n\tassert.True(t, registry.Validates(\"testformat\", \"tfa\"))\n\tassert.False(t, registry.Validates(\"testformat\", \"ffa\"))\n\n\tassert.True(t, registry.Add(\"tf2\", &f2, istf2))\n\tassert.True(t, registry.ContainsName(\"tf2\"))\n\tassert.False(t, registry.ContainsName(\"tfw\"))\n\tassert.True(t, registry.Validates(\"tf2\", \"afa\"))\n\n\tassert.False(t, registry.Add(\"tf2\", &f3, isbf))\n\tassert.True(t, registry.ContainsName(\"tf2\"))\n\tassert.False(t, registry.ContainsName(\"tfw\"))\n\tassert.True(t, registry.Validates(\"tf2\", \"bfa\"))\n\tassert.False(t, registry.Validates(\"tf2\", \"afa\"))\n\n\tassert.False(t, registry.Add(\"tf2\", &f2, istf2))\n\tassert.True(t, registry.Add(\"tf3\", &f2, istf3))\n\tassert.True(t, registry.ContainsName(\"tf3\"))\n\tassert.True(t, registry.ContainsName(\"tf2\"))\n\tassert.False(t, registry.ContainsName(\"tfw\"))\n\tassert.True(t, registry.Validates(\"tf3\", \"ffa\"))\n\n\tassert.True(t, registry.DelByName(\"tf3\"))\n\tassert.True(t, registry.Add(\"tf3\", &f2, istf3))\n\n\tassert.True(t, registry.DelByName(\"tf3\"))\n\tassert.False(t, registry.DelByName(\"unknown\"))\n\tassert.False(t, registry.Validates(\"unknown\", \"\"))\n}\n\ntype testStruct struct {\n\tD          Date       `json:\"d,omitempty\"`\n\tDT         DateTime   `json:\"dt,omitempty\"`\n\tDur        Duration   `json:\"dur,omitempty\"`\n\tURI        URI        `json:\"uri,omitempty\"`\n\tEml        Email      `json:\"eml,omitempty\"`\n\tUUID       UUID       `json:\"uuid,omitempty\"`\n\tUUID3      UUID3      `json:\"uuid3,omitempty\"`\n\tUUID4      UUID4      `json:\"uuid4,omitempty\"`\n\tUUID5      UUID5      `json:\"uuid5,omitempty\"`\n\tHn         Hostname   `json:\"hn,omitempty\"`\n\tIpv4       IPv4       `json:\"ipv4,omitempty\"`\n\tIpv6       IPv6       `json:\"ipv6,omitempty\"`\n\tCidr       CIDR       `json:\"cidr,omitempty\"`\n\tMac        MAC        `json:\"mac,omitempty\"`\n\tIsbn       ISBN       `json:\"isbn,omitempty\"`\n\tIsbn10     ISBN10     `json:\"isbn10,omitempty\"`\n\tIsbn13     ISBN13     `json:\"isbn13,omitempty\"`\n\tCreditcard CreditCard `json:\"creditcard,omitempty\"`\n\tSsn        SSN        `json:\"ssn,omitempty\"`\n\tHexcolor   HexColor   `json:\"hexcolor,omitempty\"`\n\tRgbcolor   RGBColor   `json:\"rgbcolor,omitempty\"`\n\tB64        Base64     `json:\"b64,omitempty\"`\n\tPw         Password   `json:\"pw,omitempty\"`\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/kubernetes-extensions.go",
    "content": "// Copyright 2024 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"encoding/json\"\n\t\"regexp\"\n)\n\nconst k8sPrefix = \"k8s-\"\n\nfunc init() {\n\t// register formats in the KubernetesExtensions registry:\n\t//   - k8s-short-name\n\t//   - k8s-long-name\n\tshortName := ShortName(\"\")\n\tDefault.Add(k8sPrefix+\"short-name\", &shortName, IsShortName)\n\n\tlongName := LongName(\"\")\n\tDefault.Add(k8sPrefix+\"long-name\", &longName, IsLongName)\n}\n\n// ShortName is a name, up to 63 characters long, composed of alphanumeric\n// characters and dashes, which cannot begin or end with a dash.\n//\n// ShortName almost conforms to the definition of a label in DNS (RFC 1123),\n// except that uppercase letters are not allowed.\n//\n// xref: https://github.com/kubernetes/kubernetes/issues/71140\n//\n// swagger:strfmt k8s-short-name\ntype ShortName string\n\nfunc (r ShortName) MarshalText() ([]byte, error) {\n\treturn []byte(string(r)), nil\n}\n\nfunc (r *ShortName) UnmarshalText(data []byte) error { // validation is performed later on\n\t*r = ShortName(data)\n\treturn nil\n}\n\nfunc (r ShortName) String() string {\n\treturn string(r)\n}\n\nfunc (r ShortName) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(r))\n}\n\nfunc (r *ShortName) UnmarshalJSON(data []byte) error {\n\treturn unmarshalJSON(r, data)\n}\n\nfunc (r *ShortName) DeepCopyInto(out *ShortName) {\n\t*out = *r\n}\n\nfunc (r *ShortName) DeepCopy() *ShortName {\n\treturn deepCopy(r)\n}\n\nconst shortNameFmt string = \"[a-z0-9]([-a-z0-9]*[a-z0-9])?\"\n\n// ShortNameMaxLength is a label's max length in DNS (RFC 1123)\nconst ShortNameMaxLength int = 63\n\nvar shortNameRegexp = regexp.MustCompile(\"^\" + shortNameFmt + \"$\")\n\n// IsShortName checks if a string is a valid ShortName.\nfunc IsShortName(value string) bool {\n\treturn len(value) <= ShortNameMaxLength &&\n\t\tshortNameRegexp.MatchString(value)\n}\n\n// LongName is a name, up to 253 characters long, composed of dot-separated\n// segments; each segment uses only alphanumerics and dashes (no\n// leading/trailing).\n//\n// LongName almost conforms to the definition of a subdomain in DNS (RFC 1123),\n// except that uppercase letters are not allowed, and there is no max length\n// limit of 63 for each of the dot-separated DNS Labels that make up the\n// subdomain.\n//\n// xref: https://github.com/kubernetes/kubernetes/issues/71140\n// xref: https://github.com/kubernetes/kubernetes/issues/79351\n//\n// swagger:strfmt k8s-long-name\ntype LongName string\n\nfunc (r LongName) MarshalText() ([]byte, error) {\n\treturn []byte(string(r)), nil\n}\n\nfunc (r *LongName) UnmarshalText(data []byte) error { // validation is performed later on\n\t*r = LongName(data)\n\treturn nil\n}\n\nfunc (r LongName) String() string {\n\treturn string(r)\n}\n\nfunc (r LongName) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(string(r))\n}\n\nfunc (r *LongName) UnmarshalJSON(data []byte) error {\n\treturn unmarshalJSON(r, data)\n}\n\nfunc (r *LongName) DeepCopyInto(out *LongName) {\n\t*out = *r\n}\n\nfunc (r *LongName) DeepCopy() *LongName {\n\treturn deepCopy(r)\n}\n\nconst longNameFmt string = shortNameFmt + \"(\\\\.\" + shortNameFmt + \")*\"\n\n// LongNameMaxLength is a subdomain's max length in DNS (RFC 1123)\nconst LongNameMaxLength int = 253\n\nvar longNameRegexp = regexp.MustCompile(\"^\" + longNameFmt + \"$\")\n\n// IsLongName checks if a string is a valid LongName.\nfunc IsLongName(value string) bool {\n\treturn len(value) <= LongNameMaxLength &&\n\t\tlongNameRegexp.MatchString(value)\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/kubernetes-extensions_test.go",
    "content": "// Copyright 2024 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nvar goodShortName = []string{\n\t\"a\", \"ab\", \"abc\", \"a1\", \"a-1\", \"a--1--2--b\",\n\t\"0\", \"01\", \"012\", \"1a\", \"1-a\", \"1--a--b--2\",\n\tstrings.Repeat(\"a\", 63),\n}\nvar badShortName = []string{\n\t\"\", \"A\", \"ABC\", \"aBc\", \"A1\", \"A-1\", \"1-A\",\n\t\"-\", \"-a\", \"-1\",\n\t\"_\", \"a_\", \"_a\", \"a_b\", \"1_\", \"_1\", \"1_2\",\n\t\".\", \"a.\", \".a\", \"a.b\", \"1.\", \".1\", \"1.2\",\n\t\" \", \"a \", \" a\", \"a b\", \"1 \", \" 1\", \"1 2\",\n\tstrings.Repeat(\"a\", 64),\n}\n\nvar prefixOnlyShortName = []string{\n\t\"a-\", \"1-\",\n}\n\nfunc TestIsShortName(t *testing.T) {\n\tv := ShortName(\"a\")\n\ttestStringFormatWithRegistry(t, Default, &v, \"k8s-short-name\", \"a\", goodShortName, append(badShortName, prefixOnlyShortName...))\n}\n\nvar goodLongName = []string{\n\t\"a\", \"ab\", \"abc\", \"a1\", \"a-1\", \"a--1--2--b\",\n\t\"0\", \"01\", \"012\", \"1a\", \"1-a\", \"1--a--b--2\",\n\t\"a.a\", \"ab.a\", \"abc.a\", \"a1.a\", \"a-1.a\", \"a--1--2--b.a\",\n\t\"a.1\", \"ab.1\", \"abc.1\", \"a1.1\", \"a-1.1\", \"a--1--2--b.1\",\n\t\"0.a\", \"01.a\", \"012.a\", \"1a.a\", \"1-a.a\", \"1--a--b--2\",\n\t\"0.1\", \"01.1\", \"012.1\", \"1a.1\", \"1-a.1\", \"1--a--b--2.1\",\n\t\"a.b.c.d.e\", \"aa.bb.cc.dd.ee\", \"1.2.3.4.5\", \"11.22.33.44.55\",\n\tstrings.Repeat(\"a\", 253),\n}\nvar badLongName = []string{\n\t\"\", \"A\", \"ABC\", \"aBc\", \"A1\", \"A-1\", \"1-A\",\n\t\"-\", \"-a\", \"-1\",\n\t\"_\", \"a_\", \"_a\", \"a_b\", \"1_\", \"_1\", \"1_2\",\n\t\".\", \"a.\", \".a\", \"a..b\", \"1.\", \".1\", \"1..2\",\n\t\" \", \"a \", \" a\", \"a b\", \"1 \", \" 1\", \"1 2\",\n\t\"A.a\", \"aB.a\", \"ab.A\", \"A1.a\", \"a1.A\",\n\t\"A.1\", \"aB.1\", \"A1.1\", \"1A.1\",\n\t\"0.A\", \"01.A\", \"012.A\", \"1A.a\", \"1a.A\",\n\t\"A.B.C.D.E\", \"AA.BB.CC.DD.EE\", \"a.B.c.d.e\", \"aa.bB.cc.dd.ee\",\n\t\"a@b\", \"a,b\", \"a_b\", \"a;b\",\n\t\"a:b\", \"a%b\", \"a?b\", \"a$b\",\n\tstrings.Repeat(\"a\", 254),\n}\n\nvar prefixOnlyLongName = []string{\n\t\"a-\", \"1-\",\n}\n\nfunc TestFormatLongName(t *testing.T) {\n\tv := LongName(\"a\")\n\ttestStringFormatWithRegistry(t, Default, &v, \"k8s-long-name\", \"a\", goodLongName, append(badLongName, prefixOnlyLongName...))\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/time.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"encoding/json\"\n\t\"regexp\"\n\t\"strings\"\n\t\"time\"\n)\n\nfunc init() {\n\tdt := DateTime{}\n\tDefault.Add(\"datetime\", &dt, IsDateTime)\n}\n\n// IsDateTime returns true when the string is a valid date-time\nfunc IsDateTime(str string) bool {\n\tif len(str) < 4 {\n\t\treturn false\n\t}\n\ts := strings.Split(strings.ToLower(str), \"t\")\n\tif len(s) < 2 || !IsDate(s[0]) {\n\t\treturn false\n\t}\n\n\tmatches := rxDateTime.FindAllStringSubmatch(s[1], -1)\n\tif len(matches) == 0 || len(matches[0]) == 0 {\n\t\treturn false\n\t}\n\tm := matches[0]\n\tres := m[1] <= \"23\" && m[2] <= \"59\" && m[3] <= \"59\"\n\treturn res\n}\n\nconst (\n\t// RFC3339Millis represents a ISO8601 format to millis instead of to nanos\n\tRFC3339Millis = \"2006-01-02T15:04:05.000Z07:00\"\n\t// RFC3339Micro represents a ISO8601 format to micro instead of to nano\n\tRFC3339Micro = \"2006-01-02T15:04:05.000000Z07:00\"\n\t// ISO8601LocalTime represents a ISO8601 format to ISO8601 in local time (no timezone)\n\tISO8601LocalTime = \"2006-01-02T15:04:05\"\n\t// DateTimePattern pattern to match for the date-time format from http://tools.ietf.org/html/rfc3339#section-5.6\n\tDateTimePattern = `^([0-9]{2}):([0-9]{2}):([0-9]{2})(.[0-9]+)?(z|([+-][0-9]{2}:[0-9]{2}))$`\n)\n\nvar (\n\tdateTimeFormats = []string{RFC3339Micro, RFC3339Millis, time.RFC3339, time.RFC3339Nano, ISO8601LocalTime}\n\trxDateTime      = regexp.MustCompile(DateTimePattern)\n\t// MarshalFormat sets the time resolution format used for marshaling time (set to milliseconds)\n\tMarshalFormat = RFC3339Millis\n)\n\n// ParseDateTime parses a string that represents an ISO8601 time or a unix epoch\nfunc ParseDateTime(data string) (DateTime, error) {\n\tif data == \"\" {\n\t\treturn NewDateTime(), nil\n\t}\n\tvar lastError error\n\tfor _, layout := range dateTimeFormats {\n\t\tdd, err := time.Parse(layout, data)\n\t\tif err != nil {\n\t\t\tlastError = err\n\t\t\tcontinue\n\t\t}\n\t\treturn DateTime(dd), nil\n\t}\n\treturn DateTime{}, lastError\n}\n\n// DateTime is a time but it serializes to ISO8601 format with millis\n// It knows how to read 3 different variations of a RFC3339 date time.\n// Most APIs we encounter want either millisecond or second precision times.\n// This just tries to make it worry-free.\n//\n// swagger:strfmt date-time\ntype DateTime time.Time\n\n// NewDateTime is a representation of zero value for DateTime type\nfunc NewDateTime() DateTime {\n\treturn DateTime(time.Unix(0, 0).UTC())\n}\n\n// String converts this time to a string\nfunc (t DateTime) String() string {\n\treturn time.Time(t).Format(MarshalFormat)\n}\n\n// MarshalText implements the text marshaller interface\nfunc (t DateTime) MarshalText() ([]byte, error) {\n\treturn []byte(t.String()), nil\n}\n\n// UnmarshalText implements the text unmarshaller interface\nfunc (t *DateTime) UnmarshalText(text []byte) error {\n\ttt, err := ParseDateTime(string(text))\n\tif err != nil {\n\t\treturn err\n\t}\n\t*t = tt\n\treturn nil\n}\n\n// MarshalJSON returns the DateTime as JSON\nfunc (t DateTime) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(time.Time(t).Format(MarshalFormat))\n}\n\n// UnmarshalJSON sets the DateTime from JSON\nfunc (t *DateTime) UnmarshalJSON(data []byte) error {\n\tif string(data) == jsonNull {\n\t\treturn nil\n\t}\n\n\tvar tstr string\n\tif err := json.Unmarshal(data, &tstr); err != nil {\n\t\treturn err\n\t}\n\ttt, err := ParseDateTime(tstr)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*t = tt\n\treturn nil\n}\n\n// DeepCopyInto copies the receiver and writes its value into out.\nfunc (t *DateTime) DeepCopyInto(out *DateTime) {\n\t*out = *t\n}\n\n// DeepCopy copies the receiver into a new DateTime.\nfunc (t *DateTime) DeepCopy() *DateTime {\n\tif t == nil {\n\t\treturn nil\n\t}\n\tout := new(DateTime)\n\tt.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "pkg/validation/strfmt/time_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage strfmt\n\nimport (\n\t\"bytes\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nvar (\n\tp, _ = time.Parse(time.RFC3339Nano, \"2011-08-18T19:03:37.000000000+01:00\")\n\n\ttestCases = []struct {\n\t\tin   []byte    // externally sourced data -- to be unmarshalled\n\t\ttime time.Time // its representation in time.Time\n\t\tstr  string    // its marshalled representation\n\t}{\n\t\t{[]byte(\"2014-12-15T08:00:00\"), time.Date(2014, 12, 15, 8, 0, 0, 0, time.UTC), \"2014-12-15T08:00:00.000Z\"},\n\t\t{[]byte(\"2014-12-15T08:00:00.000Z\"), time.Date(2014, 12, 15, 8, 0, 0, 0, time.UTC), \"2014-12-15T08:00:00.000Z\"},\n\t\t{[]byte(\"2011-08-18T19:03:37.000000000+01:00\"), time.Date(2011, 8, 18, 19, 3, 37, 0, p.Location()), \"2011-08-18T19:03:37.000+01:00\"},\n\t\t{[]byte(\"2014-12-15T19:30:20Z\"), time.Date(2014, 12, 15, 19, 30, 20, 0, time.UTC), \"2014-12-15T19:30:20.000Z\"},\n\t\t{[]byte(\"0001-01-01T00:00:00Z\"), time.Time{}.UTC(), \"0001-01-01T00:00:00.000Z\"},\n\t\t{[]byte(\"\"), time.Unix(0, 0).UTC(), \"1970-01-01T00:00:00.000Z\"},\n\t\t{[]byte(nil), time.Unix(0, 0).UTC(), \"1970-01-01T00:00:00.000Z\"},\n\t}\n)\n\nfunc TestNewDateTime(t *testing.T) {\n\tassert.EqualValues(t, time.Unix(0, 0).UTC(), NewDateTime())\n}\n\nfunc TestParseDateTime_errorCases(t *testing.T) {\n\t_, err := ParseDateTime(\"yada\")\n\tassert.Error(t, err)\n}\n\n// TestParseDateTime tests the full cycle:\n// parsing -> marshalling -> unmarshalling / scanning\nfunc TestParseDateTime_fullCycle(t *testing.T) {\n\tfor caseNum, example := range testCases {\n\t\tt.Logf(\"Case #%d\", caseNum)\n\n\t\tparsed, err := ParseDateTime(example.str)\n\t\tassert.NoError(t, err)\n\t\tassert.EqualValues(t, example.time, parsed)\n\n\t\tmt, err := parsed.MarshalText()\n\t\tassert.NoError(t, err)\n\t\tassert.Equal(t, []byte(example.str), mt)\n\n\t\tif example.str != \"\" {\n\t\t\tv := IsDateTime(example.str)\n\t\t\tassert.True(t, v)\n\t\t} else {\n\t\t\tt.Logf(\"IsDateTime() skipped for empty testcases\")\n\t\t}\n\n\t\tpp := NewDateTime()\n\t\terr = pp.UnmarshalText(mt)\n\t\tassert.NoError(t, err)\n\t\tassert.EqualValues(t, example.time, pp)\n\n\t}\n}\n\nfunc TestDateTime_IsDateTime_errorCases(t *testing.T) {\n\tv := IsDateTime(\"zor\")\n\tassert.False(t, v)\n\n\tv = IsDateTime(\"zorg\")\n\tassert.False(t, v)\n\n\tv = IsDateTime(\"zorgTx\")\n\tassert.False(t, v)\n\n\tv = IsDateTime(\"1972-12-31Tx\")\n\tassert.False(t, v)\n\n\tv = IsDateTime(\"1972-12-31T24:40:00.000Z\")\n\tassert.False(t, v)\n\n\tv = IsDateTime(\"1972-12-31T23:63:00.000Z\")\n\tassert.False(t, v)\n\n\tv = IsDateTime(\"1972-12-31T23:59:60.000Z\")\n\tassert.False(t, v)\n\n}\nfunc TestDateTime_UnmarshalText_errorCases(t *testing.T) {\n\tpp := NewDateTime()\n\terr := pp.UnmarshalText([]byte(\"yada\"))\n\tassert.Error(t, err)\n\terr = pp.UnmarshalJSON([]byte(\"yada\"))\n\tassert.Error(t, err)\n}\n\nfunc TestDateTime_UnmarshalText(t *testing.T) {\n\tfor caseNum, example := range testCases {\n\t\tt.Logf(\"Case #%d\", caseNum)\n\t\tpp := NewDateTime()\n\t\terr := pp.UnmarshalText(example.in)\n\t\tassert.NoError(t, err)\n\t\tassert.EqualValues(t, example.time, pp)\n\t}\n}\nfunc TestDateTime_UnmarshalJSON(t *testing.T) {\n\tfor caseNum, example := range testCases {\n\t\tt.Logf(\"Case #%d\", caseNum)\n\t\tpp := NewDateTime()\n\t\terr := pp.UnmarshalJSON(esc(example.in))\n\t\tassert.NoError(t, err)\n\t\tassert.EqualValues(t, example.time, pp)\n\t}\n\n\t// Check UnmarshalJSON failure with no lexed items\n\tpp := NewDateTime()\n\terr := pp.UnmarshalJSON([]byte(\"zorg emperor\"))\n\tassert.Error(t, err)\n\n\t// Check lexer failure\n\terr = pp.UnmarshalJSON([]byte(`\"zorg emperor\"`))\n\tassert.Error(t, err)\n\n\t// Check null case\n\terr = pp.UnmarshalJSON([]byte(\"null\"))\n\tassert.Nil(t, err)\n}\n\nfunc esc(v []byte) []byte {\n\tvar buf bytes.Buffer\n\tbuf.WriteByte('\"')\n\tbuf.Write(v)\n\tbuf.WriteByte('\"')\n\treturn buf.Bytes()\n}\n\nfunc TestDateTime_MarshalText(t *testing.T) {\n\tfor caseNum, example := range testCases {\n\t\tt.Logf(\"Case #%d\", caseNum)\n\t\tdt := DateTime(example.time)\n\t\tmt, err := dt.MarshalText()\n\t\tassert.NoError(t, err)\n\t\tassert.Equal(t, []byte(example.str), mt)\n\t}\n}\nfunc TestDateTime_MarshalJSON(t *testing.T) {\n\tfor caseNum, example := range testCases {\n\t\tt.Logf(\"Case #%d\", caseNum)\n\t\tdt := DateTime(example.time)\n\t\tbb, err := dt.MarshalJSON()\n\t\tassert.NoError(t, err)\n\t\tassert.EqualValues(t, esc([]byte(example.str)), bb)\n\t}\n}\n\nfunc TestDeepCopyDateTime(t *testing.T) {\n\tp, err := ParseDateTime(\"2011-08-18T19:03:37.000000000+01:00\")\n\tassert.NoError(t, err)\n\tin := &p\n\n\tout := new(DateTime)\n\tin.DeepCopyInto(out)\n\tassert.Equal(t, in, out)\n\n\tout2 := in.DeepCopy()\n\tassert.Equal(t, in, out2)\n\n\tvar inNil *DateTime\n\tout3 := inNil.DeepCopy()\n\tassert.Nil(t, out3)\n}\n"
  },
  {
    "path": "pkg/validation/validate/.github/CONTRIBUTING.md",
    "content": "## Contribution Guidelines\n\n### Pull requests are always welcome\n\nWe are always thrilled to receive pull requests, and do our best to\nprocess them as fast as possible. Not sure if that typo is worth a pull\nrequest? Do it! We will appreciate it.\n\nIf your pull request is not accepted on the first try, don't be\ndiscouraged! If there's a problem with the implementation, hopefully you\nreceived feedback on what to improve.\n\nWe're trying very hard to keep go-swagger lean and focused. We don't want it\nto do everything for everybody. This means that we might decide against\nincorporating a new feature. However, there might be a way to implement\nthat feature *on top of* go-swagger.\n\n\n### Conventions\n\nFork the repo and make changes on your fork in a feature branch:\n\n- If it's a bugfix branch, name it XXX-something where XXX is the number of the\n  issue\n- If it's a feature branch, create an enhancement issue to announce your\n  intentions, and name it XXX-something where XXX is the number of the issue.\n\nSubmit unit tests for your changes.  Go has a great test framework built in; use\nit! Take a look at existing tests for inspiration. Run the full test suite on\nyour branch before submitting a pull request.\n\nUpdate the documentation when creating or modifying features. Test\nyour documentation changes for clarity, concision, and correctness, as\nwell as a clean documentation build. See ``docs/README.md`` for more\ninformation on building the docs and how docs get released.\n\nWrite clean code. Universally formatted code promotes ease of writing, reading,\nand maintenance. Always run `gofmt -s -w file.go` on each changed file before\ncommitting your changes. Most editors have plugins that do this automatically.\n\nPull requests descriptions should be as clear as possible and include a\nreference to all the issues that they address.\n\nPull requests must not contain commits from other users or branches.\n\nCommit messages must start with a capitalized and short summary (max. 50\nchars) written in the imperative, followed by an optional, more detailed\nexplanatory text which is separated from the summary by an empty line.\n\nCode review comments may be added to your pull request. Discuss, then make the\nsuggested modifications and push additional commits to your feature branch. Be\nsure to post a comment after pushing. The new commits will show up in the pull\nrequest automatically, but the reviewers will not be notified unless you\ncomment.\n\nBefore the pull request is merged, make sure that you squash your commits into\nlogical units of work using `git rebase -i` and `git push -f`. After every\ncommit the test suite should be passing. Include documentation changes in the\nsame commit so that a revert would remove all traces of the feature or fix.\n\nCommits that fix or close an issue should include a reference like `Closes #XXX`\nor `Fixes #XXX`, which will automatically close the issue when merged.\n\n### Sign your work\n\nThe sign-off is a simple line at the end of the explanation for the\npatch, which certifies that you wrote it or otherwise have the right to\npass it on as an open-source patch.  The rules are pretty simple: if you\ncan certify the below (from\n[developercertificate.org](http://developercertificate.org/)):\n\n```\nDeveloper Certificate of Origin\nVersion 1.1\n\nCopyright (C) 2004, 2006 The Linux Foundation and its contributors.\n660 York Street, Suite 102,\nSan Francisco, CA 94110 USA\n\nEveryone is permitted to copy and distribute verbatim copies of this\nlicense document, but changing it is not allowed.\n\n\nDeveloper's Certificate of Origin 1.1\n\nBy making a contribution to this project, I certify that:\n\n(a) The contribution was created in whole or in part by me and I\n    have the right to submit it under the open source license\n    indicated in the file; or\n\n(b) The contribution is based upon previous work that, to the best\n    of my knowledge, is covered under an appropriate open source\n    license and I have the right under that license to submit that\n    work with modifications, whether created in whole or in part\n    by me, under the same open source license (unless I am\n    permitted to submit under a different license), as indicated\n    in the file; or\n\n(c) The contribution was provided directly to me by some other\n    person who certified (a), (b) or (c) and I have not modified\n    it.\n\n(d) I understand and agree that this project and the contribution\n    are public and that a record of the contribution (including all\n    personal information I submit with it, including my sign-off) is\n    maintained indefinitely and may be redistributed consistent with\n    this project or the open source license(s) involved.\n```\n\nthen you just add a line to every git commit message:\n\n    Signed-off-by: Joe Smith <joe@gmail.com>\n\nusing your real name (sorry, no pseudonyms or anonymous contributions.)\n\nYou can add the sign off when creating the git commit via `git commit -s`.\n"
  },
  {
    "path": "pkg/validation/validate/.gitignore",
    "content": "secrets.yml\ncoverage.out\n*.cov\n*.out\nplayground\n"
  },
  {
    "path": "pkg/validation/validate/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "pkg/validation/validate/debug.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n)\n\nvar (\n\t// Debug is true when the SWAGGER_DEBUG env var is not empty.\n\t// It enables a more verbose logging of validators.\n\tDebug = os.Getenv(\"SWAGGER_DEBUG\") != \"\"\n\t// validateLogger is a debug logger for this package\n\tvalidateLogger *log.Logger\n)\n\nfunc init() {\n\tdebugOptions()\n}\n\nfunc debugOptions() {\n\tvalidateLogger = log.New(os.Stdout, \"validate:\", log.LstdFlags)\n}\n\nfunc debugLog(msg string, args ...interface{}) {\n\t// A private, trivial trace logger, based on go-openapi/spec/expander.go:debugLog()\n\tif Debug {\n\t\t_, file1, pos1, _ := runtime.Caller(1)\n\t\tvalidateLogger.Printf(\"%s:%d: %s\", filepath.Base(file1), pos1, fmt.Sprintf(msg, args...))\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/validate/debug_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"os\"\n\t\"sync\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nvar (\n\tlogMutex = &sync.Mutex{}\n)\n\nfunc TestDebug(t *testing.T) {\n\ttmpFile, _ := os.CreateTemp(\"\", \"debug-test\")\n\ttmpName := tmpFile.Name()\n\tdefer func() {\n\t\tDebug = false\n\t\t// mutex for -race\n\t\tlogMutex.Unlock()\n\t\tos.Remove(tmpName)\n\t}()\n\n\t// mutex for -race\n\tlogMutex.Lock()\n\tDebug = true\n\tdebugOptions()\n\tdefer func() {\n\t\tvalidateLogger.SetOutput(os.Stdout)\n\t}()\n\n\tvalidateLogger.SetOutput(tmpFile)\n\n\tdebugLog(\"A debug\")\n\tDebug = false\n\ttmpFile.Close()\n\n\tflushed, _ := os.Open(tmpName)\n\tbuf := make([]byte, 500)\n\t_, _ = flushed.Read(buf)\n\tvalidateLogger.SetOutput(os.Stdout)\n\tassert.Contains(t, string(buf), \"A debug\")\n}\n"
  },
  {
    "path": "pkg/validation/validate/doc.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/*\nPackage validate provides methods to validate a swagger schema.\n\nThis package follows Swagger 2.0. specification (aka OpenAPI 2.0). Reference\ncan be found here: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md.\n*/\n\npackage validate\n"
  },
  {
    "path": "pkg/validation/validate/doc_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate_test\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"testing\"\n\n\t// Spec loading\n\t\"github.com/stretchr/testify/require\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"   // OpenAPI format extensions\n\t\"k8s.io/kube-openapi/pkg/validation/validate\" // This package\n)\n\nfunc ExampleAgainstSchema() {\n\t// Example using encoding/json as unmarshaller\n\tvar schemaJSON = `\n{\n    \"properties\": {\n        \"name\": {\n            \"type\": \"string\",\n            \"pattern\": \"^[A-Za-z]+$\",\n            \"minLength\": 1\n        }\n\t},\n    \"patternProperties\": {\n\t  \"address-[0-9]+\": {\n         \"type\": \"string\",\n         \"pattern\": \"^[\\\\s|a-z]+$\"\n\t  }\n    },\n    \"required\": [\n        \"name\"\n    ],\n\t\"additionalProperties\": false\n}`\n\n\tschema := new(spec.Schema)\n\t_ = json.Unmarshal([]byte(schemaJSON), schema)\n\n\tinput := map[string]interface{}{}\n\n\t// JSON data to validate\n\tinputJSON := `{\"name\": \"Ivan\",\"address-1\": \"sesame street\"}`\n\t_ = json.Unmarshal([]byte(inputJSON), &input)\n\n\t// strfmt.Default is the registry of recognized formats\n\terr := validate.AgainstSchema(schema, input, strfmt.Default)\n\tif err != nil {\n\t\tfmt.Printf(\"JSON does not validate against schema: %v\", err)\n\t} else {\n\t\tfmt.Printf(\"OK\")\n\t}\n\t// Output:\n\t// OK\n}\n\nfunc TestValidate_Issue112(t *testing.T) {\n\tt.Run(\"returns no error on body includes `items` key\", func(t *testing.T) {\n\t\tbody := map[string]interface{}{\"items1\": nil}\n\t\terr := validate.AgainstSchema(getSimpleSchema(), body, strfmt.Default)\n\t\trequire.NoError(t, err)\n\t})\n\n\tt.Run(\"returns no error when body includes `items` key\", func(t *testing.T) {\n\t\tbody := map[string]interface{}{\"items\": nil}\n\t\terr := validate.AgainstSchema(getSimpleSchema(), body, strfmt.Default)\n\t\trequire.NoError(t, err)\n\t})\n}\n\nfunc getSimpleSchema() *spec.Schema {\n\treturn &spec.Schema{\n\t\tSchemaProps: spec.SchemaProps{\n\t\t\tType: spec.StringOrArray{\"object\"},\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/formats/extended-format.json",
    "content": "[\n    {\n        \"description\": \"Sanity check: validation of date-time strings\",\n        \"schema\": {\"format\": \"date-time\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid date-time string\",\n                \"data\": \"1963-06-19T08:30:06.283185Z\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid date-time string\",\n                \"data\": \"06/19/1963 08:30:06 PST\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"only RFC3339 not all of ISO 8601 are valid\",\n                \"data\": \"2013-350T01:01:01\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of date strings\",\n        \"schema\": {\"format\": \"date\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid date string\",\n                \"data\": \"1963-06-19\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"invalid month in date\",\n                \"data\": \"1963-13-19\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"invalid day in date\",\n                \"data\": \"1963-12-39\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"invalid year in date\",\n                \"data\": \"63-12-39\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"invalid leap year date\",\n                \"data\": \"1999-02-29\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"date does not validate date-time\",\n                \"data\": \"1963-06-19T08:30:06.283185Z\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"invalid date\",\n                \"data\": \"2013-350T01:01:01\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid date string\",\n                \"data\": \"06/19/1963\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"only RFC3339 not all of ISO 8601 are valid\",\n                \"data\": \"2013-350T01:01:01\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"sanity check: validation of URIs (literally from json schema test suite)\",\n        \"schema\": {\"format\": \"uri\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid URI\",\n                \"data\": \"http://foo.bar/?baz=qux#quux\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid URI\",\n                \"data\": \"\\\\\\\\WINDOWS\\\\fileshare\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid URI though valid URI reference\",\n                \"data\": \"abc\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"sanity check: validation of e-mail addresses (literally from json schema test suite)\",\n        \"schema\": {\"format\": \"email\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid e-mail address\",\n                \"data\": \"joe.bloggs@example.com\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid e-mail address\",\n                \"data\": \"2962\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"sanity check: validation of IP addresses (literally from json schema test suite)\",\n        \"schema\": {\"format\": \"ipv4\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid IP address\",\n                \"data\": \"192.168.0.1\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an IP address with too many components\",\n                \"data\": \"127.0.0.0.1\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IP address with out-of-range values\",\n                \"data\": \"256.256.256.256\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IP address without 4 components\",\n                \"data\": \"127.0\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IP address as an integer\",\n                \"data\": \"0x7f000001\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"sanity check: validation of IPv6 addresses (literally from json schema test suite)\",\n        \"schema\": {\"format\": \"ipv6\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid IPv6 address\",\n                \"data\": \"::1\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an IPv6 address with out-of-range values\",\n                \"data\": \"12345::\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IPv6 address with too many components\",\n                \"data\": \"1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IPv6 address containing illegal characters\",\n                \"data\": \"::laptop\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"sanity check: validation of host names (literally from json schema test suite)\",\n        \"schema\": {\"format\": \"hostname\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid host name\",\n                \"data\": \"www.example.com\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a host name starting with an illegal character\",\n                \"data\": \"-a-host-name-that-starts-with--\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"a host name containing illegal characters\",\n                \"data\": \"not_a_valid_host_name\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"a host name with a component too long\",\n                \"data\": \"a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of duration strings\",\n        \"schema\": {\"format\": \"duration\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid duration string\",\n                \"data\": \"1ns\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid duration string\",\n                \"data\": \"1min\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid duration string\",\n                \"data\": \"1wk\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid duration string\",\n                \"data\": \"3week\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid duration string\",\n                \"data\": \"3 week\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid duration string\",\n                \"data\": \"3 weeks\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid duration string\",\n                \"data\": \"three weeks\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid duration string\",\n                \"data\": \"06/19/1963 08:30:06 PST\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid duration string\",\n                \"data\": \"06/19/1963 08:30:06 PST\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid duration string\",\n                \"data\": \"zorg\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of MAC address strings\",\n        \"schema\": {\"format\": \"mac\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid MAC address string\",\n                \"data\": \"01:02:03:04:05:06\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid MAC address string\",\n                \"data\": \"AE:02:03:04:05:06\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid MAC address string\",\n                \"data\": \"01:02:03:0G:05:06\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid MAC address string\",\n                \"data\": \"01:02:03:04:05:06:07\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of uuid strings\",\n        \"schema\": {\"format\": \"uuid\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid uuid\",\n                \"data\": \"a8098c1a-f86e-11da-bd1a-00112444be1e\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid uuid\",\n                \"data\": \"a8098c1a+f86e+11da+bd1a+00112444be1e\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of uuid3 strings\",\n        \"schema\": {\"format\": \"uuid3\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid uuid3\",\n                \"data\": \"bcd02e22-68f0-3046-a512-327cca9def8f\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid uuid3\",\n                \"data\": \"not-an-uuid3\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid uuid3\",\n                \"data\": \"bcg02e22-68f0-3046-a512-327cca9def8f\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of uuid4 strings\",\n        \"schema\": {\"format\": \"uuid4\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid uuid4\",\n                \"data\": \"025b0d74-00a2-4048-bf57-227c5111bb34\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid uuid4\",\n                \"data\": \"not-an-uuid4\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid uuid4\",\n                \"data\": \"025b0d74-00a2-4048-bf57-227x5111bb34\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of uuid5 strings\",\n        \"schema\": {\"format\": \"uuid5\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid uuid5\",\n                \"data\": \"886313e1-3b8a-5372-9b90-0c9aee199e5d\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid uuid5\",\n                \"data\": \"886313e1/3b8a-5372/9b90/0c9aee199e5d\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid uuid5\",\n                \"data\": \"886313h1-3b8a-5372-9b90-0c9aee199e5d\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"test password format (pass-through)\",\n        \"schema\": {\"format\": \"password\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid password\",\n                \"data\": \"secret\",\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of ISBN strings\",\n        \"schema\": {\"format\": \"isbn\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid ISBN\",\n                \"data\": \"0321751043\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid ISBN\",\n                \"data\": \"03217510X3\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of ISBN10 strings\",\n        \"schema\": {\"format\": \"isbn10\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid ISBN10\",\n                \"data\": \"0321751043\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid ISBN10\",\n                \"data\": \"032175104300000500\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of ISBN13 strings\",\n        \"schema\": {\"format\": \"isbn13\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid ISBN13\",\n                \"data\": \"978 3401013190\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid ISBN13\",\n                \"data\": \"032175104300000500\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of creditcard strings\",\n        \"schema\": {\"format\": \"creditcard\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid creditcard\",\n                \"data\": \"4111-1111-1111-1111\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid creditcard\",\n                \"data\": \"4111-1111-1111-11A1\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of SSN strings\",\n        \"schema\": {\"format\": \"ssn\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid SSN\",\n                \"data\": \"111-11-1111\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid SSN\",\n                \"data\": \"111-111111\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of hexcolor string\",\n        \"schema\": {\"format\": \"hexcolor\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid hexcolor\",\n                \"data\": \"#FFFFFF\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid hexcolor\",\n                \"data\": \"xFFFFFF\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of RGB color strings\",\n        \"schema\": {\"format\": \"rgbcolor\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid rgbcolor\",\n                \"data\": \"rgb(255,255,255)\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid rgbcolor\",\n                \"data\": \"rgb(100,100)\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of base64 strings\",\n        \"schema\": {\"format\": \"byte\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid byte (base64)\",\n                \"data\": \"ZWxpemFiZXRocG9zZXk=\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid byte (base64)\",\n                \"data\": \"ZWxpemFiZXRocG9zZXk\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of BSON object ID strings\",\n        \"schema\": {\"format\": \"bsonobjectid\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid bsonobjectid\",\n                \"data\": \"507f1f77bcf86cd799439011\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid bsonobjectid\",\n                \"data\": \"x07f1f77bcf86cd799439011\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of unsupported format (pass-through)\",\n        \"schema\": {\"format\": \"unsupported\"},\n        \"tests\": [\n            {\n                \"description\": \"an invalid format (no validation)\",\n                \"data\": \"my string\",\n                \"valid\": true\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/additionalItems.json",
    "content": "[\n    {\n        \"description\": \"additionalItems as schema\",\n        \"schema\": {\n            \"items\": [{}],\n            \"additionalItems\": {\"type\": \"integer\"}\n        },\n        \"tests\": [\n            {\n                \"description\": \"additional items match schema\",\n                \"data\": [ null, 2, 3, 4 ],\n                \"valid\": true\n            },\n            {\n                \"description\": \"additional items do not match schema\",\n                \"data\": [ null, 2, 3, \"foo\" ],\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"items is schema, no additionalItems\",\n        \"schema\": {\n            \"items\": {},\n            \"additionalItems\": false\n        },\n        \"tests\": [\n            {\n                \"description\": \"all items match schema\",\n                \"data\": [ 1, 2, 3, 4, 5 ],\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"array of items with no additionalItems\",\n        \"schema\": {\n            \"items\": [{}, {}, {}],\n            \"additionalItems\": false\n        },\n        \"tests\": [\n            {\n                \"description\": \"fewer number of items present\",\n                \"data\": [ 1, 2 ],\n                \"valid\": true\n            },\n            {\n                \"description\": \"equal number of items present\",\n                \"data\": [ 1, 2, 3 ],\n                \"valid\": true\n            },\n            {\n                \"description\": \"additional items are not permitted\",\n                \"data\": [ 1, 2, 3, 4 ],\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"additionalItems as false without items\",\n        \"schema\": {\"additionalItems\": false},\n        \"tests\": [\n            {\n                \"description\":\n                    \"items defaults to empty schema so everything is valid\",\n                \"data\": [ 1, 2, 3, 4, 5 ],\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores non-arrays\",\n                \"data\": {\"foo\" : \"bar\"},\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"additionalItems are allowed by default\",\n        \"schema\": {\"items\": [{\"type\": \"integer\"}]},\n        \"tests\": [\n            {\n                \"description\": \"only the first item is validated\",\n                \"data\": [1, \"foo\", false],\n                \"valid\": true\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/additionalProperties.json",
    "content": "[\n    {\n        \"description\":\n            \"additionalProperties being false does not allow other properties\",\n        \"schema\": {\n            \"properties\": {\"foo\": {}, \"bar\": {}},\n            \"patternProperties\": { \"^v\": {} },\n            \"additionalProperties\": false\n        },\n        \"tests\": [\n            {\n                \"description\": \"no additional properties is valid\",\n                \"data\": {\"foo\": 1},\n                \"valid\": true\n            },\n            {\n                \"description\": \"an additional property is invalid\",\n                \"data\": {\"foo\" : 1, \"bar\" : 2, \"quux\" : \"boom\"},\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores arrays\",\n                \"data\": [1, 2, 3],\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores strings\",\n                \"data\": \"foobarbaz\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores other non-objects\",\n                \"data\": 12,\n                \"valid\": true\n            },\n            {\n                \"description\": \"patternProperties are not additional properties\",\n                \"data\": {\"foo\":1, \"vroom\": 2},\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\":\n            \"additionalProperties allows a schema which should validate\",\n        \"schema\": {\n            \"properties\": {\"foo\": {}, \"bar\": {}},\n            \"additionalProperties\": {\"type\": \"boolean\"}\n        },\n        \"tests\": [\n            {\n                \"description\": \"no additional properties is valid\",\n                \"data\": {\"foo\": 1},\n                \"valid\": true\n            },\n            {\n                \"description\": \"an additional valid property is valid\",\n                \"data\": {\"foo\" : 1, \"bar\" : 2, \"quux\" : true},\n                \"valid\": true\n            },\n            {\n                \"description\": \"an additional invalid property is invalid\",\n                \"data\": {\"foo\" : 1, \"bar\" : 2, \"quux\" : 12},\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\":\n            \"additionalProperties can exist by itself\",\n        \"schema\": {\n            \"additionalProperties\": {\"type\": \"boolean\"}\n        },\n        \"tests\": [\n            {\n                \"description\": \"an additional valid property is valid\",\n                \"data\": {\"foo\" : true},\n                \"valid\": true\n            },\n            {\n                \"description\": \"an additional invalid property is invalid\",\n                \"data\": {\"foo\" : 1},\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"additionalProperties are allowed by default\",\n        \"schema\": {\"properties\": {\"foo\": {}, \"bar\": {}}},\n        \"tests\": [\n            {\n                \"description\": \"additional properties are allowed\",\n                \"data\": {\"foo\": 1, \"bar\": 2, \"quux\": true},\n                \"valid\": true\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/allOf.json",
    "content": "[\n    {\n        \"description\": \"allOf\",\n        \"schema\": {\n            \"allOf\": [\n                {\n                    \"properties\": {\n                        \"bar\": {\"type\": \"integer\"}\n                    },\n                    \"required\": [\"bar\"]\n                },\n                {\n                    \"properties\": {\n                        \"foo\": {\"type\": \"string\"}\n                    },\n                    \"required\": [\"foo\"]\n                }\n            ]\n        },\n        \"tests\": [\n            {\n                \"description\": \"allOf\",\n                \"data\": {\"foo\": \"baz\", \"bar\": 2},\n                \"valid\": true\n            },\n            {\n                \"description\": \"mismatch second\",\n                \"data\": {\"foo\": \"baz\"},\n                \"valid\": false\n            },\n            {\n                \"description\": \"mismatch first\",\n                \"data\": {\"bar\": 2},\n                \"valid\": false\n            },\n            {\n                \"description\": \"wrong type\",\n                \"data\": {\"foo\": \"baz\", \"bar\": \"quux\"},\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"allOf with base schema\",\n        \"schema\": {\n            \"properties\": {\"bar\": {\"type\": \"integer\"}},\n            \"required\": [\"bar\"],\n            \"allOf\" : [\n                {\n                    \"properties\": {\n                        \"foo\": {\"type\": \"string\"}\n                    },\n                    \"required\": [\"foo\"]\n                },\n                {\n                    \"properties\": {\n                        \"baz\": {\"type\": \"null\"}\n                    },\n                    \"required\": [\"baz\"]\n                }\n            ]\n        },\n        \"tests\": [\n            {\n                \"description\": \"valid\",\n                \"data\": {\"foo\": \"quux\", \"bar\": 2, \"baz\": null},\n                \"valid\": true\n            },\n            {\n                \"description\": \"mismatch base schema\",\n                \"data\": {\"foo\": \"quux\", \"baz\": null},\n                \"valid\": false\n            },\n            {\n                \"description\": \"mismatch first allOf\",\n                \"data\": {\"bar\": 2, \"baz\": null},\n                \"valid\": false\n            },\n            {\n                \"description\": \"mismatch second allOf\",\n                \"data\": {\"foo\": \"quux\", \"bar\": 2},\n                \"valid\": false\n            },\n            {\n                \"description\": \"mismatch both\",\n                \"data\": {\"bar\": 2},\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"allOf simple types\",\n        \"schema\": {\n            \"allOf\": [\n                {\"maximum\": 30},\n                {\"minimum\": 20}\n            ]\n        },\n        \"tests\": [\n            {\n                \"description\": \"valid\",\n                \"data\": 25,\n                \"valid\": true\n            },\n            {\n                \"description\": \"mismatch one\",\n                \"data\": 35,\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/anyOf.json",
    "content": "[\n    {\n        \"description\": \"anyOf\",\n        \"schema\": {\n            \"anyOf\": [\n                {\n                    \"type\": \"integer\"\n                },\n                {\n                    \"minimum\": 2\n                }\n            ]\n        },\n        \"tests\": [\n            {\n                \"description\": \"first anyOf valid\",\n                \"data\": 1,\n                \"valid\": true\n            },\n            {\n                \"description\": \"second anyOf valid\",\n                \"data\": 2.5,\n                \"valid\": true\n            },\n            {\n                \"description\": \"both anyOf valid\",\n                \"data\": 3,\n                \"valid\": true\n            },\n            {\n                \"description\": \"neither anyOf valid\",\n                \"data\": 1.5,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"anyOf with base schema\",\n        \"schema\": {\n            \"type\": \"string\",\n            \"anyOf\" : [\n                {\n                    \"maxLength\": 2\n                },\n                {\n                    \"minLength\": 4\n                }\n            ]\n        },\n        \"tests\": [\n            {\n                \"description\": \"mismatch base schema\",\n                \"data\": 3,\n                \"valid\": false\n            },\n            {\n                \"description\": \"one anyOf valid\",\n                \"data\": \"foobar\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"both anyOf invalid\",\n                \"data\": \"foo\",\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/default.json",
    "content": "[\n    {\n        \"description\": \"invalid type for default\",\n        \"schema\": {\n            \"properties\": {\n                \"foo\": {\n                    \"type\": \"integer\",\n                    \"default\": []\n                }\n            }\n        },\n        \"tests\": [\n            {\n                \"description\": \"valid when property is specified\",\n                \"data\": {\"foo\": 13},\n                \"valid\": true\n            },\n            {\n                \"description\": \"still valid when the invalid default is used\",\n                \"data\": {},\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"invalid string value for default\",\n        \"schema\": {\n            \"properties\": {\n                \"bar\": {\n                    \"type\": \"string\",\n                    \"minLength\": 4,\n                    \"default\": \"bad\"\n                }\n            }\n        },\n        \"tests\": [\n            {\n                \"description\": \"valid when property is specified\",\n                \"data\": {\"bar\": \"good\"},\n                \"valid\": true\n            },\n            {\n                \"description\": \"still valid when the invalid default is used\",\n                \"data\": {},\n                \"valid\": true\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/dependencies.json",
    "content": "[\n    {\n        \"description\": \"dependencies\",\n        \"schema\": {\n            \"dependencies\": {\"bar\": [\"foo\"]}\n        },\n        \"tests\": [\n            {\n                \"description\": \"neither\",\n                \"data\": {},\n                \"valid\": true\n            },\n            {\n                \"description\": \"nondependant\",\n                \"data\": {\"foo\": 1},\n                \"valid\": true\n            },\n            {\n                \"description\": \"with dependency\",\n                \"data\": {\"foo\": 1, \"bar\": 2},\n                \"valid\": true\n            },\n            {\n                \"description\": \"missing dependency\",\n                \"data\": {\"bar\": 2},\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores arrays\",\n                \"data\": [\"bar\"],\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores strings\",\n                \"data\": \"foobar\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores other non-objects\",\n                \"data\": 12,\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"multiple dependencies\",\n        \"schema\": {\n            \"dependencies\": {\"quux\": [\"foo\", \"bar\"]}\n        },\n        \"tests\": [\n            {\n                \"description\": \"neither\",\n                \"data\": {},\n                \"valid\": true\n            },\n            {\n                \"description\": \"nondependants\",\n                \"data\": {\"foo\": 1, \"bar\": 2},\n                \"valid\": true\n            },\n            {\n                \"description\": \"with dependencies\",\n                \"data\": {\"foo\": 1, \"bar\": 2, \"quux\": 3},\n                \"valid\": true\n            },\n            {\n                \"description\": \"missing dependency\",\n                \"data\": {\"foo\": 1, \"quux\": 2},\n                \"valid\": false\n            },\n            {\n                \"description\": \"missing other dependency\",\n                \"data\": {\"bar\": 1, \"quux\": 2},\n                \"valid\": false\n            },\n            {\n                \"description\": \"missing both dependencies\",\n                \"data\": {\"quux\": 1},\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"multiple dependencies subschema\",\n        \"schema\": {\n            \"dependencies\": {\n                \"bar\": {\n                    \"properties\": {\n                        \"foo\": {\"type\": \"integer\"},\n                        \"bar\": {\"type\": \"integer\"}\n                    }\n                }\n            }\n        },\n        \"tests\": [\n            {\n                \"description\": \"valid\",\n                \"data\": {\"foo\": 1, \"bar\": 2},\n                \"valid\": true\n            },\n            {\n                \"description\": \"no dependency\",\n                \"data\": {\"foo\": \"quux\"},\n                \"valid\": true\n            },\n            {\n                \"description\": \"wrong type\",\n                \"data\": {\"foo\": \"quux\", \"bar\": 2},\n                \"valid\": false\n            },\n            {\n                \"description\": \"wrong type other\",\n                \"data\": {\"foo\": 2, \"bar\": \"quux\"},\n                \"valid\": false\n            },\n            {\n                \"description\": \"wrong type both\",\n                \"data\": {\"foo\": \"quux\", \"bar\": \"quux\"},\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/enum.json",
    "content": "[\n    {\n        \"description\": \"simple enum validation\",\n        \"schema\": {\"enum\": [1, 2, 3]},\n        \"tests\": [\n            {\n                \"description\": \"one of the enum is valid\",\n                \"data\": 1,\n                \"valid\": true\n            },\n            {\n                \"description\": \"something else is invalid\",\n                \"data\": 4,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"heterogeneous enum validation\",\n        \"schema\": {\"enum\": [6, \"foo\", [], true, {\"foo\": 12}]},\n        \"tests\": [\n            {\n                \"description\": \"one of the enum is valid\",\n                \"data\": [],\n                \"valid\": true\n            },\n            {\n                \"description\": \"something else is invalid\",\n                \"data\": null,\n                \"valid\": false\n            },\n            {\n                \"description\": \"objects are deep compared\",\n                \"data\": {\"foo\": false},\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"enums in properties\",\n        \"schema\": {\n           \"type\":\"object\",\n\t\t     \"properties\": {\n\t\t        \"foo\": {\"enum\":[\"foo\"]},\n\t\t        \"bar\": {\"enum\":[\"bar\"]}\n\t\t     },\n\t\t     \"required\": [\"bar\"]\n\t\t  },\n        \"tests\": [\n            {\n                \"description\": \"both properties are valid\",\n                \"data\": {\"foo\":\"foo\", \"bar\":\"bar\"},\n                \"valid\": true\n            },\n            {\n                \"description\": \"missing optional property is valid\",\n                \"data\": {\"bar\":\"bar\"},\n                \"valid\": true\n            },\n            {\n                \"description\": \"missing required property is invalid\",\n                \"data\": {\"foo\":\"foo\"},\n                \"valid\": false\n            },\n            {\n                \"description\": \"missing all properties is invalid\",\n                \"data\": {},\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/format.json",
    "content": "[\n    {\n        \"description\": \"validation of date-time strings\",\n        \"schema\": {\"format\": \"date-time\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid date-time string\",\n                \"data\": \"1963-06-19T08:30:06.283185Z\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid date-time string\",\n                \"data\": \"06/19/1963 08:30:06 PST\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"only RFC3339 not all of ISO 8601 are valid\",\n                \"data\": \"2013-350T01:01:01\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of URIs\",\n        \"schema\": {\"format\": \"uri\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid URI\",\n                \"data\": \"http://foo.bar/?baz=qux#quux\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid URI\",\n                \"data\": \"\\\\\\\\WINDOWS\\\\fileshare\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid URI though valid URI reference\",\n                \"data\": \"abc\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of e-mail addresses\",\n        \"schema\": {\"format\": \"email\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid e-mail address\",\n                \"data\": \"joe.bloggs@example.com\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid e-mail address\",\n                \"data\": \"2962\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of IP addresses\",\n        \"schema\": {\"format\": \"ipv4\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid IP address\",\n                \"data\": \"192.168.0.1\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an IP address with too many components\",\n                \"data\": \"127.0.0.0.1\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IP address with out-of-range values\",\n                \"data\": \"256.256.256.256\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IP address without 4 components\",\n                \"data\": \"127.0\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IP address as an integer\",\n                \"data\": \"0x7f000001\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of IPv6 addresses\",\n        \"schema\": {\"format\": \"ipv6\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid IPv6 address\",\n                \"data\": \"::1\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an IPv6 address with out-of-range values\",\n                \"data\": \"12345::\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IPv6 address with too many components\",\n                \"data\": \"1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IPv6 address containing illegal characters\",\n                \"data\": \"::laptop\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of host names\",\n        \"schema\": {\"format\": \"hostname\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid host name\",\n                \"data\": \"www.example.com\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a host name starting with an illegal character\",\n                \"data\": \"-a-host-name-that-starts-with--\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"a host name containing illegal characters\",\n                \"data\": \"not_a_valid_host_name\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"a host name with a component too long\",\n                \"data\": \"a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component\",\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/items.json",
    "content": "[\n    {\n        \"description\": \"a schema given for items\",\n        \"schema\": {\n            \"items\": {\"type\": \"integer\"}\n        },\n        \"tests\": [\n            {\n                \"description\": \"valid items\",\n                \"data\": [ 1, 2, 3 ],\n                \"valid\": true\n            },\n            {\n                \"description\": \"wrong type of items\",\n                \"data\": [1, \"x\"],\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores non-arrays\",\n                \"data\": {\"foo\" : \"bar\"},\n                \"valid\": true\n            },\n            {\n                \"description\": \"JavaScript pseudo-array is valid\",\n                \"data\": {\n                    \"0\": \"invalid\",\n                    \"length\": 1\n                },\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"an array of schemas for items\",\n        \"schema\": {\n            \"items\": [\n                {\"type\": \"integer\"},\n                {\"type\": \"string\"}\n            ]\n        },\n        \"tests\": [\n            {\n                \"description\": \"correct types\",\n                \"data\": [ 1, \"foo\" ],\n                \"valid\": true\n            },\n            {\n                \"description\": \"wrong types\",\n                \"data\": [ \"foo\", 1 ],\n                \"valid\": false\n            },\n            {\n                \"description\": \"incomplete array of items\",\n                \"data\": [ 1 ],\n                \"valid\": true\n            },\n            {\n                \"description\": \"array with additional items\",\n                \"data\": [ 1, \"foo\", true ],\n                \"valid\": true\n            },\n            {\n                \"description\": \"empty array\",\n                \"data\": [ ],\n                \"valid\": true\n            },\n            {\n                \"description\": \"JavaScript pseudo-array is valid\",\n                \"data\": {\n                    \"0\": \"invalid\",\n                    \"1\": \"valid\",\n                    \"length\": 2\n                },\n                \"valid\": true\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/maxItems.json",
    "content": "[\n    {\n        \"description\": \"maxItems validation\",\n        \"schema\": {\"maxItems\": 2},\n        \"tests\": [\n            {\n                \"description\": \"shorter is valid\",\n                \"data\": [1],\n                \"valid\": true\n            },\n            {\n                \"description\": \"exact length is valid\",\n                \"data\": [1, 2],\n                \"valid\": true\n            },\n            {\n                \"description\": \"too long is invalid\",\n                \"data\": [1, 2, 3],\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores non-arrays\",\n                \"data\": \"foobar\",\n                \"valid\": true\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/maxLength.json",
    "content": "[\n    {\n        \"description\": \"maxLength validation\",\n        \"schema\": {\"maxLength\": 2},\n        \"tests\": [\n            {\n                \"description\": \"shorter is valid\",\n                \"data\": \"f\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"exact length is valid\",\n                \"data\": \"fo\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"too long is invalid\",\n                \"data\": \"foo\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores non-strings\",\n                \"data\": 100,\n                \"valid\": true\n            },\n            {\n                \"description\": \"two supplementary Unicode code points is long enough\",\n                \"data\": \"\\uD83D\\uDCA9\\uD83D\\uDCA9\",\n                \"valid\": true\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/maxProperties.json",
    "content": "[\n    {\n        \"description\": \"maxProperties validation\",\n        \"schema\": {\"maxProperties\": 2},\n        \"tests\": [\n            {\n                \"description\": \"shorter is valid\",\n                \"data\": {\"foo\": 1},\n                \"valid\": true\n            },\n            {\n                \"description\": \"exact length is valid\",\n                \"data\": {\"foo\": 1, \"bar\": 2},\n                \"valid\": true\n            },\n            {\n                \"description\": \"too long is invalid\",\n                \"data\": {\"foo\": 1, \"bar\": 2, \"baz\": 3},\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores arrays\",\n                \"data\": [1, 2, 3],\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores strings\",\n                \"data\": \"foobar\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores other non-objects\",\n                \"data\": 12,\n                \"valid\": true\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/maximum.json",
    "content": "[\n    {\n        \"description\": \"maximum validation\",\n        \"schema\": {\"maximum\": 3.0},\n        \"tests\": [\n            {\n                \"description\": \"below the maximum is valid\",\n                \"data\": 2.6,\n                \"valid\": true\n            },\n            {\n                \"description\": \"boundary point is valid\",\n                \"data\": 3.0,\n                \"valid\": true\n            },\n            {\n                \"description\": \"above the maximum is invalid\",\n                \"data\": 3.5,\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores non-numbers\",\n                \"data\": \"x\",\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"exclusiveMaximum validation\",\n        \"schema\": {\n            \"maximum\": 3.0,\n            \"exclusiveMaximum\": true\n        },\n        \"tests\": [\n            {\n                \"description\": \"below the maximum is still valid\",\n                \"data\": 2.2,\n                \"valid\": true\n            },\n            {\n                \"description\": \"boundary point is invalid\",\n                \"data\": 3.0,\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/minItems.json",
    "content": "[\n    {\n        \"description\": \"minItems validation\",\n        \"schema\": {\"minItems\": 1},\n        \"tests\": [\n            {\n                \"description\": \"longer is valid\",\n                \"data\": [1, 2],\n                \"valid\": true\n            },\n            {\n                \"description\": \"exact length is valid\",\n                \"data\": [1],\n                \"valid\": true\n            },\n            {\n                \"description\": \"too short is invalid\",\n                \"data\": [],\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores non-arrays\",\n                \"data\": \"\",\n                \"valid\": true\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/minLength.json",
    "content": "[\n    {\n        \"description\": \"minLength validation\",\n        \"schema\": {\"minLength\": 2},\n        \"tests\": [\n            {\n                \"description\": \"longer is valid\",\n                \"data\": \"foo\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"exact length is valid\",\n                \"data\": \"fo\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"too short is invalid\",\n                \"data\": \"f\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores non-strings\",\n                \"data\": 1,\n                \"valid\": true\n            },\n            {\n                \"description\": \"one supplementary Unicode code point is not long enough\",\n                \"data\": \"\\uD83D\\uDCA9\",\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/minProperties.json",
    "content": "[\n    {\n        \"description\": \"minProperties validation\",\n        \"schema\": {\"minProperties\": 1},\n        \"tests\": [\n            {\n                \"description\": \"longer is valid\",\n                \"data\": {\"foo\": 1, \"bar\": 2},\n                \"valid\": true\n            },\n            {\n                \"description\": \"exact length is valid\",\n                \"data\": {\"foo\": 1},\n                \"valid\": true\n            },\n            {\n                \"description\": \"too short is invalid\",\n                \"data\": {},\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores arrays\",\n                \"data\": [],\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores strings\",\n                \"data\": \"\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores other non-objects\",\n                \"data\": 12,\n                \"valid\": true\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/minimum.json",
    "content": "[\n    {\n        \"description\": \"minimum validation\",\n        \"schema\": {\"minimum\": 1.1},\n        \"tests\": [\n            {\n                \"description\": \"above the minimum is valid\",\n                \"data\": 2.6,\n                \"valid\": true\n            },\n            {\n                \"description\": \"boundary point is valid\",\n                \"data\": 1.1,\n                \"valid\": true\n            },\n            {\n                \"description\": \"below the minimum is invalid\",\n                \"data\": 0.6,\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores non-numbers\",\n                \"data\": \"x\",\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"exclusiveMinimum validation\",\n        \"schema\": {\n            \"minimum\": 1.1,\n            \"exclusiveMinimum\": true\n        },\n        \"tests\": [\n            {\n                \"description\": \"above the minimum is still valid\",\n                \"data\": 1.2,\n                \"valid\": true\n            },\n            {\n                \"description\": \"boundary point is invalid\",\n                \"data\": 1.1,\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/multipleOf.json",
    "content": "[\n    {\n        \"description\": \"by int\",\n        \"schema\": {\"multipleOf\": 2},\n        \"tests\": [\n            {\n                \"description\": \"int by int\",\n                \"data\": 10,\n                \"valid\": true\n            },\n            {\n                \"description\": \"int by int fail\",\n                \"data\": 7,\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores non-numbers\",\n                \"data\": \"foo\",\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"by number\",\n        \"schema\": {\"multipleOf\": 1.5},\n        \"tests\": [\n            {\n                \"description\": \"zero is multiple of anything\",\n                \"data\": 0,\n                \"valid\": true\n            },\n            {\n                \"description\": \"4.5 is multiple of 1.5\",\n                \"data\": 4.5,\n                \"valid\": true\n            },\n            {\n                \"description\": \"35 is not multiple of 1.5\",\n                \"data\": 35,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"by small number\",\n        \"schema\": {\"multipleOf\": 0.0001},\n        \"tests\": [\n            {\n                \"description\": \"0.0075 is multiple of 0.0001\",\n                \"data\": 0.0075,\n                \"valid\": true\n            },\n            {\n                \"description\": \"0.00751 is not multiple of 0.0001\",\n                \"data\": 0.00751,\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/not.json",
    "content": "[\n    {\n        \"description\": \"not\",\n        \"schema\": {\n            \"not\": {\"type\": \"integer\"}\n        },\n        \"tests\": [\n            {\n                \"description\": \"allowed\",\n                \"data\": \"foo\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"disallowed\",\n                \"data\": 1,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"not multiple types\",\n        \"schema\": {\n            \"not\": {\"type\": [\"integer\", \"boolean\"]}\n        },\n        \"tests\": [\n            {\n                \"description\": \"valid\",\n                \"data\": \"foo\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"mismatch\",\n                \"data\": 1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"other mismatch\",\n                \"data\": true,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"not more complex schema\",\n        \"schema\": {\n            \"not\": {\n                \"type\": \"object\",\n                \"properties\": {\n                    \"foo\": {\n                        \"type\": \"string\"\n                    }\n                }\n             }\n        },\n        \"tests\": [\n            {\n                \"description\": \"match\",\n                \"data\": 1,\n                \"valid\": true\n            },\n            {\n                \"description\": \"other match\",\n                \"data\": {\"foo\": 1},\n                \"valid\": true\n            },\n            {\n                \"description\": \"mismatch\",\n                \"data\": {\"foo\": \"bar\"},\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"forbidden property\",\n        \"schema\": {\n            \"properties\": {\n                \"foo\": { \n                    \"not\": {}\n                }\n            }\n        },\n        \"tests\": [\n            {\n                \"description\": \"property present\",\n                \"data\": {\"foo\": 1, \"bar\": 2},\n                \"valid\": false\n            },\n            {\n                \"description\": \"property absent\",\n                \"data\": {\"bar\": 1, \"baz\": 2},\n                \"valid\": true\n            }\n        ]\n    }\n\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/oneOf.json",
    "content": "[\n    {\n        \"description\": \"oneOf\",\n        \"schema\": {\n            \"oneOf\": [\n                {\n                    \"type\": \"integer\"\n                },\n                {\n                    \"minimum\": 2\n                }\n            ]\n        },\n        \"tests\": [\n            {\n                \"description\": \"first oneOf valid\",\n                \"data\": 1,\n                \"valid\": true\n            },\n            {\n                \"description\": \"second oneOf valid\",\n                \"data\": 2.5,\n                \"valid\": true\n            },\n            {\n                \"description\": \"both oneOf valid\",\n                \"data\": 3,\n                \"valid\": false\n            },\n            {\n                \"description\": \"neither oneOf valid\",\n                \"data\": 1.5,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"oneOf with base schema\",\n        \"schema\": {\n            \"type\": \"string\",\n            \"oneOf\" : [\n                {\n                    \"minLength\": 2\n                },\n                {\n                    \"maxLength\": 4\n                }\n            ]\n        },\n        \"tests\": [\n            {\n                \"description\": \"mismatch base schema\",\n                \"data\": 3,\n                \"valid\": false\n            },\n            {\n                \"description\": \"one oneOf valid\",\n                \"data\": \"foobar\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"both oneOf valid\",\n                \"data\": \"foo\",\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/optional/bignum.json",
    "content": "[\n    {\n        \"description\": \"integer\",\n        \"schema\": {\"type\": \"integer\"},\n        \"tests\": [\n            {\n                \"description\": \"a bignum is an integer\",\n                \"data\": 12345678910111213141516171819202122232425262728293031,\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"number\",\n        \"schema\": {\"type\": \"number\"},\n        \"tests\": [\n            {\n                \"description\": \"a bignum is a number\",\n                \"data\": 98249283749234923498293171823948729348710298301928331,\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"integer\",\n        \"schema\": {\"type\": \"integer\"},\n        \"tests\": [\n            {\n                \"description\": \"a negative bignum is an integer\",\n                \"data\": -12345678910111213141516171819202122232425262728293031,\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"number\",\n        \"schema\": {\"type\": \"number\"},\n        \"tests\": [\n            {\n                \"description\": \"a negative bignum is a number\",\n                \"data\": -98249283749234923498293171823948729348710298301928331,\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"string\",\n        \"schema\": {\"type\": \"string\"},\n        \"tests\": [\n            {\n                \"description\": \"a bignum is not a string\",\n                \"data\": 98249283749234923498293171823948729348710298301928331,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"integer comparison\",\n        \"schema\": {\"maximum\": 18446744073709551615},\n        \"tests\": [\n            {\n                \"description\": \"comparison works for high numbers\",\n                \"data\": 18446744073709551600,\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"float comparison with high precision\",\n        \"schema\": {\n            \"maximum\": 972783798187987123879878123.18878137,\n            \"exclusiveMaximum\": true\n        },\n        \"tests\": [\n            {\n                \"description\": \"comparison works for high numbers\",\n                \"data\": 972783798187987123879878123.188781371,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"integer comparison\",\n        \"schema\": {\"minimum\": -18446744073709551615},\n        \"tests\": [\n            {\n                \"description\": \"comparison works for very negative numbers\",\n                \"data\": -18446744073709551600,\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"float comparison with high precision on negative numbers\",\n        \"schema\": {\n            \"minimum\": -972783798187987123879878123.18878137,\n            \"exclusiveMinimum\": true\n        },\n        \"tests\": [\n            {\n                \"description\": \"comparison works for very negative numbers\",\n                \"data\": -972783798187987123879878123.188781371,\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/optional/ecmascript-regex.json",
    "content": "[\n    {\n        \"description\": \"ECMA 262 regex non-compliance\",\n        \"schema\": { \"format\": \"regex\" },\n        \"tests\": [\n            {\n                \"description\": \"ECMA 262 has no support for \\\\Z anchor from .NET\",\n                \"data\": \"^\\\\S(|(.|\\\\n)*\\\\S)\\\\Z\",\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/optional/format.json",
    "content": "[\n    {\n        \"description\": \"validation of date-time strings\",\n        \"schema\": {\"format\": \"date-time\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid date-time string\",\n                \"data\": \"1963-06-19T08:30:06.283185Z\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid date-time string\",\n                \"data\": \"06/19/1963 08:30:06 PST\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"only RFC3339 not all of ISO 8601 are valid\",\n                \"data\": \"2013-350T01:01:01\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of URIs\",\n        \"schema\": {\"format\": \"uri\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid URL with anchor tag\",\n                \"data\": \"http://foo.bar/?baz=qux#quux\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid URL with anchor tag and parantheses\",\n                \"data\": \"http://foo.com/blah_(wikipedia)_blah#cite-1\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid URL with URL-encoded stuff\",\n                \"data\": \"http://foo.bar/?q=Test%20URL-encoded%20stuff\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid puny-coded URL \",\n                \"data\": \"http://xn--nw2a.xn--j6w193g/\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid URL with many special characters\",\n                \"data\": \"http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid URL based on IPv4\",\n                \"data\": \"http://223.255.255.254\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid URL with ftp scheme\",\n                \"data\": \"ftp://ftp.is.co.za/rfc/rfc1808.txt\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid URL for a simple text file\",\n                \"data\": \"http://www.ietf.org/rfc/rfc2396.txt\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid URL \",\n                \"data\": \"ldap://[2001:db8::7]/c=GB?objectClass?one\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid mailto URI\",\n                \"data\": \"mailto:John.Doe@example.com\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid newsgroup URI\",\n                \"data\": \"news:comp.infosystems.www.servers.unix\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid tel URI\",\n                \"data\": \"tel:+1-816-555-1212\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a valid URN\",\n                \"data\": \"urn:oasis:names:specification:docbook:dtd:xml:4.1.2\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid protocol-relative URI Reference\",\n                \"data\": \"//foo.bar/?baz=qux#quux\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid relative URI Reference\",\n                \"data\": \"/abc\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid URI\",\n                \"data\": \"\\\\\\\\WINDOWS\\\\fileshare\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid URI though valid URI reference\",\n                \"data\": \"abc\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid URI with spaces\",\n                \"data\": \"http:// shouldfail.com\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid URI with spaces and missing scheme\",\n                \"data\": \":// should fail\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of e-mail addresses\",\n        \"schema\": {\"format\": \"email\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid e-mail address\",\n                \"data\": \"joe.bloggs@example.com\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid e-mail address\",\n                \"data\": \"2962\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of IP addresses\",\n        \"schema\": {\"format\": \"ipv4\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid IP address\",\n                \"data\": \"192.168.0.1\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an IP address with too many components\",\n                \"data\": \"127.0.0.0.1\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IP address with out-of-range values\",\n                \"data\": \"256.256.256.256\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IP address without 4 components\",\n                \"data\": \"127.0\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IP address as an integer\",\n                \"data\": \"0x7f000001\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of IPv6 addresses\",\n        \"schema\": {\"format\": \"ipv6\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid IPv6 address\",\n                \"data\": \"::1\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an IPv6 address with out-of-range values\",\n                \"data\": \"12345::\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IPv6 address with too many components\",\n                \"data\": \"1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an IPv6 address containing illegal characters\",\n                \"data\": \"::laptop\",\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"validation of host names\",\n        \"schema\": {\"format\": \"hostname\"},\n        \"tests\": [\n            {\n                \"description\": \"a valid host name\",\n                \"data\": \"www.example.com\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a host name starting with an illegal character\",\n                \"data\": \"-a-host-name-that-starts-with--\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"a host name containing illegal characters\",\n                \"data\": \"not_a_valid_host_name\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"a host name with a component too long\",\n                \"data\": \"a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component\",\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/optional/zeroTerminatedFloats.json",
    "content": "[\n    {\n        \"description\": \"some languages do not distinguish between different types of numeric value\",\n        \"schema\": {\n            \"type\": \"integer\"\n        },\n        \"tests\": [\n            {\n                \"description\": \"a float is not an integer even without fractional part\",\n                \"data\": 1.0,\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/pattern.json",
    "content": "[\n    {\n        \"description\": \"pattern validation\",\n        \"schema\": {\"pattern\": \"^a*$\"},\n        \"tests\": [\n            {\n                \"description\": \"a matching pattern is valid\",\n                \"data\": \"aaa\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a non-matching pattern is invalid\",\n                \"data\": \"abc\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores non-strings\",\n                \"data\": true,\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"pattern is not anchored\",\n        \"schema\": {\"pattern\": \"a+\"},\n        \"tests\": [\n            {\n                \"description\": \"matches a substring\",\n                \"data\": \"xxaayy\",\n                \"valid\": true\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/patternProperties.json",
    "content": "[\n    {\n        \"description\":\n            \"patternProperties validates properties matching a regex\",\n        \"schema\": {\n            \"patternProperties\": {\n                \"f.*o\": {\"type\": \"integer\"}\n            }\n        },\n        \"tests\": [\n            {\n                \"description\": \"a single valid match is valid\",\n                \"data\": {\"foo\": 1},\n                \"valid\": true\n            },\n            {\n                \"description\": \"multiple valid matches is valid\",\n                \"data\": {\"foo\": 1, \"foooooo\" : 2},\n                \"valid\": true\n            },\n            {\n                \"description\": \"a single invalid match is invalid\",\n                \"data\": {\"foo\": \"bar\", \"fooooo\": 2},\n                \"valid\": false\n            },\n            {\n                \"description\": \"multiple invalid matches is invalid\",\n                \"data\": {\"foo\": \"bar\", \"foooooo\" : \"baz\"},\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores arrays\",\n                \"data\": [],\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores strings\",\n                \"data\": \"\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores other non-objects\",\n                \"data\": 12,\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"multiple simultaneous patternProperties are validated\",\n        \"schema\": {\n            \"patternProperties\": {\n                \"a*\": {\"type\": \"integer\"},\n                \"aaa*\": {\"maximum\": 20}\n            }\n        },\n        \"tests\": [\n            {\n                \"description\": \"a single valid match is valid\",\n                \"data\": {\"a\": 21},\n                \"valid\": true\n            },\n            {\n                \"description\": \"a simultaneous match is valid\",\n                \"data\": {\"aaaa\": 18},\n                \"valid\": true\n            },\n            {\n                \"description\": \"multiple matches is valid\",\n                \"data\": {\"a\": 21, \"aaaa\": 18},\n                \"valid\": true\n            },\n            {\n                \"description\": \"an invalid due to one is invalid\",\n                \"data\": {\"a\": \"bar\"},\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid due to the other is invalid\",\n                \"data\": {\"aaaa\": 31},\n                \"valid\": false\n            },\n            {\n                \"description\": \"an invalid due to both is invalid\",\n                \"data\": {\"aaa\": \"foo\", \"aaaa\": 31},\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"regexes are not anchored by default and are case sensitive\",\n        \"schema\": {\n            \"patternProperties\": {\n                \"[0-9]{2,}\": { \"type\": \"boolean\" },\n                \"X_\": { \"type\": \"string\" }\n            }\n        },\n        \"tests\": [\n            {\n                \"description\": \"non recognized members are ignored\",\n                \"data\": { \"answer 1\": \"42\" },\n                \"valid\": true\n            },\n            {\n                \"description\": \"recognized members are accounted for\",\n                \"data\": { \"a31b\": null },\n                \"valid\": false\n            },\n            {\n                \"description\": \"regexes are case sensitive\",\n                \"data\": { \"a_x_3\": 3 },\n                \"valid\": true\n            },\n            {\n                \"description\": \"regexes are case sensitive, 2\",\n                \"data\": { \"a_X_3\": 3 },\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/properties.json",
    "content": "[\n    {\n        \"description\": \"object properties validation\",\n        \"schema\": {\n            \"properties\": {\n                \"foo\": {\"type\": \"integer\"},\n                \"bar\": {\"type\": \"string\"}\n            }\n        },\n        \"tests\": [\n            {\n                \"description\": \"both properties present and valid is valid\",\n                \"data\": {\"foo\": 1, \"bar\": \"baz\"},\n                \"valid\": true\n            },\n            {\n                \"description\": \"one property invalid is invalid\",\n                \"data\": {\"foo\": 1, \"bar\": {}},\n                \"valid\": false\n            },\n            {\n                \"description\": \"both properties invalid is invalid\",\n                \"data\": {\"foo\": [], \"bar\": {}},\n                \"valid\": false\n            },\n            {\n                \"description\": \"doesn't invalidate other properties\",\n                \"data\": {\"quux\": []},\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores arrays\",\n                \"data\": [],\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores other non-objects\",\n                \"data\": 12,\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\":\n            \"properties, patternProperties, additionalProperties interaction\",\n        \"schema\": {\n            \"properties\": {\n                \"foo\": {\"type\": \"array\", \"maxItems\": 3},\n                \"bar\": {\"type\": \"array\"}\n            },\n            \"patternProperties\": {\"f.o\": {\"minItems\": 2}},\n            \"additionalProperties\": {\"type\": \"integer\"}\n        },\n        \"tests\": [\n            {\n                \"description\": \"property validates property\",\n                \"data\": {\"foo\": [1, 2]},\n                \"valid\": true\n            },\n            {\n                \"description\": \"property invalidates property\",\n                \"data\": {\"foo\": [1, 2, 3, 4]},\n                \"valid\": false\n            },\n            {\n                \"description\": \"patternProperty invalidates property\",\n                \"data\": {\"foo\": []},\n                \"valid\": false\n            },\n            {\n                \"description\": \"patternProperty validates nonproperty\",\n                \"data\": {\"fxo\": [1, 2]},\n                \"valid\": true\n            },\n            {\n                \"description\": \"patternProperty invalidates nonproperty\",\n                \"data\": {\"fxo\": []},\n                \"valid\": false\n            },\n            {\n                \"description\": \"additionalProperty ignores property\",\n                \"data\": {\"bar\": []},\n                \"valid\": true\n            },\n            {\n                \"description\": \"additionalProperty validates others\",\n                \"data\": {\"quux\": 3},\n                \"valid\": true\n            },\n            {\n                \"description\": \"additionalProperty invalidates others\",\n                \"data\": {\"quux\": \"foo\"},\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/required.json",
    "content": "[\n    {\n        \"description\": \"required validation\",\n        \"schema\": {\n            \"properties\": {\n                \"foo\": {},\n                \"bar\": {}\n            },\n            \"required\": [\"foo\"]\n        },\n        \"tests\": [\n            {\n                \"description\": \"present required property is valid\",\n                \"data\": {\"foo\": 1},\n                \"valid\": true\n            },\n            {\n                \"description\": \"non-present required property is invalid\",\n                \"data\": {\"bar\": 1},\n                \"valid\": false\n            },\n            {\n                \"description\": \"ignores arrays\",\n                \"data\": [],\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores strings\",\n                \"data\": \"\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"ignores other non-objects\",\n                \"data\": 12,\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"required default validation\",\n        \"schema\": {\n            \"properties\": {\n                \"foo\": {}\n            }\n        },\n        \"tests\": [\n            {\n                \"description\": \"not required by default\",\n                \"data\": {},\n                \"valid\": true\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/type.json",
    "content": "[\n    {\n        \"description\": \"integer type matches integers\",\n        \"schema\": {\"type\": \"integer\"},\n        \"tests\": [\n            {\n                \"description\": \"an integer is an integer\",\n                \"data\": 1,\n                \"valid\": true\n            },\n            {\n                \"description\": \"a float is not an integer\",\n                \"data\": 1.1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"a string is not an integer\",\n                \"data\": \"foo\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"a string is still not an integer, even if it looks like one\",\n                \"data\": \"1\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an object is not an integer\",\n                \"data\": {},\n                \"valid\": false\n            },\n            {\n                \"description\": \"an array is not an integer\",\n                \"data\": [],\n                \"valid\": false\n            },\n            {\n                \"description\": \"a boolean is not an integer\",\n                \"data\": true,\n                \"valid\": false\n            },\n            {\n                \"description\": \"null is not an integer\",\n                \"data\": null,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"number type matches numbers\",\n        \"schema\": {\"type\": \"number\"},\n        \"tests\": [\n            {\n                \"description\": \"an integer is a number\",\n                \"data\": 1,\n                \"valid\": true\n            },\n            {\n                \"description\": \"a float is a number\",\n                \"data\": 1.1,\n                \"valid\": true\n            },\n            {\n                \"description\": \"a string is not a number\",\n                \"data\": \"foo\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"a string is still not a number, even if it looks like one\",\n                \"data\": \"1\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an object is not a number\",\n                \"data\": {},\n                \"valid\": false\n            },\n            {\n                \"description\": \"an array is not a number\",\n                \"data\": [],\n                \"valid\": false\n            },\n            {\n                \"description\": \"a boolean is not a number\",\n                \"data\": true,\n                \"valid\": false\n            },\n            {\n                \"description\": \"null is not a number\",\n                \"data\": null,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"string type matches strings\",\n        \"schema\": {\"type\": \"string\"},\n        \"tests\": [\n            {\n                \"description\": \"1 is not a string\",\n                \"data\": 1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"a float is not a string\",\n                \"data\": 1.1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"a string is a string\",\n                \"data\": \"foo\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a string is still a string, even if it looks like a number\",\n                \"data\": \"1\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"an object is not a string\",\n                \"data\": {},\n                \"valid\": false\n            },\n            {\n                \"description\": \"an array is not a string\",\n                \"data\": [],\n                \"valid\": false\n            },\n            {\n                \"description\": \"a boolean is not a string\",\n                \"data\": true,\n                \"valid\": false\n            },\n            {\n                \"description\": \"null is not a string\",\n                \"data\": null,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"object type matches objects\",\n        \"schema\": {\"type\": \"object\"},\n        \"tests\": [\n            {\n                \"description\": \"an integer is not an object\",\n                \"data\": 1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"a float is not an object\",\n                \"data\": 1.1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"a string is not an object\",\n                \"data\": \"foo\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an object is an object\",\n                \"data\": {},\n                \"valid\": true\n            },\n            {\n                \"description\": \"an array is not an object\",\n                \"data\": [],\n                \"valid\": false\n            },\n            {\n                \"description\": \"a boolean is not an object\",\n                \"data\": true,\n                \"valid\": false\n            },\n            {\n                \"description\": \"null is not an object\",\n                \"data\": null,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"array type matches arrays\",\n        \"schema\": {\"type\": \"array\"},\n        \"tests\": [\n            {\n                \"description\": \"an integer is not an array\",\n                \"data\": 1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"a float is not an array\",\n                \"data\": 1.1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"a string is not an array\",\n                \"data\": \"foo\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an object is not an array\",\n                \"data\": {},\n                \"valid\": false\n            },\n            {\n                \"description\": \"an array is an array\",\n                \"data\": [],\n                \"valid\": true\n            },\n            {\n                \"description\": \"a boolean is not an array\",\n                \"data\": true,\n                \"valid\": false\n            },\n            {\n                \"description\": \"null is not an array\",\n                \"data\": null,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"boolean type matches booleans\",\n        \"schema\": {\"type\": \"boolean\"},\n        \"tests\": [\n            {\n                \"description\": \"an integer is not a boolean\",\n                \"data\": 1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"a float is not a boolean\",\n                \"data\": 1.1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"a string is not a boolean\",\n                \"data\": \"foo\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an object is not a boolean\",\n                \"data\": {},\n                \"valid\": false\n            },\n            {\n                \"description\": \"an array is not a boolean\",\n                \"data\": [],\n                \"valid\": false\n            },\n            {\n                \"description\": \"a boolean is a boolean\",\n                \"data\": true,\n                \"valid\": true\n            },\n            {\n                \"description\": \"null is not a boolean\",\n                \"data\": null,\n                \"valid\": false\n            }\n        ]\n    },\n    {\n        \"description\": \"null type matches only the null object\",\n        \"schema\": {\"type\": \"null\"},\n        \"tests\": [\n            {\n                \"description\": \"an integer is not null\",\n                \"data\": 1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"a float is not null\",\n                \"data\": 1.1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"a string is not null\",\n                \"data\": \"foo\",\n                \"valid\": false\n            },\n            {\n                \"description\": \"an object is not null\",\n                \"data\": {},\n                \"valid\": false\n            },\n            {\n                \"description\": \"an array is not null\",\n                \"data\": [],\n                \"valid\": false\n            },\n            {\n                \"description\": \"a boolean is not null\",\n                \"data\": true,\n                \"valid\": false\n            },\n            {\n                \"description\": \"null is null\",\n                \"data\": null,\n                \"valid\": true\n            }\n        ]\n    },\n    {\n        \"description\": \"multiple types can be specified in an array\",\n        \"schema\": {\"type\": [\"integer\", \"string\"]},\n        \"tests\": [\n            {\n                \"description\": \"an integer is valid\",\n                \"data\": 1,\n                \"valid\": true\n            },\n            {\n                \"description\": \"a string is valid\",\n                \"data\": \"foo\",\n                \"valid\": true\n            },\n            {\n                \"description\": \"a float is invalid\",\n                \"data\": 1.1,\n                \"valid\": false\n            },\n            {\n                \"description\": \"an object is invalid\",\n                \"data\": {},\n                \"valid\": false\n            },\n            {\n                \"description\": \"an array is invalid\",\n                \"data\": [],\n                \"valid\": false\n            },\n            {\n                \"description\": \"a boolean is invalid\",\n                \"data\": true,\n                \"valid\": false\n            },\n            {\n                \"description\": \"null is invalid\",\n                \"data\": null,\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/jsonschema_suite/uniqueItems.json",
    "content": "[\n    {\n        \"description\": \"uniqueItems validation\",\n        \"schema\": {\"uniqueItems\": true},\n        \"tests\": [\n            {\n                \"description\": \"unique array of integers is valid\",\n                \"data\": [1, 2],\n                \"valid\": true\n            },\n            {\n                \"description\": \"non-unique array of integers is invalid\",\n                \"data\": [1, 1],\n                \"valid\": false\n            },\n            {\n                \"description\": \"numbers are unique if mathematically unequal\",\n                \"data\": [1.0, 1.00, 1],\n                \"valid\": false\n            },\n            {\n                \"description\": \"unique array of objects is valid\",\n                \"data\": [{\"foo\": \"bar\"}, {\"foo\": \"baz\"}],\n                \"valid\": true\n            },\n            {\n                \"description\": \"non-unique array of objects is invalid\",\n                \"data\": [{\"foo\": \"bar\"}, {\"foo\": \"bar\"}],\n                \"valid\": false\n            },\n            {\n                \"description\": \"unique array of nested objects is valid\",\n                \"data\": [\n                    {\"foo\": {\"bar\" : {\"baz\" : true}}},\n                    {\"foo\": {\"bar\" : {\"baz\" : false}}}\n                ],\n                \"valid\": true\n            },\n            {\n                \"description\": \"non-unique array of nested objects is invalid\",\n                \"data\": [\n                    {\"foo\": {\"bar\" : {\"baz\" : true}}},\n                    {\"foo\": {\"bar\" : {\"baz\" : true}}}\n                ],\n                \"valid\": false\n            },\n            {\n                \"description\": \"unique array of arrays is valid\",\n                \"data\": [[\"foo\"], [\"bar\"]],\n                \"valid\": true\n            },\n            {\n                \"description\": \"non-unique array of arrays is invalid\",\n                \"data\": [[\"foo\"], [\"foo\"]],\n                \"valid\": false\n            },\n            {\n                \"description\": \"1 and true are unique\",\n                \"data\": [1, true],\n                \"valid\": true\n            },\n            {\n                \"description\": \"0 and false are unique\",\n                \"data\": [0, false],\n                \"valid\": true\n            },\n            {\n                \"description\": \"unique heterogeneous types are valid\",\n                \"data\": [{}, [1], true, null, 1],\n                \"valid\": true\n            },\n            {\n                \"description\": \"non-unique heterogeneous types are invalid\",\n                \"data\": [{}, [1], true, null, {}, 1],\n                \"valid\": false\n            }\n        ]\n    }\n]\n"
  },
  {
    "path": "pkg/validation/validate/fixtures/schemas/int-enum.json",
    "content": "[\n  {\n    \"schema\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"sizes\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"first\": {\n              \"type\": \"object\",\n              \"properties\": {\n                \"count\": {\n                  \"type\": \"integer\",\n                  \"default\": 3,\n                  \"enum\": [3, 5, 7]\n                }\n              },\n              \"required\": [\"count\"]\n            }\n          },\n          \"required\": [\"first\"]\n        }\n      },\n      \"required\": [\"sizes\"]\n    },\n    \"valid\": {\n      \"sizes\": {\n        \"first\": {\n          \"count\": 3\n        }\n      }\n    },\n    \"invalid\": {\n      \"sizes\": {\n        \"first\": {\n          \"count\": 2\n        }\n      }\n    }\n  }\n]\n"
  },
  {
    "path": "pkg/validation/validate/formats.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"reflect\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\ntype formatValidator struct {\n\tFormat       string\n\tPath         string\n\tIn           string\n\tKnownFormats strfmt.Registry\n}\n\nfunc (f *formatValidator) SetPath(path string) {\n\tf.Path = path\n}\n\nfunc (f *formatValidator) Applies(source interface{}, kind reflect.Kind) bool {\n\tdoit := func() bool {\n\t\tif source == nil {\n\t\t\treturn false\n\t\t}\n\t\tswitch source := source.(type) {\n\t\tcase *spec.Schema:\n\t\t\treturn kind == reflect.String && f.KnownFormats.ContainsName(source.Format)\n\t\t}\n\t\treturn false\n\t}\n\tr := doit()\n\tdebugLog(\"format validator for %q applies %t for %T (kind: %v)\\n\", f.Path, r, source, kind)\n\treturn r\n}\n\nfunc (f *formatValidator) Validate(val interface{}) *Result {\n\tresult := new(Result)\n\tdebugLog(\"validating \\\"%v\\\" against format: %s\", val, f.Format)\n\n\tif err := FormatOf(f.Path, f.In, f.Format, val.(string), f.KnownFormats); err != nil {\n\t\tresult.AddErrors(err)\n\t}\n\n\tif result.HasErrors() {\n\t\treturn result\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/validation/validate/formats_test.go",
    "content": "package validate\n\nimport (\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\n// valueValidator for string formats\nfunc TestFormatValidator_EdgeCases(t *testing.T) {\n\t// Apply\n\tv := formatValidator{\n\t\tKnownFormats: strfmt.Default,\n\t}\n\n\t// formatValidator applies to: Items, Parameter,Schema\n\n\ts := spec.Schema{}\n\ts.Typed(stringType, \"uuid\")\n\n\tsources := []interface{}{&s}\n\n\tfor _, source := range sources {\n\t\t// Default formats for strings\n\t\tassert.True(t, v.Applies(source, reflect.String))\n\t\t// Do not apply for number formats\n\t\tassert.False(t, v.Applies(source, reflect.Int))\n\t}\n\n\tassert.False(t, v.Applies(\"A string\", reflect.String))\n\tassert.False(t, v.Applies(nil, reflect.String))\n}\n"
  },
  {
    "path": "pkg/validation/validate/helpers.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\n// TODO: define this as package validate/internal\n// This must be done while keeping CI intact with all tests and test coverage\n\nimport (\n\t\"reflect\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/errors\"\n)\n\nconst (\n\tswaggerExample  = \"example\"\n\tswaggerExamples = \"examples\"\n)\n\nconst (\n\tobjectType  = \"object\"\n\tarrayType   = \"array\"\n\tstringType  = \"string\"\n\tintegerType = \"integer\"\n\tnumberType  = \"number\"\n\tbooleanType = \"boolean\"\n\tnullType    = \"null\"\n)\n\nconst (\n\tjsonProperties = \"properties\"\n\tjsonDefault    = \"default\"\n)\n\nconst (\n\tstringFormatDate       = \"date\"\n\tstringFormatDateTime   = \"date-time\"\n\tstringFormatPassword   = \"password\"\n\tstringFormatByte       = \"byte\"\n\tstringFormatCreditCard = \"creditcard\"\n\tstringFormatDuration   = \"duration\"\n\tstringFormatEmail      = \"email\"\n\tstringFormatHexColor   = \"hexcolor\"\n\tstringFormatHostname   = \"hostname\"\n\tstringFormatIPv4       = \"ipv4\"\n\tstringFormatIPv6       = \"ipv6\"\n\tstringFormatISBN       = \"isbn\"\n\tstringFormatISBN10     = \"isbn10\"\n\tstringFormatISBN13     = \"isbn13\"\n\tstringFormatMAC        = \"mac\"\n\tstringFormatRGBColor   = \"rgbcolor\"\n\tstringFormatSSN        = \"ssn\"\n\tstringFormatURI        = \"uri\"\n\tstringFormatUUID       = \"uuid\"\n\tstringFormatUUID3      = \"uuid3\"\n\tstringFormatUUID4      = \"uuid4\"\n\tstringFormatUUID5      = \"uuid5\"\n\n\tintegerFormatInt32  = \"int32\"\n\tintegerFormatInt64  = \"int64\"\n\tintegerFormatUInt32 = \"uint32\"\n\tintegerFormatUInt64 = \"uint64\"\n\n\tnumberFormatFloat32 = \"float32\"\n\tnumberFormatFloat64 = \"float64\"\n\tnumberFormatFloat   = \"float\"\n\tnumberFormatDouble  = \"double\"\n)\n\n// Helpers available at the package level\nvar (\n\tvalueHelp *valueHelper\n\terrorHelp *errorHelper\n)\n\ntype errorHelper struct {\n\t// A collection of unexported helpers for error construction\n}\n\nfunc (h *errorHelper) sErr(err errors.Error) *Result {\n\t// Builds a Result from standard errors.Error\n\treturn &Result{Errors: []error{err}}\n}\n\ntype valueHelper struct {\n\t// A collection of unexported helpers for value validation\n}\n\nfunc (h *valueHelper) asInt64(val interface{}) int64 {\n\t// Number conversion function for int64, without error checking\n\t// (implements an implicit type upgrade).\n\tv := reflect.ValueOf(val)\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int()\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn int64(v.Uint())\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn int64(v.Float())\n\tdefault:\n\t\t//panic(\"Non numeric value in asInt64()\")\n\t\treturn 0\n\t}\n}\n\nfunc (h *valueHelper) asUint64(val interface{}) uint64 {\n\t// Number conversion function for uint64, without error checking\n\t// (implements an implicit type upgrade).\n\tv := reflect.ValueOf(val)\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn uint64(v.Int())\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn v.Uint()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn uint64(v.Float())\n\tdefault:\n\t\t//panic(\"Non numeric value in asUint64()\")\n\t\treturn 0\n\t}\n}\n\n// Same for unsigned floats\nfunc (h *valueHelper) asFloat64(val interface{}) float64 {\n\t// Number conversion function for float64, without error checking\n\t// (implements an implicit type upgrade).\n\tv := reflect.ValueOf(val)\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn float64(v.Int())\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn float64(v.Uint())\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float()\n\tdefault:\n\t\t//panic(\"Non numeric value in asFloat64()\")\n\t\treturn 0\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/validate/helpers_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc integerFactory(base int) []interface{} {\n\treturn []interface{}{\n\t\tbase,\n\t\tint8(base),\n\t\tint16(base),\n\t\tint32(base),\n\t\tint64(base),\n\t\tuint(base),\n\t\tuint8(base),\n\t\tuint16(base),\n\t\tuint32(base),\n\t\tuint64(base),\n\t\tfloat32(base),\n\t\tfloat64(base),\n\t}\n}\n\n// Test cases in private method asInt64()\nfunc TestHelpers_asInt64(t *testing.T) {\n\tfor _, v := range integerFactory(3) {\n\t\tassert.Equal(t, int64(3), valueHelp.asInt64(v))\n\t}\n\n\t// Non numeric\n\tif assert.NotPanics(t, func() {\n\t\tvalueHelp.asInt64(\"123\")\n\t}) {\n\t\tassert.Equal(t, valueHelp.asInt64(\"123\"), (int64)(0))\n\t}\n}\n\n// Test cases in private method asUint64()\nfunc TestHelpers_asUint64(t *testing.T) {\n\tfor _, v := range integerFactory(3) {\n\t\tassert.Equal(t, uint64(3), valueHelp.asUint64(v))\n\t}\n\n\t// Non numeric\n\tif assert.NotPanics(t, func() {\n\t\tvalueHelp.asUint64(\"123\")\n\t}) {\n\t\tassert.Equal(t, valueHelp.asUint64(\"123\"), (uint64)(0))\n\t}\n}\n\n// Test cases in private method asFloat64()\nfunc TestHelpers_asFloat64(t *testing.T) {\n\tfor _, v := range integerFactory(3) {\n\t\tassert.Equal(t, float64(3), valueHelp.asFloat64(v))\n\t}\n\n\t// Non numeric\n\tif assert.NotPanics(t, func() {\n\t\tvalueHelp.asFloat64(\"123\")\n\t}) {\n\t\tassert.Equal(t, valueHelp.asFloat64(\"123\"), (float64)(0))\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/validate/jsonschema_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"encoding/json\"\n\t\"net/http\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\n// Data structure for jsonschema-suite fixtures\ntype schemaTestT struct {\n\tDescription string       `json:\"description\"`\n\tSchema      *spec.Schema `json:\"schema\"`\n\tTests       []struct {\n\t\tDescription string      `json:\"description\"`\n\t\tData        interface{} `json:\"data\"`\n\t\tValid       bool        `json:\"valid\"`\n\t}\n}\n\nvar jsonSchemaFixturesPath = filepath.Join(\"fixtures\", \"jsonschema_suite\")\nvar schemaFixturesPath = filepath.Join(\"fixtures\", \"schemas\")\nvar formatFixturesPath = filepath.Join(\"fixtures\", \"formats\")\n\nfunc enabled() []string {\n\t// Standard fixtures from JSON schema suite\n\treturn []string{\n\t\t\"minLength\",\n\t\t\"maxLength\",\n\t\t\"pattern\",\n\t\t\"type\",\n\t\t\"minimum\",\n\t\t\"maximum\",\n\t\t\"multipleOf\",\n\t\t\"enum\",\n\t\t\"default\",\n\t\t\"dependencies\",\n\t\t\"items\",\n\t\t\"maxItems\",\n\t\t\"maxProperties\",\n\t\t\"minItems\",\n\t\t\"minProperties\",\n\t\t\"patternProperties\",\n\t\t\"required\",\n\t\t\"additionalItems\",\n\t\t\"uniqueItems\",\n\t\t\"properties\",\n\t\t\"additionalProperties\",\n\t\t\"allOf\",\n\t\t\"not\",\n\t\t\"oneOf\",\n\t\t\"anyOf\",\n\t\t\"ref\",\n\t\t\"definitions\",\n\t\t\"refRemote\",\n\t\t\"format\",\n\t}\n}\n\nvar optionalFixtures = []string{\n\t// Optional fixtures from JSON schema suite: at the moment, these are disabled\n\t//\"zeroTerminatedFloats\",\n\t//\"format\",\t/* error on strict URI formatting */\n\t//\"bignum\",\n\t//\"ecmascript-regex\",\n}\n\nvar extendedFixtures = []string{\n\t\"extended-format\",\n}\n\nfunc isEnabled(nm string) bool {\n\treturn swag.ContainsStringsCI(enabled(), nm)\n}\n\nfunc isOptionalEnabled(nm string) bool {\n\treturn swag.ContainsStringsCI(optionalFixtures, nm)\n}\n\nfunc isExtendedEnabled(nm string) bool {\n\treturn swag.ContainsStringsCI(extendedFixtures, nm)\n}\n\nfunc TestJSONSchemaSuite(t *testing.T) {\n\t// Internal local server to serve remote $ref\n\tgo func() {\n\t\terr := http.ListenAndServe(\"localhost:1234\", http.FileServer(http.Dir(jsonSchemaFixturesPath+\"/remotes\")))\n\t\tif err != nil {\n\t\t\tpanic(err.Error())\n\t\t}\n\t}()\n\n\tfiles, err := os.ReadDir(jsonSchemaFixturesPath)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tfor _, f := range files {\n\t\tif f.IsDir() {\n\t\t\tcontinue\n\t\t}\n\t\tfileName := f.Name()\n\t\tt.Run(fileName, func(t *testing.T) {\n\t\t\tt.Parallel()\n\t\t\tspecName := strings.TrimSuffix(fileName, filepath.Ext(fileName))\n\t\t\tif !isEnabled(specName) {\n\t\t\t\tt.Logf(\"WARNING: fixture from jsonschema-test-suite not enabled: %s\", specName)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tt.Log(\"Running \" + specName)\n\t\t\tb, _ := os.ReadFile(filepath.Join(jsonSchemaFixturesPath, fileName))\n\t\t\tdoTestSchemaSuite(t, b)\n\t\t})\n\t}\n}\n\nfunc TestSchemaFixtures(t *testing.T) {\n\tfiles, err := os.ReadDir(schemaFixturesPath)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tfor _, f := range files {\n\t\tif f.IsDir() {\n\t\t\tcontinue\n\t\t}\n\t\tfileName := f.Name()\n\t\tt.Run(fileName, func(t *testing.T) {\n\t\t\tt.Parallel()\n\t\t\tspecName := strings.TrimSuffix(fileName, filepath.Ext(fileName))\n\t\t\tt.Log(\"Running \" + specName)\n\t\t\tb, _ := os.ReadFile(filepath.Join(schemaFixturesPath, fileName))\n\t\t\tdoTestSchemaSuite(t, b)\n\t\t})\n\t}\n}\n\nfunc TestOptionalJSONSchemaSuite(t *testing.T) {\n\tjsonOptionalSchemaFixturesPath := filepath.Join(jsonSchemaFixturesPath, \"optional\")\n\tfiles, err := os.ReadDir(jsonOptionalSchemaFixturesPath)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tfor _, f := range files {\n\t\tif f.IsDir() {\n\t\t\tcontinue\n\t\t}\n\t\tfileName := f.Name()\n\t\tt.Run(fileName, func(t *testing.T) {\n\t\t\tt.Parallel()\n\t\t\tspecName := strings.TrimSuffix(fileName, filepath.Ext(fileName))\n\t\t\tif !isOptionalEnabled(specName) {\n\t\t\t\tt.Logf(\"INFO: fixture from jsonschema-test-suite [optional] not enabled: %s\", specName)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tt.Log(\"Running [optional] \" + specName)\n\t\t\tb, _ := os.ReadFile(filepath.Join(jsonOptionalSchemaFixturesPath, fileName))\n\t\t\tdoTestSchemaSuite(t, b)\n\t\t})\n\t}\n}\n\n// Further testing with all formats recognized by strfmt\nfunc TestFormat_JSONSchemaExtended(t *testing.T) {\n\tjsonFormatSchemaFixturesPath := filepath.Join(formatFixturesPath)\n\tfiles, err := os.ReadDir(jsonFormatSchemaFixturesPath)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\tfor _, f := range files {\n\t\tif f.IsDir() {\n\t\t\tcontinue\n\t\t}\n\t\tfileName := f.Name()\n\t\tt.Run(fileName, func(t *testing.T) {\n\t\t\tt.Parallel()\n\t\t\tspecName := strings.TrimSuffix(fileName, filepath.Ext(fileName))\n\t\t\tif !isExtendedEnabled(specName) {\n\t\t\t\tt.Logf(\"INFO: fixture from extended tests suite [formats] not enabled: %s\", specName)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tt.Log(\"Running [extended formats] \" + specName)\n\t\t\tb, _ := os.ReadFile(filepath.Join(jsonFormatSchemaFixturesPath, fileName))\n\t\t\tdoTestSchemaSuite(t, b)\n\t\t})\n\t}\n}\n\nfunc doTestSchemaSuite(t *testing.T, doc []byte) {\n\t// run a test formatted as per jsonschema-test-suite\n\tvar testDescriptions []schemaTestT\n\teru := json.Unmarshal(doc, &testDescriptions)\n\trequire.NoError(t, eru)\n\n\tfor _, testDescription := range testDescriptions {\n\t\tb, _ := testDescription.Schema.MarshalJSON()\n\t\ttmpFile, err := os.CreateTemp(os.TempDir(), \"validate-test\")\n\t\tassert.NoError(t, err)\n\t\t_, _ = tmpFile.Write(b)\n\t\ttmpFile.Close()\n\t\tdefer func() { _ = os.Remove(tmpFile.Name()) }()\n\n\t\tvalidator := NewSchemaValidator(testDescription.Schema, nil, \"data\", strfmt.Default)\n\t\tfor _, test := range testDescription.Tests {\n\t\t\tresult := validator.Validate(test.Data)\n\t\t\tassert.NotNil(t, result, test.Description+\" should validate\")\n\n\t\t\tif test.Valid {\n\t\t\t\tassert.Empty(t, result.Errors, test.Description+\" should not have errors\")\n\t\t\t} else {\n\t\t\t\tassert.NotEmpty(t, result.Errors, test.Description+\" should have errors\")\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/validate/object_validator.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"reflect\"\n\t\"regexp\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/errors\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\ntype objectValidator struct {\n\tPath                 string\n\tIn                   string\n\tMaxProperties        *int64\n\tMinProperties        *int64\n\tRequired             []string\n\tProperties           map[string]spec.Schema\n\tAdditionalProperties *spec.SchemaOrBool\n\tPatternProperties    map[string]spec.Schema\n\tRoot                 interface{}\n\tKnownFormats         strfmt.Registry\n\tOptions              SchemaValidatorOptions\n}\n\nfunc (o *objectValidator) SetPath(path string) {\n\to.Path = path\n}\n\nfunc (o *objectValidator) Applies(source interface{}, kind reflect.Kind) bool {\n\t// TODO: this should also work for structs\n\t// there is a problem in the type validator where it will be unhappy about null values\n\t// so that requires more testing\n\tr := reflect.TypeOf(source) == specSchemaType && (kind == reflect.Map || kind == reflect.Struct)\n\tdebugLog(\"object validator for %q applies %t for %T (kind: %v)\\n\", o.Path, r, source, kind)\n\treturn r\n}\n\nfunc (o *objectValidator) Validate(data interface{}) *Result {\n\tval := data.(map[string]interface{})\n\t// TODO: guard against nil data\n\tnumKeys := int64(len(val))\n\n\tres := new(Result)\n\n\tif o.MinProperties != nil && numKeys < *o.MinProperties {\n\t\tres.AddErrors(errors.TooFewProperties(o.Path, o.In, *o.MinProperties, numKeys))\n\t}\n\tif o.MaxProperties != nil && numKeys > *o.MaxProperties {\n\t\tres.AddErrors(errors.TooManyProperties(o.Path, o.In, *o.MaxProperties, numKeys))\n\t}\n\n\t// check validity of field names\n\tif o.AdditionalProperties != nil && !o.AdditionalProperties.Allows {\n\t\t// Case: additionalProperties: false\n\t\tfor k := range val {\n\t\t\t_, regularProperty := o.Properties[k]\n\t\t\tmatched := false\n\n\t\t\tfor pk := range o.PatternProperties {\n\t\t\t\tif matches, _ := regexp.MatchString(pk, k); matches {\n\t\t\t\t\tmatched = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif !regularProperty && !matched {\n\t\t\t\t// Special properties \"$schema\" and \"id\" are ignored\n\t\t\t\tres.AddErrors(errors.PropertyNotAllowed(o.Path, o.In, k))\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// Cases: no additionalProperties (implying: true), or additionalProperties: true, or additionalProperties: { <<schema>> }\n\t\tfor key, value := range val {\n\t\t\t_, regularProperty := o.Properties[key]\n\n\t\t\t// Validates property against \"patternProperties\" if applicable\n\t\t\t// BUG(fredbi): succeededOnce is always false\n\n\t\t\t// NOTE: how about regular properties which do not match patternProperties?\n\t\t\tmatched, succeededOnce, _ := o.validatePatternProperty(key, value, res)\n\n\t\t\tif !(regularProperty || matched || succeededOnce) {\n\n\t\t\t\t// Cases: properties which are not regular properties and have not been matched by the PatternProperties validator\n\t\t\t\tif o.AdditionalProperties != nil && o.AdditionalProperties.Schema != nil {\n\t\t\t\t\t// AdditionalProperties as Schema\n\t\t\t\t\tres.Merge(o.Options.NewValidatorForField(key, o.AdditionalProperties.Schema, o.Root, o.Path+\".\"+key, o.KnownFormats, o.Options.Options()...).Validate(value))\n\t\t\t\t} else if regularProperty && !(matched || succeededOnce) {\n\t\t\t\t\t// TODO: this is dead code since regularProperty=false here\n\t\t\t\t\tres.AddErrors(errors.FailedAllPatternProperties(o.Path, o.In, key))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Valid cases: additionalProperties: true or undefined\n\t}\n\n\tcreatedFromDefaults := map[string]bool{}\n\n\t// Property types:\n\t// - regular Property\n\tfor pName, pSchema := range o.Properties {\n\t\trName := pName\n\t\tif o.Path != \"\" {\n\t\t\trName = o.Path + \".\" + pName\n\t\t}\n\n\t\t// Recursively validates each property against its schema\n\t\tif v, ok := val[pName]; ok {\n\t\t\tr := o.Options.NewValidatorForField(pName, &pSchema, o.Root, rName, o.KnownFormats, o.Options.Options()...).Validate(v)\n\t\t\tres.Merge(r)\n\t\t}\n\t}\n\n\t// Check required properties\n\tif len(o.Required) > 0 {\n\t\tfor _, k := range o.Required {\n\t\t\tif _, ok := val[k]; !ok && !createdFromDefaults[k] {\n\t\t\t\tres.AddErrors(errors.Required(o.Path+\".\"+k, o.In))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check patternProperties\n\t// TODO: it looks like we have done that twice in many cases\n\tfor key, value := range val {\n\t\t_, regularProperty := o.Properties[key]\n\t\tmatched, _ /*succeededOnce*/, patterns := o.validatePatternProperty(key, value, res)\n\t\tif !regularProperty && (matched /*|| succeededOnce*/) {\n\t\t\tfor _, pName := range patterns {\n\t\t\t\tif v, ok := o.PatternProperties[pName]; ok {\n\t\t\t\t\tres.Merge(o.Options.NewValidatorForField(key, &v, o.Root, o.Path+\".\"+key, o.KnownFormats, o.Options.Options()...).Validate(value))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn res\n}\n\n// TODO: succeededOnce is not used anywhere\nfunc (o *objectValidator) validatePatternProperty(key string, value interface{}, result *Result) (bool, bool, []string) {\n\tmatched := false\n\tsucceededOnce := false\n\tvar patterns []string\n\n\tfor k, schema := range o.PatternProperties {\n\t\tsch := schema\n\t\tif match, _ := regexp.MatchString(k, key); match {\n\t\t\tpatterns = append(patterns, k)\n\t\t\tmatched = true\n\t\t\tvalidator := o.Options.NewValidatorForField(key, &sch, o.Root, o.Path+\".\"+key, o.KnownFormats, o.Options.Options()...)\n\n\t\t\tres := validator.Validate(value)\n\t\t\tresult.Merge(res)\n\t\t}\n\t}\n\n\t// BUG(fredbi): can't get to here. Should remove dead code (commented out).\n\n\t//if succeededOnce {\n\t//\tresult.Inc()\n\t//}\n\n\treturn matched, succeededOnce, patterns\n}\n"
  },
  {
    "path": "pkg/validation/validate/object_validator_test.go",
    "content": "// Copyright 2017 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\tkubeopenapierrors \"k8s.io/kube-openapi/pkg/validation/errors\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\nfunc itemsFixture() map[string]interface{} {\n\treturn map[string]interface{}{\n\t\t\"type\":  \"array\",\n\t\t\"items\": \"dummy\",\n\t}\n}\n\nfunc expectAllValid(t *testing.T, ov ValueValidator, dataValid, dataInvalid map[string]interface{}) {\n\tres := ov.Validate(dataValid)\n\tassert.Equal(t, 0, len(res.Errors))\n\n\tres = ov.Validate(dataInvalid)\n\tassert.Equal(t, 0, len(res.Errors))\n}\n\nfunc expectOnlyInvalid(t *testing.T, ov ValueValidator, dataValid, dataInvalid map[string]interface{}) {\n\tres := ov.Validate(dataValid)\n\tassert.Equal(t, 0, len(res.Errors))\n\n\tres = ov.Validate(dataInvalid)\n\tassert.NotEqual(t, 0, len(res.Errors))\n}\n\nfunc TestItemsMustBeTypeArray(t *testing.T) {\n\tov := new(objectValidator)\n\tdataValid := itemsFixture()\n\tdataInvalid := map[string]interface{}{\n\t\t\"type\":  \"object\",\n\t\t\"items\": \"dummy\",\n\t}\n\texpectAllValid(t, ov, dataValid, dataInvalid)\n}\n\nfunc TestItemsMustHaveType(t *testing.T) {\n\tov := new(objectValidator)\n\tdataValid := itemsFixture()\n\tdataInvalid := map[string]interface{}{\n\t\t\"items\": \"dummy\",\n\t}\n\texpectAllValid(t, ov, dataValid, dataInvalid)\n}\n\nfunc TestTypeArrayMustHaveItems(t *testing.T) {\n\tov := new(objectValidator)\n\tdataValid := itemsFixture()\n\tdataInvalid := map[string]interface{}{\n\t\t\"type\": \"array\",\n\t\t\"key\":  \"dummy\",\n\t}\n\texpectAllValid(t, ov, dataValid, dataInvalid)\n}\n\n// Test edge cases in object_validator which are difficult\n// to simulate with specs\n// (this one is a trivial, just to check all methods are filled)\nfunc TestObjectValidator_EdgeCases(t *testing.T) {\n\ts := objectValidator{}\n\ts.SetPath(\"path\")\n\tassert.Equal(t, \"path\", s.Path)\n}\n\nfunc TestMinPropertiesMaxPropertiesDontShortCircuit(t *testing.T) {\n\ts := objectValidator{\n\t\tIn:            \"body\",\n\t\tPath:          \"some.path[5]\",\n\t\tKnownFormats:  strfmt.Default,\n\t\tMinProperties: ptr(int64(20)),\n\t\tMaxProperties: ptr(int64(0)),\n\t\tProperties: map[string]spec.Schema{\n\t\t\t\"intField\": {\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType: spec.StringOrArray{\"integer\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"requiredField\": {\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType: spec.StringOrArray{\"string\"},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tRequired: []string{\"requiredField\"},\n\t\tAdditionalProperties: &spec.SchemaOrBool{\n\t\t\tAllows: true,\n\t\t\tSchema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:    spec.StringOrArray{\"string\"},\n\t\t\t\t\tPattern: \"^20[0-9][0-9]\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tOptions: SchemaValidatorOptions{\n\t\t\tNewValidatorForIndex: func(index int, schema *spec.Schema, rootSchema interface{}, root string, formats strfmt.Registry, opts ...Option) ValueValidator {\n\t\t\t\treturn NewSchemaValidator(schema, rootSchema, root, formats, opts...)\n\t\t\t},\n\t\t\tNewValidatorForField: func(field string, schema *spec.Schema, rootSchema interface{}, root string, formats strfmt.Registry, opts ...Option) ValueValidator {\n\t\t\t\treturn NewSchemaValidator(schema, rootSchema, root, formats, opts...)\n\t\t\t},\n\t\t},\n\t}\n\n\tobj := map[string]interface{}{\n\t\t\"field\": \"hello, world\",\n\t}\n\tres := s.Validate(obj)\n\n\tassert.ElementsMatch(t, []*kubeopenapierrors.Validation{\n\t\tkubeopenapierrors.TooFewProperties(s.Path, s.In, *s.MinProperties, int64(len(obj))),\n\t\tkubeopenapierrors.TooManyProperties(s.Path, s.In, *s.MaxProperties, int64(len(obj))),\n\t\tkubeopenapierrors.FailedPattern(s.Path+\".\"+\"field\", s.In, s.AdditionalProperties.Schema.Pattern, \"hello, world\"),\n\t\tkubeopenapierrors.Required(s.Path+\".\"+\"requiredField\", s.In),\n\t}, res.Errors)\n\n\tobj = map[string]interface{}{\n\t\t\"field\":    \"hello, world\",\n\t\t\"field2\":   \"hello, other world\",\n\t\t\"field3\":   \"hello, third world\",\n\t\t\"intField\": \"a string\",\n\t}\n\tres = s.Validate(obj)\n\n\tassert.ElementsMatch(t, []*kubeopenapierrors.Validation{\n\t\tkubeopenapierrors.TooFewProperties(s.Path, s.In, *s.MinProperties, int64(len(obj))),\n\t\tkubeopenapierrors.TooManyProperties(s.Path, s.In, *s.MaxProperties, int64(len(obj))),\n\t\tkubeopenapierrors.FailedPattern(s.Path+\".\"+\"field\", s.In, s.AdditionalProperties.Schema.Pattern, \"hello, world\"),\n\t\tkubeopenapierrors.FailedPattern(s.Path+\".\"+\"field2\", s.In, s.AdditionalProperties.Schema.Pattern, \"hello, other world\"),\n\t\tkubeopenapierrors.FailedPattern(s.Path+\".\"+\"field3\", s.In, s.AdditionalProperties.Schema.Pattern, \"hello, third world\"),\n\t\tkubeopenapierrors.InvalidType(s.Path+\".\"+\"intField\", s.In, \"integer\", \"string\"),\n\t\tkubeopenapierrors.Required(s.Path+\".\"+\"requiredField\", s.In),\n\t}, res.Errors)\n}\n\nfunc ptr[T any](v T) *T {\n\treturn &v\n}\n"
  },
  {
    "path": "pkg/validation/validate/options.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport \"sync\"\n\n// Opts specifies validation options for a SpecValidator.\n//\n// NOTE: other options might be needed, for example a go-swagger specific mode.\ntype Opts struct {\n\tContinueOnErrors bool // true: continue reporting errors, even if spec is invalid\n}\n\nvar (\n\tdefaultOpts      = Opts{ContinueOnErrors: false} // default is to stop validation on errors\n\tdefaultOptsMutex = &sync.Mutex{}\n)\n\n// SetContinueOnErrors sets global default behavior regarding spec validation errors reporting.\n//\n// For extended error reporting, you most likely want to set it to true.\n// For faster validation, it's better to give up early when a spec is detected as invalid: set it to false (this is the default).\n//\n// Setting this mode does NOT affect the validation status.\n//\n// NOTE: this method affects global defaults. It is not suitable for a concurrent usage.\nfunc SetContinueOnErrors(c bool) {\n\tdefer defaultOptsMutex.Unlock()\n\tdefaultOptsMutex.Lock()\n\tdefaultOpts.ContinueOnErrors = c\n}\n"
  },
  {
    "path": "pkg/validation/validate/options_test.go",
    "content": "package validate\n\nimport (\n\t\"testing\"\n)\n\n// This test must be synchronized to avoid issues with -race\n// TODO(TEST)\nfunc TestOptions_SetContinueOnErrors(t *testing.T) {\n}\n"
  },
  {
    "path": "pkg/validation/validate/result.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/errors\"\n)\n\n// Result represents a validation result set, composed of\n// errors and warnings.\n//\n// It is used to keep track of all detected errors and warnings during\n// the validation of a specification.\n//\n// Matchcount is used to determine\n// which errors are relevant in the case of AnyOf, OneOf\n// schema validation. Results from the validation branch\n// with most matches get eventually selected.\n//\n// TODO: keep path of key originating the error\ntype Result struct {\n\tErrors     []error\n\tWarnings   []error\n\tMatchCount int\n}\n\n// Merge merges this result with the other one(s), preserving match counts etc.\nfunc (r *Result) Merge(others ...*Result) *Result {\n\tfor _, other := range others {\n\t\tif other != nil {\n\t\t\tr.AddErrors(other.Errors...)\n\t\t\tr.AddWarnings(other.Warnings...)\n\t\t\tr.MatchCount += other.MatchCount\n\t\t}\n\t}\n\treturn r\n}\n\n// MergeAsErrors merges this result with the other one(s), preserving match counts etc.\n//\n// Warnings from input are merged as Errors in the returned merged Result.\nfunc (r *Result) MergeAsErrors(others ...*Result) *Result {\n\tfor _, other := range others {\n\t\tif other != nil {\n\t\t\tr.AddErrors(other.Errors...)\n\t\t\tr.AddErrors(other.Warnings...)\n\t\t\tr.MatchCount += other.MatchCount\n\t\t}\n\t}\n\treturn r\n}\n\n// MergeAsWarnings merges this result with the other one(s), preserving match counts etc.\n//\n// Errors from input are merged as Warnings in the returned merged Result.\nfunc (r *Result) MergeAsWarnings(others ...*Result) *Result {\n\tfor _, other := range others {\n\t\tif other != nil {\n\t\t\tr.AddWarnings(other.Errors...)\n\t\t\tr.AddWarnings(other.Warnings...)\n\t\t\tr.MatchCount += other.MatchCount\n\t\t}\n\t}\n\treturn r\n}\n\n// AddErrors adds errors to this validation result (if not already reported).\n//\n// Since the same check may be passed several times while exploring the\n// spec structure (via $ref, ...) reported messages are kept\n// unique.\nfunc (r *Result) AddErrors(errors ...error) {\n\tfor _, e := range errors {\n\t\tfound := false\n\t\tif e != nil {\n\t\t\tfor _, isReported := range r.Errors {\n\t\t\t\tif e.Error() == isReported.Error() {\n\t\t\t\t\tfound = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !found {\n\t\t\t\tr.Errors = append(r.Errors, e)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// AddWarnings adds warnings to this validation result (if not already reported).\nfunc (r *Result) AddWarnings(warnings ...error) {\n\tfor _, e := range warnings {\n\t\tfound := false\n\t\tif e != nil {\n\t\t\tfor _, isReported := range r.Warnings {\n\t\t\t\tif e.Error() == isReported.Error() {\n\t\t\t\t\tfound = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !found {\n\t\t\t\tr.Warnings = append(r.Warnings, e)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (r *Result) keepRelevantErrors() *Result {\n\t// TODO: this one is going to disapear...\n\t// keepRelevantErrors strips a result from standard errors and keeps\n\t// the ones which are supposedly more accurate.\n\t//\n\t// The original result remains unaffected (creates a new instance of Result).\n\t// This method is used to work around the \"matchCount\" filter which would otherwise\n\t// strip our result from some accurate error reporting from lower level validators.\n\t//\n\t// NOTE: this implementation with a placeholder (IMPORTANT!) is neither clean nor\n\t// very efficient. On the other hand, relying on go-openapi/errors to manipulate\n\t// codes would require to change a lot here. So, for the moment, let's go with\n\t// placeholders.\n\tstrippedErrors := []error{}\n\tfor _, e := range r.Errors {\n\t\tif strings.HasPrefix(e.Error(), \"IMPORTANT!\") {\n\t\t\tstrippedErrors = append(strippedErrors, fmt.Errorf(strings.TrimPrefix(e.Error(), \"IMPORTANT!\")))\n\t\t}\n\t}\n\tstrippedWarnings := []error{}\n\tfor _, e := range r.Warnings {\n\t\tif strings.HasPrefix(e.Error(), \"IMPORTANT!\") {\n\t\t\tstrippedWarnings = append(strippedWarnings, fmt.Errorf(strings.TrimPrefix(e.Error(), \"IMPORTANT!\")))\n\t\t}\n\t}\n\tstrippedResult := new(Result)\n\tstrippedResult.Errors = strippedErrors\n\tstrippedResult.Warnings = strippedWarnings\n\treturn strippedResult\n}\n\n// IsValid returns true when this result is valid.\n//\n// Returns true on a nil *Result.\nfunc (r *Result) IsValid() bool {\n\tif r == nil {\n\t\treturn true\n\t}\n\treturn len(r.Errors) == 0\n}\n\n// HasErrors returns true when this result is invalid.\n//\n// Returns false on a nil *Result.\nfunc (r *Result) HasErrors() bool {\n\tif r == nil {\n\t\treturn false\n\t}\n\treturn !r.IsValid()\n}\n\n// HasWarnings returns true when this result contains warnings.\n//\n// Returns false on a nil *Result.\nfunc (r *Result) HasWarnings() bool {\n\tif r == nil {\n\t\treturn false\n\t}\n\treturn len(r.Warnings) > 0\n}\n\n// HasErrorsOrWarnings returns true when this result contains\n// either errors or warnings.\n//\n// Returns false on a nil *Result.\nfunc (r *Result) HasErrorsOrWarnings() bool {\n\tif r == nil {\n\t\treturn false\n\t}\n\treturn len(r.Errors) > 0 || len(r.Warnings) > 0\n}\n\n// Inc increments the match count\nfunc (r *Result) Inc() {\n\tr.MatchCount++\n}\n\n// AsError renders this result as an error interface\n//\n// TODO: reporting / pretty print with path ordered and indented\nfunc (r *Result) AsError() error {\n\tif r.IsValid() {\n\t\treturn nil\n\t}\n\treturn errors.CompositeValidationError(r.Errors...)\n}\n"
  },
  {
    "path": "pkg/validation/validate/result_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\n// Test AddError() uniqueness\nfunc TestResult_AddError(t *testing.T) {\n\tr := Result{}\n\tr.AddErrors(fmt.Errorf(\"one error\"))\n\tr.AddErrors(fmt.Errorf(\"another error\"))\n\tr.AddErrors(fmt.Errorf(\"one error\"))\n\tr.AddErrors(fmt.Errorf(\"one error\"))\n\tr.AddErrors(fmt.Errorf(\"one error\"))\n\tr.AddErrors(fmt.Errorf(\"one error\"), fmt.Errorf(\"another error\"))\n\n\tassert.Len(t, r.Errors, 2)\n\tassert.Contains(t, r.Errors, fmt.Errorf(\"one error\"))\n\tassert.Contains(t, r.Errors, fmt.Errorf(\"another error\"))\n}\n\nfunc TestResult_AddNilError(t *testing.T) {\n\tr := Result{}\n\tr.AddErrors(nil)\n\tassert.Len(t, r.Errors, 0)\n\n\terrArray := []error{fmt.Errorf(\"one Error\"), nil, fmt.Errorf(\"another error\")}\n\tr.AddErrors(errArray...)\n\tassert.Len(t, r.Errors, 2)\n}\n\nfunc TestResult_AddWarnings(t *testing.T) {\n\tr := Result{}\n\tr.AddErrors(fmt.Errorf(\"one Error\"))\n\tassert.Len(t, r.Errors, 1)\n\tassert.Len(t, r.Warnings, 0)\n\n\tr.AddWarnings(fmt.Errorf(\"one Warning\"))\n\tassert.Len(t, r.Errors, 1)\n\tassert.Len(t, r.Warnings, 1)\n}\n\nfunc TestResult_Merge(t *testing.T) {\n\tr := Result{}\n\tr.AddErrors(fmt.Errorf(\"one Error\"))\n\tr.AddWarnings(fmt.Errorf(\"one Warning\"))\n\tr.Inc()\n\tassert.Len(t, r.Errors, 1)\n\tassert.Len(t, r.Warnings, 1)\n\tassert.Equal(t, r.MatchCount, 1)\n\n\t// Merge with same\n\tr2 := Result{}\n\tr2.AddErrors(fmt.Errorf(\"one Error\"))\n\tr2.AddWarnings(fmt.Errorf(\"one Warning\"))\n\tr2.Inc()\n\n\tr.Merge(&r2)\n\n\tassert.Len(t, r.Errors, 1)\n\tassert.Len(t, r.Warnings, 1)\n\tassert.Equal(t, r.MatchCount, 2)\n\n\t// Merge with new\n\tr3 := Result{}\n\tr3.AddErrors(fmt.Errorf(\"new Error\"))\n\tr3.AddWarnings(fmt.Errorf(\"new Warning\"))\n\tr3.Inc()\n\n\tr.Merge(&r3)\n\n\tassert.Len(t, r.Errors, 2)\n\tassert.Len(t, r.Warnings, 2)\n\tassert.Equal(t, r.MatchCount, 3)\n}\n\nfunc errorFixture() (Result, Result, Result) {\n\tr := Result{}\n\tr.AddErrors(fmt.Errorf(\"one Error\"))\n\tr.AddWarnings(fmt.Errorf(\"one Warning\"))\n\tr.Inc()\n\n\t// same\n\tr2 := Result{}\n\tr2.AddErrors(fmt.Errorf(\"one Error\"))\n\tr2.AddWarnings(fmt.Errorf(\"one Warning\"))\n\tr2.Inc()\n\n\t// new\n\tr3 := Result{}\n\tr3.AddErrors(fmt.Errorf(\"new Error\"))\n\tr3.AddWarnings(fmt.Errorf(\"new Warning\"))\n\tr3.Inc()\n\treturn r, r2, r3\n}\n\nfunc TestResult_MergeAsErrors(t *testing.T) {\n\tr, r2, r3 := errorFixture()\n\tassert.Len(t, r.Errors, 1)\n\tassert.Len(t, r.Warnings, 1)\n\tassert.Equal(t, r.MatchCount, 1)\n\n\tr.MergeAsErrors(&r2, &r3)\n\n\tassert.Len(t, r.Errors, 4) // One Warning added to Errors\n\tassert.Len(t, r.Warnings, 1)\n\tassert.Equal(t, r.MatchCount, 3)\n}\n\nfunc TestResult_MergeAsWarnings(t *testing.T) {\n\tr, r2, r3 := errorFixture()\n\tassert.Len(t, r.Errors, 1)\n\tassert.Len(t, r.Warnings, 1)\n\tassert.Equal(t, r.MatchCount, 1)\n\n\tr.MergeAsWarnings(&r2, &r3)\n\n\tassert.Len(t, r.Errors, 1) // One Warning added to Errors\n\tassert.Len(t, r.Warnings, 4)\n\tassert.Equal(t, r.MatchCount, 3)\n}\n\nfunc TestResult_IsValid(t *testing.T) {\n\tr := Result{}\n\n\tassert.True(t, r.IsValid())\n\tassert.False(t, r.HasErrors())\n\n\tr.AddWarnings(fmt.Errorf(\"one Warning\"))\n\tassert.True(t, r.IsValid())\n\tassert.False(t, r.HasErrors())\n\n\tr.AddErrors(fmt.Errorf(\"one Error\"))\n\tassert.False(t, r.IsValid())\n\tassert.True(t, r.HasErrors())\n}\n\nfunc TestResult_HasWarnings(t *testing.T) {\n\tr := Result{}\n\n\tassert.False(t, r.HasWarnings())\n\n\tr.AddErrors(fmt.Errorf(\"one Error\"))\n\tassert.False(t, r.HasWarnings())\n\n\tr.AddWarnings(fmt.Errorf(\"one Warning\"))\n\tassert.True(t, r.HasWarnings())\n}\n\nfunc TestResult_HasErrorsOrWarnings(t *testing.T) {\n\tr := Result{}\n\tr2 := Result{}\n\n\tassert.False(t, r.HasErrorsOrWarnings())\n\n\tr.AddErrors(fmt.Errorf(\"one Error\"))\n\tassert.True(t, r.HasErrorsOrWarnings())\n\n\tr2.AddWarnings(fmt.Errorf(\"one Warning\"))\n\tassert.True(t, r2.HasErrorsOrWarnings())\n\n\tr.Merge(&r2)\n\tassert.True(t, r.HasErrorsOrWarnings())\n}\n\nfunc TestResult_keepRelevantErrors(t *testing.T) {\n\tr := Result{}\n\tr.AddErrors(fmt.Errorf(\"one Error\"))\n\tr.AddErrors(fmt.Errorf(\"IMPORTANT!Another Error\"))\n\tr.AddWarnings(fmt.Errorf(\"one warning\"))\n\tr.AddWarnings(fmt.Errorf(\"IMPORTANT!Another warning\"))\n\tassert.Len(t, r.keepRelevantErrors().Errors, 1)\n\tassert.Len(t, r.keepRelevantErrors().Warnings, 1)\n}\n\nfunc TestResult_AsError(t *testing.T) {\n\tr := Result{}\n\tassert.Nil(t, r.AsError())\n\tr.AddErrors(fmt.Errorf(\"one Error\"))\n\tr.AddErrors(fmt.Errorf(\"additional Error\"))\n\tres := r.AsError()\n\tif assert.NotNil(t, res) {\n\t\tassert.Contains(t, res.Error(), \"validation failure list:\") // Expected from pkg errors\n\t\tassert.Contains(t, res.Error(), \"one Error\")                // Expected from pkg errors\n\t\tassert.Contains(t, res.Error(), \"additional Error\")         // Expected from pkg errors\n\t}\n}\n\n// Test methods which suppport a call on a nil instance\nfunc TestResult_NilInstance(t *testing.T) {\n\tvar r *Result\n\tassert.True(t, r.IsValid())\n\tassert.False(t, r.HasErrors())\n\tassert.False(t, r.HasWarnings())\n\tassert.False(t, r.HasErrorsOrWarnings())\n}\n"
  },
  {
    "path": "pkg/validation/validate/rexp.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\tre \"regexp\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\n// Cache for compiled regular expressions\nvar (\n\tcacheMutex = &sync.Mutex{}\n\treDict     = atomic.Value{} //map[string]*re.Regexp\n)\n\nfunc compileRegexp(pattern string) (*re.Regexp, error) {\n\tif cache, ok := reDict.Load().(map[string]*re.Regexp); ok {\n\t\tif r := cache[pattern]; r != nil {\n\t\t\treturn r, nil\n\t\t}\n\t}\n\n\tr, err := re.Compile(pattern)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcacheRegexp(r)\n\treturn r, nil\n}\n\nfunc mustCompileRegexp(pattern string) *re.Regexp {\n\tif cache, ok := reDict.Load().(map[string]*re.Regexp); ok {\n\t\tif r := cache[pattern]; r != nil {\n\t\t\treturn r\n\t\t}\n\t}\n\n\tr := re.MustCompile(pattern)\n\tcacheRegexp(r)\n\treturn r\n}\n\nfunc cacheRegexp(r *re.Regexp) {\n\tcacheMutex.Lock()\n\tdefer cacheMutex.Unlock()\n\n\tif cache, ok := reDict.Load().(map[string]*re.Regexp); !ok || cache[r.String()] == nil {\n\t\tnewCache := map[string]*re.Regexp{\n\t\t\tr.String(): r,\n\t\t}\n\n\t\tfor k, v := range cache {\n\t\t\tnewCache[k] = v\n\t\t}\n\n\t\treDict.Store(newCache)\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/validate/rexp_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations untader the License.\n\npackage validate\n\nimport (\n\tre \"regexp\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\n// Save repeated regexp compilation\nfunc Test_compileRegexp(t *testing.T) {\n\tvrex := new(re.Regexp)\n\n\trex, err := compileRegexp(\".*TestRegexp.*\")\n\tassert.NoError(t, err)\n\tassert.NotNil(t, rex)\n\tassert.IsType(t, vrex, rex)\n\n\trex, err = compileRegexp(\".*TestRegexp.*\")\n\tassert.NoError(t, err)\n\tassert.NotNil(t, rex)\n\n\tirex, ierr := compileRegexp(\".[*InvalidTestRegexp.*\")\n\tassert.Error(t, ierr)\n\tassert.Nil(t, irex)\n\tassert.IsType(t, vrex, irex)\n}\n\n// Save repeated regexp compilation, with panic on error\nfunc testPanic() {\n\tmustCompileRegexp(\".[*InvalidTestRegexp.*\")\n}\n\nfunc Test_mustCompileRegexp(t *testing.T) {\n\tvrex := new(re.Regexp)\n\n\trex := mustCompileRegexp(\".*TestRegexp2.*\")\n\tassert.NotNil(t, rex)\n\tassert.IsType(t, vrex, rex)\n\n\trex = mustCompileRegexp(\".*TestRegexp2.*\")\n\tassert.NotNil(t, rex)\n\n\tassert.Panics(t, testPanic)\n}\n\nfunc TestRace_compileRegexp(t *testing.T) {\n\tvrex := new(re.Regexp)\n\n\tpatterns := []string{\n\t\t\".*TestRegexp1.*\",\n\t\t\".*TestRegexp2.*\",\n\t\t\".*TestRegexp3.*\",\n\t}\n\n\tcomp := func(pattern string) {\n\t\trex, err := compileRegexp(pattern)\n\t\tassert.NoError(t, err)\n\t\tassert.NotNil(t, rex)\n\t\tassert.IsType(t, vrex, rex)\n\t}\n\n\tfor i := 0; i < 20; i++ {\n\t\tt.Run(patterns[i%3], func(t *testing.T) {\n\t\t\tt.Parallel()\n\t\t\tcomp(patterns[i%3])\n\t\t})\n\t}\n}\n\nfunc TestRace_mustCompileRegexp(t *testing.T) {\n\tvrex := new(re.Regexp)\n\n\tpatterns := []string{\n\t\t\".*TestRegexp1.*\",\n\t\t\".*TestRegexp2.*\",\n\t\t\".*TestRegexp3.*\",\n\t}\n\n\tcomp := func(pattern string) {\n\t\trex := mustCompileRegexp(pattern)\n\t\tassert.NotNil(t, rex)\n\t\tassert.IsType(t, vrex, rex)\n\t}\n\n\tfor i := 0; i < 20; i++ {\n\t\tt.Run(patterns[i%3], func(t *testing.T) {\n\t\t\tt.Parallel()\n\t\t\tcomp(patterns[i%3])\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/validate/schema.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/validation/errors\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\nvar (\n\tspecSchemaType = reflect.TypeOf(&spec.Schema{})\n\t//specItemsType     = reflect.TypeOf(&spec.Items{})\n)\n\n// SchemaValidator validates data against a JSON schema\ntype SchemaValidator struct {\n\tPath         string\n\tin           string\n\tSchema       *spec.Schema\n\tvalidators   []ValueValidator\n\tRoot         interface{}\n\tKnownFormats strfmt.Registry\n\tOptions      SchemaValidatorOptions\n}\n\n// AgainstSchema validates the specified data against the provided schema, using a registry of supported formats.\n//\n// When no pre-parsed *spec.Schema structure is provided, it uses a JSON schema as default. See example.\nfunc AgainstSchema(schema *spec.Schema, data interface{}, formats strfmt.Registry, options ...Option) error {\n\tres := NewSchemaValidator(schema, nil, \"\", formats, options...).Validate(data)\n\tif res.HasErrors() {\n\t\treturn errors.CompositeValidationError(res.Errors...)\n\t}\n\treturn nil\n}\n\n// NewSchemaValidator creates a new schema validator.\n//\n// Panics if the provided schema is invalid.\nfunc NewSchemaValidator(schema *spec.Schema, rootSchema interface{}, root string, formats strfmt.Registry, options ...Option) *SchemaValidator {\n\tif schema == nil {\n\t\treturn nil\n\t}\n\n\tif rootSchema == nil {\n\t\trootSchema = schema\n\t}\n\n\tif ref := schema.Ref.String(); ref != \"\" {\n\t\tpanic(fmt.Sprintf(\"schema references not supported: %s\", ref))\n\t}\n\n\ts := SchemaValidator{\n\t\tPath:         root,\n\t\tin:           \"body\",\n\t\tSchema:       schema,\n\t\tRoot:         rootSchema,\n\t\tKnownFormats: formats,\n\t\tOptions:      SchemaValidatorOptions{}}\n\tfor _, o := range options {\n\t\to(&s.Options)\n\t}\n\n\tif s.Options.NewValidatorForIndex == nil {\n\t\ts.Options.NewValidatorForIndex = s.NewValidatorForIndex\n\t}\n\tif s.Options.NewValidatorForField == nil {\n\t\ts.Options.NewValidatorForField = s.NewValidatorForField\n\t}\n\n\ts.validators = []ValueValidator{\n\t\ts.typeValidator(),\n\t\ts.schemaPropsValidator(),\n\t\ts.stringValidator(),\n\t\ts.formatValidator(),\n\t\ts.numberValidator(),\n\t\ts.sliceValidator(),\n\t\ts.commonValidator(),\n\t\ts.objectValidator(),\n\t}\n\treturn &s\n}\n\nfunc (s *SchemaValidator) NewValidatorForField(field string, schema *spec.Schema, rootSchema interface{}, root string, formats strfmt.Registry, opts ...Option) ValueValidator {\n\treturn NewSchemaValidator(schema, rootSchema, root, formats, opts...)\n}\n\nfunc (s *SchemaValidator) NewValidatorForIndex(index int, schema *spec.Schema, rootSchema interface{}, root string, formats strfmt.Registry, opts ...Option) ValueValidator {\n\treturn NewSchemaValidator(schema, rootSchema, root, formats, opts...)\n}\n\n// SetPath sets the path for this schema validator\nfunc (s *SchemaValidator) SetPath(path string) {\n\ts.Path = path\n\tfor _, v := range s.validators {\n\t\tv.SetPath(path)\n\t}\n}\n\n// Applies returns true when this schema validator applies\nfunc (s *SchemaValidator) Applies(source interface{}, kind reflect.Kind) bool {\n\t_, ok := source.(*spec.Schema)\n\treturn ok\n}\n\n// Validate validates the data against the schema\nfunc (s *SchemaValidator) Validate(data interface{}) *Result {\n\tresult := new(Result)\n\tif s == nil {\n\t\treturn result\n\t}\n\n\tif data == nil {\n\t\tresult.Merge(s.validators[0].Validate(data)) // type validator\n\t\tresult.Merge(s.validators[6].Validate(data)) // common validator\n\t\treturn result\n\t}\n\n\ttpe := reflect.TypeOf(data)\n\tkind := tpe.Kind()\n\tfor kind == reflect.Ptr {\n\t\ttpe = tpe.Elem()\n\t\tkind = tpe.Kind()\n\t}\n\td := data\n\n\tif kind == reflect.Struct {\n\t\t// NOTE: since reflect retrieves the true nature of types\n\t\t// this means that all strfmt types passed here (e.g. strfmt.Datetime, etc..)\n\t\t// are converted here to strings, and structs are systematically converted\n\t\t// to map[string]interface{}.\n\t\td = swag.ToDynamicJSON(data)\n\t}\n\n\t// TODO: this part should be handed over to type validator\n\t// Handle special case of json.Number data (number marshalled as string)\n\tisnumber := s.Schema.Type.Contains(numberType) || s.Schema.Type.Contains(integerType)\n\tif num, ok := data.(json.Number); ok && isnumber {\n\t\tif s.Schema.Type.Contains(integerType) { // avoid lossy conversion\n\t\t\tin, erri := num.Int64()\n\t\t\tif erri != nil {\n\t\t\t\tresult.AddErrors(invalidTypeConversionMsg(s.Path, erri))\n\t\t\t\tresult.Inc()\n\t\t\t\treturn result\n\t\t\t}\n\t\t\td = in\n\t\t} else {\n\t\t\tnf, errf := num.Float64()\n\t\t\tif errf != nil {\n\t\t\t\tresult.AddErrors(invalidTypeConversionMsg(s.Path, errf))\n\t\t\t\tresult.Inc()\n\t\t\t\treturn result\n\t\t\t}\n\t\t\td = nf\n\t\t}\n\n\t\ttpe = reflect.TypeOf(d)\n\t\tkind = tpe.Kind()\n\t}\n\n\tfor _, v := range s.validators {\n\t\tif !v.Applies(s.Schema, kind) {\n\t\t\tdebugLog(\"%T does not apply for %v\", v, kind)\n\t\t\tcontinue\n\t\t}\n\n\t\terr := v.Validate(d)\n\t\tresult.Merge(err)\n\t\tresult.Inc()\n\t}\n\tresult.Inc()\n\treturn result\n}\n\nfunc (s *SchemaValidator) typeValidator() ValueValidator {\n\treturn &typeValidator{Type: s.Schema.Type, Nullable: s.Schema.Nullable, Format: s.Schema.Format, In: s.in, Path: s.Path}\n}\n\nfunc (s *SchemaValidator) commonValidator() ValueValidator {\n\treturn &basicCommonValidator{\n\t\tPath: s.Path,\n\t\tIn:   s.in,\n\t\tEnum: s.Schema.Enum,\n\t}\n}\n\nfunc (s *SchemaValidator) sliceValidator() ValueValidator {\n\treturn &schemaSliceValidator{\n\t\tPath:            s.Path,\n\t\tIn:              s.in,\n\t\tMaxItems:        s.Schema.MaxItems,\n\t\tMinItems:        s.Schema.MinItems,\n\t\tUniqueItems:     s.Schema.UniqueItems,\n\t\tAdditionalItems: s.Schema.AdditionalItems,\n\t\tItems:           s.Schema.Items,\n\t\tRoot:            s.Root,\n\t\tKnownFormats:    s.KnownFormats,\n\t\tOptions:         s.Options,\n\t}\n}\n\nfunc (s *SchemaValidator) numberValidator() ValueValidator {\n\tvar typeName string\n\tvar format string\n\n\t// We only pass the format to the validator if it is valid for the resolved type\n\t// and the type is unambiguous (exactly one type specified).\n\t// This prevents the validator from enforcing ranges for mismatched formats\n\t// (e.g. enforcing \"int32\" range on a \"number\" type) or ambiguous types.\n\tif len(s.Schema.Type) == 1 {\n\t\tswitch s.Schema.Type[0] {\n\t\tcase integerType:\n\t\t\ttypeName = integerType\n\t\t\tswitch s.Schema.Format {\n\t\t\tcase integerFormatInt32, integerFormatInt64:\n\t\t\t\tformat = s.Schema.Format\n\t\t\t}\n\t\tcase numberType:\n\t\t\ttypeName = numberType\n\t\t\tswitch s.Schema.Format {\n\t\t\tcase numberFormatFloat, numberFormatDouble:\n\t\t\t\tformat = s.Schema.Format\n\t\t\t}\n\t\t}\n\t}\n\treturn &numberValidator{\n\t\tPath:             s.Path,\n\t\tIn:               s.in,\n\t\tDefault:          s.Schema.Default,\n\t\tMultipleOf:       s.Schema.MultipleOf,\n\t\tMaximum:          s.Schema.Maximum,\n\t\tExclusiveMaximum: s.Schema.ExclusiveMaximum,\n\t\tMinimum:          s.Schema.Minimum,\n\t\tExclusiveMinimum: s.Schema.ExclusiveMinimum,\n\t\tType:             typeName,\n\t\tFormat:           format,\n\t}\n}\n\nfunc (s *SchemaValidator) stringValidator() ValueValidator {\n\treturn &stringValidator{\n\t\tPath:      s.Path,\n\t\tIn:        s.in,\n\t\tMaxLength: s.Schema.MaxLength,\n\t\tMinLength: s.Schema.MinLength,\n\t\tPattern:   s.Schema.Pattern,\n\t}\n}\n\nfunc (s *SchemaValidator) formatValidator() ValueValidator {\n\treturn &formatValidator{\n\t\tPath:         s.Path,\n\t\tIn:           s.in,\n\t\tFormat:       s.Schema.Format,\n\t\tKnownFormats: s.KnownFormats,\n\t}\n}\n\nfunc (s *SchemaValidator) schemaPropsValidator() ValueValidator {\n\tsch := s.Schema\n\treturn newSchemaPropsValidator(s.Path, s.in, sch.AllOf, sch.OneOf, sch.AnyOf, sch.Not, sch.Dependencies, s.Root, s.KnownFormats, s.Options.Options()...)\n}\n\nfunc (s *SchemaValidator) objectValidator() ValueValidator {\n\treturn &objectValidator{\n\t\tPath:                 s.Path,\n\t\tIn:                   s.in,\n\t\tMaxProperties:        s.Schema.MaxProperties,\n\t\tMinProperties:        s.Schema.MinProperties,\n\t\tRequired:             s.Schema.Required,\n\t\tProperties:           s.Schema.Properties,\n\t\tAdditionalProperties: s.Schema.AdditionalProperties,\n\t\tPatternProperties:    s.Schema.PatternProperties,\n\t\tRoot:                 s.Root,\n\t\tKnownFormats:         s.KnownFormats,\n\t\tOptions:              s.Options,\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/validate/schema_messages.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"k8s.io/kube-openapi/pkg/validation/errors\"\n)\n\n// Error messages related to schema validation and returned as results.\nconst (\n\t// ArrayDoesNotAllowAdditionalItemsError when an additionalItems construct is not verified by the array values provided.\n\t//\n\t// TODO: should move to package go-openapi/errors\n\tArrayDoesNotAllowAdditionalItemsError = \"array doesn't allow for additional items\"\n\n\t// HasDependencyError indicates that a dependencies construct was not verified\n\tHasDependencyError = \"%q has a dependency on %s\"\n\n\t// InvalidTypeConversionError indicates that a numerical conversion for the given type could not be carried on\n\tInvalidTypeConversionError = \"invalid type conversion in %s: %v \"\n\n\t// MustValidateAtLeastOneSchemaError indicates that in a AnyOf construct, none of the schema constraints specified were verified\n\tMustValidateAtLeastOneSchemaError = \"%q must validate at least one schema (anyOf)\"\n\n\t// MustValidateOnlyOneSchemaError indicates that in a OneOf construct, either none of the schema constraints specified were verified, or several were\n\tMustValidateOnlyOneSchemaError = \"%q must validate one and only one schema (oneOf). %s\"\n\n\t// MustValidateAllSchemasError indicates that in a AllOf construct, at least one of the schema constraints specified were not verified\n\t//\n\t// TODO: punctuation in message\n\tMustValidateAllSchemasError = \"%q must validate all the schemas (allOf)%s\"\n\n\t// MustNotValidateSchemaError indicates that in a Not construct, the schema constraint specified was verified\n\tMustNotValidateSchemaError = \"%q must not validate the schema (not)\"\n)\n\n// Warning messages related to schema validation and returned as results\nconst ()\n\nfunc invalidTypeConversionMsg(path string, err error) errors.Error {\n\treturn errors.New(errors.CompositeErrorCode, InvalidTypeConversionError, path, err)\n}\nfunc mustValidateOnlyOneSchemaMsg(path, additionalMsg string) errors.Error {\n\treturn errors.New(errors.CompositeErrorCode, MustValidateOnlyOneSchemaError, path, additionalMsg)\n}\nfunc mustValidateAtLeastOneSchemaMsg(path string) errors.Error {\n\treturn errors.New(errors.CompositeErrorCode, MustValidateAtLeastOneSchemaError, path)\n}\nfunc mustValidateAllSchemasMsg(path, additionalMsg string) errors.Error {\n\treturn errors.New(errors.CompositeErrorCode, MustValidateAllSchemasError, path, additionalMsg)\n}\nfunc mustNotValidatechemaMsg(path string) errors.Error {\n\treturn errors.New(errors.CompositeErrorCode, MustNotValidateSchemaError, path)\n}\nfunc hasADependencyMsg(path, depkey string) errors.Error {\n\treturn errors.New(errors.CompositeErrorCode, HasDependencyError, path, depkey)\n}\nfunc arrayDoesNotAllowAdditionalItemsMsg() errors.Error {\n\treturn errors.New(errors.CompositeErrorCode, ArrayDoesNotAllowAdditionalItemsError)\n}\n"
  },
  {
    "path": "pkg/validation/validate/schema_option.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\n// SchemaValidatorOptions defines optional rules for schema validation\ntype SchemaValidatorOptions struct {\n\tvalidationRulesEnabled bool\n\tNewValidatorForIndex   func(index int, schema *spec.Schema, rootSchema interface{}, root string, formats strfmt.Registry, opts ...Option) ValueValidator\n\tNewValidatorForField   func(field string, schema *spec.Schema, rootSchema interface{}, root string, formats strfmt.Registry, opts ...Option) ValueValidator\n}\n\n// Option sets optional rules for schema validation\ntype Option func(*SchemaValidatorOptions)\n\n// Options returns current options\nfunc (svo SchemaValidatorOptions) Options() []Option {\n\treturn []Option{}\n}\n"
  },
  {
    "path": "pkg/validation/validate/schema_props.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\ntype schemaPropsValidator struct {\n\tPath            string\n\tIn              string\n\tAllOf           []spec.Schema\n\tOneOf           []spec.Schema\n\tAnyOf           []spec.Schema\n\tNot             *spec.Schema\n\tDependencies    spec.Dependencies\n\tanyOfValidators []SchemaValidator\n\tallOfValidators []SchemaValidator\n\toneOfValidators []SchemaValidator\n\tnotValidator    *SchemaValidator\n\tRoot            interface{}\n\tKnownFormats    strfmt.Registry\n\tOptions         SchemaValidatorOptions\n}\n\nfunc (s *schemaPropsValidator) SetPath(path string) {\n\ts.Path = path\n\tfor _, v := range s.anyOfValidators {\n\t\tv.SetPath(path)\n\t}\n\tfor _, v := range s.allOfValidators {\n\t\tv.SetPath(path)\n\t}\n\tfor _, v := range s.oneOfValidators {\n\t\tv.SetPath(path)\n\t}\n\tif s.notValidator != nil {\n\t\ts.notValidator.SetPath(path)\n\t}\n}\n\nfunc newSchemaPropsValidator(path string, in string, allOf, oneOf, anyOf []spec.Schema, not *spec.Schema, deps spec.Dependencies, root interface{}, formats strfmt.Registry, options ...Option) *schemaPropsValidator {\n\tvar anyValidators []SchemaValidator\n\tfor _, v := range anyOf {\n\t\tv := v\n\t\tanyValidators = append(anyValidators, *NewSchemaValidator(&v, root, path, formats, options...))\n\t}\n\tvar allValidators []SchemaValidator\n\tfor _, v := range allOf {\n\t\tv := v\n\t\tallValidators = append(allValidators, *NewSchemaValidator(&v, root, path, formats, options...))\n\t}\n\tvar oneValidators []SchemaValidator\n\tfor _, v := range oneOf {\n\t\tv := v\n\t\toneValidators = append(oneValidators, *NewSchemaValidator(&v, root, path, formats, options...))\n\t}\n\n\tvar notValidator *SchemaValidator\n\tif not != nil {\n\t\tnotValidator = NewSchemaValidator(not, root, path, formats, options...)\n\t}\n\n\tschOptions := &SchemaValidatorOptions{}\n\tfor _, o := range options {\n\t\to(schOptions)\n\t}\n\treturn &schemaPropsValidator{\n\t\tPath:            path,\n\t\tIn:              in,\n\t\tAllOf:           allOf,\n\t\tOneOf:           oneOf,\n\t\tAnyOf:           anyOf,\n\t\tNot:             not,\n\t\tDependencies:    deps,\n\t\tanyOfValidators: anyValidators,\n\t\tallOfValidators: allValidators,\n\t\toneOfValidators: oneValidators,\n\t\tnotValidator:    notValidator,\n\t\tRoot:            root,\n\t\tKnownFormats:    formats,\n\t\tOptions:         *schOptions,\n\t}\n}\n\nfunc (s *schemaPropsValidator) Applies(source interface{}, kind reflect.Kind) bool {\n\tr := reflect.TypeOf(source) == specSchemaType\n\tdebugLog(\"schema props validator for %q applies %t for %T (kind: %v)\\n\", s.Path, r, source, kind)\n\treturn r\n}\n\nfunc (s *schemaPropsValidator) Validate(data interface{}) *Result {\n\tmainResult := new(Result)\n\n\t// Intermediary error results\n\n\t// IMPORTANT! messages from underlying validators\n\tkeepResultAnyOf := new(Result)\n\tkeepResultOneOf := new(Result)\n\tkeepResultAllOf := new(Result)\n\n\t// Validates at least one in anyOf schemas\n\tvar firstSuccess *Result\n\tif len(s.anyOfValidators) > 0 {\n\t\tvar bestFailures *Result\n\t\tsucceededOnce := false\n\t\tfor _, anyOfSchema := range s.anyOfValidators {\n\t\t\tresult := anyOfSchema.Validate(data)\n\t\t\t// We keep inner IMPORTANT! errors no matter what MatchCount tells us\n\t\t\tkeepResultAnyOf.Merge(result.keepRelevantErrors())\n\t\t\tif result.IsValid() {\n\t\t\t\tbestFailures = nil\n\t\t\t\tsucceededOnce = true\n\t\t\t\tif firstSuccess == nil {\n\t\t\t\t\tfirstSuccess = result\n\t\t\t\t}\n\t\t\t\tkeepResultAnyOf = new(Result)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// MatchCount is used to select errors from the schema with most positive checks\n\t\t\tif bestFailures == nil || result.MatchCount > bestFailures.MatchCount {\n\t\t\t\tbestFailures = result\n\t\t\t}\n\t\t}\n\n\t\tif !succeededOnce {\n\t\t\tmainResult.AddErrors(mustValidateAtLeastOneSchemaMsg(s.Path))\n\t\t}\n\t\tif bestFailures != nil {\n\t\t\tmainResult.Merge(bestFailures)\n\t\t} else if firstSuccess != nil {\n\t\t\tmainResult.Merge(firstSuccess)\n\t\t}\n\t}\n\n\t// Validates exactly one in oneOf schemas\n\tif len(s.oneOfValidators) > 0 {\n\t\tvar bestFailures *Result\n\t\tvar firstSuccess *Result\n\t\tvalidated := 0\n\n\t\tfor _, oneOfSchema := range s.oneOfValidators {\n\t\t\tresult := oneOfSchema.Validate(data)\n\t\t\t// We keep inner IMPORTANT! errors no matter what MatchCount tells us\n\t\t\tkeepResultOneOf.Merge(result.keepRelevantErrors())\n\t\t\tif result.IsValid() {\n\t\t\t\tvalidated++\n\t\t\t\tbestFailures = nil\n\t\t\t\tif firstSuccess == nil {\n\t\t\t\t\tfirstSuccess = result\n\t\t\t\t}\n\t\t\t\tkeepResultOneOf = new(Result)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// MatchCount is used to select errors from the schema with most positive checks\n\t\t\tif validated == 0 && (bestFailures == nil || result.MatchCount > bestFailures.MatchCount) {\n\t\t\t\tbestFailures = result\n\t\t\t}\n\t\t}\n\n\t\tif validated != 1 {\n\t\t\tadditionalMsg := \"\"\n\t\t\tif validated == 0 {\n\t\t\t\tadditionalMsg = \"Found none valid\"\n\t\t\t} else {\n\t\t\t\tadditionalMsg = fmt.Sprintf(\"Found %d valid alternatives\", validated)\n\t\t\t}\n\n\t\t\tmainResult.AddErrors(mustValidateOnlyOneSchemaMsg(s.Path, additionalMsg))\n\t\t\tif bestFailures != nil {\n\t\t\t\tmainResult.Merge(bestFailures)\n\t\t\t}\n\t\t} else if firstSuccess != nil {\n\t\t\tmainResult.Merge(firstSuccess)\n\t\t}\n\t}\n\n\t// Validates all of allOf schemas\n\tif len(s.allOfValidators) > 0 {\n\t\tvalidated := 0\n\n\t\tfor _, allOfSchema := range s.allOfValidators {\n\t\t\tresult := allOfSchema.Validate(data)\n\t\t\t// We keep inner IMPORTANT! errors no matter what MatchCount tells us\n\t\t\tkeepResultAllOf.Merge(result.keepRelevantErrors())\n\t\t\t//keepResultAllOf.Merge(result)\n\t\t\tif result.IsValid() {\n\t\t\t\tvalidated++\n\t\t\t}\n\t\t\tmainResult.Merge(result)\n\t\t}\n\n\t\tif validated != len(s.allOfValidators) {\n\t\t\tadditionalMsg := \"\"\n\t\t\tif validated == 0 {\n\t\t\t\tadditionalMsg = \". None validated\"\n\t\t\t}\n\n\t\t\tmainResult.AddErrors(mustValidateAllSchemasMsg(s.Path, additionalMsg))\n\t\t}\n\t}\n\n\tif s.notValidator != nil {\n\t\tresult := s.notValidator.Validate(data)\n\t\t// We keep inner IMPORTANT! errors no matter what MatchCount tells us\n\t\tif result.IsValid() {\n\t\t\tmainResult.AddErrors(mustNotValidatechemaMsg(s.Path))\n\t\t}\n\t}\n\n\tif s.Dependencies != nil && len(s.Dependencies) > 0 && reflect.TypeOf(data).Kind() == reflect.Map {\n\t\tval := data.(map[string]interface{})\n\t\tfor key := range val {\n\t\t\tif dep, ok := s.Dependencies[key]; ok {\n\n\t\t\t\tif dep.Schema != nil {\n\t\t\t\t\tmainResult.Merge(NewSchemaValidator(dep.Schema, s.Root, s.Path+\".\"+key, s.KnownFormats, s.Options.Options()...).Validate(data))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif len(dep.Property) > 0 {\n\t\t\t\t\tfor _, depKey := range dep.Property {\n\t\t\t\t\t\tif _, ok := val[depKey]; !ok {\n\t\t\t\t\t\t\tmainResult.AddErrors(hasADependencyMsg(s.Path, depKey))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tmainResult.Inc()\n\t// In the end we retain best failures for schema validation\n\t// plus, if any, composite errors which may explain special cases (tagged as IMPORTANT!).\n\treturn mainResult.Merge(keepResultAllOf, keepResultOneOf, keepResultAnyOf)\n}\n"
  },
  {
    "path": "pkg/validation/validate/schema_props_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\n// Test edge cases in schema_props_validator which are difficult\n// to simulate with specs\n// (this one is a trivial, just to check all methods are filled)\nfunc TestSchemaPropsValidator_EdgeCases(t *testing.T) {\n\ts := schemaPropsValidator{}\n\ts.SetPath(\"path\")\n\tassert.Equal(t, \"path\", s.Path)\n}\n"
  },
  {
    "path": "pkg/validation/validate/schema_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"encoding/json\"\n\t\"math\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/require\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\nfunc TestSchemaValidator_Validate_Pattern(t *testing.T) {\n\tvar schemaJSON = `\n{\n    \"properties\": {\n        \"name\": {\n            \"type\": \"string\",\n            \"pattern\": \"^[A-Za-z]+$\",\n            \"minLength\": 1\n        },\n        \"place\": {\n            \"type\": \"string\",\n            \"pattern\": \"^[A-Za-z]+$\",\n            \"minLength\": 1\n        }\n    },\n    \"required\": [\n        \"name\"\n    ]\n}`\n\n\tschema := new(spec.Schema)\n\trequire.NoError(t, json.Unmarshal([]byte(schemaJSON), schema))\n\n\tvar input map[string]interface{}\n\tvar inputJSON = `{\"name\": \"Ivan\"}`\n\n\trequire.NoError(t, json.Unmarshal([]byte(inputJSON), &input))\n\tassert.NoError(t, AgainstSchema(schema, input, strfmt.Default))\n\n\tinput[\"place\"] = json.Number(\"10\")\n\n\tassert.Error(t, AgainstSchema(schema, input, strfmt.Default))\n\n}\n\nfunc TestSchemaValidator_PatternProperties(t *testing.T) {\n\tvar schemaJSON = `\n{\n    \"properties\": {\n        \"name\": {\n            \"type\": \"string\",\n            \"pattern\": \"^[A-Za-z]+$\",\n            \"minLength\": 1\n        }\n\t},\n    \"patternProperties\": {\n\t  \"address-[0-9]+\": {\n         \"type\": \"string\",\n         \"pattern\": \"^[\\\\s|a-z]+$\"\n\t  }\n    },\n    \"required\": [\n        \"name\"\n    ],\n\t\"additionalProperties\": false\n}`\n\n\tschema := new(spec.Schema)\n\trequire.NoError(t, json.Unmarshal([]byte(schemaJSON), schema))\n\n\tvar input map[string]interface{}\n\n\t// ok\n\tvar inputJSON = `{\"name\": \"Ivan\",\"address-1\": \"sesame street\"}`\n\trequire.NoError(t, json.Unmarshal([]byte(inputJSON), &input))\n\tassert.NoError(t, AgainstSchema(schema, input, strfmt.Default))\n\n\t// fail pattern regexp\n\tinput[\"address-1\"] = \"1, Sesame Street\"\n\tassert.Error(t, AgainstSchema(schema, input, strfmt.Default))\n\n\t// fail patternProperties regexp\n\tinputJSON = `{\"name\": \"Ivan\",\"address-1\": \"sesame street\",\"address-A\": \"address\"}`\n\trequire.NoError(t, json.Unmarshal([]byte(inputJSON), &input))\n\tassert.Error(t, AgainstSchema(schema, input, strfmt.Default))\n\n}\n\nfunc TestSchemaValidator_ReferencePanic(t *testing.T) {\n\tassert.PanicsWithValue(t, `schema references not supported: http://localhost:1234/integer.json`, schemaRefValidator)\n}\n\nfunc schemaRefValidator() {\n\tvar schemaJSON = `\n{\n    \"$ref\": \"http://localhost:1234/integer.json\"\n}`\n\n\tschema := new(spec.Schema)\n\t_ = json.Unmarshal([]byte(schemaJSON), schema)\n\n\tvar input map[string]interface{}\n\n\t// ok\n\tvar inputJSON = `{\"name\": \"Ivan\",\"address-1\": \"sesame street\"}`\n\t_ = json.Unmarshal([]byte(inputJSON), &input)\n\t// panics\n\t_ = AgainstSchema(schema, input, strfmt.Default)\n}\n\n// Test edge cases in schemaValidator which are difficult\n// to simulate with specs\nfunc TestSchemaValidator_EdgeCases(t *testing.T) {\n\tvar s *SchemaValidator\n\n\tres := s.Validate(\"123\")\n\tassert.NotNil(t, res)\n\tassert.True(t, res.IsValid())\n\n\ts = NewSchemaValidator(nil, nil, \"\", strfmt.Default)\n\tassert.Nil(t, s)\n\n\tv := \"ABC\"\n\tb := s.Applies(v, reflect.String)\n\tassert.False(t, b)\n\n\tsp := spec.Schema{}\n\tb = s.Applies(&sp, reflect.Struct)\n\tassert.True(t, b)\n\n\tspp := spec.Float64Property()\n\n\ts = NewSchemaValidator(spp, nil, \"\", strfmt.Default)\n\n\ts.SetPath(\"path\")\n\tassert.Equal(t, \"path\", s.Path)\n\n\tr := s.Validate(nil)\n\tassert.NotNil(t, r)\n\tassert.False(t, r.IsValid())\n\n\t// Validating json.Number data against number|float64\n\tj := json.Number(\"123\")\n\tr = s.Validate(j)\n\tassert.True(t, r.IsValid())\n\n\t// Validating json.Number data against integer|int32\n\tspp = spec.Int32Property()\n\ts = NewSchemaValidator(spp, nil, \"\", strfmt.Default)\n\tj = json.Number(\"123\")\n\tr = s.Validate(j)\n\tassert.True(t, r.IsValid())\n\n\tbignum := swag.FormatFloat64(math.MaxFloat64)\n\tj = json.Number(bignum)\n\tr = s.Validate(j)\n\tassert.False(t, r.IsValid())\n\n\t// Validating incorrect json.Number data\n\tspp = spec.Float64Property()\n\ts = NewSchemaValidator(spp, nil, \"\", strfmt.Default)\n\tj = json.Number(\"AXF\")\n\tr = s.Validate(j)\n\tassert.False(t, r.IsValid())\n}\n\nfunc TestNumericFormatEnforcement(t *testing.T) {\n\ttests := []struct {\n\t\tname          string\n\t\tschema        *spec.Schema\n\t\tvalue         interface{}\n\t\texpectSuccess bool\n\t}{\n\t\t// Integer int32 tests\n\t\t{\n\t\t\tname: \"int32 valid value\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         int64(123),\n\t\t\texpectSuccess: true,\n\t\t},\n\t\t{\n\t\t\tname: \"int32 overflow value\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         int64(2147483648), // MaxInt32 + 1\n\t\t\texpectSuccess: false,\n\t\t},\n\t\t{\n\t\t\tname: \"int32 boundary max value\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         int64(2147483647), // MaxInt32\n\t\t\texpectSuccess: true,\n\t\t},\n\t\t{\n\t\t\tname: \"int32 boundary min value\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         int64(-2147483648), // MinInt32\n\t\t\texpectSuccess: true,\n\t\t},\n\t\t{\n\t\t\tname: \"int32 underflow value\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         int64(-2147483649), // MinInt32 - 1\n\t\t\texpectSuccess: false,\n\t\t},\n\n\t\t// Integer int64 tests\n\t\t{\n\t\t\tname: \"int64 valid value\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\tFormat: \"int64\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         int64(9223372036854775807), // MaxInt64\n\t\t\texpectSuccess: true,\n\t\t},\n\n\t\t// Number float (float32) tests\n\t\t{\n\t\t\tname: \"float32 valid value\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"number\"},\n\t\t\t\t\tFormat: \"float\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         float64(1.23),\n\t\t\texpectSuccess: true,\n\t\t},\n\t\t{\n\t\t\tname: \"float32 overflow value\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"number\"},\n\t\t\t\t\tFormat: \"float\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         float64(math.MaxFloat32) * 1.1,\n\t\t\texpectSuccess: false,\n\t\t},\n\n\t\t// Number double (float64) tests\n\t\t{\n\t\t\tname: \"double valid value\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"number\"},\n\t\t\t\t\tFormat: \"double\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         float64(1.23),\n\t\t\texpectSuccess: true,\n\t\t},\n\t\t{\n\t\t\tname: \"double max value\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"number\"},\n\t\t\t\t\tFormat: \"double\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         math.MaxFloat64,\n\t\t\texpectSuccess: true,\n\t\t},\n\n\t\t// Mismatched format tests (format should be ignored)\n\t\t{\n\t\t\tname: \"number type with int32 format (format ignored)\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"number\"},\n\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         float64(math.MaxInt32) + 1.0, // Should be valid as a number, ignoring int32 limit\n\t\t\texpectSuccess: true,\n\t\t},\n\t\t{\n\t\t\tname: \"integer type with float format (format ignored)\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\tFormat: \"float\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         int64(math.MaxInt32) * 2, // Should be valid as integer (int64), ignoring float limit/check\n\t\t\texpectSuccess: true,\n\t\t},\n\t\t{\n\t\t\tname: \"multiple types with int32 format (format ignored)\",\n\t\t\tschema: &spec.Schema{\n\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\tType:   []string{\"integer\", \"string\"},\n\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tvalue:         int64(math.MaxInt32) + 1, // Should be valid as integer (int64), ignoring int32 limit due to ambiguity\n\t\t\texpectSuccess: true,\n\t\t},\n\t}\n\n\tfor _, tc := range tests {\n\t\tt.Run(tc.name, func(t *testing.T) {\n\t\t\tvalidator := NewSchemaValidator(tc.schema, nil, \"\", strfmt.Default)\n\t\t\tres := validator.Validate(tc.value)\n\t\t\tif tc.expectSuccess {\n\t\t\t\tassert.Empty(t, res.Errors, \"Expected success for %s\", tc.name)\n\t\t\t} else {\n\t\t\t\tassert.NotEmpty(t, res.Errors, \"Expected error for %s\", tc.name)\n\t\t\t}\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/validate/slice_validator.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\ntype schemaSliceValidator struct {\n\tPath            string\n\tIn              string\n\tMaxItems        *int64\n\tMinItems        *int64\n\tUniqueItems     bool\n\tAdditionalItems *spec.SchemaOrBool\n\tItems           *spec.SchemaOrArray\n\tRoot            interface{}\n\tKnownFormats    strfmt.Registry\n\tOptions         SchemaValidatorOptions\n}\n\nfunc (s *schemaSliceValidator) SetPath(path string) {\n\ts.Path = path\n}\n\nfunc (s *schemaSliceValidator) Applies(source interface{}, kind reflect.Kind) bool {\n\t_, ok := source.(*spec.Schema)\n\tr := ok && kind == reflect.Slice\n\treturn r\n}\n\nfunc (s *schemaSliceValidator) Validate(data interface{}) *Result {\n\tresult := new(Result)\n\tif data == nil {\n\t\treturn result\n\t}\n\tval := reflect.ValueOf(data)\n\tsize := val.Len()\n\n\tif s.Items != nil && s.Items.Schema != nil {\n\t\tfor i := 0; i < size; i++ {\n\t\t\tvalidator := s.Options.NewValidatorForIndex(i, s.Items.Schema, s.Root, fmt.Sprintf(\"%s[%d]\", s.Path, i), s.KnownFormats, s.Options.Options()...)\n\t\t\tvalue := val.Index(i)\n\t\t\tresult.Merge(validator.Validate(value.Interface()))\n\t\t}\n\t}\n\n\titemsSize := 0\n\tif s.Items != nil && len(s.Items.Schemas) > 0 {\n\t\titemsSize = len(s.Items.Schemas)\n\t\tfor i := 0; i < itemsSize; i++ {\n\t\t\tvalidator := s.Options.NewValidatorForIndex(i, &s.Items.Schemas[i], s.Root, fmt.Sprintf(\"%s[%d]\", s.Path, i), s.KnownFormats, s.Options.Options()...)\n\t\t\tif val.Len() <= i {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tresult.Merge(validator.Validate(val.Index(i).Interface()))\n\t\t}\n\t}\n\tif s.AdditionalItems != nil && itemsSize < size {\n\t\tif s.Items != nil && len(s.Items.Schemas) > 0 && !s.AdditionalItems.Allows {\n\t\t\tresult.AddErrors(arrayDoesNotAllowAdditionalItemsMsg())\n\t\t}\n\t\tif s.AdditionalItems.Schema != nil {\n\t\t\tfor i := itemsSize; i < size-itemsSize+1; i++ {\n\t\t\t\tvalidator := s.Options.NewValidatorForIndex(i, s.AdditionalItems.Schema, s.Root, fmt.Sprintf(\"%s[%d]\", s.Path, i), s.KnownFormats, s.Options.Options()...)\n\t\t\t\tresult.Merge(validator.Validate(val.Index(i).Interface()))\n\t\t\t}\n\t\t}\n\t}\n\n\tif s.MinItems != nil {\n\t\tif err := MinItems(s.Path, s.In, int64(size), *s.MinItems); err != nil {\n\t\t\tresult.AddErrors(err)\n\t\t}\n\t}\n\tif s.MaxItems != nil {\n\t\tif err := MaxItems(s.Path, s.In, int64(size), *s.MaxItems); err != nil {\n\t\t\tresult.AddErrors(err)\n\t\t}\n\t}\n\tif s.UniqueItems {\n\t\tif err := UniqueItems(s.Path, s.In, val.Interface()); err != nil {\n\t\t\tresult.AddErrors(err)\n\t\t}\n\t}\n\tresult.Inc()\n\treturn result\n}\n"
  },
  {
    "path": "pkg/validation/validate/slice_validator_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\n// Test edge cases in slice_validator which are difficult\n// to simulate with specs\n// (this one is a trivial, just to check all methods are filled)\nfunc TestSliceValidator_EdgeCases(t *testing.T) {\n\ts := schemaSliceValidator{}\n\ts.SetPath(\"path\")\n\tassert.Equal(t, \"path\", s.Path)\n\n\tr := s.Validate(nil)\n\tassert.NotNil(t, r)\n\tassert.True(t, r.IsValid())\n}\n"
  },
  {
    "path": "pkg/validation/validate/type.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"reflect\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/validation/errors\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\ntype typeValidator struct {\n\tType     spec.StringOrArray\n\tNullable bool\n\tFormat   string\n\tIn       string\n\tPath     string\n}\n\nfunc (t *typeValidator) schemaInfoForType(data interface{}) (string, string) {\n\t// internal type to JSON type with swagger 2.0 format (with go-openapi/strfmt extensions),\n\t// see https://github.com/go-openapi/strfmt/blob/master/README.md\n\t// TODO: this switch really is some sort of reverse lookup for formats. It should be provided by strfmt.\n\tswitch data.(type) {\n\tcase []byte, strfmt.Base64, *strfmt.Base64:\n\t\treturn stringType, stringFormatByte\n\tcase strfmt.CreditCard, *strfmt.CreditCard:\n\t\treturn stringType, stringFormatCreditCard\n\tcase strfmt.Date, *strfmt.Date:\n\t\treturn stringType, stringFormatDate\n\tcase strfmt.DateTime, *strfmt.DateTime:\n\t\treturn stringType, stringFormatDateTime\n\tcase strfmt.Duration, *strfmt.Duration:\n\t\treturn stringType, stringFormatDuration\n\tcase strfmt.Email, *strfmt.Email:\n\t\treturn stringType, stringFormatEmail\n\tcase strfmt.HexColor, *strfmt.HexColor:\n\t\treturn stringType, stringFormatHexColor\n\tcase strfmt.Hostname, *strfmt.Hostname:\n\t\treturn stringType, stringFormatHostname\n\tcase strfmt.IPv4, *strfmt.IPv4:\n\t\treturn stringType, stringFormatIPv4\n\tcase strfmt.IPv6, *strfmt.IPv6:\n\t\treturn stringType, stringFormatIPv6\n\tcase strfmt.ISBN, *strfmt.ISBN:\n\t\treturn stringType, stringFormatISBN\n\tcase strfmt.ISBN10, *strfmt.ISBN10:\n\t\treturn stringType, stringFormatISBN10\n\tcase strfmt.ISBN13, *strfmt.ISBN13:\n\t\treturn stringType, stringFormatISBN13\n\tcase strfmt.MAC, *strfmt.MAC:\n\t\treturn stringType, stringFormatMAC\n\tcase strfmt.Password, *strfmt.Password:\n\t\treturn stringType, stringFormatPassword\n\tcase strfmt.RGBColor, *strfmt.RGBColor:\n\t\treturn stringType, stringFormatRGBColor\n\tcase strfmt.SSN, *strfmt.SSN:\n\t\treturn stringType, stringFormatSSN\n\tcase strfmt.URI, *strfmt.URI:\n\t\treturn stringType, stringFormatURI\n\tcase strfmt.UUID, *strfmt.UUID:\n\t\treturn stringType, stringFormatUUID\n\tcase strfmt.UUID3, *strfmt.UUID3:\n\t\treturn stringType, stringFormatUUID3\n\tcase strfmt.UUID4, *strfmt.UUID4:\n\t\treturn stringType, stringFormatUUID4\n\tcase strfmt.UUID5, *strfmt.UUID5:\n\t\treturn stringType, stringFormatUUID5\n\t// TODO: missing binary (io.ReadCloser)\n\t// TODO: missing json.Number\n\tdefault:\n\t\tval := reflect.ValueOf(data)\n\t\ttpe := val.Type()\n\t\tswitch tpe.Kind() {\n\t\tcase reflect.Bool:\n\t\t\treturn booleanType, \"\"\n\t\tcase reflect.String:\n\t\t\treturn stringType, \"\"\n\t\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Uint8, reflect.Uint16, reflect.Uint32:\n\t\t\t// NOTE: that is the spec. With go-openapi, is that not uint32 for unsigned integers?\n\t\t\treturn integerType, integerFormatInt32\n\t\tcase reflect.Int, reflect.Int64, reflect.Uint, reflect.Uint64:\n\t\t\treturn integerType, integerFormatInt64\n\t\tcase reflect.Float32:\n\t\t\t// NOTE: is that not numberFormatFloat?\n\t\t\treturn numberType, numberFormatFloat32\n\t\tcase reflect.Float64:\n\t\t\t// NOTE: is that not \"double\"?\n\t\t\treturn numberType, numberFormatFloat64\n\t\t// NOTE: go arrays (reflect.Array) are not supported (fixed length)\n\t\tcase reflect.Slice:\n\t\t\treturn arrayType, \"\"\n\t\tcase reflect.Map, reflect.Struct:\n\t\t\treturn objectType, \"\"\n\t\tcase reflect.Interface:\n\t\t\t// What to do here?\n\t\t\tpanic(\"dunno what to do here\")\n\t\tcase reflect.Ptr:\n\t\t\treturn t.schemaInfoForType(reflect.Indirect(val).Interface())\n\t\t}\n\t}\n\treturn \"\", \"\"\n}\n\nfunc (t *typeValidator) SetPath(path string) {\n\tt.Path = path\n}\n\nfunc (t *typeValidator) Applies(source interface{}, kind reflect.Kind) bool {\n\t// typeValidator applies to Schema, Parameter and Header objects\n\tstpe := reflect.TypeOf(source)\n\tr := (len(t.Type) > 0 || t.Format != \"\") && stpe == specSchemaType\n\tdebugLog(\"type validator for %q applies %t for %T (kind: %v)\\n\", t.Path, r, source, kind)\n\treturn r\n}\n\nfunc (t *typeValidator) Validate(data interface{}) *Result {\n\tresult := new(Result)\n\tresult.Inc()\n\tif data == nil {\n\t\t// nil or zero value for the passed structure require Type: null\n\t\tif len(t.Type) > 0 && !t.Type.Contains(nullType) && !t.Nullable { // TODO: if a property is not required it also passes this\n\t\t\treturn errorHelp.sErr(errors.InvalidType(t.Path, t.In, strings.Join(t.Type, \",\"), nullType))\n\t\t}\n\t\treturn result\n\t}\n\n\t// check if the type matches, should be used in every validator chain as first item\n\tval := reflect.Indirect(reflect.ValueOf(data))\n\tkind := val.Kind()\n\n\t// infer schema type (JSON) and format from passed data type\n\tschType, format := t.schemaInfoForType(data)\n\n\tdebugLog(\"path: %s, schType: %s,  format: %s, expType: %s, expFmt: %s, kind: %s\", t.Path, schType, format, t.Type, t.Format, val.Kind().String())\n\n\t// check numerical types\n\t// TODO: check unsigned ints\n\t// TODO: check json.Number (see schema.go)\n\tisLowerInt := t.Format == integerFormatInt64 && format == integerFormatInt32\n\tisLowerFloat := t.Format == numberFormatFloat64 && format == numberFormatFloat32\n\tisFloatInt := schType == numberType && swag.IsFloat64AJSONInteger(val.Float()) && t.Type.Contains(integerType)\n\tisIntFloat := schType == integerType && t.Type.Contains(numberType)\n\n\tif kind != reflect.String && kind != reflect.Slice && t.Format != \"\" && !(t.Type.Contains(schType) || format == t.Format || isFloatInt || isIntFloat || isLowerInt || isLowerFloat) {\n\t\t// TODO: test case\n\t\treturn errorHelp.sErr(errors.InvalidType(t.Path, t.In, t.Format, format))\n\t}\n\n\tif !(t.Type.Contains(numberType) || t.Type.Contains(integerType)) && t.Format != \"\" && (kind == reflect.String || kind == reflect.Slice) {\n\t\treturn result\n\t}\n\n\tif !(t.Type.Contains(schType) || isFloatInt || isIntFloat) {\n\t\treturn errorHelp.sErr(errors.InvalidType(t.Path, t.In, strings.Join(t.Type, \",\"), schType))\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "pkg/validation/validate/type_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\ntype expectedJSONType struct {\n\tvalue                 interface{}\n\texpectedJSONType      string\n\texpectedSwaggerFormat string\n}\n\nfunc TestType_schemaInfoForType(t *testing.T) {\n\ttestTypes := []expectedJSONType{\n\t\t{\n\t\t\tvalue:                 []byte(\"abc\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"byte\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.Date(time.Date(2014, 10, 10, 0, 0, 0, 0, time.UTC)),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"date\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.NewDateTime(),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"date-time\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.URI(\"http://thisisleadingusnowhere.com\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"uri\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.Email(\"fred@esasymoney.com\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"email\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.Hostname(\"www.github.com\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"hostname\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.Password(\"secret\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"password\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.IPv4(\"192.168.224.1\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"ipv4\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.IPv6(\"::1\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"ipv6\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.MAC(\"01:02:03:04:05:06\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"mac\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.UUID(\"a8098c1a-f86e-11da-bd1a-00112444be1e\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"uuid\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.UUID3(\"bcd02e22-68f0-3046-a512-327cca9def8f\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"uuid3\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.UUID4(\"025b0d74-00a2-4048-bf57-227c5111bb34\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"uuid4\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.UUID5(\"886313e1-3b8a-5372-9b90-0c9aee199e5d\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"uuid5\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.ISBN(\"0321751043\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"isbn\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.ISBN10(\"0321751043\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"isbn10\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.ISBN13(\"978-0321751041\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"isbn13\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.CreditCard(\"4111-1111-1111-1111\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"creditcard\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.SSN(\"111-11-1111\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"ssn\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.HexColor(\"#FFFFFF\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"hexcolor\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.RGBColor(\"rgb(255,255,255)\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"rgbcolor\",\n\t\t},\n\t\t// Numerical values\n\t\t{\n\t\t\tvalue:                 true,\n\t\t\texpectedJSONType:      \"boolean\",\n\t\t\texpectedSwaggerFormat: \"\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 int8(12),\n\t\t\texpectedJSONType:      \"integer\",\n\t\t\texpectedSwaggerFormat: \"int32\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 uint8(12),\n\t\t\texpectedJSONType:      \"integer\",\n\t\t\texpectedSwaggerFormat: \"int32\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 int16(12),\n\t\t\texpectedJSONType:      \"integer\",\n\t\t\texpectedSwaggerFormat: \"int32\",\n\t\t},\n\t\t{\n\t\t\tvalue:            uint16(12),\n\t\t\texpectedJSONType: \"integer\",\n\t\t\t// TODO: should be uint32\n\t\t\texpectedSwaggerFormat: \"int32\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 int32(12),\n\t\t\texpectedJSONType:      \"integer\",\n\t\t\texpectedSwaggerFormat: \"int32\",\n\t\t},\n\t\t{\n\t\t\tvalue:            uint32(12),\n\t\t\texpectedJSONType: \"integer\",\n\t\t\t// TODO: should be uint32\n\t\t\texpectedSwaggerFormat: \"int32\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 int(12),\n\t\t\texpectedJSONType:      \"integer\",\n\t\t\texpectedSwaggerFormat: \"int64\",\n\t\t},\n\t\t{\n\t\t\tvalue:            uint(12),\n\t\t\texpectedJSONType: \"integer\",\n\t\t\t// TODO: should be uint64\n\t\t\texpectedSwaggerFormat: \"int64\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 int64(12),\n\t\t\texpectedJSONType:      \"integer\",\n\t\t\texpectedSwaggerFormat: \"int64\",\n\t\t},\n\t\t{\n\t\t\tvalue:            uint64(12),\n\t\t\texpectedJSONType: \"integer\",\n\t\t\t// TODO: should be uint64\n\t\t\texpectedSwaggerFormat: \"int64\",\n\t\t},\n\t\t{\n\t\t\tvalue:            float32(12),\n\t\t\texpectedJSONType: \"number\",\n\t\t\t// TODO: should be float\n\t\t\texpectedSwaggerFormat: \"float32\",\n\t\t},\n\t\t{\n\t\t\tvalue:            float64(12),\n\t\t\texpectedJSONType: \"number\",\n\t\t\t// TODO: should be double\n\t\t\texpectedSwaggerFormat: \"float64\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 []string{},\n\t\t\texpectedJSONType:      \"array\",\n\t\t\texpectedSwaggerFormat: \"\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 expectedJSONType{},\n\t\t\texpectedJSONType:      \"object\",\n\t\t\texpectedSwaggerFormat: \"\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 map[string]bool{\"key\": false},\n\t\t\texpectedJSONType:      \"object\",\n\t\t\texpectedSwaggerFormat: \"\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 \"simply a string\",\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"\",\n\t\t},\n\t\t{\n\t\t\t// NOTE: Go array returns no JSON type\n\t\t\tvalue:                 [4]int{1, 2, 4, 4},\n\t\t\texpectedJSONType:      \"\",\n\t\t\texpectedSwaggerFormat: \"\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.Base64(\"ZWxpemFiZXRocG9zZXk=\"),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"byte\",\n\t\t},\n\t\t{\n\t\t\tvalue:                 strfmt.Duration(0),\n\t\t\texpectedJSONType:      stringType,\n\t\t\texpectedSwaggerFormat: \"duration\",\n\t\t},\n\t\t/*\n\t\t\tTest case for : case reflect.Interface:\n\t\t\t\t// What to do here?\n\t\t\t\tpanic(\"dunno what to do here\")\n\t\t*/\n\t}\n\n\tv := &typeValidator{}\n\tfor _, x := range testTypes {\n\t\tjsonType, swaggerFormat := v.schemaInfoForType(x.value)\n\t\tassert.Equal(t, x.expectedJSONType, jsonType)\n\t\tassert.Equal(t, x.expectedSwaggerFormat, swaggerFormat)\n\n\t\tjsonType, swaggerFormat = v.schemaInfoForType(&x.value)\n\t\tassert.Equal(t, x.expectedJSONType, jsonType)\n\t\tassert.Equal(t, x.expectedSwaggerFormat, swaggerFormat)\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/validate/validator.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"reflect\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/errors\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// ValueValidator validates the values it applies to.\ntype ValueValidator interface {\n\t// SetPath sets the exact path of the validator prior to calling Validate.\n\t// The exact path contains the map keys and array indices to locate the\n\t// value to be validated from the root data element.\n\tSetPath(path string)\n\t// Applies returns true if the validator applies to the valueKind\n\t// from source. Validate will be called if and only if Applies returns true.\n\tApplies(source interface{}, valueKind reflect.Kind) bool\n\t// Validate validates the value.\n\tValidate(value interface{}) *Result\n}\n\ntype basicCommonValidator struct {\n\tPath    string\n\tIn      string\n\tDefault interface{}\n\tEnum    []interface{}\n}\n\nfunc (b *basicCommonValidator) SetPath(path string) {\n\tb.Path = path\n}\n\nfunc (b *basicCommonValidator) Applies(source interface{}, kind reflect.Kind) bool {\n\tswitch source.(type) {\n\tcase *spec.Schema:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (b *basicCommonValidator) Validate(data interface{}) (res *Result) {\n\tif len(b.Enum) > 0 {\n\t\tfor _, enumValue := range b.Enum {\n\t\t\tactualType := reflect.TypeOf(enumValue)\n\t\t\tif actualType != nil { // Safeguard\n\t\t\t\texpectedValue := reflect.ValueOf(data)\n\t\t\t\tif expectedValue.IsValid() && expectedValue.Type().ConvertibleTo(actualType) {\n\t\t\t\t\tif reflect.DeepEqual(expectedValue.Convert(actualType).Interface(), enumValue) {\n\t\t\t\t\t\treturn nil\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn errorHelp.sErr(errors.EnumFail(b.Path, b.In, data, b.Enum))\n\t}\n\treturn nil\n}\n\n// numberValidator validates numeric values against constraints and standard formats.\n//\n// It is responsible for checking:\n//   - MultipleOf: The value must be a multiple of the given factor.\n//   - Maximum/ExclusiveMaximum: The value must be less than or equal to (or strictly less than) the maximum.\n//   - Minimum/ExclusiveMinimum: The value must be greater than or equal to (or strictly greater than) the minimum.\n//   - Numeric Format Enforcement:\n//   - int32 and float (float32): The validator verifies that the value fits within the\n//     range of the specified type. If a value overflows (e.g., an int64 provided for an\n//     int32 field), a validation error is returned.\n//   - double (float64): Values exceeding the maximum representable float64 (e.g., 1e500)\n//     fail during the initial parsing phase with an \"invalid type conversion\" error,\n//     before this validator is reached.\ntype numberValidator struct {\n\tPath             string\n\tIn               string\n\tDefault          interface{}\n\tMultipleOf       *float64\n\tMaximum          *float64\n\tExclusiveMaximum bool\n\tMinimum          *float64\n\tExclusiveMinimum bool\n\t// Allows for more accurate behavior regarding integers\n\tType   string\n\tFormat string\n}\n\nfunc (n *numberValidator) SetPath(path string) {\n\tn.Path = path\n}\n\nfunc (n *numberValidator) Applies(source interface{}, kind reflect.Kind) bool {\n\tswitch source.(type) {\n\tcase *spec.Schema:\n\t\tisInt := kind >= reflect.Int && kind <= reflect.Uint64\n\t\tisFloat := kind == reflect.Float32 || kind == reflect.Float64\n\t\tr := isInt || isFloat\n\t\tdebugLog(\"schema props validator for %q applies %t for %T (kind: %v) isInt=%t, isFloat=%t\\n\", n.Path, r, source, kind, isInt, isFloat)\n\t\treturn r\n\t}\n\tdebugLog(\"schema props validator for %q applies %t for %T (kind: %v)\\n\", n.Path, false, source, kind)\n\treturn false\n}\n\n// Validate provides a validator for generic JSON numbers,\n//\n// By default, numbers are internally represented as float64.\n// Formats float, or float32 may alter this behavior by mapping to float32.\n// A special validation process is followed for integers, with optional \"format\":\n// this is an attempt to provide a validation with native types.\n//\n// NOTE: since the constraint specified (boundary, multipleOf) is unmarshalled\n// as float64, loss of information remains possible (e.g. on very large integers).\n//\n// Since this value directly comes from the unmarshalling, it is not possible\n// at this stage of processing to check further and guarantee the correctness of such values.\n//\n// Normally, the JSON Number.MAX_SAFE_INTEGER (resp. Number.MIN_SAFE_INTEGER)\n// would check we do not get such a loss.\n//\n// If this is the case, replace AddErrors() by AddWarnings() and IsValid() by !HasWarnings().\n//\n// TODO: consider replacing boundary check errors by simple warnings.\n//\n// TODO: default boundaries with MAX_SAFE_INTEGER are not checked (specific to json.Number?)\nfunc (n *numberValidator) Validate(val interface{}) *Result {\n\tres := new(Result)\n\n\tresMultiple := new(Result)\n\tresMinimum := new(Result)\n\tresMaximum := new(Result)\n\n\t// Used only to attempt to validate constraint on value,\n\t// even though value or constraint specified do not match type and format\n\tdata := valueHelp.asFloat64(val)\n\n\t// Is the provided value within the range of the specified numeric type and format?\n\tres.AddErrors(IsValueValidAgainstRange(val, n.Type, n.Format, \"Checked\", n.Path))\n\n\t// nolint: dupl\n\tif n.MultipleOf != nil {\n\t\t// Is the constraint specifier within the range of the specific numeric type and format?\n\t\tresMultiple.AddErrors(IsValueValidAgainstRange(*n.MultipleOf, n.Type, n.Format, \"MultipleOf\", n.Path))\n\t\tif resMultiple.IsValid() {\n\t\t\t// Constraint validated with compatible types\n\t\t\tif err := MultipleOfNativeType(n.Path, n.In, val, *n.MultipleOf); err != nil {\n\t\t\t\tresMultiple.Merge(errorHelp.sErr(err))\n\t\t\t}\n\t\t} else {\n\t\t\t// Constraint nevertheless validated, converted as general number\n\t\t\tif err := MultipleOf(n.Path, n.In, data, *n.MultipleOf); err != nil {\n\t\t\t\tresMultiple.Merge(errorHelp.sErr(err))\n\t\t\t}\n\t\t}\n\t}\n\n\t// nolint: dupl\n\tif n.Maximum != nil {\n\t\t// Is the constraint specifier within the range of the specific numeric type and format?\n\t\tresMaximum.AddErrors(IsValueValidAgainstRange(*n.Maximum, n.Type, n.Format, \"Maximum boundary\", n.Path))\n\t\tif resMaximum.IsValid() {\n\t\t\t// Constraint validated with compatible types\n\t\t\tif err := MaximumNativeType(n.Path, n.In, val, *n.Maximum, n.ExclusiveMaximum); err != nil {\n\t\t\t\tresMaximum.Merge(errorHelp.sErr(err))\n\t\t\t}\n\t\t} else {\n\t\t\t// Constraint nevertheless validated, converted as general number\n\t\t\tif err := Maximum(n.Path, n.In, data, *n.Maximum, n.ExclusiveMaximum); err != nil {\n\t\t\t\tresMaximum.Merge(errorHelp.sErr(err))\n\t\t\t}\n\t\t}\n\t}\n\n\t// nolint: dupl\n\tif n.Minimum != nil {\n\t\t// Is the constraint specifier within the range of the specific numeric type and format?\n\t\tresMinimum.AddErrors(IsValueValidAgainstRange(*n.Minimum, n.Type, n.Format, \"Minimum boundary\", n.Path))\n\t\tif resMinimum.IsValid() {\n\t\t\t// Constraint validated with compatible types\n\t\t\tif err := MinimumNativeType(n.Path, n.In, val, *n.Minimum, n.ExclusiveMinimum); err != nil {\n\t\t\t\tresMinimum.Merge(errorHelp.sErr(err))\n\t\t\t}\n\t\t} else {\n\t\t\t// Constraint nevertheless validated, converted as general number\n\t\t\tif err := Minimum(n.Path, n.In, data, *n.Minimum, n.ExclusiveMinimum); err != nil {\n\t\t\t\tresMinimum.Merge(errorHelp.sErr(err))\n\t\t\t}\n\t\t}\n\t}\n\tres.Merge(resMultiple, resMinimum, resMaximum)\n\tres.Inc()\n\treturn res\n}\n\ntype stringValidator struct {\n\tMaxLength *int64\n\tMinLength *int64\n\tPattern   string\n\tPath      string\n\tIn        string\n}\n\nfunc (s *stringValidator) SetPath(path string) {\n\ts.Path = path\n}\n\nfunc (s *stringValidator) Applies(source interface{}, kind reflect.Kind) bool {\n\tswitch source.(type) {\n\tcase *spec.Schema:\n\t\tr := kind == reflect.String\n\t\tdebugLog(\"string validator for %q applies %t for %T (kind: %v)\\n\", s.Path, r, source, kind)\n\t\treturn r\n\t}\n\tdebugLog(\"string validator for %q applies %t for %T (kind: %v)\\n\", s.Path, false, source, kind)\n\treturn false\n}\n\nfunc (s *stringValidator) Validate(val interface{}) *Result {\n\tdata, ok := val.(string)\n\tif !ok {\n\t\treturn errorHelp.sErr(errors.InvalidType(s.Path, s.In, stringType, val))\n\t}\n\n\tif s.MaxLength != nil {\n\t\tif err := MaxLength(s.Path, s.In, data, *s.MaxLength); err != nil {\n\t\t\treturn errorHelp.sErr(err)\n\t\t}\n\t}\n\n\tif s.MinLength != nil {\n\t\tif err := MinLength(s.Path, s.In, data, *s.MinLength); err != nil {\n\t\t\treturn errorHelp.sErr(err)\n\t\t}\n\t}\n\n\tif s.Pattern != \"\" {\n\t\tif err := Pattern(s.Path, s.In, data, s.Pattern); err != nil {\n\t\t\treturn errorHelp.sErr(err)\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/validation/validate/validator_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"math\"\n\t\"reflect\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc TestNumberValidator_EdgeCases(t *testing.T) {\n\t// Apply\n\tvar min = float64(math.MinInt32 - 1)\n\tvar max = float64(math.MaxInt32 + 1)\n\n\tv := numberValidator{\n\t\tPath: \"path\",\n\t\tIn:   \"in\",\n\t\t//Default:\n\t\t//MultipleOf:\n\t\tMaximum:          &max, // *float64\n\t\tExclusiveMaximum: false,\n\t\tMinimum:          &min, // *float64\n\t\tExclusiveMinimum: false,\n\t\t// Allows for more accurate behavior regarding integers\n\t\tType:   \"integer\",\n\t\tFormat: \"int32\",\n\t}\n\n\t// numberValidator applies to: Parameter,Schema,Items,Header\n\n\tsources := []interface{}{\n\t\tnew(spec.Schema),\n\t}\n\n\ttestNumberApply(t, &v, sources)\n\n\tassert.False(t, v.Applies(float64(32), reflect.Float64))\n\n\t// Now for different scenarios on Minimum, Maximum\n\t// - The Maximum value does not respect the Type|Format specification\n\t// - Value is checked as float64 with Maximum as float64 and fails\n\tres := v.Validate(int64(math.MaxInt32 + 2))\n\tassert.True(t, res.HasErrors())\n\t// - The Minimum value does not respect the Type|Format specification\n\t// - Value is checked as float64 with Maximum as float64 and fails\n\tres = v.Validate(int64(math.MinInt32 - 2))\n\tassert.True(t, res.HasErrors())\n}\n\nfunc testNumberApply(t *testing.T, v *numberValidator, sources []interface{}) {\n\tfor _, source := range sources {\n\t\t// numberValidator does not applies to:\n\t\tassert.False(t, v.Applies(source, reflect.String))\n\t\tassert.False(t, v.Applies(source, reflect.Struct))\n\t\t// numberValidator applies to:\n\t\tassert.True(t, v.Applies(source, reflect.Int))\n\t\tassert.True(t, v.Applies(source, reflect.Int8))\n\t\tassert.True(t, v.Applies(source, reflect.Uint16))\n\t\tassert.True(t, v.Applies(source, reflect.Uint32))\n\t\tassert.True(t, v.Applies(source, reflect.Uint64))\n\t\tassert.True(t, v.Applies(source, reflect.Uint))\n\t\tassert.True(t, v.Applies(source, reflect.Uint8))\n\t\tassert.True(t, v.Applies(source, reflect.Uint16))\n\t\tassert.True(t, v.Applies(source, reflect.Uint32))\n\t\tassert.True(t, v.Applies(source, reflect.Uint64))\n\t\tassert.True(t, v.Applies(source, reflect.Float32))\n\t\tassert.True(t, v.Applies(source, reflect.Float64))\n\t}\n}\n\nfunc TestStringValidator_EdgeCases(t *testing.T) {\n\t// Apply\n\n\tv := stringValidator{}\n\n\t// stringValidator applies to: Parameter,Schema,Items,Header\n\n\tsources := []interface{}{\n\t\tnew(spec.Schema),\n\t}\n\n\ttestStringApply(t, &v, sources)\n\n\tassert.False(t, v.Applies(\"A string\", reflect.String))\n\n}\n\nfunc testStringApply(t *testing.T, v *stringValidator, sources []interface{}) {\n\tfor _, source := range sources {\n\t\t// numberValidator does not applies to:\n\t\tassert.False(t, v.Applies(source, reflect.Struct))\n\t\tassert.False(t, v.Applies(source, reflect.Int))\n\t\t// numberValidator applies to:\n\t\tassert.True(t, v.Applies(source, reflect.String))\n\t}\n}\n\nfunc TestBasicCommonValidator_EdgeCases(t *testing.T) {\n\t// Apply\n\n\tv := basicCommonValidator{}\n\n\t// basicCommonValidator applies to: Parameter,Schema,Header\n\n\tsources := []interface{}{\n\t\tnew(spec.Schema),\n\t}\n\n\ttestCommonApply(t, &v, sources)\n\n\tassert.False(t, v.Applies(\"A string\", reflect.String))\n\n}\n\nfunc testCommonApply(t *testing.T, v *basicCommonValidator, sources []interface{}) {\n\tfor _, source := range sources {\n\t\tassert.True(t, v.Applies(source, reflect.String))\n\t}\n}\n"
  },
  {
    "path": "pkg/validation/validate/values.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"unicode/utf8\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/validation/errors\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\n// Enum validates if the data is a member of the enum\nfunc Enum(path, in string, data interface{}, enum interface{}) *errors.Validation {\n\tval := reflect.ValueOf(enum)\n\tif val.Kind() != reflect.Slice {\n\t\treturn nil\n\t}\n\n\tvar values []interface{}\n\tfor i := 0; i < val.Len(); i++ {\n\t\tele := val.Index(i)\n\t\tenumValue := ele.Interface()\n\t\tif data != nil {\n\t\t\tif reflect.DeepEqual(data, enumValue) {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tactualType := reflect.TypeOf(enumValue)\n\t\t\tif actualType == nil { // Safeguard. Frankly, I don't know how we may get a nil\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\texpectedValue := reflect.ValueOf(data)\n\t\t\tif expectedValue.IsValid() && expectedValue.Type().ConvertibleTo(actualType) {\n\t\t\t\t// Attempt comparison after type conversion\n\t\t\t\tif reflect.DeepEqual(expectedValue.Convert(actualType).Interface(), enumValue) {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tvalues = append(values, enumValue)\n\t}\n\treturn errors.EnumFail(path, in, data, values)\n}\n\n// MinItems validates that there are at least n items in a slice\nfunc MinItems(path, in string, size, min int64) *errors.Validation {\n\tif size < min {\n\t\treturn errors.TooFewItems(path, in, min, size)\n\t}\n\treturn nil\n}\n\n// MaxItems validates that there are at most n items in a slice\nfunc MaxItems(path, in string, size, max int64) *errors.Validation {\n\tif size > max {\n\t\treturn errors.TooManyItems(path, in, max, size)\n\t}\n\treturn nil\n}\n\n// UniqueItems validates that the provided slice has unique elements\nfunc UniqueItems(path, in string, data interface{}) *errors.Validation {\n\tval := reflect.ValueOf(data)\n\tif val.Kind() != reflect.Slice {\n\t\treturn nil\n\t}\n\tvar unique []interface{}\n\tfor i := 0; i < val.Len(); i++ {\n\t\tv := val.Index(i).Interface()\n\t\tfor _, u := range unique {\n\t\t\tif reflect.DeepEqual(v, u) {\n\t\t\t\treturn errors.DuplicateItems(path, in)\n\t\t\t}\n\t\t}\n\t\tunique = append(unique, v)\n\t}\n\treturn nil\n}\n\n// MinLength validates a string for minimum length\nfunc MinLength(path, in, data string, minLength int64) *errors.Validation {\n\tstrLen := int64(utf8.RuneCount([]byte(data)))\n\tif strLen < minLength {\n\t\treturn errors.TooShort(path, in, minLength, data)\n\t}\n\treturn nil\n}\n\n// MaxLength validates a string for maximum length\nfunc MaxLength(path, in, data string, maxLength int64) *errors.Validation {\n\tstrLen := int64(utf8.RuneCount([]byte(data)))\n\tif strLen > maxLength {\n\t\treturn errors.TooLong(path, in, maxLength, data)\n\t}\n\treturn nil\n}\n\n// Required validates an interface for requiredness\nfunc Required(path, in string, data interface{}) *errors.Validation {\n\tval := reflect.ValueOf(data)\n\tif val.IsValid() {\n\t\tif reflect.DeepEqual(reflect.Zero(val.Type()).Interface(), val.Interface()) {\n\t\t\treturn errors.Required(path, in)\n\t\t}\n\t\treturn nil\n\t}\n\treturn errors.Required(path, in)\n}\n\n// Pattern validates a string against a regular expression\nfunc Pattern(path, in, data, pattern string) *errors.Validation {\n\tre, err := compileRegexp(pattern)\n\tif err != nil {\n\t\treturn errors.FailedPattern(path, in, fmt.Sprintf(\"%s, but pattern is invalid: %s\", pattern, err.Error()), data)\n\t}\n\tif !re.MatchString(data) {\n\t\treturn errors.FailedPattern(path, in, pattern, data)\n\t}\n\treturn nil\n}\n\n// MaximumInt validates if a number is smaller than a given maximum\nfunc MaximumInt(path, in string, data, max int64, exclusive bool) *errors.Validation {\n\tif (!exclusive && data > max) || (exclusive && data >= max) {\n\t\treturn errors.ExceedsMaximumInt(path, in, max, exclusive, data)\n\t}\n\treturn nil\n}\n\n// MaximumUint validates if a number is smaller than a given maximum\nfunc MaximumUint(path, in string, data, max uint64, exclusive bool) *errors.Validation {\n\tif (!exclusive && data > max) || (exclusive && data >= max) {\n\t\treturn errors.ExceedsMaximumUint(path, in, max, exclusive, data)\n\t}\n\treturn nil\n}\n\n// Maximum validates if a number is smaller than a given maximum\nfunc Maximum(path, in string, data, max float64, exclusive bool) *errors.Validation {\n\tif (!exclusive && data > max) || (exclusive && data >= max) {\n\t\treturn errors.ExceedsMaximum(path, in, max, exclusive, data)\n\t}\n\treturn nil\n}\n\n// Minimum validates if a number is smaller than a given minimum\nfunc Minimum(path, in string, data, min float64, exclusive bool) *errors.Validation {\n\tif (!exclusive && data < min) || (exclusive && data <= min) {\n\t\treturn errors.ExceedsMinimum(path, in, min, exclusive, data)\n\t}\n\treturn nil\n}\n\n// MinimumInt validates if a number is smaller than a given minimum\nfunc MinimumInt(path, in string, data, min int64, exclusive bool) *errors.Validation {\n\tif (!exclusive && data < min) || (exclusive && data <= min) {\n\t\treturn errors.ExceedsMinimumInt(path, in, min, exclusive, data)\n\t}\n\treturn nil\n}\n\n// MinimumUint validates if a number is smaller than a given minimum\nfunc MinimumUint(path, in string, data, min uint64, exclusive bool) *errors.Validation {\n\tif (!exclusive && data < min) || (exclusive && data <= min) {\n\t\treturn errors.ExceedsMinimumUint(path, in, min, exclusive, data)\n\t}\n\treturn nil\n}\n\n// MultipleOf validates if the provided number is a multiple of the factor\nfunc MultipleOf(path, in string, data, factor float64) *errors.Validation {\n\t// multipleOf factor must be positive\n\tif factor <= 0 {\n\t\treturn errors.MultipleOfMustBePositive(path, in, factor)\n\t}\n\tvar mult float64\n\tif factor < 1 {\n\t\tmult = 1 / factor * data\n\t} else {\n\t\tmult = data / factor\n\t}\n\tif !swag.IsFloat64AJSONInteger(mult) {\n\t\treturn errors.NotMultipleOf(path, in, factor, data)\n\t}\n\treturn nil\n}\n\n// MultipleOfInt validates if the provided integer is a multiple of the factor\nfunc MultipleOfInt(path, in string, data int64, factor int64) *errors.Validation {\n\t// multipleOf factor must be positive\n\tif factor <= 0 {\n\t\treturn errors.MultipleOfMustBePositive(path, in, factor)\n\t}\n\tmult := data / factor\n\tif mult*factor != data {\n\t\treturn errors.NotMultipleOf(path, in, factor, data)\n\t}\n\treturn nil\n}\n\n// MultipleOfUint validates if the provided unsigned integer is a multiple of the factor\nfunc MultipleOfUint(path, in string, data, factor uint64) *errors.Validation {\n\t// multipleOf factor must be positive\n\tif factor == 0 {\n\t\treturn errors.MultipleOfMustBePositive(path, in, factor)\n\t}\n\tmult := data / factor\n\tif mult*factor != data {\n\t\treturn errors.NotMultipleOf(path, in, factor, data)\n\t}\n\treturn nil\n}\n\n// FormatOf validates if a string matches a format in the format registry\nfunc FormatOf(path, in, format, data string, registry strfmt.Registry) *errors.Validation {\n\tif registry == nil {\n\t\tregistry = strfmt.Default\n\t}\n\tif ok := registry.ContainsName(format); !ok {\n\t\treturn errors.InvalidTypeName(format)\n\t}\n\tif ok := registry.Validates(format, data); !ok {\n\t\treturn errors.InvalidType(path, in, format, data)\n\t}\n\treturn nil\n}\n\n// MaximumNativeType provides native type constraint validation as a facade\n// to various numeric types versions of Maximum constraint check.\n//\n// Assumes that any possible loss conversion during conversion has been\n// checked beforehand.\n//\n// NOTE: currently, the max value is marshalled as a float64, no matter what,\n// which means there may be a loss during conversions (e.g. for very large integers)\n//\n// TODO: Normally, a JSON MAX_SAFE_INTEGER check would ensure conversion remains loss-free\nfunc MaximumNativeType(path, in string, val interface{}, max float64, exclusive bool) *errors.Validation {\n\tkind := reflect.ValueOf(val).Type().Kind()\n\tswitch kind {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tvalue := valueHelp.asInt64(val)\n\t\treturn MaximumInt(path, in, value, int64(max), exclusive)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\tvalue := valueHelp.asUint64(val)\n\t\tif max < 0 {\n\t\t\treturn errors.ExceedsMaximum(path, in, max, exclusive, val)\n\t\t}\n\t\treturn MaximumUint(path, in, value, uint64(max), exclusive)\n\tcase reflect.Float32, reflect.Float64:\n\t\tfallthrough\n\tdefault:\n\t\tvalue := valueHelp.asFloat64(val)\n\t\treturn Maximum(path, in, value, max, exclusive)\n\t}\n}\n\n// MinimumNativeType provides native type constraint validation as a facade\n// to various numeric types versions of Minimum constraint check.\n//\n// Assumes that any possible loss conversion during conversion has been\n// checked beforehand.\n//\n// NOTE: currently, the min value is marshalled as a float64, no matter what,\n// which means there may be a loss during conversions (e.g. for very large integers)\n//\n// TODO: Normally, a JSON MAX_SAFE_INTEGER check would ensure conversion remains loss-free\nfunc MinimumNativeType(path, in string, val interface{}, min float64, exclusive bool) *errors.Validation {\n\tkind := reflect.ValueOf(val).Type().Kind()\n\tswitch kind {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tvalue := valueHelp.asInt64(val)\n\t\treturn MinimumInt(path, in, value, int64(min), exclusive)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\tvalue := valueHelp.asUint64(val)\n\t\tif min < 0 {\n\t\t\treturn nil\n\t\t}\n\t\treturn MinimumUint(path, in, value, uint64(min), exclusive)\n\tcase reflect.Float32, reflect.Float64:\n\t\tfallthrough\n\tdefault:\n\t\tvalue := valueHelp.asFloat64(val)\n\t\treturn Minimum(path, in, value, min, exclusive)\n\t}\n}\n\n// MultipleOfNativeType provides native type constraint validation as a facade\n// to various numeric types version of MultipleOf constraint check.\n//\n// Assumes that any possible loss conversion during conversion has been\n// checked beforehand.\n//\n// NOTE: currently, the multipleOf factor is marshalled as a float64, no matter what,\n// which means there may be a loss during conversions (e.g. for very large integers)\n//\n// TODO: Normally, a JSON MAX_SAFE_INTEGER check would ensure conversion remains loss-free\nfunc MultipleOfNativeType(path, in string, val interface{}, multipleOf float64) *errors.Validation {\n\tkind := reflect.ValueOf(val).Type().Kind()\n\tswitch kind {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tvalue := valueHelp.asInt64(val)\n\t\treturn MultipleOfInt(path, in, value, int64(multipleOf))\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\tvalue := valueHelp.asUint64(val)\n\t\treturn MultipleOfUint(path, in, value, uint64(multipleOf))\n\tcase reflect.Float32, reflect.Float64:\n\t\tfallthrough\n\tdefault:\n\t\tvalue := valueHelp.asFloat64(val)\n\t\treturn MultipleOf(path, in, value, multipleOf)\n\t}\n}\n\n// IsValueValidAgainstRange checks that a numeric value is compatible with\n// the range defined by Type and Format, that is, may be converted without loss.\n//\n// NOTE: this check is about type capacity and not formal verification such as: 1.0 != 1L\nfunc IsValueValidAgainstRange(val interface{}, typeName, format, prefix, path string) error {\n\tkind := reflect.ValueOf(val).Type().Kind()\n\n\t// What is the string representation of val\n\tstringRep := \"\"\n\tswitch kind {\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\tstringRep = swag.FormatUint64(valueHelp.asUint64(val))\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tstringRep = swag.FormatInt64(valueHelp.asInt64(val))\n\tcase reflect.Float32, reflect.Float64:\n\t\tstringRep = swag.FormatFloat64(valueHelp.asFloat64(val))\n\tdefault:\n\t\treturn fmt.Errorf(\"%s value number range checking called with invalid (non numeric) val type in %s\", prefix, path)\n\t}\n\n\tvar errVal error\n\n\tswitch typeName {\n\tcase integerType:\n\t\tswitch format {\n\t\tcase integerFormatInt32:\n\t\t\t_, errVal = swag.ConvertInt32(stringRep)\n\t\tcase integerFormatUInt32:\n\t\t\t_, errVal = swag.ConvertUint32(stringRep)\n\t\tcase integerFormatUInt64:\n\t\t\t_, errVal = swag.ConvertUint64(stringRep)\n\t\tcase integerFormatInt64:\n\t\t\tfallthrough\n\t\tdefault:\n\t\t\t_, errVal = swag.ConvertInt64(stringRep)\n\t\t}\n\tcase numberType:\n\t\tfallthrough\n\tdefault:\n\t\tswitch format {\n\t\tcase numberFormatFloat, numberFormatFloat32:\n\t\t\t_, errVal = swag.ConvertFloat32(stringRep)\n\t\tcase numberFormatDouble, numberFormatFloat64:\n\t\t\tfallthrough\n\t\tdefault:\n\t\t\t// No check can be performed here since\n\t\t\t// no number beyond float64 is supported\n\t\t}\n\t}\n\tif errVal != nil { // We don't report the actual errVal from strconv\n\t\tif format != \"\" {\n\t\t\terrVal = fmt.Errorf(\"%s value must be of type %s with format %s in %s\", prefix, typeName, format, path)\n\t\t} else {\n\t\t\terrVal = fmt.Errorf(\"%s value must be of type %s (default format) in %s\", prefix, typeName, path)\n\t\t}\n\t}\n\treturn errVal\n}\n"
  },
  {
    "path": "pkg/validation/validate/values_test.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage validate\n\nimport (\n\t\"math\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"k8s.io/kube-openapi/pkg/validation/errors\"\n\t\"k8s.io/kube-openapi/pkg/validation/strfmt\"\n)\n\nfunc TestValues_ValidateIntEnum(t *testing.T) {\n\tenumValues := []interface{}{1, 2, 3}\n\n\terr := Enum(\"test\", \"body\", int64(5), enumValues)\n\tassert.NotNil(t, err)\n\terr2 := Enum(\"test\", \"body\", int64(1), enumValues)\n\tassert.Nil(t, err2)\n}\n\nfunc TestValues_ValidateEnum(t *testing.T) {\n\tenumValues := []string{\"aa\", \"bb\", \"cc\"}\n\n\terr := Enum(\"test\", \"body\", \"a\", enumValues)\n\tassert.Error(t, err)\n\terr = Enum(\"test\", \"body\", \"bb\", enumValues)\n\tassert.Nil(t, err)\n}\n\n// Check edge cases in Enum\nfunc TestValues_Enum_EdgeCases(t *testing.T) {\n\tenumValues := \"aa, bb, cc\"\n\n\terr := Enum(\"test\", \"body\", int64(1), enumValues)\n\t// No validation occurs: enumValues is not a slice\n\tassert.Nil(t, err)\n\n\t// TODO(TEST): edge case: value is not a concrete type\n\t// It's really a go internals challenge\n\t// to figure a test case to demonstrate\n\t// this case must be checked (!!)\n}\n\nfunc TestValues_ValidateUniqueItems(t *testing.T) {\n\tvar err error\n\n\titemsNonUnique := []interface{}{\n\t\t[]int32{1, 2, 3, 4, 4, 5},\n\t\t[]string{\"aa\", \"bb\", \"cc\", \"cc\", \"dd\"},\n\t}\n\tfor _, v := range itemsNonUnique {\n\t\terr = UniqueItems(\"test\", \"body\", v)\n\t\tassert.Error(t, err)\n\t}\n\n\titemsUnique := []interface{}{\n\t\t[]int32{1, 2, 3},\n\t\t\"I'm a string\",\n\t\tmap[string]int{\n\t\t\t\"aaa\": 1111,\n\t\t\t\"b\":   2,\n\t\t\t\"ccc\": 333,\n\t\t},\n\t\tnil,\n\t}\n\tfor _, v := range itemsUnique {\n\t\terr = UniqueItems(\"test\", \"body\", v)\n\t\tassert.Nil(t, err)\n\t}\n}\n\nfunc TestValues_ValidateMinLength(t *testing.T) {\n\tvar minLength int64 = 5\n\terr := MinLength(\"test\", \"body\", \"aa\", minLength)\n\tassert.Error(t, err)\n\terr = MinLength(\"test\", \"body\", \"aaaaa\", minLength)\n\tassert.Nil(t, err)\n}\n\nfunc TestValues_ValidateMaxLength(t *testing.T) {\n\tvar maxLength int64 = 5\n\terr := MaxLength(\"test\", \"body\", \"bbbbbb\", maxLength)\n\tassert.Error(t, err)\n\terr = MaxLength(\"test\", \"body\", \"aa\", maxLength)\n\tassert.Nil(t, err)\n}\n\nfunc TestValues_ValidateRequired(t *testing.T) {\n\tvar err error\n\tpath := \"test\"\n\tin := \"body\"\n\n\tRequiredFail := []interface{}{\n\t\t\"\",\n\t\t0,\n\t\tnil,\n\t}\n\n\tfor _, v := range RequiredFail {\n\t\terr = Required(path, in, v)\n\t\tassert.Error(t, err)\n\t}\n\n\tRequiredSuccess := []interface{}{\n\t\t\" \",\n\t\t\"bla-bla-bla\",\n\t\t2,\n\t\t[]interface{}{21, []int{}, \"testString\"},\n\t}\n\n\tfor _, v := range RequiredSuccess {\n\t\terr = Required(path, in, v)\n\t\tassert.Nil(t, err)\n\t}\n\n}\n\nfunc TestValuMultipleOf(t *testing.T) {\n\n\t// positive\n\n\terr := MultipleOf(\"test\", \"body\", 9, 3)\n\tassert.Nil(t, err)\n\n\terr = MultipleOf(\"test\", \"body\", 9.3, 3.1)\n\tassert.Nil(t, err)\n\n\terr = MultipleOf(\"test\", \"body\", 9.1, 0.1)\n\tassert.Nil(t, err)\n\n\terr = MultipleOf(\"test\", \"body\", 3, 0.3)\n\tassert.Nil(t, err)\n\n\terr = MultipleOf(\"test\", \"body\", 6, 0.3)\n\tassert.Nil(t, err)\n\n\terr = MultipleOf(\"test\", \"body\", 1, 0.25)\n\tassert.Nil(t, err)\n\n\terr = MultipleOf(\"test\", \"body\", 8, 0.2)\n\tassert.Nil(t, err)\n\n\t// zero\n\terr = MultipleOf(\"test\", \"body\", 9, 0)\n\tassert.Error(t, err)\n\n\terr = MultipleOf(\"test\", \"body\", 9.1, 0)\n\tassert.Error(t, err)\n\n\t// negative\n\n\terr = MultipleOf(\"test\", \"body\", 3, 0.4)\n\tassert.Error(t, err)\n\n\terr = MultipleOf(\"test\", \"body\", 9.1, 0.2)\n\tassert.Error(t, err)\n\n\terr = MultipleOf(\"test\", \"body\", 9.34, 0.1)\n\tassert.Error(t, err)\n\n\t// error on negative factor\n\terr = MultipleOf(\"test\", \"body\", 9.34, -0.1)\n\tassert.Error(t, err)\n}\n\n// Test edge case for Pattern (in regular spec, no invalid regexp should reach there)\nfunc TestValues_Pattern_Edgecases(t *testing.T) {\n\tvar err *errors.Validation\n\terr = Pattern(\"path\", \"in\", \"pick-a-boo\", `.*-[a-z]-.*`)\n\tassert.Nil(t, err)\n\n\t// Invalid regexp\n\terr = Pattern(\"path\", \"in\", \"pick-a-boo\", `.*-[a(-z]-^).*`)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, int(err.Code()), int(errors.PatternFailCode))\n\t\tassert.Contains(t, err.Error(), \"pattern is invalid\")\n\t}\n\n\t// Valid regexp, invalid pattern\n\terr = Pattern(\"path\", \"in\", \"pick-8-boo\", `.*-[a-z]-.*`)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, int(err.Code()), int(errors.PatternFailCode))\n\t\tassert.NotContains(t, err.Error(), \"pattern is invalid\")\n\t\tassert.Contains(t, err.Error(), \"should match\")\n\t}\n}\n\n// Test edge cases in FormatOf\n// not easily tested with full specs\nfunc TestValues_FormatOf_EdgeCases(t *testing.T) {\n\tvar err *errors.Validation\n\n\terr = FormatOf(\"path\", \"in\", \"bugz\", \"\", nil)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, int(err.Code()), int(errors.InvalidTypeCode))\n\t\tassert.Contains(t, err.Error(), \"bugz is an invalid type name\")\n\t}\n\n\terr = FormatOf(\"path\", \"in\", \"bugz\", \"\", strfmt.Default)\n\tif assert.NotNil(t, err) {\n\t\tassert.Equal(t, int(err.Code()), int(errors.InvalidTypeCode))\n\t\tassert.Contains(t, err.Error(), \"bugz is an invalid type name\")\n\t}\n}\n\n// Test edge cases in MaximumNativeType\n// not easily exercised with full specs\nfunc TestValues_MaximumNative(t *testing.T) {\n\tassert.Nil(t, MaximumNativeType(\"path\", \"in\", int(5), 10, false))\n\tassert.Nil(t, MaximumNativeType(\"path\", \"in\", uint(5), 10, true))\n\tassert.Nil(t, MaximumNativeType(\"path\", \"in\", int8(5), 10, true))\n\tassert.Nil(t, MaximumNativeType(\"path\", \"in\", uint8(5), 10, true))\n\tassert.Nil(t, MaximumNativeType(\"path\", \"in\", int16(5), 10, true))\n\tassert.Nil(t, MaximumNativeType(\"path\", \"in\", uint16(5), 10, true))\n\tassert.Nil(t, MaximumNativeType(\"path\", \"in\", int32(5), 10, true))\n\tassert.Nil(t, MaximumNativeType(\"path\", \"in\", uint32(5), 10, true))\n\tassert.Nil(t, MaximumNativeType(\"path\", \"in\", int64(5), 10, true))\n\tassert.Nil(t, MaximumNativeType(\"path\", \"in\", uint64(5), 10, true))\n\tassert.Nil(t, MaximumNativeType(\"path\", \"in\", float32(5.5), 10, true))\n\tassert.Nil(t, MaximumNativeType(\"path\", \"in\", float64(5.5), 10, true))\n\n\tvar err *errors.Validation\n\n\terr = MaximumNativeType(\"path\", \"in\", int32(10), 10, true)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, errors.MaxFailCode)\n\t}\n\n\terr = MaximumNativeType(\"path\", \"in\", uint(10), 10, true)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, errors.MaxFailCode)\n\t}\n\n\terr = MaximumNativeType(\"path\", \"in\", int64(12), 10, false)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, errors.MaxFailCode)\n\t}\n\n\terr = MaximumNativeType(\"path\", \"in\", float32(12.6), 10, false)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MaxFailCode))\n\t}\n\n\terr = MaximumNativeType(\"path\", \"in\", float64(12.6), 10, false)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MaxFailCode))\n\t}\n\n\terr = MaximumNativeType(\"path\", \"in\", uint(5), -10, true)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MaxFailCode))\n\t}\n}\n\n// Test edge cases in MinimumNativeType\n// not easily exercised with full specs\nfunc TestValues_MinimumNative(t *testing.T) {\n\tassert.Nil(t, MinimumNativeType(\"path\", \"in\", int(5), 0, false))\n\tassert.Nil(t, MinimumNativeType(\"path\", \"in\", uint(5), 0, true))\n\tassert.Nil(t, MinimumNativeType(\"path\", \"in\", int8(5), 0, true))\n\tassert.Nil(t, MinimumNativeType(\"path\", \"in\", uint8(5), 0, true))\n\tassert.Nil(t, MinimumNativeType(\"path\", \"in\", int16(5), 0, true))\n\tassert.Nil(t, MinimumNativeType(\"path\", \"in\", uint16(5), 0, true))\n\tassert.Nil(t, MinimumNativeType(\"path\", \"in\", int32(5), 0, true))\n\tassert.Nil(t, MinimumNativeType(\"path\", \"in\", uint32(5), 0, true))\n\tassert.Nil(t, MinimumNativeType(\"path\", \"in\", int64(5), 0, true))\n\tassert.Nil(t, MinimumNativeType(\"path\", \"in\", uint64(5), 0, true))\n\tassert.Nil(t, MinimumNativeType(\"path\", \"in\", float32(5.5), 0, true))\n\tassert.Nil(t, MinimumNativeType(\"path\", \"in\", float64(5.5), 0, true))\n\n\tvar err *errors.Validation\n\n\terr = MinimumNativeType(\"path\", \"in\", uint(10), 10, true)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MinFailCode))\n\t}\n\n\terr = MinimumNativeType(\"path\", \"in\", uint(10), 10, true)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MinFailCode))\n\t}\n\n\terr = MinimumNativeType(\"path\", \"in\", int64(8), 10, false)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MinFailCode))\n\t}\n\n\terr = MinimumNativeType(\"path\", \"in\", float32(12.6), 20, false)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MinFailCode))\n\t}\n\n\terr = MinimumNativeType(\"path\", \"in\", float64(12.6), 20, false)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MinFailCode))\n\t}\n\n\terr = MinimumNativeType(\"path\", \"in\", uint(5), -10, true)\n\tassert.Nil(t, err)\n}\n\n// Test edge cases in MaximumNativeType\n// not easily exercised with full specs\nfunc TestValues_MultipleOfNative(t *testing.T) {\n\tassert.Nil(t, MultipleOfNativeType(\"path\", \"in\", int(5), 1))\n\tassert.Nil(t, MultipleOfNativeType(\"path\", \"in\", uint(5), 1))\n\tassert.Nil(t, MultipleOfNativeType(\"path\", \"in\", int8(5), 1))\n\tassert.Nil(t, MultipleOfNativeType(\"path\", \"in\", uint8(5), 1))\n\tassert.Nil(t, MultipleOfNativeType(\"path\", \"in\", int16(5), 1))\n\tassert.Nil(t, MultipleOfNativeType(\"path\", \"in\", uint16(5), 1))\n\tassert.Nil(t, MultipleOfNativeType(\"path\", \"in\", int32(5), 1))\n\tassert.Nil(t, MultipleOfNativeType(\"path\", \"in\", uint32(5), 1))\n\tassert.Nil(t, MultipleOfNativeType(\"path\", \"in\", int64(5), 1))\n\tassert.Nil(t, MultipleOfNativeType(\"path\", \"in\", uint64(5), 1))\n\n\tvar err *errors.Validation\n\n\terr = MultipleOfNativeType(\"path\", \"in\", int64(5), 0)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MultipleOfMustBePositiveCode))\n\t}\n\n\terr = MultipleOfNativeType(\"path\", \"in\", uint64(5), 0)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MultipleOfMustBePositiveCode))\n\t}\n\n\terr = MultipleOfNativeType(\"path\", \"in\", int64(5), -1)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MultipleOfMustBePositiveCode))\n\t}\n\n\terr = MultipleOfNativeType(\"path\", \"in\", int64(11), 5)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MultipleOfFailCode))\n\t}\n\n\terr = MultipleOfNativeType(\"path\", \"in\", uint64(11), 5)\n\tif assert.NotNil(t, err) {\n\t\tcode := int(err.Code())\n\t\tassert.Equal(t, code, int(errors.MultipleOfFailCode))\n\t}\n}\n\n// Test edge cases in IsValueValidAgainstRange\n// not easily exercised with full specs\nfunc TestValues_IsValueValidAgainstRange(t *testing.T) {\n\tvar err error\n\n\t// We did not simulate these formats in full specs\n\terr = IsValueValidAgainstRange(float32(123.45), \"number\", \"float32\", \"prefix\", \"path\")\n\tassert.NoError(t, err)\n\n\terr = IsValueValidAgainstRange(float64(123.45), \"number\", \"float32\", \"prefix\", \"path\")\n\tassert.NoError(t, err)\n\n\terr = IsValueValidAgainstRange(int64(123), \"number\", \"float\", \"prefix\", \"path\")\n\tassert.NoError(t, err)\n\n\terr = IsValueValidAgainstRange(int64(123), \"integer\", \"\", \"prefix\", \"path\")\n\tassert.NoError(t, err)\n\n\terr = IsValueValidAgainstRange(int64(123), \"integer\", \"int64\", \"prefix\", \"path\")\n\tassert.NoError(t, err)\n\n\terr = IsValueValidAgainstRange(int64(123), \"integer\", \"uint64\", \"prefix\", \"path\")\n\tassert.NoError(t, err)\n\n\t// Error case (do not occur in normal course of a validation)\n\terr = IsValueValidAgainstRange(float64(math.MaxFloat64), \"integer\", \"\", \"prefix\", \"path\")\n\tif assert.Error(t, err) {\n\t\tassert.Contains(t, err.Error(), \"must be of type integer (default format)\")\n\t}\n\n\t// Checking a few limits\n\terr = IsValueValidAgainstRange(\"123\", \"number\", \"\", \"prefix\", \"path\")\n\tif assert.Error(t, err) {\n\t\tassert.Contains(t, err.Error(), \"called with invalid (non numeric) val type\")\n\t}\n\n\terr = IsValueValidAgainstRange(int64(2147483647), \"integer\", \"int32\", \"prefix\", \"path\")\n\tassert.NoError(t, err)\n\n\terr = IsValueValidAgainstRange(int64(2147483647), \"integer\", \"uint32\", \"prefix\", \"path\")\n\tassert.NoError(t, err)\n}\n"
  },
  {
    "path": "test/integration/README.md",
    "content": "# Kube OpenAPI Integration Tests\n\n## Running the integration tests\n\nWithin the current directory:\n\n```bash\n$ go test -v .\n```\n\n## Generating the golden Swagger definition file and API rule violation report\n\nFirst, run the generator to create `openapi_generated.go` file which specifies\nthe `OpenAPIDefinition` for each type, and generate the golden API rule\nviolation report file. Note that if you do not pass a report\nfilename (`./testdata/golden.v2.report` in the command below) to let the generator\nto print API rule violations to the file, the generator will return error to stderr\non API rule violations.\n\n```bash\n$ go run ../../cmd/openapi-gen/openapi-gen.go \\\n  --output-dir pkg/generated \\\n  --output-pkg generated \\\n  --output-file openapi_generated.go \\\n  --go-header-file ../../boilerplate/boilerplate.go.txt \\\n  --report-filename ./testdata/golden.v2.report \\\n  ./testdata/custom ./testdata/enumtype ./testdata/listtype ./testdata/maptype ./testdata/structtype ./testdata/dummytype ./testdata/uniontype ./testdata/defaults ./testdata/valuevalidation\n\n$ go run ../../cmd/openapi-gen/openapi-gen.go \\\n  --output-dir pkg/generated/namedmodels \\\n  --output-pkg generated \\\n  --output-file openapi_generated.go \\\n  --output-model-name-file zz_generated_model_name.go \\\n  --go-header-file ../../boilerplate/boilerplate.go.txt \\\n  --report-filename ./testdata/namedmodels/golden.v3.report \\\n  ./testdata/namedmodels\n```\nThe generated file `pkg/generated/openapi_generated.go` should have been created.\n\nNext, run the OpenAPI builder to create the Swagger file which includes\nthe definitions. The output file named `golden.v2.json` (or v3) will be output in\nthe current directory.\n\n```bash\n$ go run builder/main.go testdata/golden.v2.json\n$ go run builder3/main.go testdata/golden.v3.json\n```\n\n❗NOTE❗: If you've created a new type, make sure you add it in `createWebServices()` in\n`./builder/main.go`, or the definitions won't be generated.\n\n❗NOTE❗: If you've created a new package, make sure you also add it to the\n`inputDir` in `integration_suite_test.go`.\n"
  },
  {
    "path": "test/integration/builder/main.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"log\"\n\t\"os\"\n\n\tbuilderv2 \"k8s.io/kube-openapi/pkg/builder\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/test/integration/pkg/generated\"\n\t\"k8s.io/kube-openapi/test/integration/testutil\"\n)\n\n// TODO: Change this to output the generated swagger to stdout.\nconst defaultSwaggerFile = \"generated.json\"\n\nfunc main() {\n\t// Get the name of the generated swagger file from the args\n\t// if it exists; otherwise use the default file name.\n\tswaggerFilename := defaultSwaggerFile\n\tif len(os.Args) > 1 {\n\t\tswaggerFilename = os.Args[1]\n\t}\n\n\t// Generate the definition names from the map keys returned\n\t// from GetOpenAPIDefinitions. Anonymous function returning empty\n\t// Ref is not used.\n\tvar defNames []string\n\tfor name := range generated.GetOpenAPIDefinitions(func(name string) spec.Ref {\n\t\treturn spec.Ref{}\n\t}) {\n\t\tdefNames = append(defNames, name)\n\t}\n\n\t// Create a minimal builder config, then call the builder with the definition names.\n\tconfig := testutil.CreateOpenAPIBuilderConfig()\n\tconfig.GetDefinitions = generated.GetOpenAPIDefinitions\n\t// Build the Paths using a simple WebService for the final spec\n\tswagger, serr := builderv2.BuildOpenAPISpec(testutil.CreateWebServices(true), config)\n\tif serr != nil {\n\t\tlog.Fatalf(\"ERROR: %s\", serr.Error())\n\t}\n\n\t// Marshal the swagger spec into JSON, then write it out.\n\tspecBytes, err := json.MarshalIndent(swagger, \" \", \" \")\n\tif err != nil {\n\t\tlog.Fatalf(\"json marshal error: %s\", err.Error())\n\t}\n\terr = os.WriteFile(swaggerFilename, specBytes, 0644)\n\tif err != nil {\n\t\tlog.Fatalf(\"stdout write error: %s\", err.Error())\n\t}\n}\n"
  },
  {
    "path": "test/integration/builder3/main.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"log\"\n\t\"os\"\n\n\t\"github.com/getkin/kin-openapi/openapi3\"\n\tbuilderv3 \"k8s.io/kube-openapi/pkg/builder3\"\n\t\"k8s.io/kube-openapi/test/integration/pkg/generated\"\n\t\"k8s.io/kube-openapi/test/integration/testutil\"\n)\n\n// TODO: Change this to output the generated swagger to stdout.\nconst defaultSwaggerFile = \"generated.v3.json\"\n\nfunc main() {\n\t// Get the name of the generated swagger file from the args\n\t// if it exists; otherwise use the default file name.\n\tswaggerFilename := defaultSwaggerFile\n\tif len(os.Args) > 1 {\n\t\tswaggerFilename = os.Args[1]\n\t}\n\n\t// Create a minimal builder config, then call the builder with the definition names.\n\tconfig := testutil.CreateOpenAPIV3BuilderConfig()\n\tconfig.GetDefinitions = generated.GetOpenAPIDefinitions\n\t// Build the Paths using a simple WebService for the final spec\n\tswagger, serr := builderv3.BuildOpenAPISpec(testutil.CreateWebServices(true), config)\n\tif serr != nil {\n\t\tlog.Fatalf(\"ERROR: %s\", serr.Error())\n\t}\n\n\t// Marshal the swagger spec into JSON, then write it out.\n\tspecBytes, err := json.MarshalIndent(swagger, \" \", \" \")\n\tif err != nil {\n\t\tlog.Fatalf(\"json marshal error: %s\", err.Error())\n\t}\n\n\tloader := openapi3.NewLoader()\n\tspecForValidator, err := loader.LoadFromData(specBytes)\n\n\tif err != nil {\n\t\tlog.Fatalf(\"OpenAPI v3 ref resolve error: %s\", err.Error())\n\t}\n\n\terr = specForValidator.Validate(loader.Context)\n\n\tif err != nil {\n\t\tlog.Fatalf(\"OpenAPI v3 validation error: %s\", err.Error())\n\t}\n\n\terr = os.WriteFile(swaggerFilename, specBytes, 0644)\n\tif err != nil {\n\t\tlog.Fatalf(\"stdout write error: %s\", err.Error())\n\t}\n\n}\n"
  },
  {
    "path": "test/integration/go.mod",
    "content": "module k8s.io/kube-openapi/test/integration\n\ngo 1.23.0\n\nreplace k8s.io/kube-openapi => ../../\n\nrequire (\n\tgithub.com/emicklei/go-restful/v3 v3.11.0\n\tgithub.com/getkin/kin-openapi v0.103.0\n\tgithub.com/onsi/ginkgo/v2 v2.19.0\n\tgithub.com/onsi/gomega v1.33.1\n\tk8s.io/kube-openapi v0.0.0\n\tk8s.io/utils v0.0.0-20240711033017-18e509b52bc8\n)\n\nrequire (\n\tgithub.com/go-logr/logr v1.4.2 // indirect\n\tgithub.com/go-openapi/jsonpointer v0.21.0 // indirect\n\tgithub.com/go-openapi/jsonreference v0.20.1 // indirect\n\tgithub.com/go-openapi/swag v0.23.0 // indirect\n\tgithub.com/go-task/slim-sprig/v3 v3.0.0 // indirect\n\tgithub.com/google/gnostic-models v0.7.0 // indirect\n\tgithub.com/google/go-cmp v0.6.0 // indirect\n\tgithub.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 // indirect\n\tgithub.com/invopop/yaml v0.1.0 // indirect\n\tgithub.com/josharian/intern v1.0.0 // indirect\n\tgithub.com/json-iterator/go v1.1.12 // indirect\n\tgithub.com/mailru/easyjson v0.7.7 // indirect\n\tgithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect\n\tgithub.com/modern-go/reflect2 v1.0.2 // indirect\n\tgithub.com/spf13/pflag v1.0.5 // indirect\n\tgo.yaml.in/yaml/v3 v3.0.3 // indirect\n\tgolang.org/x/mod v0.27.0 // indirect\n\tgolang.org/x/net v0.43.0 // indirect\n\tgolang.org/x/sync v0.16.0 // indirect\n\tgolang.org/x/sys v0.35.0 // indirect\n\tgolang.org/x/text v0.28.0 // indirect\n\tgolang.org/x/tools v0.36.0 // indirect\n\tgoogle.golang.org/protobuf v1.35.1 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n\tk8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f // indirect\n\tk8s.io/klog/v2 v2.130.1 // indirect\n\tsigs.k8s.io/randfill v1.0.0 // indirect\n)\n"
  },
  {
    "path": "test/integration/go.sum",
    "content": "github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=\ngithub.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=\ngithub.com/getkin/kin-openapi v0.103.0 h1:F5wAtaQvPWxKCAYZ69LgHAThgu16p4u41VQtbn1U8LA=\ngithub.com/getkin/kin-openapi v0.103.0/go.mod h1:w4lRPHiyOdwGbOkLIyk+P0qCwlu7TXPCHD/64nSXzgE=\ngithub.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=\ngithub.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=\ngithub.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=\ngithub.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=\ngithub.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=\ngithub.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=\ngithub.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=\ngithub.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=\ngithub.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=\ngithub.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=\ngithub.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=\ngithub.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=\ngithub.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=\ngithub.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=\ngithub.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo=\ngithub.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ=\ngithub.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=\ngithub.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 h1:FKHo8hFI3A+7w0aUQuYXQ+6EN5stWmeY/AZqtM8xk9k=\ngithub.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=\ngithub.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=\ngithub.com/invopop/yaml v0.1.0 h1:YW3WGUoJEXYfzWBjn00zIlrw7brGVD0fUKRYDPAPhrc=\ngithub.com/invopop/yaml v0.1.0/go.mod h1:2XuRLgs/ouIrW3XNzuNj7J3Nvu/Dig5MXvbCEdiBN3Q=\ngithub.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=\ngithub.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=\ngithub.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=\ngithub.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=\ngithub.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=\ngithub.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=\ngithub.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=\ngithub.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=\ngithub.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=\ngithub.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=\ngithub.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=\ngithub.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=\ngithub.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=\ngithub.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=\ngithub.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=\ngithub.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA=\ngithub.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To=\ngithub.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=\ngithub.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=\ngithub.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=\ngithub.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=\ngithub.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=\ngithub.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=\ngithub.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=\ngithub.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=\ngithub.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=\ngithub.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=\ngo.yaml.in/yaml/v3 v3.0.3 h1:bXOww4E/J3f66rav3pX3m8w6jDE4knZjGOw8b5Y6iNE=\ngo.yaml.in/yaml/v3 v3.0.3/go.mod h1:tBHosrYAkRZjRAOREWbDnBXUf08JOwYq++0QNwQiWzI=\ngolang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=\ngolang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc=\ngolang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=\ngolang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=\ngolang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=\ngolang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=\ngolang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=\ngolang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=\ngolang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=\ngolang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=\ngolang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=\ngolang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=\ngolang.org/x/tools/go/expect v0.1.0-deprecated h1:jY2C5HGYR5lqex3gEniOQL0r7Dq5+VGVgY1nudX5lXY=\ngolang.org/x/tools/go/expect v0.1.0-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY=\ngolang.org/x/tools/go/packages/packagestest v0.1.1-deprecated h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM=\ngolang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod h1:RVAQXBGNv1ib0J382/DPCRS/BPnsGebyM1Gj5VSDpG8=\ngoogle.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=\ngoogle.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=\ngopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\nk8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f h1:SLb+kxmzfA87x4E4brQzB33VBbT2+x7Zq9ROIHmGn9Q=\nk8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU=\nk8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=\nk8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=\nk8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=\nk8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=\nsigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=\nsigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=\nsigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=\nsigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=\n"
  },
  {
    "path": "test/integration/import.go",
    "content": "// Copyright 2023 The Kubernetes Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build tools\n\npackage integration\n\n// This file, which is not built (because of the build constraint), is just\n// there to import \"k8s.io/kube-openapi/cmd/openapi-gen\", so that\n// \"go mod tidy\" will not remove the openapi-gen's dependencies.\n// openapi-gen is indeed built as part of the integration tests.\nimport _ \"k8s.io/kube-openapi/cmd/openapi-gen\"\n"
  },
  {
    "path": "test/integration/integration_suite_test.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage integration\n\nimport (\n\t\"os\"\n\t\"os/exec\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"testing\"\n\n\t. \"github.com/onsi/ginkgo/v2\"\n\t. \"github.com/onsi/gomega\"\n\t\"github.com/onsi/gomega/gexec\"\n)\n\nconst (\n\theaderFilePath                  = \"../../boilerplate/boilerplate.go.txt\"\n\ttestdataDir                     = \"./testdata\"\n\ttestPkgRoot                     = \"k8s.io/kube-openapi/test/integration/testdata\"\n\toutputPkg                       = testPkgRoot + \"/pkg/generated\"\n\tgeneratedCodeFileName           = \"openapi_generated.go\"\n\tgeneratedSchemaNameCodeFileName = \"zz_generated_model_name.go\"\n\tgoldenCodeFilePath              = \"pkg/generated/\" + generatedCodeFileName\n\tgeneratedSwaggerFileName        = \"generated.v2.json\"\n\tgoldenSwaggerFileName           = \"golden.v2.json\"\n\tgeneratedReportFileName         = \"generated.v2.report\"\n\tgoldenReportFileName            = \"golden.v2.report\"\n\tgeneratedOpenAPIv3FileName      = \"generated.v3.json\"\n\tgoldenOpenAPIv3Filename         = \"golden.v3.json\"\n\n\ttimeoutSeconds = 60.0\n)\n\nvar (\n\tworkingDirectory string\n\ttempDir          string\n\tterr             error\n\topenAPIGenPath   string\n\n\tinputDirs = []string{\n\t\t// `path` vs. `filepath` because packages use '/'\n\t\tpath.Join(testPkgRoot, \"listtype\"),\n\t\tpath.Join(testPkgRoot, \"maptype\"),\n\t\tpath.Join(testPkgRoot, \"structtype\"),\n\t\tpath.Join(testPkgRoot, \"dummytype\"),\n\t\tpath.Join(testPkgRoot, \"uniontype\"),\n\t\tpath.Join(testPkgRoot, \"enumtype\"),\n\t\tpath.Join(testPkgRoot, \"custom\"),\n\t\tpath.Join(testPkgRoot, \"valuevalidation\"),\n\t\tpath.Join(testPkgRoot, \"defaults\"),\n\t}\n)\n\nfunc generatedFile(filename string) string { return filepath.Join(tempDir, filename) }\nfunc testdataFile(filename string) string  { return filepath.Join(testdataDir, filename) }\n\nfunc TestGenerators(t *testing.T) {\n\tRegisterFailHandler(Fail)\n\tRunSpecs(t, \"Integration Test Suite\")\n}\n\nvar _ = BeforeSuite(func() {\n\t// Explicitly manage working directory\n\tabs, err := filepath.Abs(\"\")\n\tExpect(err).ShouldNot(HaveOccurred())\n\tworkingDirectory = abs\n\n\t// Create a temporary directory for generated swagger files.\n\ttempDir, terr = os.MkdirTemp(\"./\", \"openapi\")\n\tExpect(terr).ShouldNot(HaveOccurred())\n\n\t// Build the OpenAPI code generator.\n\tBy(\"building openapi-gen\")\n\tbinaryPath, berr := gexec.Build(\"../../cmd/openapi-gen/openapi-gen.go\")\n\tExpect(berr).ShouldNot(HaveOccurred())\n\topenAPIGenPath = binaryPath\n\n\t// Run the OpenAPI code generator.\n\tBy(\"running openapi-gen\")\n\targs := append([]string{\n\t\t\"--output-dir\", tempDir,\n\t\t\"--output-pkg\", outputPkg,\n\t\t\"--output-file\", generatedCodeFileName,\n\t\t\"--report-filename\", generatedFile(generatedReportFileName),\n\t\t\"--go-header-file\", headerFilePath,\n\t}, inputDirs...)\n\tcommand := exec.Command(openAPIGenPath, args...)\n\tcommand.Dir = workingDirectory\n\tsession, err := gexec.Start(command, GinkgoWriter, GinkgoWriter)\n\tExpect(err).ShouldNot(HaveOccurred())\n\tEventually(session, timeoutSeconds).Should(gexec.Exit(0))\n\n\t// Run the OpenAPI code generator with --output-model-name-file\n\tExpect(terr).ShouldNot(HaveOccurred())\n\n\tBy(\"'namedmodels' running openapi-gen\")\n\targs = append([]string{\n\t\t\"--output-dir\", tempDir + \"/namedmodels\",\n\t\t\"--output-pkg\", outputPkg + \"/namedmodels\",\n\t\t\"--output-file\", generatedCodeFileName,\n\t\t\"--output-model-name-file\", generatedSchemaNameCodeFileName,\n\t\t\"--go-header-file\", headerFilePath,\n\t}, path.Join(testPkgRoot, \"namedmodels\"))\n\tcommand = exec.Command(openAPIGenPath, args...)\n\tcommand.Dir = workingDirectory\n\tsession, err = gexec.Start(command, GinkgoWriter, GinkgoWriter)\n\tExpect(err).ShouldNot(HaveOccurred())\n\tEventually(session, timeoutSeconds).Should(gexec.Exit(0))\n\n\tBy(\"writing swagger v2.0\")\n\t// Create the OpenAPI swagger builder.\n\tbinaryPath, berr = gexec.Build(\"./builder/main.go\")\n\tExpect(berr).ShouldNot(HaveOccurred())\n\n\t// Execute the builder, generating an OpenAPI swagger file with definitions.\n\tgs := generatedFile(generatedSwaggerFileName)\n\tBy(\"writing swagger to \" + gs)\n\tcommand = exec.Command(binaryPath, gs)\n\tcommand.Dir = workingDirectory\n\tsession, err = gexec.Start(command, GinkgoWriter, GinkgoWriter)\n\tExpect(err).ShouldNot(HaveOccurred())\n\tEventually(session, timeoutSeconds).Should(gexec.Exit(0))\n\n\tBy(\"writing OpenAPI v3.0\")\n\t// Create the OpenAPI swagger builder.\n\tbinaryPath, berr = gexec.Build(\"./builder3/main.go\")\n\tExpect(berr).ShouldNot(HaveOccurred())\n\n\t// Execute the builder, generating an OpenAPI swagger file with definitions.\n\tgov3 := generatedFile(generatedOpenAPIv3FileName)\n\tBy(\"writing swagger to \" + gov3)\n\tcommand = exec.Command(binaryPath, gov3)\n\tcommand.Dir = workingDirectory\n\tsession, err = gexec.Start(command, GinkgoWriter, GinkgoWriter)\n\tExpect(err).ShouldNot(HaveOccurred())\n\tEventually(session, timeoutSeconds).Should(gexec.Exit(0))\n\n\tBy(\"'namedmodels' writing OpenAPI v3.0\")\n\t// Create the OpenAPI swagger builder.\n\tbinaryPath, berr = gexec.Build(\"./builder3/main.go\")\n\tExpect(berr).ShouldNot(HaveOccurred())\n\n\t// Execute the builder, generating an OpenAPI swagger file with definitions.\n\tgov3 = generatedFile(\"namedmodels/\" + generatedOpenAPIv3FileName)\n\tBy(\"'namedmodels'  writing swagger to \" + gov3)\n\tcommand = exec.Command(binaryPath, gov3)\n\tcommand.Dir = workingDirectory\n\tsession, err = gexec.Start(command, GinkgoWriter, GinkgoWriter)\n\tExpect(err).ShouldNot(HaveOccurred())\n\tEventually(session, timeoutSeconds).Should(gexec.Exit(0))\n})\n\nvar _ = AfterSuite(func() {\n\tos.RemoveAll(tempDir)\n\tgexec.CleanupBuildArtifacts()\n})\n\nvar _ = Describe(\"Open API Definitions Generation\", func() {\n\tDescribe(\"Validating generated code\", func() {\n\t\tIt(\"Generated code should match golden files\", func() {\n\t\t\t// Diff the generated code against the golden code. Exit code should be zero.\n\t\t\tcommand := exec.Command(\n\t\t\t\t\"diff\", \"-u\",\n\t\t\t\tgoldenCodeFilePath,\n\t\t\t\tgeneratedFile(generatedCodeFileName),\n\t\t\t)\n\t\t\tcommand.Dir = workingDirectory\n\t\t\tsession, err := gexec.Start(command, GinkgoWriter, GinkgoWriter)\n\t\t\tExpect(err).ShouldNot(HaveOccurred())\n\t\t\tEventually(session, timeoutSeconds).Should(gexec.Exit(0))\n\t\t})\n\t\tIt(\"'namedmodels' Generated code should match golden files\", func() {\n\t\t\t// Diff the generated code against the golden code. Exit code should be zero.\n\t\t\tcommand := exec.Command(\n\t\t\t\t\"diff\", \"-u\",\n\t\t\t\t\"pkg/generated/namedmodels/\"+generatedCodeFileName,\n\t\t\t\tgeneratedFile(\"namedmodels/\"+generatedCodeFileName),\n\t\t\t)\n\t\t\tcommand.Dir = workingDirectory\n\t\t\tsession, err := gexec.Start(command, GinkgoWriter, GinkgoWriter)\n\t\t\tExpect(err).ShouldNot(HaveOccurred())\n\t\t\tEventually(session, timeoutSeconds).Should(gexec.Exit(0))\n\t\t})\n\t})\n\n\tDescribe(\"Validating OpenAPI V2 Definition Generation\", func() {\n\t\tIt(\"Generated OpenAPI swagger definitions should match golden files\", func() {\n\t\t\t// Diff the generated swagger against the golden swagger. Exit code should be zero.\n\t\t\tcommand := exec.Command(\n\t\t\t\t\"diff\", \"-u\",\n\t\t\t\ttestdataFile(goldenSwaggerFileName),\n\t\t\t\tgeneratedFile(generatedSwaggerFileName),\n\t\t\t)\n\t\t\tcommand.Dir = workingDirectory\n\t\t\tsession, err := gexec.Start(command, GinkgoWriter, GinkgoWriter)\n\t\t\tExpect(err).ShouldNot(HaveOccurred())\n\t\t\tEventually(session, timeoutSeconds).Should(gexec.Exit(0))\n\t\t})\n\t})\n\n\tDescribe(\"Validating OpenAPI V3 Definition Generation\", func() {\n\t\tIt(\"Generated OpenAPI swagger definitions should match golden files\", func() {\n\t\t\t// Diff the generated swagger against the golden swagger. Exit code should be zero.\n\t\t\tcommand := exec.Command(\n\t\t\t\t\"diff\", \"-u\",\n\t\t\t\ttestdataFile(goldenOpenAPIv3Filename),\n\t\t\t\tgeneratedFile(generatedOpenAPIv3FileName),\n\t\t\t)\n\t\t\tcommand.Dir = workingDirectory\n\t\t\tsession, err := gexec.Start(command, GinkgoWriter, GinkgoWriter)\n\t\t\tExpect(err).ShouldNot(HaveOccurred())\n\t\t\tEventually(session, timeoutSeconds).Should(gexec.Exit(0))\n\t\t})\n\t})\n\n\tDescribe(\"Validating API Rule Violation Reporting\", func() {\n\t\tIt(\"Generated API rule violations should match golden report files\", func() {\n\t\t\t// Diff the generated report against the golden report. Exit code should be zero.\n\t\t\tcommand := exec.Command(\n\t\t\t\t\"diff\", \"-u\",\n\t\t\t\ttestdataFile(goldenReportFileName),\n\t\t\t\tgeneratedFile(generatedReportFileName),\n\t\t\t)\n\t\t\tcommand.Dir = workingDirectory\n\t\t\tsession, err := gexec.Start(command, GinkgoWriter, GinkgoWriter)\n\t\t\tExpect(err).ShouldNot(HaveOccurred())\n\t\t\tEventually(session, timeoutSeconds).Should(gexec.Exit(0))\n\t\t})\n\t})\n})\n"
  },
  {
    "path": "test/integration/naming_test.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage integration\n\nimport (\n\t\"fmt\"\n\t\"testing\"\n\n\t\"k8s.io/kube-openapi/pkg/util\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\tgenerated \"k8s.io/kube-openapi/test/integration/pkg/generated/namedmodels\"\n\t\"k8s.io/kube-openapi/test/integration/testdata/namedmodels\"\n)\n\nfunc TestCanonicalTypeNames(t *testing.T) {\n\tdefs := generated.GetOpenAPIDefinitions(func(path string) spec.Ref {\n\t\treturn spec.MustCreateRef(path)\n\t})\n\n\t// Define the types we want to check.\n\ttypeTestCases := []any{namedmodels.Struct{}, namedmodels.ContainedStruct{}, namedmodels.AtomicStruct{}}\n\n\tfor _, v := range typeTestCases {\n\t\tt.Run(fmt.Sprintf(\"%T\", v), func(t *testing.T) {\n\t\t\t// Get the canonical name using the generator's logic.\n\t\t\tcanonicalName := util.GetCanonicalTypeName(v)\n\n\t\t\t// Check if the canonical name exists as a key in the generated map.\n\t\t\tif _, ok := defs[canonicalName]; !ok {\n\t\t\t\tt.Errorf(\"canonical type name %q for type %q not found in GetOpenAPIDefinitions\", canonicalName, v)\n\t\t\t}\n\t\t})\n\t}\n\n\t// Additionally, verify that the number of generated definitions matches our expectation.\n\tif len(defs) != len(typeTestCases) {\n\t\tt.Errorf(\"expected %d definitions, but got %d\", len(typeTestCases), len(defs))\n\t}\n}\n"
  },
  {
    "path": "test/integration/openapiconv/convert_test.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage openapiconv\n\nimport (\n\t\"encoding/json\"\n\t\"log\"\n\t\"reflect\"\n\t\"testing\"\n\n\tbuilderv2 \"k8s.io/kube-openapi/pkg/builder\"\n\tbuilderv3 \"k8s.io/kube-openapi/pkg/builder3\"\n\t\"k8s.io/kube-openapi/pkg/openapiconv\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"k8s.io/kube-openapi/test/integration/pkg/generated\"\n\t\"k8s.io/kube-openapi/test/integration/testutil\"\n)\n\nfunc TestConvertGolden(t *testing.T) {\n\t// Generate the definition names from the map keys returned\n\t// from GetOpenAPIDefinitions. Anonymous function returning empty\n\t// Ref is not used.\n\tvar defNames []string\n\tfor name := range generated.GetOpenAPIDefinitions(func(name string) spec.Ref {\n\t\treturn spec.Ref{}\n\t}) {\n\t\tdefNames = append(defNames, name)\n\t}\n\n\t// Create a minimal builder config, then call the builder with the definition names.\n\tconfig := testutil.CreateOpenAPIBuilderConfig()\n\tconfig3 := testutil.CreateOpenAPIV3BuilderConfig()\n\tconfig.GetDefinitions = generated.GetOpenAPIDefinitions\n\tconfig3.GetDefinitions = generated.GetOpenAPIDefinitions\n\t// Build the Paths using a simple WebService for the final spec\n\topenapiv2, serr := builderv2.BuildOpenAPISpec(testutil.CreateWebServices(false), config)\n\tif serr != nil {\n\t\tlog.Fatalf(\"ERROR: %s\", serr.Error())\n\t}\n\n\topenAPIV2JSONBeforeConversion, err := json.Marshal(openapiv2)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\topenapiv3, serr := builderv3.BuildOpenAPISpec(testutil.CreateWebServices(false), config3)\n\tif serr != nil {\n\t\tlog.Fatalf(\"ERROR: %s\", serr.Error())\n\t}\n\n\tconvertedOpenAPIV3 := openapiconv.ConvertV2ToV3(openapiv2)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\topenAPIV2JSONAfterConversion, err := json.Marshal(openapiv2)\n\tif !reflect.DeepEqual(openAPIV2JSONBeforeConversion, openAPIV2JSONAfterConversion) {\n\t\tt.Errorf(\"Expected OpenAPI V2 to be untouched before and after conversion\")\n\t}\n\n\tif !reflect.DeepEqual(openapiv3, convertedOpenAPIV3) {\n\t\tt.Errorf(\"Expected converted OpenAPI to be equal, %v, %v\", openapiv3, convertedOpenAPIV3)\n\t}\n}\n"
  },
  {
    "path": "test/integration/pkg/generated/namedmodels/openapi_generated.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by openapi-gen. DO NOT EDIT.\n\npackage namedmodels\n\nimport (\n\tcommon \"k8s.io/kube-openapi/pkg/common\"\n\tspec \"k8s.io/kube-openapi/pkg/validation/spec\"\n\ttestdatanamedmodels \"k8s.io/kube-openapi/test/integration/testdata/namedmodels\"\n)\n\nfunc GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {\n\treturn map[string]common.OpenAPIDefinition{\n\t\ttestdatanamedmodels.AtomicStruct{}.OpenAPIModelName():                       schema_test_integration_testdata_namedmodels_AtomicStruct(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/namedmodels.ContainedStruct\": schema_test_integration_testdata_namedmodels_ContainedStruct(ref),\n\t\ttestdatanamedmodels.Struct{}.OpenAPIModelName():                             schema_test_integration_testdata_namedmodels_Struct(ref),\n\t}\n}\n\nfunc schema_test_integration_testdata_namedmodels_AtomicStruct(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDescription: \"The generator should respect a manually declared OpenAPIModelName.\",\n\t\t\t\t\t\t\tDefault:     0,\n\t\t\t\t\t\t\tType:        []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:      \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Field\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_namedmodels_ContainedStruct(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_namedmodels_Struct(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDescription: \"The generator should see the +k8s:openapi-model-package and assume that a OpenAPIModelName is (or will be) generated.\",\n\t\t\t\t\t\t\tDefault:     map[string]interface{}{},\n\t\t\t\t\t\t\tRef:         ref(\"k8s.io/kube-openapi/test/integration/testdata/namedmodels.ContainedStruct\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"OtherField\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Field\", \"OtherField\"},\n\t\t\t},\n\t\t},\n\t\tDependencies: []string{\n\t\t\t\"k8s.io/kube-openapi/test/integration/testdata/namedmodels.ContainedStruct\"},\n\t}\n}\n"
  },
  {
    "path": "test/integration/pkg/generated/openapi_generated.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by openapi-gen. DO NOT EDIT.\n\npackage generated\n\nimport (\n\tcommon \"k8s.io/kube-openapi/pkg/common\"\n\tspec \"k8s.io/kube-openapi/pkg/validation/spec\"\n\tcustom \"k8s.io/kube-openapi/test/integration/testdata/custom\"\n\tdefaults \"k8s.io/kube-openapi/test/integration/testdata/defaults\"\n\tenumtype \"k8s.io/kube-openapi/test/integration/testdata/enumtype\"\n\tvaluevalidation \"k8s.io/kube-openapi/test/integration/testdata/valuevalidation\"\n\tptr \"k8s.io/utils/ptr\"\n)\n\nfunc GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {\n\treturn map[string]common.OpenAPIDefinition{\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/custom.Bac\":                          common.EmbedOpenAPIDefinitionIntoV2Extension(custom.Bac{}.OpenAPIV3Definition(), custom.Bac{}.OpenAPIDefinition()),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/custom.Bah\":                          schema_test_integration_testdata_custom_Bah(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/custom.Bak\":                          custom.Bak{}.OpenAPIDefinition(),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/custom.Bal\":                          custom.Bal{}.OpenAPIV3Definition(),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/custom.FooV3OneOf\":                   schema_test_integration_testdata_custom_FooV3OneOf(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/defaults.Defaulted\":                  schema_test_integration_testdata_defaults_Defaulted(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/defaults.SubStruct\":                  schema_test_integration_testdata_defaults_SubStruct(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/dummytype.Bar\":                       schema_test_integration_testdata_dummytype_Bar(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/dummytype.Baz\":                       schema_test_integration_testdata_dummytype_Baz(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/dummytype.Foo\":                       schema_test_integration_testdata_dummytype_Foo(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/dummytype.StatusError\":               schema_test_integration_testdata_dummytype_StatusError(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/dummytype.Waldo\":                     schema_test_integration_testdata_dummytype_Waldo(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/enumtype.FruitsBasket\":               schema_test_integration_testdata_enumtype_FruitsBasket(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/listtype.AtomicList\":                 schema_test_integration_testdata_listtype_AtomicList(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/listtype.Item\":                       schema_test_integration_testdata_listtype_Item(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/listtype.MapList\":                    schema_test_integration_testdata_listtype_MapList(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/listtype.SetList\":                    schema_test_integration_testdata_listtype_SetList(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/listtype.UntypedList\":                schema_test_integration_testdata_listtype_UntypedList(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/maptype.AtomicMap\":                   schema_test_integration_testdata_maptype_AtomicMap(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/maptype.GranularMap\":                 schema_test_integration_testdata_maptype_GranularMap(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/structtype.AtomicStruct\":             schema_test_integration_testdata_structtype_AtomicStruct(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/structtype.ContainedStruct\":          schema_test_integration_testdata_structtype_ContainedStruct(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/structtype.DeclaredAtomicStruct\":     schema_test_integration_testdata_structtype_DeclaredAtomicStruct(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/structtype.FieldLevelOverrideStruct\": schema_test_integration_testdata_structtype_FieldLevelOverrideStruct(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/structtype.GranularStruct\":           schema_test_integration_testdata_structtype_GranularStruct(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/uniontype.InlinedUnion\":              schema_test_integration_testdata_uniontype_InlinedUnion(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/uniontype.TopLevelUnion\":             schema_test_integration_testdata_uniontype_TopLevelUnion(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/uniontype.Union\":                     schema_test_integration_testdata_uniontype_Union(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/uniontype.Union2\":                    schema_test_integration_testdata_uniontype_Union2(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/valuevalidation.Foo\":                 schema_test_integration_testdata_valuevalidation_Foo(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/valuevalidation.Foo2\":                schema_test_integration_testdata_valuevalidation_Foo2(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/valuevalidation.Foo3\":                schema_test_integration_testdata_valuevalidation_Foo3(ref),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/valuevalidation.Foo4\":                valuevalidation.Foo4{}.OpenAPIDefinition(),\n\t\t\"k8s.io/kube-openapi/test/integration/testdata/valuevalidation.Foo5\":                schema_test_integration_testdata_valuevalidation_Foo5(ref),\n\t}\n}\n\nfunc schema_test_integration_testdata_custom_Bah(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.EmbedOpenAPIDefinitionIntoV2Extension(custom.Bah{}.OpenAPIV3Definition(), common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType:   custom.Bah{}.OpenAPISchemaType(),\n\t\t\t\tFormat: custom.Bah{}.OpenAPISchemaFormat(),\n\t\t\t},\n\t\t},\n\t})\n}\n\nfunc schema_test_integration_testdata_custom_FooV3OneOf(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.EmbedOpenAPIDefinitionIntoV2Extension(common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"FooV3OneOf has an OpenAPIV3OneOfTypes method\",\n\t\t\t\tOneOf:       common.GenerateOpenAPIV3OneOfSchema(custom.FooV3OneOf{}.OpenAPIV3OneOfTypes()),\n\t\t\t\tFormat:      custom.FooV3OneOf{}.OpenAPISchemaFormat(),\n\t\t\t},\n\t\t},\n\t}, common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"FooV3OneOf has an OpenAPIV3OneOfTypes method\",\n\t\t\t\tType:        custom.FooV3OneOf{}.OpenAPISchemaType(),\n\t\t\t\tFormat:      custom.FooV3OneOf{}.OpenAPISchemaFormat(),\n\t\t\t},\n\t\t},\n\t})\n}\n\nfunc schema_test_integration_testdata_defaults_Defaulted(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"bar\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"OtherField\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"List\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: []interface{}{\"foo\", \"bar\"},\n\t\t\t\t\t\t\tType:    []string{\"array\"},\n\t\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"Sub\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: map[string]interface{}{\"i\": 5, \"s\": \"foo\"},\n\t\t\t\t\t\t\tRef:     ref(\"k8s.io/kube-openapi/test/integration/testdata/defaults.SubStruct\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"OtherSub\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: map[string]interface{}{},\n\t\t\t\t\t\t\tRef:     ref(\"k8s.io/kube-openapi/test/integration/testdata/defaults.SubStruct\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"Map\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: map[string]interface{}{\"foo\": \"bar\"},\n\t\t\t\t\t\t\tType:    []string{\"object\"},\n\t\t\t\t\t\t\tAdditionalProperties: &spec.SchemaOrBool{\n\t\t\t\t\t\t\t\tAllows: true,\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"localSymbolReference\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: defaults.ConstantValue,\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"fullyQualifiedSymbolReference\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: defaults.ConstantValue,\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"externalSymbolReference\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: enumtype.FruitApple,\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"pointerConversionSymbolReference\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: enumtype.FruitApple,\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"defaultedAliasSymbolReference\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: defaults.ConstantValue,\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"OtherField\", \"List\", \"Sub\", \"OtherSub\", \"Map\"},\n\t\t\t},\n\t\t},\n\t\tDependencies: []string{\n\t\t\t\"k8s.io/kube-openapi/test/integration/testdata/defaults.SubStruct\"},\n\t}\n}\n\nfunc schema_test_integration_testdata_defaults_SubStruct(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"S\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"I\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 1,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"S\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_dummytype_Bar(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"ViolationBehind\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: false,\n\t\t\t\t\t\t\tType:    []string{\"boolean\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"Violation\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: false,\n\t\t\t\t\t\t\tType:    []string{\"boolean\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"ViolationBehind\", \"Violation\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_dummytype_Baz(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Violation\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: false,\n\t\t\t\t\t\t\tType:    []string{\"boolean\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"ViolationBehind\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: false,\n\t\t\t\t\t\t\tType:    []string{\"boolean\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Violation\", \"ViolationBehind\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_dummytype_Foo(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Second\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"First\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Second\", \"First\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_dummytype_StatusError(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Code\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"Message\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Code\", \"Message\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_dummytype_Waldo(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"First\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"Second\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"First\", \"Second\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_enumtype_FruitsBasket(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription: \"FruitsBasket is the type that contains the enum type.\",\n\t\t\t\tType:        []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"content\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDescription: \"Possible enum values:\\n - `\\\"apple\\\"` is the Apple\\n - `\\\"banana\\\"` is the Banana\\n - `\\\"onigiri\\\"` is the Rice ball that does not seem to belong to a fruits basket but has a long comment that is so long that it spans multiple lines\",\n\t\t\t\t\t\t\tDefault:     \"\",\n\t\t\t\t\t\t\tType:        []string{\"string\"},\n\t\t\t\t\t\t\tFormat:      \"\",\n\t\t\t\t\t\t\tEnum:        []interface{}{\"apple\", \"banana\", \"onigiri\"},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"count\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"content\", \"count\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_listtype_AtomicList(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\t\t\"x-kubernetes-list-type\": \"atomic\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType: []string{\"array\"},\n\t\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Field\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_listtype_Item(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Protocol\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"Port\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"a\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"b\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"c\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Protocol\", \"Port\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_listtype_MapList(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\t\t\"x-kubernetes-list-map-keys\": []interface{}{\n\t\t\t\t\t\t\t\t\t\"port\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"x-kubernetes-list-type\": \"map\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType: []string{\"array\"},\n\t\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDefault: map[string]interface{}{},\n\t\t\t\t\t\t\t\t\t\tRef:     ref(\"k8s.io/kube-openapi/test/integration/testdata/listtype.Item\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Field\"},\n\t\t\t},\n\t\t},\n\t\tDependencies: []string{\n\t\t\t\"k8s.io/kube-openapi/test/integration/testdata/listtype.Item\"},\n\t}\n}\n\nfunc schema_test_integration_testdata_listtype_SetList(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\t\t\"x-kubernetes-list-type\": \"set\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType: []string{\"array\"},\n\t\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Field\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_listtype_UntypedList(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType: []string{\"array\"},\n\t\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Field\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_maptype_AtomicMap(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"KeyValue\": {\n\t\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\t\t\"x-kubernetes-map-type\": \"atomic\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType: []string{\"object\"},\n\t\t\t\t\t\t\tAdditionalProperties: &spec.SchemaOrBool{\n\t\t\t\t\t\t\t\tAllows: true,\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"KeyValue\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_maptype_GranularMap(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"KeyValue\": {\n\t\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\t\t\"x-kubernetes-map-type\": \"granular\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType: []string{\"object\"},\n\t\t\t\t\t\t\tAdditionalProperties: &spec.SchemaOrBool{\n\t\t\t\t\t\t\t\tAllows: true,\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"KeyValue\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_structtype_AtomicStruct(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\t\t\"x-kubernetes-map-type\": \"atomic\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: map[string]interface{}{},\n\t\t\t\t\t\t\tRef:     ref(\"k8s.io/kube-openapi/test/integration/testdata/structtype.ContainedStruct\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"OtherField\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Field\", \"OtherField\"},\n\t\t\t},\n\t\t},\n\t\tDependencies: []string{\n\t\t\t\"k8s.io/kube-openapi/test/integration/testdata/structtype.ContainedStruct\"},\n\t}\n}\n\nfunc schema_test_integration_testdata_structtype_ContainedStruct(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_structtype_DeclaredAtomicStruct(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Field\"},\n\t\t\t},\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\"x-kubernetes-map-type\": \"atomic\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_structtype_FieldLevelOverrideStruct(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\t\t\"x-kubernetes-map-type\": \"atomic\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: map[string]interface{}{},\n\t\t\t\t\t\t\tRef:     ref(\"k8s.io/kube-openapi/test/integration/testdata/structtype.DeclaredAtomicStruct\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"OtherField\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Field\", \"OtherField\"},\n\t\t\t},\n\t\t},\n\t\tDependencies: []string{\n\t\t\t\"k8s.io/kube-openapi/test/integration/testdata/structtype.DeclaredAtomicStruct\"},\n\t}\n}\n\nfunc schema_test_integration_testdata_structtype_GranularStruct(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"Field\": {\n\t\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\t\t\"x-kubernetes-map-type\": \"granular\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: map[string]interface{}{},\n\t\t\t\t\t\t\tRef:     ref(\"k8s.io/kube-openapi/test/integration/testdata/structtype.ContainedStruct\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"OtherField\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: 0,\n\t\t\t\t\t\t\tType:    []string{\"integer\"},\n\t\t\t\t\t\t\tFormat:  \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"Field\", \"OtherField\"},\n\t\t\t},\n\t\t},\n\t\tDependencies: []string{\n\t\t\t\"k8s.io/kube-openapi/test/integration/testdata/structtype.ContainedStruct\"},\n\t}\n}\n\nfunc schema_test_integration_testdata_uniontype_InlinedUnion(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"name\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"field1\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"field2\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"unionType\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"fieldA\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"fieldB\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"type\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"alpha\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"beta\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"name\", \"type\"},\n\t\t\t},\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\"x-kubernetes-unions\": []interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"discriminator\": \"unionType\",\n\t\t\t\t\t\t\t\"fields-to-discriminateBy\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"fieldA\": \"FieldA\",\n\t\t\t\t\t\t\t\t\"fieldB\": \"FieldB\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"discriminator\": \"type\",\n\t\t\t\t\t\t\t\"fields-to-discriminateBy\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"alpha\": \"Alpha\",\n\t\t\t\t\t\t\t\t\"beta\":  \"Beta\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"fields-to-discriminateBy\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"field1\": \"Field1\",\n\t\t\t\t\t\t\t\t\"field2\": \"Field2\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_uniontype_TopLevelUnion(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"name\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"unionType\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"fieldA\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"fieldB\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"name\"},\n\t\t\t},\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\"x-kubernetes-unions\": []interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"discriminator\": \"unionType\",\n\t\t\t\t\t\t\t\"fields-to-discriminateBy\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"fieldA\": \"FieldA\",\n\t\t\t\t\t\t\t\t\"fieldB\": \"FieldB\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_uniontype_Union(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"unionType\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"fieldA\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"fieldB\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\"x-kubernetes-unions\": []interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"discriminator\": \"unionType\",\n\t\t\t\t\t\t\t\"fields-to-discriminateBy\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"fieldA\": \"FieldA\",\n\t\t\t\t\t\t\t\t\"fieldB\": \"FieldB\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_uniontype_Union2(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"type\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"alpha\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"beta\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tType:   []string{\"integer\"},\n\t\t\t\t\t\t\tFormat: \"int32\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"type\"},\n\t\t\t},\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\"x-kubernetes-unions\": []interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"discriminator\": \"type\",\n\t\t\t\t\t\t\t\"fields-to-discriminateBy\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"alpha\": \"Alpha\",\n\t\t\t\t\t\t\t\t\"beta\":  \"Beta\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_valuevalidation_Foo(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType:          []string{\"object\"},\n\t\t\t\tMinProperties: ptr.To[int64](1),\n\t\t\t\tMaxProperties: ptr.To[int64](5),\n\t\t\t\tProperties: map[string]spec.Schema{\n\t\t\t\t\t\"StringValue\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault:   \"\",\n\t\t\t\t\t\t\tMinLength: ptr.To[int64](1),\n\t\t\t\t\t\t\tMaxLength: ptr.To[int64](5),\n\t\t\t\t\t\t\tPattern:   \"^a.*b$\",\n\t\t\t\t\t\t\tType:      []string{\"string\"},\n\t\t\t\t\t\t\tFormat:    \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"NumberValue\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault:          0,\n\t\t\t\t\t\t\tMinimum:          ptr.To[float64](1),\n\t\t\t\t\t\t\tMaximum:          ptr.To[float64](5),\n\t\t\t\t\t\t\tExclusiveMinimum: true,\n\t\t\t\t\t\t\tExclusiveMaximum: true,\n\t\t\t\t\t\t\tMultipleOf:       ptr.To[float64](2),\n\t\t\t\t\t\t\tType:             []string{\"number\"},\n\t\t\t\t\t\t\tFormat:           \"double\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"ArrayValue\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tMinItems:    ptr.To[int64](1),\n\t\t\t\t\t\t\tMaxItems:    ptr.To[int64](5),\n\t\t\t\t\t\t\tUniqueItems: true,\n\t\t\t\t\t\t\tType:        []string{\"array\"},\n\t\t\t\t\t\t\tItems: &spec.SchemaOrArray{\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"MapValue\": {\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tMinProperties: ptr.To[int64](1),\n\t\t\t\t\t\t\tMaxProperties: ptr.To[int64](5),\n\t\t\t\t\t\t\tType:          []string{\"object\"},\n\t\t\t\t\t\t\tAdditionalProperties: &spec.SchemaOrBool{\n\t\t\t\t\t\t\t\tAllows: true,\n\t\t\t\t\t\t\t\tSchema: &spec.Schema{\n\t\t\t\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\"celField\": {\n\t\t\t\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{map[string]interface{}{\"message\": \"string message\", \"rule\": \"self.length() > 0\"}, map[string]interface{}{\"messageExpression\": \"self + ' hello'\", \"rule\": \"self.length() % 2 == 0\"}},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\t\t\t\tDefault: \"\",\n\t\t\t\t\t\t\tType:    []string{\"string\"},\n\t\t\t\t\t\t\tFormat:  \"\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRequired: []string{\"StringValue\", \"NumberValue\", \"ArrayValue\", \"MapValue\"},\n\t\t\t},\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{map[string]interface{}{\"message\": \"foo\", \"rule\": \"self == oldSelf\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc schema_test_integration_testdata_valuevalidation_Foo2(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.EmbedOpenAPIDefinitionIntoV2Extension(valuevalidation.Foo2{}.OpenAPIV3Definition(), common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription:   \"This one has an open API v3 definition\",\n\t\t\t\tType:          valuevalidation.Foo2{}.OpenAPISchemaType(),\n\t\t\t\tFormat:        valuevalidation.Foo2{}.OpenAPISchemaFormat(),\n\t\t\t\tMaxProperties: ptr.To[int64](5),\n\t\t\t},\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{map[string]interface{}{\"message\": \"foo2\", \"rule\": \"self == oldSelf\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t})\n}\n\nfunc schema_test_integration_testdata_valuevalidation_Foo3(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.EmbedOpenAPIDefinitionIntoV2Extension(common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription:   \"This one has a OneOf\",\n\t\t\t\tOneOf:         common.GenerateOpenAPIV3OneOfSchema(valuevalidation.Foo3{}.OpenAPIV3OneOfTypes()),\n\t\t\t\tFormat:        valuevalidation.Foo3{}.OpenAPISchemaFormat(),\n\t\t\t\tMaxProperties: ptr.To[int64](5),\n\t\t\t},\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{map[string]interface{}{\"message\": \"foo3\", \"rule\": \"self == oldSelf\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}, common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tDescription:   \"This one has a OneOf\",\n\t\t\t\tType:          valuevalidation.Foo3{}.OpenAPISchemaType(),\n\t\t\t\tFormat:        valuevalidation.Foo3{}.OpenAPISchemaFormat(),\n\t\t\t\tMaxProperties: ptr.To[int64](5),\n\t\t\t},\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{map[string]interface{}{\"message\": \"foo3\", \"rule\": \"self == oldSelf\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t})\n}\n\nfunc schema_test_integration_testdata_valuevalidation_Foo5(ref common.ReferenceCallback) common.OpenAPIDefinition {\n\treturn common.EmbedOpenAPIDefinitionIntoV2Extension(valuevalidation.Foo5{}.OpenAPIV3Definition(), common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType:          valuevalidation.Foo5{}.OpenAPISchemaType(),\n\t\t\t\tFormat:        valuevalidation.Foo5{}.OpenAPISchemaFormat(),\n\t\t\t\tMinProperties: ptr.To[int64](1),\n\t\t\t\tMaxProperties: ptr.To[int64](5),\n\t\t\t},\n\t\t\tVendorExtensible: spec.VendorExtensible{\n\t\t\t\tExtensions: spec.Extensions{\n\t\t\t\t\t\"x-kubernetes-validations\": []interface{}{map[string]interface{}{\"message\": \"foo5\", \"rule\": \"self == oldSelf\"}},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t})\n}\n"
  },
  {
    "path": "test/integration/testdata/aggregator/openapi-0.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.14.0\"},\"paths\":{\"/apis/apiregistration.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration\"],\"operationId\":\"getApiregistrationAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apiregistration.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"getApiregistrationV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apiregistration.k8s.io/v1/apiservices\":{\"get\":{\"description\":\"list or watch objects of kind APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"listApiregistrationV1APIService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}},\"post\":{\"description\":\"create an APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"createApiregistrationV1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}},\"delete\":{\"description\":\"delete collection of APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"deleteApiregistrationV1CollectionAPIService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1/apiservices/{name}\":{\"get\":{\"description\":\"read the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"readApiregistrationV1APIService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}},\"put\":{\"description\":\"replace the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"replaceApiregistrationV1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}},\"delete\":{\"description\":\"delete an APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"deleteApiregistrationV1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}},\"patch\":{\"description\":\"partially update the specified APIService\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"patchApiregistrationV1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the APIService\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1/apiservices/{name}/status\":{\"get\":{\"description\":\"read status of the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"readApiregistrationV1APIServiceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}},\"put\":{\"description\":\"replace status of the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"replaceApiregistrationV1APIServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}},\"patch\":{\"description\":\"partially update status of the specified APIService\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"patchApiregistrationV1APIServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the APIService\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1/watch/apiservices\":{\"get\":{\"description\":\"watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"watchApiregistrationV1APIServiceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1/watch/apiservices/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"watchApiregistrationV1APIService\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the APIService\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"getApiregistrationV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apiregistration.k8s.io/v1beta1/apiservices\":{\"get\":{\"description\":\"list or watch objects of kind APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"listApiregistrationV1beta1APIService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}},\"post\":{\"description\":\"create an APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"createApiregistrationV1beta1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}},\"delete\":{\"description\":\"delete collection of APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"deleteApiregistrationV1beta1CollectionAPIService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}\":{\"get\":{\"description\":\"read the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"readApiregistrationV1beta1APIService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}},\"put\":{\"description\":\"replace the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"replaceApiregistrationV1beta1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}},\"delete\":{\"description\":\"delete an APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"deleteApiregistrationV1beta1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}},\"patch\":{\"description\":\"partially update the specified APIService\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"patchApiregistrationV1beta1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the APIService\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status\":{\"get\":{\"description\":\"read status of the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"readApiregistrationV1beta1APIServiceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}},\"put\":{\"description\":\"replace status of the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"replaceApiregistrationV1beta1APIServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}},\"patch\":{\"description\":\"partially update status of the specified APIService\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"patchApiregistrationV1beta1APIServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the APIService\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1beta1/watch/apiservices\":{\"get\":{\"description\":\"watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"watchApiregistrationV1beta1APIServiceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"watchApiregistrationV1beta1APIService\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the APIService\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/version/\":{\"get\":{\"description\":\"get the code version\",\"consumes\":[\"application/json\"],\"produces\":[\"application/json\"],\"schemes\":[\"https\"],\"tags\":[\"version\"],\"operationId\":\"getCodeVersion\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.version.Info\"}},\"401\":{\"description\":\"Unauthorized\"}}}}},\"definitions\":{\"io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\":{\"description\":\"APIGroup contains the name, the supported versions, and the preferred version of a group.\",\"required\":[\"name\",\"versions\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"name\":{\"description\":\"name is the name of the group.\",\"type\":\"string\"},\"preferredVersion\":{\"description\":\"preferredVersion is the version preferred by the API server, which probably is the storage version.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\"}},\"versions\":{\"description\":\"versions are the versions supported in this group.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"version\":\"v1\",\"kind\":\"APIGroup\"}]},\"io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"},\"verbs\":{\"description\":\"verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"}}},\"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.\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/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/api-conventions.md#types-kinds\",\"type\":\"string\"},\"resources\":{\"description\":\"resources contains the name of the resources and if they are namespaced.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"version\":\"v1\",\"kind\":\"APIResourceList\"}]},\"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/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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"version\":\"v1\",\"kind\":\"DeleteOptions\"},{\"group\":\"admission.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"admissionregistration.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"DeleteOptions\"},{\"group\":\"admissionregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"DeleteOptions\"},{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"apps\",\"version\":\"v1\",\"kind\":\"DeleteOptions\"},{\"group\":\"apps\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"apps\",\"version\":\"v1beta2\",\"kind\":\"DeleteOptions\"},{\"group\":\"auditregistration.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"DeleteOptions\"},{\"group\":\"authentication.k8s.io\",\"version\":\"v1\",\"kind\":\"DeleteOptions\"},{\"group\":\"authentication.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"authorization.k8s.io\",\"version\":\"v1\",\"kind\":\"DeleteOptions\"},{\"group\":\"authorization.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"autoscaling\",\"version\":\"v1\",\"kind\":\"DeleteOptions\"},{\"group\":\"autoscaling\",\"version\":\"v2beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"autoscaling\",\"version\":\"v2beta2\",\"kind\":\"DeleteOptions\"},{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"DeleteOptions\"},{\"group\":\"batch\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"batch\",\"version\":\"v2alpha1\",\"kind\":\"DeleteOptions\"},{\"group\":\"certificates.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"coordination.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"events.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"extensions\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"imagepolicy.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"DeleteOptions\"},{\"group\":\"networking.k8s.io\",\"version\":\"v1\",\"kind\":\"DeleteOptions\"},{\"group\":\"policy\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"rbac.authorization.k8s.io\",\"version\":\"v1\",\"kind\":\"DeleteOptions\"},{\"group\":\"rbac.authorization.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"DeleteOptions\"},{\"group\":\"rbac.authorization.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"scheduling.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"DeleteOptions\"},{\"group\":\"scheduling.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"},{\"group\":\"settings.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"DeleteOptions\"},{\"group\":\"storage.k8s.io\",\"version\":\"v1\",\"kind\":\"DeleteOptions\"},{\"group\":\"storage.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"DeleteOptions\"},{\"group\":\"storage.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"DeleteOptions\"}]},\"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.\",\"required\":[\"groupVersion\",\"version\"],\"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\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Initializer\":{\"description\":\"Initializer is information about an initializer that has not yet completed.\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"name of the process that is responsible for initializing this object.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Initializers\":{\"description\":\"Initializers tracks the progress of initialization.\",\"required\":[\"pending\"],\"properties\":{\"pending\":{\"description\":\"Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializer\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"result\":{\"description\":\"If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}},\"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\"},\"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/api-conventions.md#concurrency-control-and-consistency\",\"type\":\"string\"},\"selfLink\":{\"description\":\"selfLink is a URL representing this object. Populated by the system. Read-only.\",\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"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\":{\"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/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"},\"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/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"initializers\":{\"description\":\"An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\\n\\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializers\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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/api-conventions.md#concurrency-control-and-consistency\",\"type\":\"string\"},\"selfLink\":{\"description\":\"SelfLink is a URL representing this object. Populated by the system. Read-only.\",\"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\"}}},\"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.\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. 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/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\"}}},\"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.\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\":{\"description\":\"Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\",\"properties\":{\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"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.\",\"required\":[\"clientCIDR\",\"serverAddress\"],\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"message\":{\"description\":\"A human-readable description of the status of this operation.\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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/api-conventions.md#spec-and-status\",\"type\":\"string\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"version\":\"v1\",\"kind\":\"Status\"}]},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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/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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"type\":{\"type\":\"string\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"version\":\"v1\",\"kind\":\"WatchEvent\"},{\"group\":\"admission.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"admissionregistration.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"WatchEvent\"},{\"group\":\"admissionregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"apiextensions.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"WatchEvent\"},{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"apps\",\"version\":\"v1\",\"kind\":\"WatchEvent\"},{\"group\":\"apps\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"apps\",\"version\":\"v1beta2\",\"kind\":\"WatchEvent\"},{\"group\":\"auditregistration.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"WatchEvent\"},{\"group\":\"authentication.k8s.io\",\"version\":\"v1\",\"kind\":\"WatchEvent\"},{\"group\":\"authentication.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"authorization.k8s.io\",\"version\":\"v1\",\"kind\":\"WatchEvent\"},{\"group\":\"authorization.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"autoscaling\",\"version\":\"v1\",\"kind\":\"WatchEvent\"},{\"group\":\"autoscaling\",\"version\":\"v2beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"autoscaling\",\"version\":\"v2beta2\",\"kind\":\"WatchEvent\"},{\"group\":\"batch\",\"version\":\"v1\",\"kind\":\"WatchEvent\"},{\"group\":\"batch\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"batch\",\"version\":\"v2alpha1\",\"kind\":\"WatchEvent\"},{\"group\":\"certificates.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"coordination.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"events.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"extensions\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"imagepolicy.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"WatchEvent\"},{\"group\":\"networking.k8s.io\",\"version\":\"v1\",\"kind\":\"WatchEvent\"},{\"group\":\"policy\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"rbac.authorization.k8s.io\",\"version\":\"v1\",\"kind\":\"WatchEvent\"},{\"group\":\"rbac.authorization.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"WatchEvent\"},{\"group\":\"rbac.authorization.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"scheduling.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"WatchEvent\"},{\"group\":\"scheduling.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"},{\"group\":\"settings.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"WatchEvent\"},{\"group\":\"storage.k8s.io\",\"version\":\"v1\",\"kind\":\"WatchEvent\"},{\"group\":\"storage.k8s.io\",\"version\":\"v1alpha1\",\"kind\":\"WatchEvent\"},{\"group\":\"storage.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"WatchEvent\"}]},\"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.)\",\"required\":[\"Raw\"],\"properties\":{\"Raw\":{\"description\":\"Raw is the underlying serialization of this object.\",\"type\":\"string\",\"format\":\"byte\"}}},\"io.k8s.apimachinery.pkg.version.Info\":{\"description\":\"Info contains versioning information. how we'll want to distribute that information.\",\"required\":[\"major\",\"minor\",\"gitVersion\",\"gitCommit\",\"gitTreeState\",\"buildDate\",\"goVersion\",\"compiler\",\"platform\"],\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec contains information for locating and communicating with a server\",\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec\"},\"status\":{\"description\":\"Status contains derived information about an API server\",\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIService\"}]},\"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition\":{\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList\":{\"description\":\"APIServiceList is a list of APIService objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1\",\"kind\":\"APIServiceList\"}]},\"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.\",\"required\":[\"service\",\"groupPriorityMinimum\",\"versionPriority\"],\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec contains information for locating and communicating with a server\",\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec\"},\"status\":{\"description\":\"Status contains derived information about an API server\",\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIService\"}]},\"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition\":{\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList\":{\"description\":\"APIServiceList is a list of APIService objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apiregistration.k8s.io\",\"version\":\"v1beta1\",\"kind\":\"APIServiceList\"}]},\"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.\",\"required\":[\"service\",\"groupPriorityMinimum\",\"versionPriority\"],\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\"}}}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "test/integration/testdata/aggregator/openapi-1.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.14.0\"},\"paths\":{\"/api/\":{\"get\":{\"description\":\"get available API versions\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core\"],\"operationId\":\"getCoreAPIVersions\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/api/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"getCoreV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/api/v1/componentstatuses\":{\"get\":{\"description\":\"list objects of kind ComponentStatus\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ComponentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatusList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ComponentStatus\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/componentstatuses/{name}\":{\"get\":{\"description\":\"read the specified ComponentStatus\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1ComponentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatus\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ComponentStatus\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ComponentStatus\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/configmaps\":{\"get\":{\"description\":\"list or watch objects of kind ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ConfigMapForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/endpoints\":{\"get\":{\"description\":\"list or watch objects of kind Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1EndpointsForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointsList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/events\":{\"get\":{\"description\":\"list or watch objects of kind Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1EventForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/limitranges\":{\"get\":{\"description\":\"list or watch objects of kind LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1LimitRangeForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/namespaces\":{\"get\":{\"description\":\"list or watch objects of kind Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1Namespace\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1Namespace\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/bindings\":{\"post\":{\"description\":\"create a Binding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Binding\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Binding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/configmaps\":{\"get\":{\"description\":\"list or watch objects of kind ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedConfigMap\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedConfigMap\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/configmaps/{name}\":{\"get\":{\"description\":\"read the specified ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedConfigMap\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ConfigMap\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ConfigMap\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/endpoints\":{\"get\":{\"description\":\"list or watch objects of kind Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedEndpoints\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointsList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"post\":{\"description\":\"create Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedEndpoints\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/endpoints/{name}\":{\"get\":{\"description\":\"read the specified Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedEndpoints\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Endpoints\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Endpoints\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/events\":{\"get\":{\"description\":\"list or watch objects of kind Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"post\":{\"description\":\"create an Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/events/{name}\":{\"get\":{\"description\":\"read the specified Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete an Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Event\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Event\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/limitranges\":{\"get\":{\"description\":\"list or watch objects of kind LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedLimitRange\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedLimitRange\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/limitranges/{name}\":{\"get\":{\"description\":\"read the specified LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedLimitRange\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified LimitRange\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the LimitRange\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims\":{\"get\":{\"description\":\"list or watch objects of kind PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedPersistentVolumeClaim\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}\":{\"get\":{\"description\":\"read the specified PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified PersistentVolumeClaim\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolumeClaim\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status\":{\"get\":{\"description\":\"read status of the specified PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPersistentVolumeClaimStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPersistentVolumeClaimStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified PersistentVolumeClaim\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPersistentVolumeClaimStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolumeClaim\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods\":{\"get\":{\"description\":\"list or watch objects of kind Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedPod\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedPod\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}\":{\"get\":{\"description\":\"read the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPod\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Pod\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/attach\":{\"get\":{\"description\":\"connect GET requests to attach of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodAttach\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodAttachOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to attach of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodAttach\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodAttachOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\"name\":\"container\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodAttachOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.\",\"name\":\"stderr\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.\",\"name\":\"stdin\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.\",\"name\":\"stdout\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"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.\",\"name\":\"tty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/binding\":{\"post\":{\"description\":\"create binding of a Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPodBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Binding\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Binding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Binding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/eviction\":{\"post\":{\"description\":\"create eviction of a Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPodEviction\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.Eviction\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"Eviction\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Eviction\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/exec\":{\"get\":{\"description\":\"connect GET requests to exec of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodExec\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodExecOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to exec of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodExec\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodExecOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Command is the remote command to execute. argv array. Not executed within a shell.\",\"name\":\"command\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\"name\":\"container\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodExecOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Redirect the standard error stream of the pod for this call. Defaults to true.\",\"name\":\"stderr\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Redirect the standard input stream of the pod for this call. Defaults to false.\",\"name\":\"stdin\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Redirect the standard output stream of the pod for this call. Defaults to true.\",\"name\":\"stdout\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.\",\"name\":\"tty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/log\":{\"get\":{\"description\":\"read log of the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"text/plain\",\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPodLog\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The container for which to stream logs. Defaults to only container if there is one container in the pod.\",\"name\":\"container\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Follow the log stream of the pod. Defaults to false.\",\"name\":\"follow\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"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.\",\"name\":\"limitBytes\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Return previous terminated container logs. Defaults to false.\",\"name\":\"previous\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"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.\",\"name\":\"sinceSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"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\",\"name\":\"tailLines\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.\",\"name\":\"timestamps\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/portforward\":{\"get\":{\"description\":\"connect GET requests to portforward of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodPortforward\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodPortForwardOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to portforward of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodPortforward\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodPortForwardOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodPortForwardOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"List of ports to forward Required when using WebSockets\",\"name\":\"ports\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/proxy\":{\"get\":{\"description\":\"connect GET requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Path is the URL path to use for the current proxy request to pod.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}\":{\"get\":{\"description\":\"connect GET requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"path to the resource\",\"name\":\"path\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Path is the URL path to use for the current proxy request to pod.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/status\":{\"get\":{\"description\":\"read status of the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPodStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPodStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified Pod\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPodStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/podtemplates\":{\"get\":{\"description\":\"list or watch objects of kind PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedPodTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedPodTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/podtemplates/{name}\":{\"get\":{\"description\":\"read the specified PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPodTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified PodTemplate\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodTemplate\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers\":{\"get\":{\"description\":\"list or watch objects of kind ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedReplicationController\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedReplicationController\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}\":{\"get\":{\"description\":\"read the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedReplicationController\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ReplicationController\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicationController\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedReplicationControllerScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace scale of the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedReplicationControllerScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update scale of the specified ReplicationController\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedReplicationControllerScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status\":{\"get\":{\"description\":\"read status of the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedReplicationControllerStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedReplicationControllerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified ReplicationController\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedReplicationControllerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicationController\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/resourcequotas\":{\"get\":{\"description\":\"list or watch objects of kind ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedResourceQuota\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedResourceQuota\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/resourcequotas/{name}\":{\"get\":{\"description\":\"read the specified ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedResourceQuota\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ResourceQuota\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ResourceQuota\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/resourcequotas/{name}/status\":{\"get\":{\"description\":\"read status of the specified ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedResourceQuotaStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedResourceQuotaStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified ResourceQuota\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedResourceQuotaStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ResourceQuota\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/secrets\":{\"get\":{\"description\":\"list or watch objects of kind Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedSecret\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedSecret\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/secrets/{name}\":{\"get\":{\"description\":\"read the specified Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedSecret\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Secret\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Secret\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/serviceaccounts\":{\"get\":{\"description\":\"list or watch objects of kind ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedServiceAccount\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccountList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedServiceAccount\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/serviceaccounts/{name}\":{\"get\":{\"description\":\"read the specified ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedServiceAccount\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ServiceAccount\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ServiceAccount\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services\":{\"get\":{\"description\":\"list or watch objects of kind Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services/{name}\":{\"get\":{\"description\":\"read the specified Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Service\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Service\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services/{name}/proxy\":{\"get\":{\"description\":\"connect GET requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ServiceProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"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.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}\":{\"get\":{\"description\":\"connect GET requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ServiceProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"path to the resource\",\"name\":\"path\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"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.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services/{name}/status\":{\"get\":{\"description\":\"read status of the specified Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedServiceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified Service\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Service\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{name}\":{\"get\":{\"description\":\"read the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1Namespace\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1Namespace\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1Namespace\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Namespace\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1Namespace\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Namespace\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{name}/finalize\":{\"put\":{\"description\":\"replace finalize of the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespaceFinalize\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Namespace\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{name}/status\":{\"get\":{\"description\":\"read status of the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespaceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespaceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified Namespace\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespaceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Namespace\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/nodes\":{\"get\":{\"description\":\"list or watch objects of kind Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1Node\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1Node\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNode\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/nodes/{name}\":{\"get\":{\"description\":\"read the specified Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1Node\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1Node\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1Node\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Node\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1Node\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Node\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/nodes/{name}/proxy\":{\"get\":{\"description\":\"connect GET requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NodeProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Path is the URL path to use for the current proxy request to node.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/nodes/{name}/proxy/{path}\":{\"get\":{\"description\":\"connect GET requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NodeProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"path to the resource\",\"name\":\"path\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Path is the URL path to use for the current proxy request to node.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/nodes/{name}/status\":{\"get\":{\"description\":\"read status of the specified Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NodeStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NodeStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified Node\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NodeStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Node\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/persistentvolumeclaims\":{\"get\":{\"description\":\"list or watch objects of kind PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1PersistentVolumeClaimForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/persistentvolumes\":{\"get\":{\"description\":\"list or watch objects of kind PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1PersistentVolume\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionPersistentVolume\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/persistentvolumes/{name}\":{\"get\":{\"description\":\"read the specified PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1PersistentVolume\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified PersistentVolume\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolume\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/persistentvolumes/{name}/status\":{\"get\":{\"description\":\"read status of the specified PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1PersistentVolumeStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1PersistentVolumeStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified PersistentVolume\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1PersistentVolumeStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolume\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/pods\":{\"get\":{\"description\":\"list or watch objects of kind Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1PodForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/podtemplates\":{\"get\":{\"description\":\"list or watch objects of kind PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1PodTemplateForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/replicationcontrollers\":{\"get\":{\"description\":\"list or watch objects of kind ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ReplicationControllerForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/resourcequotas\":{\"get\":{\"description\":\"list or watch objects of kind ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ResourceQuotaForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/secrets\":{\"get\":{\"description\":\"list or watch objects of kind Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1SecretForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/serviceaccounts\":{\"get\":{\"description\":\"list or watch objects of kind ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ServiceAccountForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccountList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/services\":{\"get\":{\"description\":\"list or watch objects of kind Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ServiceForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/configmaps\":{\"get\":{\"description\":\"watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ConfigMapListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/endpoints\":{\"get\":{\"description\":\"watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1EndpointsListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/events\":{\"get\":{\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1EventListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/limitranges\":{\"get\":{\"description\":\"watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1LimitRangeListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces\":{\"get\":{\"description\":\"watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespaceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/configmaps\":{\"get\":{\"description\":\"watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedConfigMapList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/configmaps/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedConfigMap\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ConfigMap\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/endpoints\":{\"get\":{\"description\":\"watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedEndpointsList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/endpoints/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedEndpoints\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Endpoints\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/events\":{\"get\":{\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedEventList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/events/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedEvent\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Event\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/limitranges\":{\"get\":{\"description\":\"watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedLimitRangeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/limitranges/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedLimitRange\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the LimitRange\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims\":{\"get\":{\"description\":\"watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPersistentVolumeClaimList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPersistentVolumeClaim\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolumeClaim\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/pods\":{\"get\":{\"description\":\"watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPodList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/pods/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPod\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/podtemplates\":{\"get\":{\"description\":\"watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPodTemplateList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/podtemplates/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPodTemplate\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodTemplate\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/replicationcontrollers\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedReplicationControllerList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedReplicationController\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicationController\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/resourcequotas\":{\"get\":{\"description\":\"watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedResourceQuotaList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedResourceQuota\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ResourceQuota\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/secrets\":{\"get\":{\"description\":\"watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedSecretList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/secrets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedSecret\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Secret\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/serviceaccounts\":{\"get\":{\"description\":\"watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedServiceAccountList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedServiceAccount\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ServiceAccount\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/services\":{\"get\":{\"description\":\"watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedServiceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/services/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedService\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Service\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1Namespace\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Namespace\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/nodes\":{\"get\":{\"description\":\"watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NodeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/nodes/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1Node\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Node\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/persistentvolumeclaims\":{\"get\":{\"description\":\"watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PersistentVolumeClaimListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/persistentvolumes\":{\"get\":{\"description\":\"watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PersistentVolumeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/persistentvolumes/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PersistentVolume\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolume\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/pods\":{\"get\":{\"description\":\"watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PodListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/podtemplates\":{\"get\":{\"description\":\"watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PodTemplateListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/replicationcontrollers\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ReplicationControllerListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/resourcequotas\":{\"get\":{\"description\":\"watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ResourceQuotaListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/secrets\":{\"get\":{\"description\":\"watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1SecretListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/serviceaccounts\":{\"get\":{\"description\":\"watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ServiceAccountListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/services\":{\"get\":{\"description\":\"watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ServiceListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/\":{\"get\":{\"description\":\"get available API versions\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apis\"],\"operationId\":\"getAPIVersions\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/admissionregistration.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration\"],\"operationId\":\"getAdmissionregistrationAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/admissionregistration.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"getAdmissionregistrationV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations\":{\"get\":{\"description\":\"list or watch objects of kind MutatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"listAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a MutatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"createAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of MutatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"deleteAdmissionregistrationV1beta1CollectionMutatingWebhookConfiguration\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}\":{\"get\":{\"description\":\"read the specified MutatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"readAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified MutatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"replaceAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a MutatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"deleteAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified MutatingWebhookConfiguration\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"patchAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the MutatingWebhookConfiguration\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations\":{\"get\":{\"description\":\"list or watch objects of kind ValidatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"listAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a ValidatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"createAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of ValidatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"deleteAdmissionregistrationV1beta1CollectionValidatingWebhookConfiguration\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}\":{\"get\":{\"description\":\"read the specified ValidatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"readAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified ValidatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"replaceAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a ValidatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"deleteAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified ValidatingWebhookConfiguration\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"patchAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ValidatingWebhookConfiguration\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations\":{\"get\":{\"description\":\"watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"watchAdmissionregistrationV1beta1MutatingWebhookConfigurationList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"watchAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the MutatingWebhookConfiguration\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations\":{\"get\":{\"description\":\"watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"watchAdmissionregistrationV1beta1ValidatingWebhookConfigurationList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"watchAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ValidatingWebhookConfiguration\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps\"],\"operationId\":\"getAppsAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apps/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"getAppsV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apps/v1/controllerrevisions\":{\"get\":{\"description\":\"list or watch objects of kind ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1ControllerRevisionForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevisionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/daemonsets\":{\"get\":{\"description\":\"list or watch objects of kind DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1DaemonSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1DeploymentForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"description\":\"list or watch objects of kind ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1NamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevisionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"createAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1CollectionNamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"description\":\"read the specified ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ControllerRevision\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ControllerRevision\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/daemonsets\":{\"get\":{\"description\":\"list or watch objects of kind DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1NamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"createAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1CollectionNamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"description\":\"read the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified DaemonSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status\":{\"get\":{\"description\":\"read status of the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedDaemonSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified DaemonSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"createAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1CollectionNamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"description\":\"read the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedDeploymentScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update scale of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status\":{\"get\":{\"description\":\"read status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedDeploymentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/replicasets\":{\"get\":{\"description\":\"list or watch objects of kind ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1NamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"createAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1CollectionNamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"description\":\"read the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedReplicaSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace scale of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update scale of the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status\":{\"get\":{\"description\":\"read status of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedReplicaSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/statefulsets\":{\"get\":{\"description\":\"list or watch objects of kind StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1NamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"createAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1CollectionNamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"description\":\"read the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedStatefulSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace scale of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update scale of the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status\":{\"get\":{\"description\":\"read status of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedStatefulSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/replicasets\":{\"get\":{\"description\":\"list or watch objects of kind ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1ReplicaSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/statefulsets\":{\"get\":{\"description\":\"list or watch objects of kind StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1StatefulSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/controllerrevisions\":{\"get\":{\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1ControllerRevisionListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/daemonsets\":{\"get\":{\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1DaemonSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1DeploymentListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedControllerRevisionList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedControllerRevision\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ControllerRevision\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/daemonsets\":{\"get\":{\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedDaemonSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedDaemonSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedDeploymentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedDeployment\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/replicasets\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedReplicaSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedReplicaSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/statefulsets\":{\"get\":{\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedStatefulSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedStatefulSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/replicasets\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1ReplicaSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/statefulsets\":{\"get\":{\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1StatefulSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"getAppsV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apps/v1beta1/controllerrevisions\":{\"get\":{\"description\":\"list or watch objects of kind ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"listAppsV1beta1ControllerRevisionForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"listAppsV1beta1DeploymentForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"description\":\"list or watch objects of kind ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"listAppsV1beta1NamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"createAppsV1beta1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"deleteAppsV1beta1CollectionNamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"description\":\"read the specified ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"deleteAppsV1beta1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified ControllerRevision\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ControllerRevision\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"listAppsV1beta1NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"createAppsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"deleteAppsV1beta1CollectionNamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"description\":\"read the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"deleteAppsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/rollback\":{\"post\":{\"description\":\"create rollback of a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"createAppsV1beta1NamespacedDeploymentRollback\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback\"}}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DeploymentRollback\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DeploymentRollback\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedDeploymentScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update scale of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/status\":{\"get\":{\"description\":\"read status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedDeploymentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/statefulsets\":{\"get\":{\"description\":\"list or watch objects of kind StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"listAppsV1beta1NamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"createAppsV1beta1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"deleteAppsV1beta1CollectionNamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"description\":\"read the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"deleteAppsV1beta1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedStatefulSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace scale of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update scale of the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/status\":{\"get\":{\"description\":\"read status of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedStatefulSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/statefulsets\":{\"get\":{\"description\":\"list or watch objects of kind StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"listAppsV1beta1StatefulSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/controllerrevisions\":{\"get\":{\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1ControllerRevisionListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1DeploymentListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1NamespacedControllerRevisionList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1NamespacedControllerRevision\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ControllerRevision\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1NamespacedDeploymentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1NamespacedDeployment\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets\":{\"get\":{\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1NamespacedStatefulSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1NamespacedStatefulSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/statefulsets\":{\"get\":{\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1StatefulSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"getAppsV1beta2APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apps/v1beta2/controllerrevisions\":{\"get\":{\"description\":\"list or watch objects of kind ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2ControllerRevisionForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevisionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/daemonsets\":{\"get\":{\"description\":\"list or watch objects of kind DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2DaemonSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2DeploymentForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"description\":\"list or watch objects of kind ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2NamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevisionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"post\":{\"description\":\"create a ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"createAppsV1beta2NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete collection of ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2CollectionNamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"description\":\"read the specified ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace the specified ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete a ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update the specified ControllerRevision\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ControllerRevision\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/daemonsets\":{\"get\":{\"description\":\"list or watch objects of kind DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2NamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"post\":{\"description\":\"create a DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"createAppsV1beta2NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete collection of DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2CollectionNamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"description\":\"read the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete a DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update the specified DaemonSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}/status\":{\"get\":{\"description\":\"read status of the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedDaemonSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace status of the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update status of the specified DaemonSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"post\":{\"description\":\"create a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"createAppsV1beta2NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete collection of Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2CollectionNamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"description\":\"read the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedDeploymentScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update scale of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status\":{\"get\":{\"description\":\"read status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedDeploymentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update status of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/replicasets\":{\"get\":{\"description\":\"list or watch objects of kind ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2NamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"post\":{\"description\":\"create a ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"createAppsV1beta2NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete collection of ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2CollectionNamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"description\":\"read the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete a ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedReplicaSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace scale of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update scale of the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status\":{\"get\":{\"description\":\"read status of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedReplicaSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace status of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update status of the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/statefulsets\":{\"get\":{\"description\":\"list or watch objects of kind StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2NamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"post\":{\"description\":\"create a StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"createAppsV1beta2NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete collection of StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2CollectionNamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"description\":\"read the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete a StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedStatefulSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace scale of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update scale of the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status\":{\"get\":{\"description\":\"read status of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedStatefulSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace status of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update status of the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/replicasets\":{\"get\":{\"description\":\"list or watch objects of kind ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2ReplicaSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/statefulsets\":{\"get\":{\"description\":\"list or watch objects of kind StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2StatefulSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/controllerrevisions\":{\"get\":{\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2ControllerRevisionListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/daemonsets\":{\"get\":{\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2DaemonSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2DeploymentListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedControllerRevisionList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedControllerRevision\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ControllerRevision\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets\":{\"get\":{\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedDaemonSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedDaemonSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedDeploymentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedDeployment\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedReplicaSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedReplicaSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets\":{\"get\":{\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedStatefulSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedStatefulSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/replicasets\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2ReplicaSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/statefulsets\":{\"get\":{\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2StatefulSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/authentication.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authentication\"],\"operationId\":\"getAuthenticationAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/authentication.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authentication_v1\"],\"operationId\":\"getAuthenticationV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/authentication.k8s.io/v1/tokenreviews\":{\"post\":{\"description\":\"create a TokenReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authentication_v1\"],\"operationId\":\"createAuthenticationV1TokenReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authentication.k8s.io\",\"kind\":\"TokenReview\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authentication.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authentication_v1beta1\"],\"operationId\":\"getAuthenticationV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/authentication.k8s.io/v1beta1/tokenreviews\":{\"post\":{\"description\":\"create a TokenReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authentication_v1beta1\"],\"operationId\":\"createAuthenticationV1beta1TokenReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.TokenReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authentication.k8s.io\",\"kind\":\"TokenReview\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization\"],\"operationId\":\"getAuthorizationAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/authorization.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1\"],\"operationId\":\"getAuthorizationV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews\":{\"post\":{\"description\":\"create a LocalSubjectAccessReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1\"],\"operationId\":\"createAuthorizationV1NamespacedLocalSubjectAccessReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"LocalSubjectAccessReview\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1/selfsubjectaccessreviews\":{\"post\":{\"description\":\"create a SelfSubjectAccessReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1\"],\"operationId\":\"createAuthorizationV1SelfSubjectAccessReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"SelfSubjectAccessReview\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1/selfsubjectrulesreviews\":{\"post\":{\"description\":\"create a SelfSubjectRulesReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1\"],\"operationId\":\"createAuthorizationV1SelfSubjectRulesReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"SelfSubjectRulesReview\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1/subjectaccessreviews\":{\"post\":{\"description\":\"create a SubjectAccessReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1\"],\"operationId\":\"createAuthorizationV1SubjectAccessReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"SubjectAccessReview\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1beta1\"],\"operationId\":\"getAuthorizationV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews\":{\"post\":{\"description\":\"create a LocalSubjectAccessReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1beta1\"],\"operationId\":\"createAuthorizationV1beta1NamespacedLocalSubjectAccessReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"LocalSubjectAccessReview\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews\":{\"post\":{\"description\":\"create a SelfSubjectAccessReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1beta1\"],\"operationId\":\"createAuthorizationV1beta1SelfSubjectAccessReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"SelfSubjectAccessReview\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews\":{\"post\":{\"description\":\"create a SelfSubjectRulesReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1beta1\"],\"operationId\":\"createAuthorizationV1beta1SelfSubjectRulesReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"SelfSubjectRulesReview\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1beta1/subjectaccessreviews\":{\"post\":{\"description\":\"create a SubjectAccessReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1beta1\"],\"operationId\":\"createAuthorizationV1beta1SubjectAccessReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"SubjectAccessReview\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling\"],\"operationId\":\"getAutoscalingAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/autoscaling/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"getAutoscalingV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/autoscaling/v1/horizontalpodautoscalers\":{\"get\":{\"description\":\"list or watch objects of kind HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers\":{\"get\":{\"description\":\"list or watch objects of kind HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"listAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"createAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}\":{\"get\":{\"description\":\"read the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"readAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"replaceAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"deleteAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified HorizontalPodAutoscaler\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"patchAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status\":{\"get\":{\"description\":\"read status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v1/watch/horizontalpodautoscalers\":{\"get\":{\"description\":\"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers\":{\"get\":{\"description\":\"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"watchAutoscalingV1NamespacedHorizontalPodAutoscalerList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"watchAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"getAutoscalingV2beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/autoscaling/v2beta1/horizontalpodautoscalers\":{\"get\":{\"description\":\"list or watch objects of kind HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers\":{\"get\":{\"description\":\"list or watch objects of kind HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"listAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"post\":{\"description\":\"create a HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"createAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"delete\":{\"description\":\"delete collection of HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"deleteAutoscalingV2beta1CollectionNamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}\":{\"get\":{\"description\":\"read the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"readAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"put\":{\"description\":\"replace the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"delete\":{\"description\":\"delete a HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"deleteAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"patch\":{\"description\":\"partially update the specified HorizontalPodAutoscaler\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"patchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status\":{\"get\":{\"description\":\"read status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"readAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"put\":{\"description\":\"replace status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"patch\":{\"description\":\"partially update status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"patchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/watch/horizontalpodautoscalers\":{\"get\":{\"description\":\"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"watchAutoscalingV2beta1HorizontalPodAutoscalerListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers\":{\"get\":{\"description\":\"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"watchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"watchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"getAutoscalingV2beta2APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/autoscaling/v2beta2/horizontalpodautoscalers\":{\"get\":{\"description\":\"list or watch objects of kind HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"listAutoscalingV2beta2HorizontalPodAutoscalerForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers\":{\"get\":{\"description\":\"list or watch objects of kind HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"listAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"post\":{\"description\":\"create a HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"createAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"delete\":{\"description\":\"delete collection of HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"deleteAutoscalingV2beta2CollectionNamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}\":{\"get\":{\"description\":\"read the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"readAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"put\":{\"description\":\"replace the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"delete\":{\"description\":\"delete a HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"deleteAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"patch\":{\"description\":\"partially update the specified HorizontalPodAutoscaler\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"patchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status\":{\"get\":{\"description\":\"read status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"readAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"put\":{\"description\":\"replace status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"patch\":{\"description\":\"partially update status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"patchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/watch/horizontalpodautoscalers\":{\"get\":{\"description\":\"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"watchAutoscalingV2beta2HorizontalPodAutoscalerListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers\":{\"get\":{\"description\":\"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"watchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"watchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch\"],\"operationId\":\"getBatchAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/batch/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"getBatchV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/batch/v1/jobs\":{\"get\":{\"description\":\"list or watch objects of kind Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"listBatchV1JobForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/namespaces/{namespace}/jobs\":{\"get\":{\"description\":\"list or watch objects of kind Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"listBatchV1NamespacedJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"createBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"deleteBatchV1CollectionNamespacedJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1/namespaces/{namespace}/jobs/{name}\":{\"get\":{\"description\":\"read the specified Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"readBatchV1NamespacedJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"replaceBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"deleteBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Job\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"patchBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Job\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status\":{\"get\":{\"description\":\"read status of the specified Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"readBatchV1NamespacedJobStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"replaceBatchV1NamespacedJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified Job\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"patchBatchV1NamespacedJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Job\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1/watch/jobs\":{\"get\":{\"description\":\"watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"watchBatchV1JobListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/watch/namespaces/{namespace}/jobs\":{\"get\":{\"description\":\"watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"watchBatchV1NamespacedJobList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"watchBatchV1NamespacedJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Job\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"getBatchV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/batch/v1beta1/cronjobs\":{\"get\":{\"description\":\"list or watch objects of kind CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"listBatchV1beta1CronJobForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/namespaces/{namespace}/cronjobs\":{\"get\":{\"description\":\"list or watch objects of kind CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"listBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"createBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"deleteBatchV1beta1CollectionNamespacedCronJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}\":{\"get\":{\"description\":\"read the specified CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"readBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"replaceBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"deleteBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified CronJob\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"patchBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CronJob\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status\":{\"get\":{\"description\":\"read status of the specified CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"readBatchV1beta1NamespacedCronJobStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"replaceBatchV1beta1NamespacedCronJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified CronJob\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"patchBatchV1beta1NamespacedCronJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CronJob\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/watch/cronjobs\":{\"get\":{\"description\":\"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"watchBatchV1beta1CronJobListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs\":{\"get\":{\"description\":\"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"watchBatchV1beta1NamespacedCronJobList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"watchBatchV1beta1NamespacedCronJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CronJob\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/certificates.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates\"],\"operationId\":\"getCertificatesAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/certificates.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"getCertificatesV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/certificates.k8s.io/v1beta1/certificatesigningrequests\":{\"get\":{\"description\":\"list or watch objects of kind CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"listCertificatesV1beta1CertificateSigningRequest\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"createCertificatesV1beta1CertificateSigningRequest\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"deleteCertificatesV1beta1CollectionCertificateSigningRequest\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}\":{\"get\":{\"description\":\"read the specified CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"readCertificatesV1beta1CertificateSigningRequest\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"replaceCertificatesV1beta1CertificateSigningRequest\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"deleteCertificatesV1beta1CertificateSigningRequest\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified CertificateSigningRequest\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"patchCertificatesV1beta1CertificateSigningRequest\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CertificateSigningRequest\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval\":{\"put\":{\"description\":\"replace approval of the specified CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"replaceCertificatesV1beta1CertificateSigningRequestApproval\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CertificateSigningRequest\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status\":{\"get\":{\"description\":\"read status of the specified CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"readCertificatesV1beta1CertificateSigningRequestStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"replaceCertificatesV1beta1CertificateSigningRequestStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified CertificateSigningRequest\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"patchCertificatesV1beta1CertificateSigningRequestStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CertificateSigningRequest\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests\":{\"get\":{\"description\":\"watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"watchCertificatesV1beta1CertificateSigningRequestList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"watchCertificatesV1beta1CertificateSigningRequest\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CertificateSigningRequest\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/coordination.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination\"],\"operationId\":\"getCoordinationAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/coordination.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"getCoordinationV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/coordination.k8s.io/v1beta1/leases\":{\"get\":{\"description\":\"list or watch objects of kind Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"listCoordinationV1beta1LeaseForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.LeaseList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases\":{\"get\":{\"description\":\"list or watch objects of kind Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"listCoordinationV1beta1NamespacedLease\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.LeaseList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"createCoordinationV1beta1NamespacedLease\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.Lease\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"deleteCoordinationV1beta1CollectionNamespacedLease\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases/{name}\":{\"get\":{\"description\":\"read the specified Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"readCoordinationV1beta1NamespacedLease\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.Lease\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"replaceCoordinationV1beta1NamespacedLease\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.Lease\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"deleteCoordinationV1beta1NamespacedLease\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified Lease\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"patchCoordinationV1beta1NamespacedLease\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.Lease\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Lease\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/coordination.k8s.io/v1beta1/watch/leases\":{\"get\":{\"description\":\"watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"watchCoordinationV1beta1LeaseListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases\":{\"get\":{\"description\":\"watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"watchCoordinationV1beta1NamespacedLeaseList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"watchCoordinationV1beta1NamespacedLease\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Lease\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/events.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events\"],\"operationId\":\"getEventsAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/events.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"getEventsV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/events.k8s.io/v1beta1/events\":{\"get\":{\"description\":\"list or watch objects of kind Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"listEventsV1beta1EventForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.EventList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events\":{\"get\":{\"description\":\"list or watch objects of kind Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"listEventsV1beta1NamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.EventList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create an Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"createEventsV1beta1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.Event\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"deleteEventsV1beta1CollectionNamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}\":{\"get\":{\"description\":\"read the specified Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"readEventsV1beta1NamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.Event\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"replaceEventsV1beta1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.Event\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete an Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"deleteEventsV1beta1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified Event\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"patchEventsV1beta1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.Event\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Event\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/events.k8s.io/v1beta1/watch/events\":{\"get\":{\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"watchEventsV1beta1EventListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events\":{\"get\":{\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"watchEventsV1beta1NamespacedEventList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"watchEventsV1beta1NamespacedEvent\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Event\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions\"],\"operationId\":\"getExtensionsAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/extensions/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"getExtensionsV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/extensions/v1beta1/daemonsets\":{\"get\":{\"description\":\"list or watch objects of kind DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1DaemonSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1DeploymentForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/ingresses\":{\"get\":{\"description\":\"list or watch objects of kind Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1IngressForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets\":{\"get\":{\"description\":\"list or watch objects of kind DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1NamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1CollectionNamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"description\":\"read the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified DaemonSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status\":{\"get\":{\"description\":\"read status of the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedDaemonSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified DaemonSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1CollectionNamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"description\":\"read the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/rollback\":{\"post\":{\"description\":\"create rollback of a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1NamespacedDeploymentRollback\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback\"}}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DeploymentRollback\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DeploymentRollback\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedDeploymentScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update scale of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status\":{\"get\":{\"description\":\"read status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedDeploymentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/ingresses\":{\"get\":{\"description\":\"list or watch objects of kind Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1NamespacedIngress\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create an Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1NamespacedIngress\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1CollectionNamespacedIngress\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}\":{\"get\":{\"description\":\"read the specified Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedIngress\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedIngress\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete an Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1NamespacedIngress\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified Ingress\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedIngress\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Ingress\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status\":{\"get\":{\"description\":\"read status of the specified Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedIngressStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedIngressStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified Ingress\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedIngressStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Ingress\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies\":{\"get\":{\"description\":\"list or watch objects of kind NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1NamespacedNetworkPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1CollectionNamespacedNetworkPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies/{name}\":{\"get\":{\"description\":\"read the specified NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedNetworkPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified NetworkPolicy\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NetworkPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/replicasets\":{\"get\":{\"description\":\"list or watch objects of kind ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1NamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1CollectionNamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"description\":\"read the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedReplicaSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace scale of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update scale of the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status\":{\"get\":{\"description\":\"read status of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedReplicaSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/replicationcontrollers/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified ReplicationControllerDummy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedReplicationControllerDummyScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace scale of the specified ReplicationControllerDummy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedReplicationControllerDummyScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update scale of the specified ReplicationControllerDummy\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedReplicationControllerDummyScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/networkpolicies\":{\"get\":{\"description\":\"list or watch objects of kind NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1NetworkPolicyForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/podsecuritypolicies\":{\"get\":{\"description\":\"list or watch objects of kind PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1PodSecurityPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1CollectionPodSecurityPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/podsecuritypolicies/{name}\":{\"get\":{\"description\":\"read the specified PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1PodSecurityPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified PodSecurityPolicy\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodSecurityPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/replicasets\":{\"get\":{\"description\":\"list or watch objects of kind ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1ReplicaSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/daemonsets\":{\"get\":{\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1DaemonSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1DeploymentListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/ingresses\":{\"get\":{\"description\":\"watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1IngressListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets\":{\"get\":{\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedDaemonSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedDaemonSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedDeploymentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedDeployment\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses\":{\"get\":{\"description\":\"watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedIngressList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedIngress\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Ingress\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies\":{\"get\":{\"description\":\"watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedNetworkPolicyList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedNetworkPolicy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NetworkPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedReplicaSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedReplicaSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/networkpolicies\":{\"get\":{\"description\":\"watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NetworkPolicyListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/podsecuritypolicies\":{\"get\":{\"description\":\"watch individual changes to a list of PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1PodSecurityPolicyList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/podsecuritypolicies/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1PodSecurityPolicy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodSecurityPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/replicasets\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1ReplicaSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/networking.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking\"],\"operationId\":\"getNetworkingAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/networking.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"getNetworkingV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies\":{\"get\":{\"description\":\"list or watch objects of kind NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"listNetworkingV1NamespacedNetworkPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"createNetworkingV1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"deleteNetworkingV1CollectionNamespacedNetworkPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}\":{\"get\":{\"description\":\"read the specified NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"readNetworkingV1NamespacedNetworkPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"replaceNetworkingV1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"deleteNetworkingV1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified NetworkPolicy\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"patchNetworkingV1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NetworkPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/networking.k8s.io/v1/networkpolicies\":{\"get\":{\"description\":\"list or watch objects of kind NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"listNetworkingV1NetworkPolicyForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies\":{\"get\":{\"description\":\"watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"watchNetworkingV1NamespacedNetworkPolicyList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"watchNetworkingV1NamespacedNetworkPolicy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NetworkPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/networking.k8s.io/v1/watch/networkpolicies\":{\"get\":{\"description\":\"watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"watchNetworkingV1NetworkPolicyListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/policy/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy\"],\"operationId\":\"getPolicyAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/policy/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"getPolicyV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets\":{\"get\":{\"description\":\"list or watch objects of kind PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"listPolicyV1beta1NamespacedPodDisruptionBudget\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"createPolicyV1beta1NamespacedPodDisruptionBudget\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"deletePolicyV1beta1CollectionNamespacedPodDisruptionBudget\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}\":{\"get\":{\"description\":\"read the specified PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"readPolicyV1beta1NamespacedPodDisruptionBudget\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"replacePolicyV1beta1NamespacedPodDisruptionBudget\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"deletePolicyV1beta1NamespacedPodDisruptionBudget\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified PodDisruptionBudget\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"patchPolicyV1beta1NamespacedPodDisruptionBudget\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodDisruptionBudget\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status\":{\"get\":{\"description\":\"read status of the specified PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"readPolicyV1beta1NamespacedPodDisruptionBudgetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"replacePolicyV1beta1NamespacedPodDisruptionBudgetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified PodDisruptionBudget\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodDisruptionBudget\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/poddisruptionbudgets\":{\"get\":{\"description\":\"list or watch objects of kind PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"listPolicyV1beta1PodDisruptionBudgetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/podsecuritypolicies\":{\"get\":{\"description\":\"list or watch objects of kind PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"listPolicyV1beta1PodSecurityPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"createPolicyV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"deletePolicyV1beta1CollectionPodSecurityPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/podsecuritypolicies/{name}\":{\"get\":{\"description\":\"read the specified PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"readPolicyV1beta1PodSecurityPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"replacePolicyV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"deletePolicyV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified PodSecurityPolicy\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"patchPolicyV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodSecurityPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets\":{\"get\":{\"description\":\"watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"watchPolicyV1beta1NamespacedPodDisruptionBudgetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"watchPolicyV1beta1NamespacedPodDisruptionBudget\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodDisruptionBudget\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/watch/poddisruptionbudgets\":{\"get\":{\"description\":\"watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"watchPolicyV1beta1PodDisruptionBudgetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/watch/podsecuritypolicies\":{\"get\":{\"description\":\"watch individual changes to a list of PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"watchPolicyV1beta1PodSecurityPolicyList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/watch/podsecuritypolicies/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"watchPolicyV1beta1PodSecurityPolicy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodSecurityPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization\"],\"operationId\":\"getRbacAuthorizationAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/rbac.authorization.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"getRbacAuthorizationV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/rbac.authorization.k8s.io/v1/clusterrolebindings\":{\"get\":{\"description\":\"list or watch objects of kind ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"listRbacAuthorizationV1ClusterRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"createRbacAuthorizationV1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1CollectionClusterRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}\":{\"get\":{\"description\":\"read the specified ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"readRbacAuthorizationV1ClusterRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"replaceRbacAuthorizationV1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ClusterRoleBinding\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"patchRbacAuthorizationV1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/clusterroles\":{\"get\":{\"description\":\"list or watch objects of kind ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"listRbacAuthorizationV1ClusterRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"createRbacAuthorizationV1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRole\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1CollectionClusterRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}\":{\"get\":{\"description\":\"read the specified ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"readRbacAuthorizationV1ClusterRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRole\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"replaceRbacAuthorizationV1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRole\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ClusterRole\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"patchRbacAuthorizationV1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRole\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRole\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings\":{\"get\":{\"description\":\"list or watch objects of kind RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"listRbacAuthorizationV1NamespacedRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBindingList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"createRbacAuthorizationV1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1CollectionNamespacedRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}\":{\"get\":{\"description\":\"read the specified RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"readRbacAuthorizationV1NamespacedRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"replaceRbacAuthorizationV1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified RoleBinding\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"patchRbacAuthorizationV1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the RoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles\":{\"get\":{\"description\":\"list or watch objects of kind Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"listRbacAuthorizationV1NamespacedRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"createRbacAuthorizationV1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Role\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1CollectionNamespacedRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}\":{\"get\":{\"description\":\"read the specified Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"readRbacAuthorizationV1NamespacedRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Role\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"replaceRbacAuthorizationV1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Role\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Role\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"patchRbacAuthorizationV1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Role\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Role\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/rolebindings\":{\"get\":{\"description\":\"list or watch objects of kind RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"listRbacAuthorizationV1RoleBindingForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBindingList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/roles\":{\"get\":{\"description\":\"list or watch objects of kind Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"listRbacAuthorizationV1RoleForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings\":{\"get\":{\"description\":\"watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1ClusterRoleBindingList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1ClusterRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/clusterroles\":{\"get\":{\"description\":\"watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1ClusterRoleList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1ClusterRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRole\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings\":{\"get\":{\"description\":\"watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1NamespacedRoleBindingList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1NamespacedRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the RoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles\":{\"get\":{\"description\":\"watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1NamespacedRoleList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1NamespacedRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Role\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/rolebindings\":{\"get\":{\"description\":\"watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1RoleBindingListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/roles\":{\"get\":{\"description\":\"watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1RoleListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"getRbacAuthorizationV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings\":{\"get\":{\"description\":\"list or watch objects of kind ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"listRbacAuthorizationV1beta1ClusterRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"createRbacAuthorizationV1beta1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1CollectionClusterRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}\":{\"get\":{\"description\":\"read the specified ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"readRbacAuthorizationV1beta1ClusterRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"replaceRbacAuthorizationV1beta1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified ClusterRoleBinding\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"patchRbacAuthorizationV1beta1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/clusterroles\":{\"get\":{\"description\":\"list or watch objects of kind ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"listRbacAuthorizationV1beta1ClusterRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"createRbacAuthorizationV1beta1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1CollectionClusterRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}\":{\"get\":{\"description\":\"read the specified ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"readRbacAuthorizationV1beta1ClusterRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"replaceRbacAuthorizationV1beta1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified ClusterRole\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"patchRbacAuthorizationV1beta1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRole\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings\":{\"get\":{\"description\":\"list or watch objects of kind RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"listRbacAuthorizationV1beta1NamespacedRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"createRbacAuthorizationV1beta1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1CollectionNamespacedRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}\":{\"get\":{\"description\":\"read the specified RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"readRbacAuthorizationV1beta1NamespacedRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"replaceRbacAuthorizationV1beta1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified RoleBinding\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"patchRbacAuthorizationV1beta1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the RoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles\":{\"get\":{\"description\":\"list or watch objects of kind Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"listRbacAuthorizationV1beta1NamespacedRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"createRbacAuthorizationV1beta1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Role\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1CollectionNamespacedRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}\":{\"get\":{\"description\":\"read the specified Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"readRbacAuthorizationV1beta1NamespacedRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Role\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"replaceRbacAuthorizationV1beta1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Role\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified Role\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"patchRbacAuthorizationV1beta1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Role\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Role\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/rolebindings\":{\"get\":{\"description\":\"list or watch objects of kind RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"listRbacAuthorizationV1beta1RoleBindingForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/roles\":{\"get\":{\"description\":\"list or watch objects of kind Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"listRbacAuthorizationV1beta1RoleForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings\":{\"get\":{\"description\":\"watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1ClusterRoleBindingList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1ClusterRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles\":{\"get\":{\"description\":\"watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1ClusterRoleList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1ClusterRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRole\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings\":{\"get\":{\"description\":\"watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1NamespacedRoleBindingList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1NamespacedRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the RoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles\":{\"get\":{\"description\":\"watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1NamespacedRoleList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1NamespacedRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Role\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings\":{\"get\":{\"description\":\"watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1RoleBindingListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/roles\":{\"get\":{\"description\":\"watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1RoleListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/scheduling.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling\"],\"operationId\":\"getSchedulingAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/scheduling.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"getSchedulingV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/scheduling.k8s.io/v1beta1/priorityclasses\":{\"get\":{\"description\":\"list or watch objects of kind PriorityClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"listSchedulingV1beta1PriorityClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClassList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a PriorityClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"createSchedulingV1beta1PriorityClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of PriorityClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"deleteSchedulingV1beta1CollectionPriorityClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}\":{\"get\":{\"description\":\"read the specified PriorityClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"readSchedulingV1beta1PriorityClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified PriorityClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"replaceSchedulingV1beta1PriorityClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a PriorityClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"deleteSchedulingV1beta1PriorityClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified PriorityClass\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"patchSchedulingV1beta1PriorityClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PriorityClass\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses\":{\"get\":{\"description\":\"watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"watchSchedulingV1beta1PriorityClassList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"watchSchedulingV1beta1PriorityClass\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PriorityClass\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage\"],\"operationId\":\"getStorageAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/storage.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"getStorageV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/storage.k8s.io/v1/storageclasses\":{\"get\":{\"description\":\"list or watch objects of kind StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"listStorageV1StorageClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClassList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"createStorageV1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClass\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"deleteStorageV1CollectionStorageClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/storageclasses/{name}\":{\"get\":{\"description\":\"read the specified StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"readStorageV1StorageClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClass\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"replaceStorageV1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClass\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"deleteStorageV1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified StorageClass\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"patchStorageV1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClass\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StorageClass\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/volumeattachments\":{\"get\":{\"description\":\"list or watch objects of kind VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"listStorageV1VolumeAttachment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachmentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"createStorageV1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"deleteStorageV1CollectionVolumeAttachment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/volumeattachments/{name}\":{\"get\":{\"description\":\"read the specified VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"readStorageV1VolumeAttachment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"replaceStorageV1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"deleteStorageV1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified VolumeAttachment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"patchStorageV1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the VolumeAttachment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/volumeattachments/{name}/status\":{\"get\":{\"description\":\"read status of the specified VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"readStorageV1VolumeAttachmentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"replaceStorageV1VolumeAttachmentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified VolumeAttachment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"patchStorageV1VolumeAttachmentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the VolumeAttachment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/watch/storageclasses\":{\"get\":{\"description\":\"watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"watchStorageV1StorageClassList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/watch/storageclasses/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"watchStorageV1StorageClass\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StorageClass\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/watch/volumeattachments\":{\"get\":{\"description\":\"watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"watchStorageV1VolumeAttachmentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/watch/volumeattachments/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"watchStorageV1VolumeAttachment\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the VolumeAttachment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"getStorageV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/storage.k8s.io/v1beta1/storageclasses\":{\"get\":{\"description\":\"list or watch objects of kind StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"listStorageV1beta1StorageClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClassList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"createStorageV1beta1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClass\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"deleteStorageV1beta1CollectionStorageClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/storageclasses/{name}\":{\"get\":{\"description\":\"read the specified StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"readStorageV1beta1StorageClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClass\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"replaceStorageV1beta1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClass\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"deleteStorageV1beta1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified StorageClass\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"patchStorageV1beta1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClass\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StorageClass\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/volumeattachments\":{\"get\":{\"description\":\"list or watch objects of kind VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"listStorageV1beta1VolumeAttachment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"createStorageV1beta1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"deleteStorageV1beta1CollectionVolumeAttachment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/volumeattachments/{name}\":{\"get\":{\"description\":\"read the specified VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"readStorageV1beta1VolumeAttachment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"replaceStorageV1beta1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"deleteStorageV1beta1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified VolumeAttachment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"patchStorageV1beta1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the VolumeAttachment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/watch/storageclasses\":{\"get\":{\"description\":\"watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"watchStorageV1beta1StorageClassList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/watch/storageclasses/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"watchStorageV1beta1StorageClass\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StorageClass\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/watch/volumeattachments\":{\"get\":{\"description\":\"watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"watchStorageV1beta1VolumeAttachmentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/watch/volumeattachments/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"watchStorageV1beta1VolumeAttachment\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the VolumeAttachment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/logs/\":{\"get\":{\"schemes\":[\"https\"],\"tags\":[\"logs\"],\"operationId\":\"logFileListHandler\",\"responses\":{\"401\":{\"description\":\"Unauthorized\"}}}},\"/logs/{logpath}\":{\"get\":{\"schemes\":[\"https\"],\"tags\":[\"logs\"],\"operationId\":\"logFileHandler\",\"responses\":{\"401\":{\"description\":\"Unauthorized\"}}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"path to the log\",\"name\":\"logpath\",\"in\":\"path\",\"required\":true}]},\"/version/\":{\"get\":{\"description\":\"get the code version\",\"consumes\":[\"application/json\"],\"produces\":[\"application/json\"],\"schemes\":[\"https\"],\"tags\":[\"version\"],\"operationId\":\"getCodeVersion\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.version.Info\"}},\"401\":{\"description\":\"Unauthorized\"}}}}},\"definitions\":{\"io.k8s.api.admissionregistration.v1beta1.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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"webhooks\":{\"description\":\"Webhooks is a list of webhooks and the affected resources and operations.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.Webhook\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of MutatingWebhookConfiguration.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.admissionregistration.v1beta1.ServiceReference\":{\"description\":\"ServiceReference holds a reference to Service.legacy.k8s.io\",\"required\":[\"namespace\",\"name\"],\"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\"}}},\"io.k8s.api.admissionregistration.v1beta1.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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"webhooks\":{\"description\":\"Webhooks is a list of webhooks and the affected resources and operations.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.Webhook\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of ValidatingWebhookConfiguration.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfigurationList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.admissionregistration.v1beta1.Webhook\":{\"description\":\"Webhook describes an admission webhook and the resources and operations it applies to.\",\"required\":[\"name\",\"clientConfig\"],\"properties\":{\"clientConfig\":{\"description\":\"ClientConfig defines how to communicate with the hook. Required\",\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig\"},\"failurePolicy\":{\"description\":\"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.\",\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations\"}},\"sideEffects\":{\"description\":\"SideEffects states whether this webhookk 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\"}}},\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\\n\\nPort 443 will be used if it is open, otherwise it is an error.\",\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ServiceReference\"},\"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\"}}},\"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.\",\"required\":[\"revision\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"data\":{\"description\":\"Data is the serialized representation of the state.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"revision\":{\"description\":\"Revision indicates the revision of the state represented by Data.\",\"type\":\"integer\",\"format\":\"int64\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of ControllerRevisions\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSetSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSetStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1.DaemonSetList\":{\"description\":\"DaemonSetList is a collection of daemon sets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"A list of daemon sets.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"selector\",\"template\"],\"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).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"updateStrategy\":{\"description\":\"An update strategy to replace existing DaemonSet pods with new pods.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy\"}}},\"io.k8s.api.apps.v1.DaemonSetStatus\":{\"description\":\"DaemonSetStatus represents the current status of a daemon set.\",\"required\":[\"currentNumberScheduled\",\"numberMisscheduled\",\"desiredNumberScheduled\",\"numberReady\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a DaemonSet's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSetCondition\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"The most recent generation observed by the daemon set controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"updatedNumberScheduled\":{\"description\":\"The total number of nodes that are running updated daemon pod\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1.DaemonSetUpdateStrategy\":{\"description\":\"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet\"},\"type\":{\"description\":\"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DeploymentSpec\"},\"status\":{\"description\":\"Most recently observed status of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DeploymentStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastUpdateTime\":{\"description\":\"The last time this condition was updated.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1.DeploymentList\":{\"description\":\"DeploymentList is a list of Deployments.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of Deployments.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"selector\",\"template\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"strategy\":{\"description\":\"The deployment strategy to use to replace existing pods with new ones.\",\"x-kubernetes-patch-strategy\":\"retainKeys\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DeploymentStrategy\"},\"template\":{\"description\":\"Template describes the pods that will be created.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a deployment's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DeploymentCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"observedGeneration\":{\"description\":\"The generation observed by the deployment controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"Total number of ready pods targeted by this deployment.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"updatedReplicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1.DeploymentStrategy\":{\"description\":\"DeploymentStrategy describes how to replace existing pods with new ones.\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment\"},\"type\":{\"description\":\"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"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/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"The last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1.ReplicaSetList\":{\"description\":\"ReplicaSetList is a collection of ReplicaSets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"selector\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.apps.v1.ReplicaSetStatus\":{\"description\":\"ReplicaSetStatus represents the current status of a ReplicaSet.\",\"required\":[\"replicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a replica set's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"The number of ready replicas for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1.RollingUpdateDaemonSet\":{\"description\":\"Spec to control the desired behavior of daemon set rolling update.\",\"properties\":{\"maxUnavailable\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.apps.v1.RollingUpdateDeployment\":{\"description\":\"Spec to control the desired behavior of rolling update.\",\"properties\":{\"maxSurge\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"maxUnavailable\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the desired identities of pods in this set.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSetSpec\"},\"status\":{\"description\":\"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSetStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1.StatefulSetList\":{\"description\":\"StatefulSetList is a collection of StatefulSets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"selector\",\"template\",\"serviceName\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"updateStrategy\":{\"description\":\"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"io.k8s.api.apps.v1.StatefulSetStatus\":{\"description\":\"StatefulSetStatus represents the current state of a StatefulSet.\",\"required\":[\"replicas\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a statefulset's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"replicas is the number of Pods created by the StatefulSet controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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\":{\"description\":\"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\"},\"type\":{\"description\":\"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta1.ControllerRevision\":{\"description\":\"DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the release notes for more information. 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.\",\"required\":[\"revision\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"data\":{\"description\":\"Data is the serialized representation of the state.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"revision\":{\"description\":\"Revision indicates the revision of the state represented by Data.\",\"type\":\"integer\",\"format\":\"int64\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.ControllerRevisionList\":{\"description\":\"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of ControllerRevisions\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"ControllerRevisionList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.Deployment\":{\"description\":\"DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentSpec\"},\"status\":{\"description\":\"Most recently observed status of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.DeploymentCondition\":{\"description\":\"DeploymentCondition describes the state of a deployment at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastUpdateTime\":{\"description\":\"The last time this condition was updated.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1beta1.DeploymentList\":{\"description\":\"DeploymentList is a list of Deployments.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of Deployments.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"DeploymentList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.DeploymentRollback\":{\"description\":\"DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.\",\"required\":[\"name\",\"rollbackTo\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"name\":{\"description\":\"Required: This must match the Name of a deployment.\",\"type\":\"string\"},\"rollbackTo\":{\"description\":\"The config of this deployment rollback.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig\"},\"updatedAnnotations\":{\"description\":\"The annotations to be updated to a deployment\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"DeploymentRollback\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.DeploymentSpec\":{\"description\":\"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\"required\":[\"template\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"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 2.\",\"type\":\"integer\",\"format\":\"int32\"},\"rollbackTo\":{\"description\":\"DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig\"},\"selector\":{\"description\":\"Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"strategy\":{\"description\":\"The deployment strategy to use to replace existing pods with new ones.\",\"x-kubernetes-patch-strategy\":\"retainKeys\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentStrategy\"},\"template\":{\"description\":\"Template describes the pods that will be created.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.apps.v1beta1.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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a deployment's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"observedGeneration\":{\"description\":\"The generation observed by the deployment controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"Total number of ready pods targeted by this deployment.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"updatedReplicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta1.DeploymentStrategy\":{\"description\":\"DeploymentStrategy describes how to replace existing pods with new ones.\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateDeployment\"},\"type\":{\"description\":\"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta1.RollbackConfig\":{\"description\":\"DEPRECATED.\",\"properties\":{\"revision\":{\"description\":\"The revision to rollback to. If set to 0, rollback to the last revision.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.apps.v1beta1.RollingUpdateDeployment\":{\"description\":\"Spec to control the desired behavior of rolling update.\",\"properties\":{\"maxSurge\":{\"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 atmost 130% of desired pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"maxUnavailable\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\":{\"description\":\"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\"properties\":{\"partition\":{\"description\":\"Partition indicates the ordinal at which the StatefulSet should be partitioned.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta1.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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ScaleSpec\"},\"status\":{\"description\":\"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ScaleStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.ScaleSpec\":{\"description\":\"ScaleSpec describes the attributes of a scale subresource\",\"properties\":{\"replicas\":{\"description\":\"desired number of instances for the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta1.ScaleStatus\":{\"description\":\"ScaleStatus represents the current status of a scale subresource.\",\"required\":[\"replicas\"],\"properties\":{\"replicas\":{\"description\":\"actual number of observed instances of the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"description\":\"label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"targetSelector\":{\"description\":\"label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta1.StatefulSet\":{\"description\":\"DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the desired identities of pods in this set.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetSpec\"},\"status\":{\"description\":\"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.StatefulSetCondition\":{\"description\":\"StatefulSetCondition describes the state of a statefulset at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1beta1.StatefulSetList\":{\"description\":\"StatefulSetList is a collection of StatefulSets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"StatefulSetList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.StatefulSetSpec\":{\"description\":\"A StatefulSetSpec is the specification of a StatefulSet.\",\"required\":[\"template\",\"serviceName\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"description\":\"selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"updateStrategy\":{\"description\":\"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"io.k8s.api.apps.v1beta1.StatefulSetStatus\":{\"description\":\"StatefulSetStatus represents the current state of a StatefulSet.\",\"required\":[\"replicas\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a statefulset's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"replicas is the number of Pods created by the StatefulSet controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta1.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\":{\"description\":\"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\"},\"type\":{\"description\":\"Type indicates the type of the StatefulSetUpdateStrategy.\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta2.ControllerRevision\":{\"description\":\"DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the release notes for more information. 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.\",\"required\":[\"revision\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"data\":{\"description\":\"Data is the serialized representation of the state.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"revision\":{\"description\":\"Revision indicates the revision of the state represented by Data.\",\"type\":\"integer\",\"format\":\"int64\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.ControllerRevisionList\":{\"description\":\"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of ControllerRevisions\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"ControllerRevisionList\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.DaemonSet\":{\"description\":\"DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSetSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.DaemonSetCondition\":{\"description\":\"DaemonSetCondition describes the state of a DaemonSet at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1beta2.DaemonSetList\":{\"description\":\"DaemonSetList is a collection of daemon sets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"A list of daemon sets.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"DaemonSetList\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.DaemonSetSpec\":{\"description\":\"DaemonSetSpec is the specification of a daemon set.\",\"required\":[\"selector\",\"template\"],\"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).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"updateStrategy\":{\"description\":\"An update strategy to replace existing DaemonSet pods with new pods.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy\"}}},\"io.k8s.api.apps.v1beta2.DaemonSetStatus\":{\"description\":\"DaemonSetStatus represents the current status of a daemon set.\",\"required\":[\"currentNumberScheduled\",\"numberMisscheduled\",\"desiredNumberScheduled\",\"numberReady\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a DaemonSet's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSetCondition\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"The most recent generation observed by the daemon set controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"updatedNumberScheduled\":{\"description\":\"The total number of nodes that are running updated daemon pod\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy\":{\"description\":\"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet\"},\"type\":{\"description\":\"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta2.Deployment\":{\"description\":\"DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DeploymentSpec\"},\"status\":{\"description\":\"Most recently observed status of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DeploymentStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.DeploymentCondition\":{\"description\":\"DeploymentCondition describes the state of a deployment at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastUpdateTime\":{\"description\":\"The last time this condition was updated.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1beta2.DeploymentList\":{\"description\":\"DeploymentList is a list of Deployments.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of Deployments.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"DeploymentList\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.DeploymentSpec\":{\"description\":\"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\"required\":[\"selector\",\"template\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"strategy\":{\"description\":\"The deployment strategy to use to replace existing pods with new ones.\",\"x-kubernetes-patch-strategy\":\"retainKeys\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DeploymentStrategy\"},\"template\":{\"description\":\"Template describes the pods that will be created.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.apps.v1beta2.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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a deployment's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DeploymentCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"observedGeneration\":{\"description\":\"The generation observed by the deployment controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"Total number of ready pods targeted by this deployment.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"updatedReplicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta2.DeploymentStrategy\":{\"description\":\"DeploymentStrategy describes how to replace existing pods with new ones.\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateDeployment\"},\"type\":{\"description\":\"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta2.ReplicaSet\":{\"description\":\"DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"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/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.ReplicaSetCondition\":{\"description\":\"ReplicaSetCondition describes the state of a replica set at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"The last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1beta2.ReplicaSetList\":{\"description\":\"ReplicaSetList is a collection of ReplicaSets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"ReplicaSetList\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.ReplicaSetSpec\":{\"description\":\"ReplicaSetSpec is the specification of a ReplicaSet.\",\"required\":[\"selector\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.apps.v1beta2.ReplicaSetStatus\":{\"description\":\"ReplicaSetStatus represents the current status of a ReplicaSet.\",\"required\":[\"replicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a replica set's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"The number of ready replicas for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet\":{\"description\":\"Spec to control the desired behavior of daemon set rolling update.\",\"properties\":{\"maxUnavailable\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.apps.v1beta2.RollingUpdateDeployment\":{\"description\":\"Spec to control the desired behavior of rolling update.\",\"properties\":{\"maxSurge\":{\"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 atmost 130% of desired pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"maxUnavailable\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.apps.v1beta2.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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta2.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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ScaleSpec\"},\"status\":{\"description\":\"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ScaleStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.ScaleSpec\":{\"description\":\"ScaleSpec describes the attributes of a scale subresource\",\"properties\":{\"replicas\":{\"description\":\"desired number of instances for the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta2.ScaleStatus\":{\"description\":\"ScaleStatus represents the current status of a scale subresource.\",\"required\":[\"replicas\"],\"properties\":{\"replicas\":{\"description\":\"actual number of observed instances of the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"description\":\"label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"targetSelector\":{\"description\":\"label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta2.StatefulSet\":{\"description\":\"DEPRECATED - This group version of StatefulSet is deprecated by apps/v1/StatefulSet. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the desired identities of pods in this set.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSetSpec\"},\"status\":{\"description\":\"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.StatefulSetCondition\":{\"description\":\"StatefulSetCondition describes the state of a statefulset at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1beta2.StatefulSetList\":{\"description\":\"StatefulSetList is a collection of StatefulSets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"StatefulSetList\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.StatefulSetSpec\":{\"description\":\"A StatefulSetSpec is the specification of a StatefulSet.\",\"required\":[\"selector\",\"template\",\"serviceName\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"updateStrategy\":{\"description\":\"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSetUpdateStrategy\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"io.k8s.api.apps.v1beta2.StatefulSetStatus\":{\"description\":\"StatefulSetStatus represents the current state of a StatefulSet.\",\"required\":[\"replicas\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a statefulset's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"replicas is the number of Pods created by the StatefulSet controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta2.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\":{\"description\":\"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy\"},\"type\":{\"description\":\"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\"type\":\"string\"}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request can be authenticated.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"token\":{\"description\":\"Token is the opaque bearer token.\",\"type\":\"string\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\":{\"description\":\"User is the UserInfo associated with the provided token.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.UserInfo\"}}},\"io.k8s.api.authentication.v1.UserInfo\":{\"description\":\"UserInfo holds the information about the user needed to implement the user.Info interface.\",\"properties\":{\"extra\":{\"description\":\"Any additional information provided by the authenticator.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"groups\":{\"description\":\"The names of groups this user is a part of.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request can be authenticated.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"token\":{\"description\":\"Token is the opaque bearer token.\",\"type\":\"string\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\":{\"description\":\"User is the UserInfo associated with the provided token.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.UserInfo\"}}},\"io.k8s.api.authentication.v1beta1.UserInfo\":{\"description\":\"UserInfo holds the information about the user needed to implement the user.Info interface.\",\"properties\":{\"extra\":{\"description\":\"Any additional information provided by the authenticator.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"groups\":{\"description\":\"The names of groups this user is a part of.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request is allowed or not\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"}},\"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\"}}},\"io.k8s.api.authorization.v1.NonResourceRule\":{\"description\":\"NonResourceRule holds information that describes a rule for the non-resource\",\"required\":[\"verbs\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"verbs\":{\"description\":\"Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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\"}}},\"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.\",\"required\":[\"verbs\"],\"properties\":{\"apiGroups\":{\"description\":\"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"resourceNames\":{\"description\":\"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"verbs\":{\"description\":\"Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated.  user and groups must be empty\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request is allowed or not\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"}},\"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\":{\"description\":\"NonResourceAttributes describes information for a non-resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes\"},\"resourceAttributes\":{\"description\":\"ResourceAuthorizationAttributes describes information for a resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.ResourceAttributes\"}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates the set of actions a user can perform.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus\"}},\"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\"}}},\"io.k8s.api.authorization.v1.SubjectAccessReview\":{\"description\":\"SubjectAccessReview checks whether or not a user or group can perform an action.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request is allowed or not\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"}},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"groups\":{\"description\":\"Groups is the groups you're testing for.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"nonResourceAttributes\":{\"description\":\"NonResourceAttributes describes information for a non-resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes\"},\"resourceAttributes\":{\"description\":\"ResourceAuthorizationAttributes describes information for a resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.ResourceAttributes\"},\"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\"}}},\"io.k8s.api.authorization.v1.SubjectAccessReviewStatus\":{\"description\":\"SubjectAccessReviewStatus\",\"required\":[\"allowed\"],\"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\"}}},\"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.\",\"required\":[\"resourceRules\",\"nonResourceRules\",\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.NonResourceRule\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.ResourceRule\"}}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request is allowed or not\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"}},\"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\"}}},\"io.k8s.api.authorization.v1beta1.NonResourceRule\":{\"description\":\"NonResourceRule holds information that describes a rule for the non-resource\",\"required\":[\"verbs\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"verbs\":{\"description\":\"Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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\"}}},\"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.\",\"required\":[\"verbs\"],\"properties\":{\"apiGroups\":{\"description\":\"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"resourceNames\":{\"description\":\"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"verbs\":{\"description\":\"Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated.  user and groups must be empty\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request is allowed or not\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"}},\"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\":{\"description\":\"NonResourceAttributes describes information for a non-resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes\"},\"resourceAttributes\":{\"description\":\"ResourceAuthorizationAttributes describes information for a resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes\"}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates the set of actions a user can perform.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus\"}},\"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\"}}},\"io.k8s.api.authorization.v1beta1.SubjectAccessReview\":{\"description\":\"SubjectAccessReview checks whether or not a user or group can perform an action.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request is allowed or not\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"}},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"group\":{\"description\":\"Groups is the groups you're testing for.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"nonResourceAttributes\":{\"description\":\"NonResourceAttributes describes information for a non-resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes\"},\"resourceAttributes\":{\"description\":\"ResourceAuthorizationAttributes describes information for a resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes\"},\"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\"}}},\"io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\":{\"description\":\"SubjectAccessReviewStatus\",\"required\":[\"allowed\"],\"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\"}}},\"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.\",\"required\":[\"resourceRules\",\"nonResourceRules\",\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.NonResourceRule\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.ResourceRule\"}}}},\"io.k8s.api.autoscaling.v1.CrossVersionObjectReference\":{\"description\":\"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\"required\":[\"kind\",\"name\"],\"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/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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\"},\"status\":{\"description\":\"current information about the autoscaler.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}]},\"io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList\":{\"description\":\"list of horizontal pod autoscaler objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"list of horizontal pod autoscaler objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscalerList\",\"version\":\"v1\"}]},\"io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\":{\"description\":\"specification of a horizontal pod autoscaler.\",\"required\":[\"scaleTargetRef\",\"maxReplicas\"],\"properties\":{\"maxReplicas\":{\"description\":\"upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.\",\"type\":\"integer\",\"format\":\"int32\"},\"minReplicas\":{\"description\":\"lower limit for the number of pods that can be set by the autoscaler, default 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"scaleTargetRef\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\":{\"description\":\"current status of a horizontal pod autoscaler\",\"required\":[\"currentReplicas\",\"desiredReplicas\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"currentReplicas\":{\"description\":\"current number of replicas of pods managed by this autoscaler.\",\"type\":\"integer\",\"format\":\"int32\"},\"desiredReplicas\":{\"description\":\"desired number of replicas of pods managed by this autoscaler.\",\"type\":\"integer\",\"format\":\"int32\"},\"lastScaleTime\":{\"description\":\"last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"observedGeneration\":{\"description\":\"most recent generation observed by this autoscaler.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec\"},\"status\":{\"description\":\"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.autoscaling.v1.ScaleStatus\":{\"description\":\"ScaleStatus represents the current status of a scale subresource.\",\"required\":[\"replicas\"],\"properties\":{\"replicas\":{\"description\":\"actual number of observed instances of the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\":{\"description\":\"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\"required\":[\"kind\",\"name\"],\"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/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\"}}},\"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.\",\"required\":[\"metricName\"],\"properties\":{\"metricName\":{\"description\":\"metricName is the name of the metric in question.\",\"type\":\"string\"},\"metricSelector\":{\"description\":\"metricSelector is used to identify a specific time series within a given metric.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"targetAverageValue\":{\"description\":\"targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"targetValue\":{\"description\":\"targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus\":{\"description\":\"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\"required\":[\"metricName\",\"currentValue\"],\"properties\":{\"currentAverageValue\":{\"description\":\"currentAverageValue is the current value of metric averaged over autoscaled pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"currentValue\":{\"description\":\"currentValue is the current value of the metric (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"metricName\":{\"description\":\"metricName is the name of a metric used for autoscaling in metric system.\",\"type\":\"string\"},\"metricSelector\":{\"description\":\"metricSelector is used to identify a specific time series within a given metric.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec\"},\"status\":{\"description\":\"status is the current information about the autoscaler.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime is the last time the condition transitioned from one status to another\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList\":{\"description\":\"HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is the list of horizontal pod autoscaler objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"metadata is the standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"scaleTargetRef\",\"maxReplicas\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.MetricSpec\"}},\"minReplicas\":{\"description\":\"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod.\",\"type\":\"integer\",\"format\":\"int32\"},\"scaleTargetRef\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\"}}},\"io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus\":{\"description\":\"HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\",\"required\":[\"currentReplicas\",\"desiredReplicas\",\"conditions\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition\"}},\"currentMetrics\":{\"description\":\"currentMetrics is the last read state of the metrics used by this autoscaler.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.MetricStatus\"}},\"currentReplicas\":{\"description\":\"currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.\",\"type\":\"integer\",\"format\":\"int32\"},\"desiredReplicas\":{\"description\":\"desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.\",\"type\":\"integer\",\"format\":\"int32\"},\"lastScaleTime\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"observedGeneration\":{\"description\":\"observedGeneration is the most recent generation observed by this autoscaler.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"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).\",\"required\":[\"type\"],\"properties\":{\"external\":{\"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).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricSource\"},\"object\":{\"description\":\"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricSource\"},\"pods\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricSource\"},\"resource\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricSource\"},\"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\"}}},\"io.k8s.api.autoscaling.v2beta1.MetricStatus\":{\"description\":\"MetricStatus describes the last-read state of a single metric.\",\"required\":[\"type\"],\"properties\":{\"external\":{\"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).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus\"},\"object\":{\"description\":\"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus\"},\"pods\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricStatus\"},\"resource\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus\"},\"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\"}}},\"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).\",\"required\":[\"target\",\"metricName\",\"targetValue\"],\"properties\":{\"averageValue\":{\"description\":\"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"metricName\":{\"description\":\"metricName is the name of the metric in question.\",\"type\":\"string\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"target\":{\"description\":\"target is the described Kubernetes object.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\"},\"targetValue\":{\"description\":\"targetValue is the target value of the metric (as a quantity).\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"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).\",\"required\":[\"target\",\"metricName\",\"currentValue\"],\"properties\":{\"averageValue\":{\"description\":\"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"currentValue\":{\"description\":\"currentValue is the current value of the metric (as a quantity).\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"metricName\":{\"description\":\"metricName is the name of the metric in question.\",\"type\":\"string\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"target\":{\"description\":\"target is the described Kubernetes object.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\"}}},\"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.\",\"required\":[\"metricName\",\"targetAverageValue\"],\"properties\":{\"metricName\":{\"description\":\"metricName is the name of the metric in question\",\"type\":\"string\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"targetAverageValue\":{\"description\":\"targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"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).\",\"required\":[\"metricName\",\"currentAverageValue\"],\"properties\":{\"currentAverageValue\":{\"description\":\"currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"metricName\":{\"description\":\"metricName is the name of the metric in question\",\"type\":\"string\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}},\"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.\",\"required\":[\"name\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"targetAverageValue\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"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.\",\"required\":[\"name\",\"currentAverageValue\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"currentAverageValue\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"name\":{\"description\":\"name is the name of the resource in question.\",\"type\":\"string\"}}},\"io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\":{\"description\":\"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\"required\":[\"kind\",\"name\"],\"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/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\"}}},\"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).\",\"required\":[\"metric\",\"target\"],\"properties\":{\"metric\":{\"description\":\"metric identifies the target metric by name and selector\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier\"},\"target\":{\"description\":\"target specifies the target value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget\"}}},\"io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus\":{\"description\":\"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\"required\":[\"metric\",\"current\"],\"properties\":{\"current\":{\"description\":\"current contains the current value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus\"},\"metric\":{\"description\":\"metric identifies the target metric by name and selector\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec\"},\"status\":{\"description\":\"status is the current information about the autoscaler.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}]},\"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition\":{\"description\":\"HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime is the last time the condition transitioned from one status to another\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList\":{\"description\":\"HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is the list of horizontal pod autoscaler objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"metadata is the standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"scaleTargetRef\",\"maxReplicas\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricSpec\"}},\"minReplicas\":{\"description\":\"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod.\",\"type\":\"integer\",\"format\":\"int32\"},\"scaleTargetRef\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\"}}},\"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus\":{\"description\":\"HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\",\"required\":[\"currentReplicas\",\"desiredReplicas\",\"conditions\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition\"}},\"currentMetrics\":{\"description\":\"currentMetrics is the last read state of the metrics used by this autoscaler.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricStatus\"}},\"currentReplicas\":{\"description\":\"currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.\",\"type\":\"integer\",\"format\":\"int32\"},\"desiredReplicas\":{\"description\":\"desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.\",\"type\":\"integer\",\"format\":\"int32\"},\"lastScaleTime\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"observedGeneration\":{\"description\":\"observedGeneration is the most recent generation observed by this autoscaler.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.autoscaling.v2beta2.MetricIdentifier\":{\"description\":\"MetricIdentifier defines the name and optionally selector for a metric\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the given metric\",\"type\":\"string\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}},\"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).\",\"required\":[\"type\"],\"properties\":{\"external\":{\"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).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricSource\"},\"object\":{\"description\":\"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricSource\"},\"pods\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricSource\"},\"resource\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricSource\"},\"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\"}}},\"io.k8s.api.autoscaling.v2beta2.MetricStatus\":{\"description\":\"MetricStatus describes the last-read state of a single metric.\",\"required\":[\"type\"],\"properties\":{\"external\":{\"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).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus\"},\"object\":{\"description\":\"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus\"},\"pods\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricStatus\"},\"resource\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus\"},\"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\"}}},\"io.k8s.api.autoscaling.v2beta2.MetricTarget\":{\"description\":\"MetricTarget defines the target value, average value, or average utilization of a specific metric\",\"required\":[\"type\"],\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"averageValue\":{\"description\":\"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"type\":{\"description\":\"type represents whether the metric type is Utilization, Value, or AverageValue\",\"type\":\"string\"},\"value\":{\"description\":\"value is the target value of the metric (as a quantity).\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"averageValue\":{\"description\":\"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"value\":{\"description\":\"value is the current value of the metric (as a quantity).\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"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).\",\"required\":[\"describedObject\",\"target\",\"metric\"],\"properties\":{\"describedObject\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\"},\"metric\":{\"description\":\"metric identifies the target metric by name and selector\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier\"},\"target\":{\"description\":\"target specifies the target value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget\"}}},\"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).\",\"required\":[\"metric\",\"current\",\"describedObject\"],\"properties\":{\"current\":{\"description\":\"current contains the current value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus\"},\"describedObject\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\"},\"metric\":{\"description\":\"metric identifies the target metric by name and selector\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier\"}}},\"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.\",\"required\":[\"metric\",\"target\"],\"properties\":{\"metric\":{\"description\":\"metric identifies the target metric by name and selector\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier\"},\"target\":{\"description\":\"target specifies the target value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget\"}}},\"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).\",\"required\":[\"metric\",\"current\"],\"properties\":{\"current\":{\"description\":\"current contains the current value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus\"},\"metric\":{\"description\":\"metric identifies the target metric by name and selector\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier\"}}},\"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.\",\"required\":[\"name\",\"target\"],\"properties\":{\"name\":{\"description\":\"name is the name of the resource in question.\",\"type\":\"string\"},\"target\":{\"description\":\"target specifies the target value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget\"}}},\"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.\",\"required\":[\"name\",\"current\"],\"properties\":{\"current\":{\"description\":\"current contains the current value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus\"},\"name\":{\"description\":\"Name is the name of the resource in question.\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobSpec\"},\"status\":{\"description\":\"Current status of a job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"Last time the condition was checked.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transit from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.batch.v1.JobList\":{\"description\":\"JobList is a collection of jobs.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is the list of Jobs.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"template\"],\"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\",\"type\":\"integer\",\"format\":\"int64\"},\"backoffLimit\":{\"description\":\"Specifies the number of retries before marking this job failed. Defaults to 6\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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/\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.batch.v1.JobStatus\":{\"description\":\"JobStatus represents the current state of a Job.\",\"properties\":{\"active\":{\"description\":\"The number of actively running pods.\",\"type\":\"integer\",\"format\":\"int32\"},\"completionTime\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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/\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"failed\":{\"description\":\"The number of pods which reached phase Failed.\",\"type\":\"integer\",\"format\":\"int32\"},\"startTime\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"succeeded\":{\"description\":\"The number of pods which reached phase Succeeded.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJobSpec\"},\"status\":{\"description\":\"Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJobStatus\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is the list of CronJobs.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"schedule\",\"jobTemplate\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"jobTemplate\":{\"description\":\"Specifies the job that will be created when executing a CronJob.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.JobTemplateSpec\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"suspend\":{\"description\":\"This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"}},\"lastScheduleTime\":{\"description\":\"Information when was the last time the job was successfully scheduled.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.batch.v1beta1.JobTemplateSpec\":{\"description\":\"JobTemplateSpec describes the data a Job should have when created from a template\",\"properties\":{\"metadata\":{\"description\":\"Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobSpec\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The certificate request itself and any additional information.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec\"},\"status\":{\"description\":\"Derived information about the request.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}]},\"io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition\":{\"required\":[\"type\"],\"properties\":{\"lastUpdateTime\":{\"description\":\"timestamp for the last update to this condition\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.certificates.v1beta1.CertificateSigningRequestList\":{\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"request\"],\"properties\":{\"extra\":{\"description\":\"Extra information about the requesting user. See user.Info interface for details.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"groups\":{\"description\":\"Group information about the requesting user. See user.Info interface for details.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"request\":{\"description\":\"Base64-encoded PKCS#10 CSR data\",\"type\":\"string\",\"format\":\"byte\"},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"username\":{\"description\":\"Information about the requesting user. See user.Info interface for details.\",\"type\":\"string\"}}},\"io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus\":{\"properties\":{\"certificate\":{\"description\":\"If request was approved, the controller will place the issued certificate here.\",\"type\":\"string\",\"format\":\"byte\"},\"conditions\":{\"description\":\"Conditions applied to the request, such as approval or denial.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition\"}}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.LeaseSpec\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of schema objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.Lease\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"description\":\"acquireTime is a time when the current lease was acquired.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"leaseTransitions\":{\"description\":\"leaseTransitions is the number of transitions of a lease between holders.\",\"type\":\"integer\",\"format\":\"int32\"},\"renewTime\":{\"description\":\"renewTime is a time when the current holder of a lease has last updated the lease.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"}}},\"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.\",\"required\":[\"volumeID\"],\"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).\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"io.k8s.api.core.v1.Affinity\":{\"description\":\"Affinity is a group of affinity scheduling rules.\",\"properties\":{\"nodeAffinity\":{\"description\":\"Describes node affinity scheduling rules for the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeAffinity\"},\"podAffinity\":{\"description\":\"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinity\"},\"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)).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAntiAffinity\"}}},\"io.k8s.api.core.v1.AttachedVolume\":{\"description\":\"AttachedVolume describes a volume attached to a node\",\"required\":[\"name\",\"devicePath\"],\"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\"}}},\"io.k8s.api.core.v1.AzureDiskVolumeSource\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"required\":[\"diskName\",\"diskURI\"],\"properties\":{\"cachingMode\":{\"description\":\"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\"}}},\"io.k8s.api.core.v1.AzureFilePersistentVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"required\":[\"secretName\",\"shareName\"],\"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\"}}},\"io.k8s.api.core.v1.AzureFileVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"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\"}}},\"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.\",\"required\":[\"target\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"target\":{\"description\":\"The target object that you want to bind to the standard object.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"}},\"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)\",\"required\":[\"driver\",\"volumeHandle\"],\"properties\":{\"controllerPublishSecretRef\":{\"description\":\"ControllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"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\":{\"description\":\"NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"nodeStageSecretRef\":{\"description\":\"NodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"readOnly\":{\"description\":\"Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"Attributes of the volume to publish.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"volumeHandle\":{\"description\":\"VolumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Capabilities\":{\"description\":\"Adds and removes POSIX capabilities from running containers.\",\"properties\":{\"add\":{\"description\":\"Added capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"drop\":{\"description\":\"Removed capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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.\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"user\":{\"description\":\"Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"required\":[\"volumeID\"],\"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://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"Optional: points to a secret object containing parameters used to connect to OpenStack.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"volumeID\":{\"description\":\"volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\"type\":\"string\"}}},\"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.\",\"required\":[\"volumeID\"],\"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://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"Optional: points to a secret object containing parameters used to connect to OpenStack.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeID\":{\"description\":\"volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\"type\":\"string\"}}},\"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).\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ComponentCondition\":{\"description\":\"Information about the condition of a component.\",\"required\":[\"type\",\"status\"],\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"conditions\":{\"description\":\"List of component conditions observed\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentCondition\"},\"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/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of ComponentStatus objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatus\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"binaryData\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"format\":\"byte\"}},\"data\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}},\"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\"}}},\"io.k8s.api.core.v1.ConfigMapKeySelector\":{\"description\":\"Selects a key from a ConfigMap.\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key to select.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"Specify whether the ConfigMap or it's key must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.ConfigMapList\":{\"description\":\"ConfigMapList is a resource containing a list of ConfigMap objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of ConfigMaps.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"namespace\",\"name\",\"kubeletConfigKey\"],\"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\"}}},\"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 '..'.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"Specify whether the ConfigMap or it's keys must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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 '..'.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"Specify whether the ConfigMap or it's keys must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.Container\":{\"description\":\"A single application container that you want to run within a pod.\",\"required\":[\"name\"],\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvFromSource\"}},\"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\":{\"description\":\"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"},\"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/\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecurityContext\"},\"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. This is a beta feature.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeDevice\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.ContainerImage\":{\"description\":\"Describe a container image\",\"required\":[\"names\"],\"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\\\"]\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"sizeBytes\":{\"description\":\"The size of the image in bytes.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.core.v1.ContainerPort\":{\"description\":\"ContainerPort represents a network port in a single container.\",\"required\":[\"containerPort\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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\":{\"description\":\"Details about a running container\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateRunning\"},\"terminated\":{\"description\":\"Details about a terminated container\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateTerminated\"},\"waiting\":{\"description\":\"Details about a waiting container\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateWaiting\"}}},\"io.k8s.api.core.v1.ContainerStateRunning\":{\"description\":\"ContainerStateRunning is a running state of a container.\",\"properties\":{\"startedAt\":{\"description\":\"Time at which the container was last (re-)started\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.core.v1.ContainerStateTerminated\":{\"description\":\"ContainerStateTerminated is a terminated state of a container.\",\"required\":[\"exitCode\"],\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"finishedAt\":{\"description\":\"Time at which the container last terminated\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"Message regarding the last termination of the container\",\"type\":\"string\"},\"reason\":{\"description\":\"(brief) reason from the last termination of the container\",\"type\":\"string\"},\"signal\":{\"description\":\"Signal from the last termination of the container\",\"type\":\"integer\",\"format\":\"int32\"},\"startedAt\":{\"description\":\"Time at which previous execution of the container started\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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\"}}},\"io.k8s.api.core.v1.ContainerStatus\":{\"description\":\"ContainerStatus contains details for the current status of this container.\",\"required\":[\"name\",\"ready\",\"restartCount\",\"image\",\"imageID\"],\"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\":{\"description\":\"Details about the container's last termination condition.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerState\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"state\":{\"description\":\"Details about the container's current condition.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerState\"}}},\"io.k8s.api.core.v1.DaemonEndpoint\":{\"description\":\"DaemonEndpoint contains information about a single Daemon endpoint.\",\"required\":[\"Port\"],\"properties\":{\"Port\":{\"description\":\"Port number of the given endpoint.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.DownwardAPIVolumeFile\":{\"description\":\"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\"required\":[\"path\"],\"properties\":{\"fieldRef\":{\"description\":\"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\"type\":\"string\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"Items is a list of downward API volume file\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"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\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"io.k8s.api.core.v1.EndpointAddress\":{\"description\":\"EndpointAddress is a tuple that describes single IP address.\",\"required\":[\"ip\"],\"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\":{\"description\":\"Reference to object providing the endpoint.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"}}},\"io.k8s.api.core.v1.EndpointPort\":{\"description\":\"EndpointPort is a tuple that describes a single port.\",\"required\":[\"port\"],\"properties\":{\"name\":{\"description\":\"The name of this port (corresponds to ServicePort.Name). Must be a DNS_LABEL. Optional only if one port is defined.\",\"type\":\"string\"},\"port\":{\"description\":\"The port number of the endpoint.\",\"type\":\"integer\",\"format\":\"int32\"},\"protocol\":{\"description\":\"The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\",\"type\":\"string\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointAddress\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointAddress\"}},\"ports\":{\"description\":\"Port numbers available on the related IP addresses.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointPort\"}}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointSubset\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.EndpointsList\":{\"description\":\"EndpointsList is a list of endpoints.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of endpoints.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"description\":\"The ConfigMap to select from\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource\"},\"prefix\":{\"description\":\"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\"type\":\"string\"},\"secretRef\":{\"description\":\"The Secret to select from\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretEnvSource\"}}},\"io.k8s.api.core.v1.EnvVar\":{\"description\":\"EnvVar represents an environment variable present in a Container.\",\"required\":[\"name\"],\"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\":{\"description\":\"Source for the environment variable's value. Cannot be used if value is not empty.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVarSource\"}}},\"io.k8s.api.core.v1.EnvVarSource\":{\"description\":\"EnvVarSource represents a source for the value of an EnvVar.\",\"properties\":{\"configMapKeyRef\":{\"description\":\"Selects a key of a ConfigMap.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector\"},\"fieldRef\":{\"description\":\"Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"},\"secretKeyRef\":{\"description\":\"Selects a key of a secret in the pod's namespace\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretKeySelector\"}}},\"io.k8s.api.core.v1.Event\":{\"description\":\"Event is a report of an event somewhere in the cluster.\",\"required\":[\"metadata\",\"involvedObject\"],\"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/api-conventions.md#resources\",\"type\":\"string\"},\"count\":{\"description\":\"The number of times this event has occurred.\",\"type\":\"integer\",\"format\":\"int32\"},\"eventTime\":{\"description\":\"Time when this Event was first observed.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"},\"firstTimestamp\":{\"description\":\"The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"involvedObject\":{\"description\":\"The object that this event is about.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"lastTimestamp\":{\"description\":\"The time at which the most recent occurrence of this event was recorded.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"A human-readable description of the status of this operation.\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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\":{\"description\":\"Optional secondary object for more complex actions.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"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\":{\"description\":\"Data about the Event series this event represents or nil if it's a singleton Event.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventSeries\"},\"source\":{\"description\":\"The component reporting this event. Should be a short machine understandable string.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventSource\"},\"type\":{\"description\":\"Type of this event (Normal, Warning), new types could be added in the future\",\"type\":\"string\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.EventList\":{\"description\":\"EventList is a list of events.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of events\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"lastObservedTime\":{\"description\":\"Time of the last occurrence observed\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"},\"state\":{\"description\":\"State of this Series: Ongoing or Finished\",\"type\":\"string\"}}},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"wwids\":{\"description\":\"Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.core.v1.FlexPersistentVolumeSource\":{\"description\":\"FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"Driver is the name of the driver to use for this volume.\",\"type\":\"string\"},\"fsType\":{\"description\":\"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"Optional: Extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"readOnly\":{\"description\":\"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"}}},\"io.k8s.api.core.v1.FlexVolumeSource\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"Driver is the name of the driver to use for this volume.\",\"type\":\"string\"},\"fsType\":{\"description\":\"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"Optional: Extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"readOnly\":{\"description\":\"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"}}},\"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\"}}},\"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.\",\"required\":[\"pdName\"],\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"required\":[\"repository\"],\"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\"}}},\"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.\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\"},\"path\":{\"description\":\"Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"boolean\"}}},\"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.\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\"},\"path\":{\"description\":\"Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.HTTPGetAction\":{\"description\":\"HTTPGetAction describes an action based on HTTP Get requests.\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\"type\":\"string\"},\"httpHeaders\":{\"description\":\"Custom headers to set in the request. HTTP allows repeated headers.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPHeader\"}},\"path\":{\"description\":\"Path to access on the HTTP server.\",\"type\":\"string\"},\"port\":{\"description\":\"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"scheme\":{\"description\":\"Scheme to use for connecting to the host. Defaults to HTTP.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.HTTPHeader\":{\"description\":\"HTTPHeader describes a custom header to be used in HTTP probes\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"The header field name\",\"type\":\"string\"},\"value\":{\"description\":\"The header field value\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Handler\":{\"description\":\"Handler defines a specific action that should be taken\",\"properties\":{\"exec\":{\"description\":\"One and only one of the following should be specified. Exec specifies the action to take.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ExecAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ip\":{\"description\":\"IP address of the host file entry.\",\"type\":\"string\"}}},\"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.\",\"required\":[\"path\"],\"properties\":{\"path\":{\"description\":\"Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\"},\"type\":{\"description\":\"Type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\"}}},\"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.\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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).\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"readOnly\":{\"description\":\"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"CHAP Secret for iSCSI target and initiator authentication\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"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\"}}},\"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.\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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).\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"readOnly\":{\"description\":\"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"CHAP Secret for iSCSI target and initiator authentication\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"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\"}}},\"io.k8s.api.core.v1.KeyToPath\":{\"description\":\"Maps a string key to a path within a volume.\",\"required\":[\"key\",\"path\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Handler\"},\"preStop\":{\"description\":\"PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Handler\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeSpec\"}},\"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\":{\"description\":\"Default resource requirement limit value by resource name if resource limit is omitted.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"defaultRequest\":{\"description\":\"DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"max\":{\"description\":\"Max usage constraints on this kind by resource name.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"maxLimitRequestRatio\":{\"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\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"min\":{\"description\":\"Min usage constraints on this kind by resource name.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"type\":{\"description\":\"Type of resource that this limit applies to.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.LimitRangeList\":{\"description\":\"LimitRangeList is a list of LimitRange items.\",\"required\":[\"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/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/\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"limits\"],\"properties\":{\"limits\":{\"description\":\"Limits is the list of LimitRangeItem objects that are enforced.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeItem\"}}}},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LoadBalancerIngress\"}}}},\"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\"}}},\"io.k8s.api.core.v1.LocalVolumeSource\":{\"description\":\"Local represents directly-attached storage with node affinity (Beta feature)\",\"required\":[\"path\"],\"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\"}}},\"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.\",\"required\":[\"server\",\"path\"],\"properties\":{\"path\":{\"description\":\"Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"string\"},\"readOnly\":{\"description\":\"ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"boolean\"},\"server\":{\"description\":\"Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceSpec\"},\"status\":{\"description\":\"Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.NamespaceList\":{\"description\":\"NamespaceList is a list of Namespaces.\",\"required\":[\"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/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/\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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/\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.core.v1.NamespaceStatus\":{\"description\":\"NamespaceStatus is information about the current status of a Namespace.\",\"properties\":{\"phase\":{\"description\":\"Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSpec\"},\"status\":{\"description\":\"Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeStatus\"}},\"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.\",\"required\":[\"type\",\"address\"],\"properties\":{\"address\":{\"description\":\"The node address.\",\"type\":\"string\"},\"type\":{\"description\":\"Node address type, one of Hostname, ExternalIP or InternalIP.\",\"type\":\"string\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm\"}},\"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 an update), the system may or may not try to eventually evict the pod from its node.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelector\"}}},\"io.k8s.api.core.v1.NodeCondition\":{\"description\":\"NodeCondition contains condition information for a node.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastHeartbeatTime\":{\"description\":\"Last time we got an update on a given condition.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transit from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"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\":{\"description\":\"ConfigMap is a reference to a Node's ConfigMap\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource\"}}},\"io.k8s.api.core.v1.NodeConfigStatus\":{\"description\":\"NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\",\"properties\":{\"active\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"},\"assigned\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"}}},\"io.k8s.api.core.v1.NodeDaemonEndpoints\":{\"description\":\"NodeDaemonEndpoints lists ports opened by daemons running on the Node.\",\"properties\":{\"kubeletEndpoint\":{\"description\":\"Endpoint on which Kubelet is listening.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DaemonEndpoint\"}}},\"io.k8s.api.core.v1.NodeList\":{\"description\":\"NodeList is the whole list of all Nodes which have been registered with master.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of nodes\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"nodeSelectorTerms\"],\"properties\":{\"nodeSelectorTerms\":{\"description\":\"Required. A list of node selector terms. The terms are ORed.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"}}}},\"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.\",\"required\":[\"key\",\"operator\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"}},\"matchFields\":{\"description\":\"A list of node selector requirements by node's fields.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"}}}},\"io.k8s.api.core.v1.NodeSpec\":{\"description\":\"NodeSpec describes the attributes that a node is created with.\",\"properties\":{\"configSource\":{\"description\":\"If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"},\"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\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Taint\"}},\"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\"}}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeAddress\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"allocatable\":{\"description\":\"Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"capacity\":{\"description\":\"Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"conditions\":{\"description\":\"Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"config\":{\"description\":\"Status of the config assigned to the node via the dynamic Kubelet config feature.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigStatus\"},\"daemonEndpoints\":{\"description\":\"Endpoints of daemons running on the Node.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints\"},\"images\":{\"description\":\"List of container images on this node\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerImage\"}},\"nodeInfo\":{\"description\":\"Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSystemInfo\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.AttachedVolume\"}},\"volumesInUse\":{\"description\":\"List of attachable volumes in use (mounted) by the node.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.core.v1.NodeSystemInfo\":{\"description\":\"NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\",\"required\":[\"machineID\",\"systemUUID\",\"bootID\",\"kernelVersion\",\"osImage\",\"containerRuntimeVersion\",\"kubeletVersion\",\"kubeProxyVersion\",\"operatingSystem\",\"architecture\"],\"properties\":{\"architecture\":{\"description\":\"The Architecture reported by the node\",\"type\":\"string\"},\"bootID\":{\"description\":\"Boot ID reported by the node.\",\"type\":\"string\"},\"containerRuntimeVersion\":{\"description\":\"ContainerRuntime Version reported by the node through runtime remote API (e.g. 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\"}}},\"io.k8s.api.core.v1.ObjectFieldSelector\":{\"description\":\"ObjectFieldSelector selects an APIVersioned field of an object.\",\"required\":[\"fieldPath\"],\"properties\":{\"apiVersion\":{\"description\":\"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\"type\":\"string\"},\"fieldPath\":{\"description\":\"Path of the field to select in the specified API version.\",\"type\":\"string\"}}},\"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/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/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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec\"},\"status\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus\"}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"},\"status\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PersistentVolumeClaimCondition\":{\"description\":\"PersistentVolumeClaimCondition contails details about state of pvc\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"Last time we probed the condition.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimList\":{\"description\":\"PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\",\"required\":[\"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/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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"dataSource\":{\"description\":\"This field requires the VolumeSnapshotDataSource alpha feature gate to be enabled and currently VolumeSnapshot is the only supported data source. If the provisioner can support VolumeSnapshot data source, it will create a new volume and data will be restored to the volume at the same time. If the provisioner does not support VolumeSnapshot data source, 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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"resources\":{\"description\":\"Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"},\"selector\":{\"description\":\"A label query over volumes to consider for binding.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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. This is a beta feature.\",\"type\":\"string\"},\"volumeName\":{\"description\":\"VolumeName is the binding reference to the PersistentVolume backing this claim.\",\"type\":\"string\"}}},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"capacity\":{\"description\":\"Represents the actual resources of the underlying volume.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"conditions\":{\"description\":\"Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"phase\":{\"description\":\"Phase represents the current phase of PersistentVolumeClaim.\",\"type\":\"string\"}}},\"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).\",\"required\":[\"claimName\"],\"properties\":{\"claimName\":{\"description\":\"ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"string\"},\"readOnly\":{\"description\":\"Will force the ReadOnly setting in VolumeMounts. Default false.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.PersistentVolumeList\":{\"description\":\"PersistentVolumeList is a list of PersistentVolume items.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"awsElasticBlockStore\":{\"description\":\"AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"azureDisk\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"azureFile\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource\"},\"capacity\":{\"description\":\"A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"cephfs\":{\"description\":\"CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource\"},\"cinder\":{\"description\":\"Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource\"},\"claimRef\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"csi\":{\"description\":\"CSI represents storage that handled by an external CSI driver (Beta feature).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource\"},\"fc\":{\"description\":\"FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"},\"flexVolume\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource\"},\"flocker\":{\"description\":\"Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"},\"gcePersistentDisk\":{\"description\":\"GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"glusterfs\":{\"description\":\"Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\"},\"hostPath\":{\"description\":\"HostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"},\"iscsi\":{\"description\":\"ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource\"},\"local\":{\"description\":\"Local represents directly-attached storage with node affinity\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalVolumeSource\"},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"nfs\":{\"description\":\"NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"},\"nodeAffinity\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity\"},\"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\":{\"description\":\"PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"portworxVolume\":{\"description\":\"PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"},\"quobyte\":{\"description\":\"Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"rbd\":{\"description\":\"RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource\"},\"scaleIO\":{\"description\":\"ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\"},\"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\":{\"description\":\"StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource\"},\"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. This is a beta feature.\",\"type\":\"string\"},\"vsphereVolume\":{\"description\":\"VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}}},\"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\"}}},\"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\":{\"description\":\"Represents a Photon Controller persistent disk resource.\",\"required\":[\"pdID\"],\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodStatus\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"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\",\"required\":[\"topologyKey\"],\"properties\":{\"labelSelector\":{\"description\":\"A label query over a set of resources, in this case pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaces\":{\"description\":\"namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \\\"this pod's namespace\\\"\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"io.k8s.api.core.v1.PodCondition\":{\"description\":\"PodCondition contains details for the current condition of this pod.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"Last time we probed the condition.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodDNSConfigOption\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.core.v1.PodDNSConfigOption\":{\"description\":\"PodDNSConfigOption defines DNS resolver options of a pod.\",\"properties\":{\"name\":{\"description\":\"Required.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"}}},\"io.k8s.api.core.v1.PodList\":{\"description\":\"PodList is a list of Pods.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of pods. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"conditionType\"],\"properties\":{\"conditionType\":{\"description\":\"ConditionType refers to a condition in the pod's condition list with matching type.\",\"type\":\"string\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}},\"sysctls\":{\"description\":\"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Sysctl\"}}}},\"io.k8s.api.core.v1.PodSpec\":{\"description\":\"PodSpec is a description of a pod.\",\"required\":[\"containers\"],\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"affinity\":{\"description\":\"If specified, the pod's scheduling constraints\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Affinity\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Container\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"dnsConfig\":{\"description\":\"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodDNSConfig\"},\"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.\",\"type\":\"boolean\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostAlias\"},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"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, or Liveness 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/\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Container\"},\"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\":{\"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\",\"additionalProperties\":{\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodReadinessGate\"}},\"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://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md This is an alpha feature and may change in the future.\",\"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\":{\"description\":\"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSecurityContext\"},\"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. This field is beta-level and may be disabled with the PodShareProcessNamespace feature.\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"tolerations\":{\"description\":\"If specified, the pod's tolerations.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Toleration\"}},\"volumes\":{\"description\":\"List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Volume\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge,retainKeys\"}}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodCondition\"},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStatus\"}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStatus\"}},\"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\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"template\":{\"description\":\"Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PodTemplateList\":{\"description\":\"PodTemplateList is a list of PodTemplates.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of pod templates\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSpec\"}}},\"io.k8s.api.core.v1.PortworxVolumeSource\":{\"description\":\"PortworxVolumeSource represents a Portworx volume resource.\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"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\"}}},\"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).\",\"required\":[\"weight\",\"preference\"],\"properties\":{\"preference\":{\"description\":\"A node selector term, associated with the corresponding weight.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"},\"weight\":{\"description\":\"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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\":{\"description\":\"One and only one of the following should be specified. Exec specifies the action to take.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ExecAction\"},\"failureThreshold\":{\"description\":\"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"},\"initialDelaySeconds\":{\"description\":\"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"},\"periodSeconds\":{\"description\":\"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"successThreshold\":{\"description\":\"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"},\"timeoutSeconds\":{\"description\":\"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ProjectedVolumeSource\":{\"description\":\"Represents a projected volume source\",\"required\":[\"sources\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"sources\":{\"description\":\"list of volume projections\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeProjection\"}}}},\"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.\",\"required\":[\"registry\",\"volume\"],\"properties\":{\"group\":{\"description\":\"Group to map volume access to Default is no group\",\"type\":\"string\"},\"readOnly\":{\"description\":\"ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\"type\":\"boolean\"},\"registry\":{\"description\":\"Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\"type\":\"string\"},\"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\"}}},\"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.\",\"required\":[\"monitors\",\"image\"],\"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://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"pool\":{\"description\":\"The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"user\":{\"description\":\"The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"required\":[\"monitors\",\"image\"],\"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://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"pool\":{\"description\":\"The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"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/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"The last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.core.v1.ReplicationControllerList\":{\"description\":\"ReplicationControllerList is a collection of replication controllers.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.core.v1.ReplicationControllerStatus\":{\"description\":\"ReplicationControllerStatus represents the current status of a replication controller.\",\"required\":[\"replicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"The number of available replicas (ready for at least minReadySeconds) for this replication controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a replication controller's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"ObservedGeneration reflects the generation of the most recently observed replication controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"The number of ready replicas for this replication controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ResourceFieldSelector\":{\"description\":\"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\"required\":[\"resource\"],\"properties\":{\"containerName\":{\"description\":\"Container name: required for volumes, optional for env vars\",\"type\":\"string\"},\"divisor\":{\"description\":\"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"resource\":{\"description\":\"Required: resource to select\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec\"},\"status\":{\"description\":\"Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ResourceQuotaList\":{\"description\":\"ResourceQuotaList is a list of ResourceQuota items.\",\"required\":[\"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/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/\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"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\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScopeSelector\"},\"scopes\":{\"description\":\"A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.core.v1.ResourceQuotaStatus\":{\"description\":\"ResourceQuotaStatus defines the enforced hard limits and observed use.\",\"properties\":{\"hard\":{\"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\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"used\":{\"description\":\"Used is the current observed total usage of the resource in the namespace.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}}},\"io.k8s.api.core.v1.ResourceRequirements\":{\"description\":\"ResourceRequirements describes the compute resource requirements.\",\"properties\":{\"limits\":{\"description\":\"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"requests\":{\"description\":\"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}}},\"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\"}}},\"io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\":{\"description\":\"ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"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\":{\"description\":\"SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"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\"}}},\"io.k8s.api.core.v1.ScaleIOVolumeSource\":{\"description\":\"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"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\":{\"description\":\"SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement\"}}}},\"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.\",\"required\":[\"scopeName\",\"operator\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"data\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"format\":\"byte\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"stringData\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"type\":{\"description\":\"Used to facilitate programmatic handling of secret data.\",\"type\":\"string\"}},\"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\"}}},\"io.k8s.api.core.v1.SecretKeySelector\":{\"description\":\"SecretKeySelector selects a key of a Secret.\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key of the secret to select from.  Must be a valid secret key.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"Specify whether the Secret or it's key must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.SecretList\":{\"description\":\"SecretList is a list of Secret.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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 '..'.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"Specify whether the Secret or its key must be defined\",\"type\":\"boolean\"}}},\"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\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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 '..'.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"optional\":{\"description\":\"Specify whether the Secret or it's 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\"}}},\"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\":{\"description\":\"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Capabilities\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceSpec\"},\"status\":{\"description\":\"Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceStatus\"}},\"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/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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ServiceAccountList\":{\"description\":\"ServiceAccountList is a list of ServiceAccount objects\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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).\",\"required\":[\"path\"],\"properties\":{\"audience\":{\"description\":\"Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\"type\":\"string\"},\"expirationSeconds\":{\"description\":\"ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\"type\":\"integer\",\"format\":\"int64\"},\"path\":{\"description\":\"Path is the path relative to the mount point of the file to project the token into.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ServiceList\":{\"description\":\"ServiceList holds a list of services.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of services\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ServiceList\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ServicePort\":{\"description\":\"ServicePort contains information on service's port.\",\"required\":[\"port\"],\"properties\":{\"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. This maps to the 'Name' field in EndpointPort objects. 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\",\"type\":\"integer\",\"format\":\"int32\"},\"port\":{\"description\":\"The port that will be exposed by this service.\",\"type\":\"integer\",\"format\":\"int32\"},\"protocol\":{\"description\":\"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\". Default is TCP.\",\"type\":\"string\"},\"targetPort\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServicePort\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"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\":{\"description\":\"sessionAffinityConfig contains the configurations of session affinity.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SessionAffinityConfig\"},\"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\"}}},\"io.k8s.api.core.v1.ServiceStatus\":{\"description\":\"ServiceStatus represents the current status of a service.\",\"properties\":{\"loadBalancer\":{\"description\":\"LoadBalancer contains the current status of the load-balancer, if one is present.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LoadBalancerStatus\"}}},\"io.k8s.api.core.v1.SessionAffinityConfig\":{\"description\":\"SessionAffinityConfig represents the configurations of session affinity.\",\"properties\":{\"clientIP\":{\"description\":\"clientIP contains the configurations of Client IP based session affinity.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ClientIPConfig\"}}},\"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\":{\"description\":\"SecretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"volumeName\":{\"description\":\"VolumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"VolumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"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\":{\"description\":\"SecretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeName\":{\"description\":\"VolumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"VolumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Sysctl\":{\"description\":\"Sysctl defines a kernel parameter to be set\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"Name of a property to set\",\"type\":\"string\"},\"value\":{\"description\":\"Value of a property to set\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.TCPSocketAction\":{\"description\":\"TCPSocketAction describes an action based on opening a socket\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Optional: Host name to connect to, defaults to the pod IP.\",\"type\":\"string\"},\"port\":{\"description\":\"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"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.\",\"required\":[\"key\",\"effect\"],\"properties\":{\"effect\":{\"description\":\"Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\",\"type\":\"string\"},\"key\":{\"description\":\"Required. The taint key to be applied to a node.\",\"type\":\"string\"},\"timeAdded\":{\"description\":\"TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"value\":{\"description\":\"Required. The taint value corresponding to the taint key.\",\"type\":\"string\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\"}}},\"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.\",\"required\":[\"key\",\"values\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement\"}}}},\"io.k8s.api.core.v1.TypedLocalObjectReference\":{\"description\":\"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\"}}},\"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.\",\"required\":[\"name\"],\"properties\":{\"awsElasticBlockStore\":{\"description\":\"AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"azureDisk\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"azureFile\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource\"},\"cephfs\":{\"description\":\"CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CephFSVolumeSource\"},\"cinder\":{\"description\":\"Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CinderVolumeSource\"},\"configMap\":{\"description\":\"ConfigMap represents a configMap that should populate this volume\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource\"},\"downwardAPI\":{\"description\":\"DownwardAPI represents downward API about the pod that should populate this volume\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource\"},\"emptyDir\":{\"description\":\"EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource\"},\"fc\":{\"description\":\"FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"},\"flexVolume\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlexVolumeSource\"},\"flocker\":{\"description\":\"Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"},\"gcePersistentDisk\":{\"description\":\"GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"gitRepo\":{\"description\":\"GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource\"},\"glusterfs\":{\"description\":\"Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource\"},\"hostPath\":{\"description\":\"HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"},\"iscsi\":{\"description\":\"ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource\"},\"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\":{\"description\":\"NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"},\"persistentVolumeClaim\":{\"description\":\"PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"},\"photonPersistentDisk\":{\"description\":\"PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"portworxVolume\":{\"description\":\"PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"},\"projected\":{\"description\":\"Items for all in one resources secrets, configmaps, and downward API\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource\"},\"quobyte\":{\"description\":\"Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"rbd\":{\"description\":\"RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.RBDVolumeSource\"},\"scaleIO\":{\"description\":\"ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource\"},\"secret\":{\"description\":\"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretVolumeSource\"},\"storageos\":{\"description\":\"StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource\"},\"vsphereVolume\":{\"description\":\"VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}}},\"io.k8s.api.core.v1.VolumeDevice\":{\"description\":\"volumeDevice describes a mapping of a raw block device within a container.\",\"required\":[\"name\",\"devicePath\"],\"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\"}}},\"io.k8s.api.core.v1.VolumeMount\":{\"description\":\"VolumeMount describes a mounting of a Volume within a container.\",\"required\":[\"name\",\"mountPath\"],\"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\"}}},\"io.k8s.api.core.v1.VolumeNodeAffinity\":{\"description\":\"VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\",\"properties\":{\"required\":{\"description\":\"Required specifies hard node constraints that must be met.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelector\"}}},\"io.k8s.api.core.v1.VolumeProjection\":{\"description\":\"Projection that may be projected along with other supported volume types\",\"properties\":{\"configMap\":{\"description\":\"information about the configMap data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapProjection\"},\"downwardAPI\":{\"description\":\"information about the downwardAPI data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIProjection\"},\"secret\":{\"description\":\"information about the secret data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretProjection\"},\"serviceAccountToken\":{\"description\":\"information about the serviceAccountToken data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection\"}}},\"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\":{\"description\":\"Represents a vSphere volume resource.\",\"required\":[\"volumePath\"],\"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\"}}},\"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)\",\"required\":[\"weight\",\"podAffinityTerm\"],\"properties\":{\"podAffinityTerm\":{\"description\":\"Required. A pod affinity term, associated with the corresponding weight.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"},\"weight\":{\"description\":\"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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.\",\"required\":[\"eventTime\"],\"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/api-conventions.md#resources\",\"type\":\"string\"},\"deprecatedCount\":{\"description\":\"Deprecated field assuring backward compatibility with core.v1 Event type\",\"type\":\"integer\",\"format\":\"int32\"},\"deprecatedFirstTimestamp\":{\"description\":\"Deprecated field assuring backward compatibility with core.v1 Event type\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deprecatedLastTimestamp\":{\"description\":\"Deprecated field assuring backward compatibility with core.v1 Event type\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deprecatedSource\":{\"description\":\"Deprecated field assuring backward compatibility with core.v1 Event type\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventSource\"},\"eventTime\":{\"description\":\"Required. Time when this Event was first observed.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"related\":{\"description\":\"Optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"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\":{\"description\":\"Data about the Event series this event represents or nil if it's a singleton Event.\",\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.EventSeries\"},\"type\":{\"description\":\"Type of this event (Normal, Warning), new types could be added in the future.\",\"type\":\"string\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of schema objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.Event\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"count\",\"lastObservedTime\",\"state\"],\"properties\":{\"count\":{\"description\":\"Number of occurrences in this series up to the last heartbeat time\",\"type\":\"integer\",\"format\":\"int32\"},\"lastObservedTime\":{\"description\":\"Time when last Event from the series was seen before last heartbeat.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"},\"state\":{\"description\":\"Information whether this series is ongoing or finished.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.AllowedFlexVolume\":{\"description\":\"AllowedFlexVolume represents a single Flexvolume that is allowed to be used. Deprecated: use AllowedFlexVolume from policy API Group instead.\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the Flexvolume driver.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.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. Deprecated: use AllowedHostPath from policy API Group instead.\",\"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\"}}},\"io.k8s.api.extensions.v1beta1.DaemonSet\":{\"description\":\"DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.DaemonSetCondition\":{\"description\":\"DaemonSetCondition describes the state of a DaemonSet at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.extensions.v1beta1.DaemonSetList\":{\"description\":\"DaemonSetList is a collection of daemon sets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"A list of daemon sets.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"DaemonSetList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.DaemonSetSpec\":{\"description\":\"DaemonSetSpec is the specification of a daemon set.\",\"required\":[\"template\"],\"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).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"description\":\"A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"templateGeneration\":{\"description\":\"DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.\",\"type\":\"integer\",\"format\":\"int64\"},\"updateStrategy\":{\"description\":\"An update strategy to replace existing DaemonSet pods with new pods.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy\"}}},\"io.k8s.api.extensions.v1beta1.DaemonSetStatus\":{\"description\":\"DaemonSetStatus represents the current status of a daemon set.\",\"required\":[\"currentNumberScheduled\",\"numberMisscheduled\",\"desiredNumberScheduled\",\"numberReady\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a DaemonSet's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetCondition\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"The most recent generation observed by the daemon set controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"updatedNumberScheduled\":{\"description\":\"The total number of nodes that are running updated daemon pod\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy\":{\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet\"},\"type\":{\"description\":\"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is OnDelete.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.Deployment\":{\"description\":\"DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentSpec\"},\"status\":{\"description\":\"Most recently observed status of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.DeploymentCondition\":{\"description\":\"DeploymentCondition describes the state of a deployment at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastUpdateTime\":{\"description\":\"The last time this condition was updated.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.extensions.v1beta1.DeploymentList\":{\"description\":\"DeploymentList is a list of Deployments.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of Deployments.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"DeploymentList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.DeploymentRollback\":{\"description\":\"DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.\",\"required\":[\"name\",\"rollbackTo\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"name\":{\"description\":\"Required: This must match the Name of a deployment.\",\"type\":\"string\"},\"rollbackTo\":{\"description\":\"The config of this deployment rollback.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig\"},\"updatedAnnotations\":{\"description\":\"The annotations to be updated to a deployment\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"DeploymentRollback\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.DeploymentSpec\":{\"description\":\"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\"required\":[\"template\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"paused\":{\"description\":\"Indicates that the deployment is paused and will not be processed by the deployment controller.\",\"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. This is set to the max value of int32 (i.e. 2147483647) by default, which means \\\"no deadline\\\".\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"revisionHistoryLimit\":{\"description\":\"The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. This is set to the max value of int32 (i.e. 2147483647) by default, which means \\\"retaining all old RelicaSets\\\".\",\"type\":\"integer\",\"format\":\"int32\"},\"rollbackTo\":{\"description\":\"DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig\"},\"selector\":{\"description\":\"Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"strategy\":{\"description\":\"The deployment strategy to use to replace existing pods with new ones.\",\"x-kubernetes-patch-strategy\":\"retainKeys\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStrategy\"},\"template\":{\"description\":\"Template describes the pods that will be created.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.extensions.v1beta1.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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a deployment's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"observedGeneration\":{\"description\":\"The generation observed by the deployment controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"Total number of ready pods targeted by this deployment.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"updatedReplicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.extensions.v1beta1.DeploymentStrategy\":{\"description\":\"DeploymentStrategy describes how to replace existing pods with new ones.\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDeployment\"},\"type\":{\"description\":\"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions\":{\"description\":\"FSGroupStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use FSGroupStrategyOptions from policy API Group instead.\",\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate what FSGroup is used in the SecurityContext.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.HTTPIngressPath\":{\"description\":\"HTTPIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend.\",\"required\":[\"backend\"],\"properties\":{\"backend\":{\"description\":\"Backend defines the referenced service endpoint to which the traffic will be forwarded to.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend\"},\"path\":{\"description\":\"Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) 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 '/'. If unspecified, the path defaults to a catch all sending traffic to the backend.\",\"type\":\"string\"}}},\"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 '#'.\",\"required\":[\"paths\"],\"properties\":{\"paths\":{\"description\":\"A collection of paths that map requests to backends.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath\"}}}},\"io.k8s.api.extensions.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. Deprecated: use HostPortRange from policy API Group instead.\",\"required\":[\"min\",\"max\"],\"properties\":{\"max\":{\"description\":\"max is the end of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int32\"},\"min\":{\"description\":\"min is the start of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.extensions.v1beta1.IDRange\":{\"description\":\"IDRange provides a min/max of an allowed range of IDs. Deprecated: use IDRange from policy API Group instead.\",\"required\":[\"min\",\"max\"],\"properties\":{\"max\":{\"description\":\"max is the end of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int64\"},\"min\":{\"description\":\"min is the start of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.extensions.v1beta1.IPBlock\":{\"description\":\"DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock. IPBlock describes a particular CIDR (Ex. \\\"192.168.1.1/24\\\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.\",\"required\":[\"cidr\"],\"properties\":{\"cidr\":{\"description\":\"CIDR is a string representing the IP Block Valid examples are \\\"192.168.1.1/24\\\"\",\"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\\\" Except values will be rejected if they are outside the CIDR range\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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.\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec\"},\"status\":{\"description\":\"Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus\"}},\"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.\",\"required\":[\"serviceName\",\"servicePort\"],\"properties\":{\"serviceName\":{\"description\":\"Specifies the name of the referenced service.\",\"type\":\"string\"},\"servicePort\":{\"description\":\"Specifies the port of the referenced service.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.extensions.v1beta1.IngressList\":{\"description\":\"IngressList is a collection of Ingress.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of Ingress.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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 the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the\\n\\t  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.\",\"type\":\"string\"},\"http\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue\"}}},\"io.k8s.api.extensions.v1beta1.IngressSpec\":{\"description\":\"IngressSpec describes the Ingress the user wishes to exist.\",\"properties\":{\"backend\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressRule\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS\"}}}},\"io.k8s.api.extensions.v1beta1.IngressStatus\":{\"description\":\"IngressStatus describe the current state of the Ingress.\",\"properties\":{\"loadBalancer\":{\"description\":\"LoadBalancer contains the current status of the load-balancer.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LoadBalancerStatus\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"}}},\"io.k8s.api.extensions.v1beta1.NetworkPolicy\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior for this NetworkPolicy.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicySpec\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule. 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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPort\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\"}}}},\"io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule. This NetworkPolicyIngressRule matches traffic if and only if the traffic matches 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 on item, this rule allows traffic only if the traffic matches at least one item in the from list.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPort\"}}}},\"io.k8s.api.extensions.v1beta1.NetworkPolicyList\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList. Network Policy List is a list of NetworkPolicy objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of schema objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"NetworkPolicyList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.\",\"properties\":{\"ipBlock\":{\"description\":\"IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IPBlock\"},\"namespaceSelector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"podSelector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}},\"io.k8s.api.extensions.v1beta1.NetworkPolicyPort\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.\",\"properties\":{\"port\":{\"description\":\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"protocol\":{\"description\":\"Optional.  The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.NetworkPolicySpec\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.\",\"required\":[\"podSelector\"],\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule\"}},\"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 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).\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule\"}},\"podSelector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.extensions.v1beta1.PodSecurityPolicy\":{\"description\":\"PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated: use PodSecurityPolicy from policy API Group 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec defines the policy enforced.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.PodSecurityPolicyList\":{\"description\":\"PodSecurityPolicyList is a list of PodSecurityPolicy objects. Deprecated: use PodSecurityPolicyList from policy API Group instead.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is a list of schema objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicyList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec\":{\"description\":\"PodSecurityPolicySpec defines the policy enforced. Deprecated: use PodSecurityPolicySpec from policy API Group instead.\",\"required\":[\"seLinux\",\"runAsUser\",\"supplementalGroups\",\"fsGroup\"],\"properties\":{\"allowPrivilegeEscalation\":{\"description\":\"allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.\",\"type\":\"boolean\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.AllowedFlexVolume\"}},\"allowedHostPaths\":{\"description\":\"allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.AllowedHostPath\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"fsGroup\":{\"description\":\"fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.HostPortRange\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"runAsGroup\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RunAsGroupStrategyOptions\"},\"runAsUser\":{\"description\":\"runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions\"},\"seLinux\":{\"description\":\"seLinux is the strategy that will dictate the allowable labels that may be set.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions\"},\"supplementalGroups\":{\"description\":\"supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions\"},\"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 '*'.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.extensions.v1beta1.ReplicaSet\":{\"description\":\"DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"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/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.ReplicaSetCondition\":{\"description\":\"ReplicaSetCondition describes the state of a replica set at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"The last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.extensions.v1beta1.ReplicaSetList\":{\"description\":\"ReplicaSetList is a collection of ReplicaSets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"ReplicaSetList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"description\":\"Selector is a label query over pods that should match the replica count. If the 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 replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.extensions.v1beta1.ReplicaSetStatus\":{\"description\":\"ReplicaSetStatus represents the current status of a ReplicaSet.\",\"required\":[\"replicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a replica set's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"The number of ready replicas for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.extensions.v1beta1.RollbackConfig\":{\"description\":\"DEPRECATED.\",\"properties\":{\"revision\":{\"description\":\"The revision to rollback to. If set to 0, rollback to the last revision.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet\":{\"description\":\"Spec to control the desired behavior of daemon set rolling update.\",\"properties\":{\"maxUnavailable\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.extensions.v1beta1.RollingUpdateDeployment\":{\"description\":\"Spec to control the desired behavior of rolling update.\",\"properties\":{\"maxSurge\":{\"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. By default, a value of 1 is used. Example: when this is set to 30%, the new RC 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 RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"maxUnavailable\":{\"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. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.extensions.v1beta1.RunAsGroupStrategyOptions\":{\"description\":\"RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsGroupStrategyOptions from policy API Group instead.\",\"required\":[\"rule\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate the allowable RunAsGroup values that may be set.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions\":{\"description\":\"RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsUserStrategyOptions from policy API Group instead.\",\"required\":[\"rule\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate the allowable RunAsUser values that may be set.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions\":{\"description\":\"SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use SELinuxStrategyOptions from policy API Group instead.\",\"required\":[\"rule\"],\"properties\":{\"rule\":{\"description\":\"rule is the strategy that will dictate the allowable labels that may be set.\",\"type\":\"string\"},\"seLinuxOptions\":{\"description\":\"seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"}}},\"io.k8s.api.extensions.v1beta1.Scale\":{\"description\":\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ScaleSpec\"},\"status\":{\"description\":\"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ScaleStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.ScaleSpec\":{\"description\":\"describes the attributes of a scale subresource\",\"properties\":{\"replicas\":{\"description\":\"desired number of instances for the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.extensions.v1beta1.ScaleStatus\":{\"description\":\"represents the current status of a scale subresource.\",\"required\":[\"replicas\"],\"properties\":{\"replicas\":{\"description\":\"actual number of observed instances of the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"description\":\"label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"targetSelector\":{\"description\":\"label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions\":{\"description\":\"SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead.\",\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.\",\"type\":\"string\"}}},\"io.k8s.api.networking.v1.IPBlock\":{\"description\":\"IPBlock describes a particular CIDR (Ex. \\\"192.168.1.1/24\\\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.\",\"required\":[\"cidr\"],\"properties\":{\"cidr\":{\"description\":\"CIDR is a string representing the IP Block Valid examples are \\\"192.168.1.1/24\\\"\",\"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\\\" Except values will be rejected if they are outside the CIDR range\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior for this NetworkPolicy.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer\"}}}},\"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 on item, this rule allows traffic only if the traffic matches at least one item in the from list.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort\"}}}},\"io.k8s.api.networking.v1.NetworkPolicyList\":{\"description\":\"NetworkPolicyList is a list of NetworkPolicy objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of schema objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"description\":\"IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.IPBlock\"},\"namespaceSelector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"podSelector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}},\"io.k8s.api.networking.v1.NetworkPolicyPort\":{\"description\":\"NetworkPolicyPort describes a port to allow traffic on\",\"properties\":{\"port\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"protocol\":{\"description\":\"The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.\",\"type\":\"string\"}}},\"io.k8s.api.networking.v1.NetworkPolicySpec\":{\"description\":\"NetworkPolicySpec provides the specification of a NetworkPolicy\",\"required\":[\"podSelector\"],\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule\"}},\"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)\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule\"}},\"podSelector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.policy.v1beta1.AllowedFlexVolume\":{\"description\":\"AllowedFlexVolume represents a single Flexvolume that is allowed to be used.\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the Flexvolume driver.\",\"type\":\"string\"}}},\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"deleteOptions\":{\"description\":\"DeleteOptions may be provided\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"ObjectMeta describes the pod that is being evicted.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate what FSGroup is used in the SecurityContext.\",\"type\":\"string\"}}},\"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.\",\"required\":[\"min\",\"max\"],\"properties\":{\"max\":{\"description\":\"max is the end of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int32\"},\"min\":{\"description\":\"min is the start of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.policy.v1beta1.IDRange\":{\"description\":\"IDRange provides a min/max of an allowed range of IDs.\",\"required\":[\"min\",\"max\"],\"properties\":{\"max\":{\"description\":\"max is the end of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int64\"},\"min\":{\"description\":\"min is the start of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the PodDisruptionBudget.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec\"},\"status\":{\"description\":\"Most recently observed status of the PodDisruptionBudget.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}]},\"io.k8s.api.policy.v1beta1.PodDisruptionBudgetList\":{\"description\":\"PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"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\\\".\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"minAvailable\":{\"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%\\\".\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"selector\":{\"description\":\"Label query over pods whose evictions are managed by the disruption budget.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}},\"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.\",\"required\":[\"disruptionsAllowed\",\"currentHealthy\",\"desiredHealthy\",\"expectedPods\"],\"properties\":{\"currentHealthy\":{\"description\":\"current number of healthy pods\",\"type\":\"integer\",\"format\":\"int32\"},\"desiredHealthy\":{\"description\":\"minimum desired number of healthy pods\",\"type\":\"integer\",\"format\":\"int32\"},\"disruptedPods\":{\"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\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}},\"disruptionsAllowed\":{\"description\":\"Number of pod disruptions that are currently allowed.\",\"type\":\"integer\",\"format\":\"int32\"},\"expectedPods\":{\"description\":\"total number of pods counted by this disruption budget\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and other status informatio is valid only if observedGeneration equals to PDB's object generation.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec defines the policy enforced.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicySpec\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is a list of schema objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"policy\",\"kind\":\"PodSecurityPolicyList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.policy.v1beta1.PodSecurityPolicySpec\":{\"description\":\"PodSecurityPolicySpec defines the policy enforced.\",\"required\":[\"seLinux\",\"runAsUser\",\"supplementalGroups\",\"fsGroup\"],\"properties\":{\"allowPrivilegeEscalation\":{\"description\":\"allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.\",\"type\":\"boolean\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.AllowedFlexVolume\"}},\"allowedHostPaths\":{\"description\":\"allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.AllowedHostPath\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"fsGroup\":{\"description\":\"fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.FSGroupStrategyOptions\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.HostPortRange\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"runAsGroup\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions\"},\"runAsUser\":{\"description\":\"runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions\"},\"seLinux\":{\"description\":\"seLinux is the strategy that will dictate the allowable labels that may be set.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.SELinuxStrategyOptions\"},\"supplementalGroups\":{\"description\":\"supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions\"},\"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 '*'.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions\":{\"description\":\"RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.\",\"required\":[\"rule\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate the allowable RunAsGroup values that may be set.\",\"type\":\"string\"}}},\"io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions\":{\"description\":\"RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.\",\"required\":[\"rule\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate the allowable RunAsUser values that may be set.\",\"type\":\"string\"}}},\"io.k8s.api.policy.v1beta1.SELinuxStrategyOptions\":{\"description\":\"SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.\",\"required\":[\"rule\"],\"properties\":{\"rule\":{\"description\":\"rule is the strategy that will dictate the allowable labels that may be set.\",\"type\":\"string\"},\"seLinuxOptions\":{\"description\":\"seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.\",\"type\":\"string\"}}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}}},\"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.\",\"required\":[\"rules\"],\"properties\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.AggregationRule\"},\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"rules\":{\"description\":\"Rules holds all the PolicyRules for this ClusterRole\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.PolicyRule\"}}},\"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.\",\"required\":[\"roleRef\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"roleRef\":{\"description\":\"RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleRef\"},\"subjects\":{\"description\":\"Subjects holds references to the objects the role applies to.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Subject\"}}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of ClusterRoleBindings\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of ClusterRoles\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRole\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"verbs\"],\"properties\":{\"apiGroups\":{\"description\":\"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"nonResourceURLs\":{\"description\":\"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"),  but not both.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"resourceNames\":{\"description\":\"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"resources\":{\"description\":\"Resources is a list of resources this rule applies to.  ResourceAll represents all resources.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"verbs\":{\"description\":\"Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule.  VerbAll represents all kinds.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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.\",\"required\":[\"rules\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"rules\":{\"description\":\"Rules holds all the PolicyRules for this Role\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.PolicyRule\"}}},\"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.\",\"required\":[\"roleRef\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleRef\"},\"subjects\":{\"description\":\"Subjects holds references to the objects the role applies to.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Subject\"}}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of RoleBindings\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBinding\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of Roles\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Role\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"apiGroup\",\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\"}}},\"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.\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup holds the API group of the referenced subject. Defaults to \\\"\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io\\\" for User and Group subjects.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the object being referenced.\",\"type\":\"string\"},\"namespace\":{\"description\":\"Namespace of the referenced object.  If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\"type\":\"string\"}}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}}},\"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.\",\"required\":[\"rules\"],\"properties\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.AggregationRule\"},\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"rules\":{\"description\":\"Rules holds all the PolicyRules for this ClusterRole\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule\"}}},\"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.\",\"required\":[\"roleRef\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"roleRef\":{\"description\":\"RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleRef\"},\"subjects\":{\"description\":\"Subjects holds references to the objects the role applies to.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Subject\"}}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of ClusterRoleBindings\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of ClusterRoles\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"verbs\"],\"properties\":{\"apiGroups\":{\"description\":\"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"nonResourceURLs\":{\"description\":\"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"),  but not both.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"resourceNames\":{\"description\":\"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"resources\":{\"description\":\"Resources is a list of resources this rule applies to.  '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"verbs\":{\"description\":\"Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule.  VerbAll represents all kinds.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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.\",\"required\":[\"rules\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"rules\":{\"description\":\"Rules holds all the PolicyRules for this Role\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule\"}}},\"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.\",\"required\":[\"roleRef\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleRef\"},\"subjects\":{\"description\":\"Subjects holds references to the objects the role applies to.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Subject\"}}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of RoleBindings\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of Roles\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Role\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"apiGroup\",\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\"}}},\"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.\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup holds the API group of the referenced subject. Defaults to \\\"\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io\\\" for User and Group subjects.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the object being referenced.\",\"type\":\"string\"},\"namespace\":{\"description\":\"Namespace of the referenced object.  If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\"type\":\"string\"}}},\"io.k8s.api.scheduling.v1beta1.PriorityClass\":{\"description\":\"PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.\",\"required\":[\"value\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/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/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is the list of PriorityClasses\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClassList\",\"version\":\"v1beta1\"}]},\"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.\",\"required\":[\"provisioner\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.TopologySelectorTerm\"}},\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"parameters\":{\"description\":\"Parameters holds the parameters for the provisioner that should create volumes of this storage class.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"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\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of StorageClasses\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClass\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSpec\"},\"status\":{\"description\":\"Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachmentStatus\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of VolumeAttachments\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"persistentVolumeName\":{\"description\":\"Name of the persistent volume to attach.\",\"type\":\"string\"}}},\"io.k8s.api.storage.v1.VolumeAttachmentSpec\":{\"description\":\"VolumeAttachmentSpec is the specification of a VolumeAttachment request.\",\"required\":[\"attacher\",\"source\",\"nodeName\"],\"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\":{\"description\":\"Source represents the volume that should be attached.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSource\"}}},\"io.k8s.api.storage.v1.VolumeAttachmentStatus\":{\"description\":\"VolumeAttachmentStatus is the status of a VolumeAttachment request.\",\"required\":[\"attached\"],\"properties\":{\"attachError\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeError\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"detachError\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeError\"}}},\"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\":{\"description\":\"Time the error was encountered.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"required\":[\"provisioner\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.TopologySelectorTerm\"}},\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"parameters\":{\"description\":\"Parameters holds the parameters for the provisioner that should create volumes of this storage class.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"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\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of StorageClasses\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClass\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSpec\"},\"status\":{\"description\":\"Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentStatus\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of VolumeAttachments\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"persistentVolumeName\":{\"description\":\"Name of the persistent volume to attach.\",\"type\":\"string\"}}},\"io.k8s.api.storage.v1beta1.VolumeAttachmentSpec\":{\"description\":\"VolumeAttachmentSpec is the specification of a VolumeAttachment request.\",\"required\":[\"attacher\",\"source\",\"nodeName\"],\"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\":{\"description\":\"Source represents the volume that should be attached.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSource\"}}},\"io.k8s.api.storage.v1beta1.VolumeAttachmentStatus\":{\"description\":\"VolumeAttachmentStatus is the status of a VolumeAttachment request.\",\"required\":[\"attached\"],\"properties\":{\"attachError\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeError\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"detachError\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeError\"}}},\"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\":{\"description\":\"Time the error was encountered.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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 Int64() 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.\",\"required\":[\"name\",\"versions\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"name\":{\"description\":\"name is the name of the group.\",\"type\":\"string\"},\"preferredVersion\":{\"description\":\"preferredVersion is the version preferred by the API server, which probably is the storage version.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\"}},\"versions\":{\"description\":\"versions are the versions supported in this group.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"}}},\"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.\",\"required\":[\"groups\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"groups\":{\"description\":\"groups is a list of APIGroup.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"}},\"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.\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"},\"verbs\":{\"description\":\"verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"}}},\"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.\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/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/api-conventions.md#types-kinds\",\"type\":\"string\"},\"resources\":{\"description\":\"resources contains the name of the resources and if they are namespaced.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}}},\"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.\",\"required\":[\"versions\",\"serverAddressByClientCIDRs\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\"}},\"versions\":{\"description\":\"versions are the api versions that are available.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"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/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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"DeleteOptions\",\"version\":\"v1\"},{\"group\":\"admission.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta1\"},{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1alpha1\"},{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta1\"},{\"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\":\"v1beta1\"},{\"group\":\"events.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta1\"},{\"group\":\"extensions\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta1\"},{\"group\":\"imagepolicy.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1alpha1\"},{\"group\":\"networking.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1\"},{\"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\":\"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.GroupVersionForDiscovery\":{\"description\":\"GroupVersion contains the \\\"group/version\\\" and \\\"version\\\" string of a version. It is made a struct to keep extensibility.\",\"required\":[\"groupVersion\",\"version\"],\"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\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Initializer\":{\"description\":\"Initializer is information about an initializer that has not yet completed.\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"name of the process that is responsible for initializing this object.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Initializers\":{\"description\":\"Initializers tracks the progress of initialization.\",\"required\":[\"pending\"],\"properties\":{\"pending\":{\"description\":\"Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializer\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"result\":{\"description\":\"If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"}},\"matchLabels\":{\"description\":\"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"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.\",\"required\":[\"key\",\"operator\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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\"},\"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/api-conventions.md#concurrency-control-and-consistency\",\"type\":\"string\"},\"selfLink\":{\"description\":\"selfLink is a URL representing this object. Populated by the system. Read-only.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\":{\"description\":\"MicroTime is version of Time with microsecond level precision.\",\"type\":\"string\",\"format\":\"date-time\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"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\":{\"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/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"},\"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/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"initializers\":{\"description\":\"An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\\n\\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializers\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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/api-conventions.md#concurrency-control-and-consistency\",\"type\":\"string\"},\"selfLink\":{\"description\":\"SelfLink is a URL representing this object. Populated by the system. Read-only.\",\"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\"}}},\"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.\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. 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/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\"}}},\"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.\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\":{\"description\":\"Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\",\"properties\":{\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"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.\",\"required\":[\"clientCIDR\",\"serverAddress\"],\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"message\":{\"description\":\"A human-readable description of the status of this operation.\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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/api-conventions.md#spec-and-status\",\"type\":\"string\"}},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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/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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"type\":{\"type\":\"string\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"WatchEvent\",\"version\":\"v1\"},{\"group\":\"admission.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta1\"},{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1alpha1\"},{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta1\"},{\"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\":\"v1beta1\"},{\"group\":\"events.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta1\"},{\"group\":\"extensions\",\"kind\":\"WatchEvent\",\"version\":\"v1beta1\"},{\"group\":\"imagepolicy.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1alpha1\"},{\"group\":\"networking.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1\"},{\"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\":\"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.)\",\"required\":[\"Raw\"],\"properties\":{\"Raw\":{\"description\":\"Raw is the underlying serialization of this object.\",\"type\":\"string\",\"format\":\"byte\"}}},\"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.\",\"type\":\"string\",\"format\":\"int-or-string\"},\"io.k8s.apimachinery.pkg.version.Info\":{\"description\":\"Info contains versioning information. how we'll want to distribute that information.\",\"required\":[\"major\",\"minor\",\"gitVersion\",\"gitCommit\",\"gitTreeState\",\"buildDate\",\"goVersion\",\"compiler\",\"platform\"],\"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\"}}},\"io.k8s.kubernetes.pkg.api.v1.AWSElasticBlockStoreVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.Affinity\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Affinity instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Affinity\"},\"io.k8s.kubernetes.pkg.api.v1.AttachedVolume\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.AttachedVolume instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AttachedVolume\"},\"io.k8s.kubernetes.pkg.api.v1.AzureDiskVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.AzureDiskVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.AzureFileVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.AzureFileVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.Binding\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Binding instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Binding\"},\"io.k8s.kubernetes.pkg.api.v1.Capabilities\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Capabilities instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Capabilities\"},\"io.k8s.kubernetes.pkg.api.v1.CephFSVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.CephFSVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CephFSVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.CinderVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.CinderVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CinderVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.ComponentCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ComponentCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentCondition\"},\"io.k8s.kubernetes.pkg.api.v1.ComponentStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ComponentStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatus\"},\"io.k8s.kubernetes.pkg.api.v1.ComponentStatusList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ComponentStatusList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatusList\"},\"io.k8s.kubernetes.pkg.api.v1.ConfigMap\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ConfigMap instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"},\"io.k8s.kubernetes.pkg.api.v1.ConfigMapEnvSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ConfigMapEnvSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource\"},\"io.k8s.kubernetes.pkg.api.v1.ConfigMapKeySelector\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ConfigMapKeySelector instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector\"},\"io.k8s.kubernetes.pkg.api.v1.ConfigMapList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ConfigMapList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapList\"},\"io.k8s.kubernetes.pkg.api.v1.ConfigMapProjection\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ConfigMapProjection instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapProjection\"},\"io.k8s.kubernetes.pkg.api.v1.ConfigMapVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ConfigMapVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.Container\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Container instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Container\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerImage\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerImage instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerImage\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerPort\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerPort instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerPort\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerState\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerState instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerState\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerStateRunning\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerStateRunning instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateRunning\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerStateTerminated\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerStateTerminated instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateTerminated\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerStateWaiting\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerStateWaiting instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateWaiting\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStatus\"},\"io.k8s.kubernetes.pkg.api.v1.DaemonEndpoint\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.DaemonEndpoint instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DaemonEndpoint\"},\"io.k8s.kubernetes.pkg.api.v1.DownwardAPIProjection\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.DownwardAPIProjection instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIProjection\"},\"io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeFile\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.DownwardAPIVolumeFile instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"},\"io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.DownwardAPIVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.EmptyDirVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EmptyDirVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.EndpointAddress\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EndpointAddress instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointAddress\"},\"io.k8s.kubernetes.pkg.api.v1.EndpointPort\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EndpointPort instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointPort\"},\"io.k8s.kubernetes.pkg.api.v1.EndpointSubset\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EndpointSubset instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointSubset\"},\"io.k8s.kubernetes.pkg.api.v1.Endpoints\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Endpoints instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"},\"io.k8s.kubernetes.pkg.api.v1.EndpointsList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EndpointsList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointsList\"},\"io.k8s.kubernetes.pkg.api.v1.EnvFromSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EnvFromSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvFromSource\"},\"io.k8s.kubernetes.pkg.api.v1.EnvVar\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EnvVar instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVar\"},\"io.k8s.kubernetes.pkg.api.v1.EnvVarSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EnvVarSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVarSource\"},\"io.k8s.kubernetes.pkg.api.v1.Event\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Event instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"},\"io.k8s.kubernetes.pkg.api.v1.EventList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EventList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventList\"},\"io.k8s.kubernetes.pkg.api.v1.EventSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EventSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventSource\"},\"io.k8s.kubernetes.pkg.api.v1.ExecAction\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ExecAction instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ExecAction\"},\"io.k8s.kubernetes.pkg.api.v1.FCVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.FCVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.FlexVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.FlexVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlexVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.FlockerVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.FlockerVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.GCEPersistentDiskVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.GCEPersistentDiskVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.GitRepoVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.GitRepoVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.GlusterfsVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.GlusterfsVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.HTTPGetAction\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.HTTPGetAction instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"},\"io.k8s.kubernetes.pkg.api.v1.HTTPHeader\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.HTTPHeader instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPHeader\"},\"io.k8s.kubernetes.pkg.api.v1.Handler\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Handler instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Handler\"},\"io.k8s.kubernetes.pkg.api.v1.HostAlias\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.HostAlias instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostAlias\"},\"io.k8s.kubernetes.pkg.api.v1.HostPathVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.HostPathVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.ISCSIVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ISCSIVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.KeyToPath\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.KeyToPath instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"},\"io.k8s.kubernetes.pkg.api.v1.Lifecycle\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Lifecycle instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Lifecycle\"},\"io.k8s.kubernetes.pkg.api.v1.LimitRange\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LimitRange instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"},\"io.k8s.kubernetes.pkg.api.v1.LimitRangeItem\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LimitRangeItem instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeItem\"},\"io.k8s.kubernetes.pkg.api.v1.LimitRangeList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LimitRangeList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeList\"},\"io.k8s.kubernetes.pkg.api.v1.LimitRangeSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LimitRangeSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeSpec\"},\"io.k8s.kubernetes.pkg.api.v1.LoadBalancerIngress\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LoadBalancerIngress instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LoadBalancerIngress\"},\"io.k8s.kubernetes.pkg.api.v1.LoadBalancerStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LoadBalancerStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LoadBalancerStatus\"},\"io.k8s.kubernetes.pkg.api.v1.LocalObjectReference\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LocalObjectReference instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"io.k8s.kubernetes.pkg.api.v1.LocalVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LocalVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.NFSVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NFSVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.Namespace\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Namespace instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"},\"io.k8s.kubernetes.pkg.api.v1.NamespaceList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NamespaceList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceList\"},\"io.k8s.kubernetes.pkg.api.v1.NamespaceSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NamespaceSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceSpec\"},\"io.k8s.kubernetes.pkg.api.v1.NamespaceStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NamespaceStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceStatus\"},\"io.k8s.kubernetes.pkg.api.v1.Node\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Node instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"},\"io.k8s.kubernetes.pkg.api.v1.NodeAddress\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeAddress instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeAddress\"},\"io.k8s.kubernetes.pkg.api.v1.NodeAffinity\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeAffinity instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeAffinity\"},\"io.k8s.kubernetes.pkg.api.v1.NodeCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeCondition\"},\"io.k8s.kubernetes.pkg.api.v1.NodeDaemonEndpoints\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeDaemonEndpoints instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints\"},\"io.k8s.kubernetes.pkg.api.v1.NodeList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeList\"},\"io.k8s.kubernetes.pkg.api.v1.NodeSelector\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeSelector instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelector\"},\"io.k8s.kubernetes.pkg.api.v1.NodeSelectorRequirement\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeSelectorRequirement instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"},\"io.k8s.kubernetes.pkg.api.v1.NodeSelectorTerm\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeSelectorTerm instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"},\"io.k8s.kubernetes.pkg.api.v1.NodeSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSpec\"},\"io.k8s.kubernetes.pkg.api.v1.NodeStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeStatus\"},\"io.k8s.kubernetes.pkg.api.v1.NodeSystemInfo\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeSystemInfo instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSystemInfo\"},\"io.k8s.kubernetes.pkg.api.v1.ObjectFieldSelector\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ObjectFieldSelector instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"},\"io.k8s.kubernetes.pkg.api.v1.ObjectReference\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ObjectReference instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolume\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolume instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaim\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaim instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeList\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus\"},\"io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.Pod\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Pod instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"},\"io.k8s.kubernetes.pkg.api.v1.PodAffinity\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodAffinity instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinity\"},\"io.k8s.kubernetes.pkg.api.v1.PodAffinityTerm\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodAffinityTerm instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"},\"io.k8s.kubernetes.pkg.api.v1.PodAntiAffinity\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodAntiAffinity instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAntiAffinity\"},\"io.k8s.kubernetes.pkg.api.v1.PodCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodCondition\"},\"io.k8s.kubernetes.pkg.api.v1.PodList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodList\"},\"io.k8s.kubernetes.pkg.api.v1.PodSecurityContext\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodSecurityContext instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSecurityContext\"},\"io.k8s.kubernetes.pkg.api.v1.PodSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSpec\"},\"io.k8s.kubernetes.pkg.api.v1.PodStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodStatus\"},\"io.k8s.kubernetes.pkg.api.v1.PodTemplate\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodTemplate instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"},\"io.k8s.kubernetes.pkg.api.v1.PodTemplateList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodTemplateList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateList\"},\"io.k8s.kubernetes.pkg.api.v1.PodTemplateSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodTemplateSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"io.k8s.kubernetes.pkg.api.v1.PortworxVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PortworxVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.PreferredSchedulingTerm\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PreferredSchedulingTerm instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm\"},\"io.k8s.kubernetes.pkg.api.v1.Probe\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Probe instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"io.k8s.kubernetes.pkg.api.v1.ProjectedVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ProjectedVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.QuobyteVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.QuobyteVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.RBDVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.RBDVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.RBDVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.ReplicationController\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ReplicationController instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"},\"io.k8s.kubernetes.pkg.api.v1.ReplicationControllerCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition\"},\"io.k8s.kubernetes.pkg.api.v1.ReplicationControllerList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerList\"},\"io.k8s.kubernetes.pkg.api.v1.ReplicationControllerSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec\"},\"io.k8s.kubernetes.pkg.api.v1.ReplicationControllerStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus\"},\"io.k8s.kubernetes.pkg.api.v1.ResourceFieldSelector\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ResourceFieldSelector instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"},\"io.k8s.kubernetes.pkg.api.v1.ResourceQuota\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ResourceQuota instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"},\"io.k8s.kubernetes.pkg.api.v1.ResourceQuotaList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ResourceQuotaList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaList\"},\"io.k8s.kubernetes.pkg.api.v1.ResourceQuotaSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ResourceQuotaSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec\"},\"io.k8s.kubernetes.pkg.api.v1.ResourceQuotaStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ResourceQuotaStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus\"},\"io.k8s.kubernetes.pkg.api.v1.ResourceRequirements\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ResourceRequirements instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"},\"io.k8s.kubernetes.pkg.api.v1.SELinuxOptions\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SELinuxOptions instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"},\"io.k8s.kubernetes.pkg.api.v1.ScaleIOVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ScaleIOVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.Secret\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Secret instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"},\"io.k8s.kubernetes.pkg.api.v1.SecretEnvSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SecretEnvSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretEnvSource\"},\"io.k8s.kubernetes.pkg.api.v1.SecretKeySelector\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SecretKeySelector instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretKeySelector\"},\"io.k8s.kubernetes.pkg.api.v1.SecretList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SecretList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretList\"},\"io.k8s.kubernetes.pkg.api.v1.SecretProjection\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SecretProjection instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretProjection\"},\"io.k8s.kubernetes.pkg.api.v1.SecretVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SecretVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.SecurityContext\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SecurityContext instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecurityContext\"},\"io.k8s.kubernetes.pkg.api.v1.Service\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Service instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"},\"io.k8s.kubernetes.pkg.api.v1.ServiceAccount\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ServiceAccount instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"},\"io.k8s.kubernetes.pkg.api.v1.ServiceAccountList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ServiceAccountList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccountList\"},\"io.k8s.kubernetes.pkg.api.v1.ServiceList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ServiceList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceList\"},\"io.k8s.kubernetes.pkg.api.v1.ServicePort\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ServicePort instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServicePort\"},\"io.k8s.kubernetes.pkg.api.v1.ServiceSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ServiceSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceSpec\"},\"io.k8s.kubernetes.pkg.api.v1.ServiceStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ServiceStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceStatus\"},\"io.k8s.kubernetes.pkg.api.v1.StorageOSPersistentVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.StorageOSPersistentVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.StorageOSVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.StorageOSVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.TCPSocketAction\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.TCPSocketAction instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"},\"io.k8s.kubernetes.pkg.api.v1.Taint\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Taint instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Taint\"},\"io.k8s.kubernetes.pkg.api.v1.Toleration\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Toleration instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Toleration\"},\"io.k8s.kubernetes.pkg.api.v1.Volume\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Volume instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Volume\"},\"io.k8s.kubernetes.pkg.api.v1.VolumeMount\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.VolumeMount instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeMount\"},\"io.k8s.kubernetes.pkg.api.v1.VolumeProjection\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.VolumeProjection instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeProjection\"},\"io.k8s.kubernetes.pkg.api.v1.VsphereVirtualDiskVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.WeightedPodAffinityTerm\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.WeightedPodAffinityTerm instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevision\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.ControllerRevision instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevisionList\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.ControllerRevisionList instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.Deployment\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.Deployment instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentCondition\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentList\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentList instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentList\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentRollback\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentRollback instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentSpec\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentStrategy\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentStrategy instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentStrategy\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollbackConfig\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.RollbackConfig instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollingUpdateDeployment\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.RollingUpdateDeployment instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateDeployment\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollingUpdateStatefulSetStrategy\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.Scale\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.Scale instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.ScaleSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.ScaleSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ScaleSpec\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.ScaleStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.ScaleStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ScaleStatus\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSet\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSet instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetList\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetList instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetSpec\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetStatus\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetUpdateStrategy\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1.TokenReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenReview\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReviewSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1.TokenReviewSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReviewStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1.TokenReviewStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1.UserInfo\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1.UserInfo instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.UserInfo\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1beta1.TokenReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.TokenReview\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReviewSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1beta1.TokenReviewSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReviewStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1beta1.TokenReviewStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1beta1.UserInfo\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1beta1.UserInfo instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.UserInfo\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.LocalSubjectAccessReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.LocalSubjectAccessReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.NonResourceAttributes\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.NonResourceAttributes instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.ResourceAttributes\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.ResourceAttributes instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.ResourceAttributes\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.SelfSubjectAccessReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.SelfSubjectAccessReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.SelfSubjectAccessReviewSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.SubjectAccessReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReviewSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.SubjectAccessReviewSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReviewStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.SubjectAccessReviewStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.LocalSubjectAccessReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.NonResourceAttributes\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.NonResourceAttributes instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.ResourceAttributes\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.ResourceAttributes instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SelfSubjectAccessReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SelfSubjectAccessReviewSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.SubjectAccessReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReviewSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReviewStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.CrossVersionObjectReference\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.CrossVersionObjectReference instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscaler\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerList\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.Scale\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.Scale instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.ScaleSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.ScaleSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.ScaleStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.ScaleStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus\"},\"io.k8s.kubernetes.pkg.apis.batch.v1.Job\":{\"description\":\"Deprecated. Please use io.k8s.api.batch.v1.Job instead.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"},\"io.k8s.kubernetes.pkg.apis.batch.v1.JobCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.batch.v1.JobCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobCondition\"},\"io.k8s.kubernetes.pkg.apis.batch.v1.JobList\":{\"description\":\"Deprecated. Please use io.k8s.api.batch.v1.JobList instead.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobList\"},\"io.k8s.kubernetes.pkg.apis.batch.v1.JobSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.batch.v1.JobSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobSpec\"},\"io.k8s.kubernetes.pkg.apis.batch.v1.JobStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.batch.v1.JobStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobStatus\"},\"io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequest\":{\"description\":\"Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequest instead.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"},\"io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition\"},\"io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestList\":{\"description\":\"Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestList instead.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList\"},\"io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec\"},\"io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSet\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSet instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetList\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetList instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetSpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetStatus\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetUpdateStrategy\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Deployment\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.Deployment instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentCondition\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentList\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentList instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentRollback\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentRollback instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentSpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStatus\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStrategy\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentStrategy instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStrategy\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.FSGroupStrategyOptions\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressPath\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.HTTPIngressPath instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressRuleValue\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HostPortRange\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.HostPortRange instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.HostPortRange\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IDRange\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IDRange instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IDRange\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Ingress\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.Ingress instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressBackend\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressBackend instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressList\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressList instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressList\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressRule\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressRule instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressRule\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressTLS\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressTLS instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicy\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicy instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyIngressRule\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyList\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyList instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyPeer\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyPeer instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyPort\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyPort instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPort\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicySpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicySpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicySpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicy\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.PodSecurityPolicy instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicyList\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.PodSecurityPolicyList instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicyList\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicySpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSet\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSet instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetCondition\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetList\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetList instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetSpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetStatus\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollbackConfig\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.RollbackConfig instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDaemonSet\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDeployment\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.RollingUpdateDeployment instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDeployment\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RunAsUserStrategyOptions\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.SELinuxStrategyOptions\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Scale\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.Scale instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ScaleSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ScaleSpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ScaleStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ScaleStatus\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.SupplementalGroupsStrategyOptions\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions\"},\"io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicy\":{\"description\":\"Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicy instead.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"},\"io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyIngressRule\":{\"description\":\"Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyIngressRule instead.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule\"},\"io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyList\":{\"description\":\"Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyList instead.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyList\"},\"io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyPeer\":{\"description\":\"Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyPeer instead.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer\"},\"io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyPort\":{\"description\":\"Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyPort instead.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort\"},\"io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicySpec\":{\"description\":\"Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicySpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec\"},\"io.k8s.kubernetes.pkg.apis.policy.v1beta1.Eviction\":{\"description\":\"Deprecated. Please use io.k8s.api.policy.v1beta1.Eviction instead.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.Eviction\"},\"io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudget\":{\"description\":\"Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudget instead.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"},\"io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetList\":{\"description\":\"Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudgetList instead.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList\"},\"io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec\"},\"io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRole\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRole instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleBinding\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRoleBinding instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleBindingList\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRoleBindingList instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleList\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRoleList instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.PolicyRule\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.PolicyRule instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.Role\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.Role instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Role\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleBinding\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleBinding instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleBindingList\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleBindingList instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleList\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleList instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleList\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleRef\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleRef instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleRef\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.Subject\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.Subject instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Subject\"},\"io.k8s.kubernetes.pkg.apis.storage.v1.StorageClass\":{\"description\":\"Deprecated. Please use io.k8s.api.storage.v1.StorageClass instead.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClass\"},\"io.k8s.kubernetes.pkg.apis.storage.v1.StorageClassList\":{\"description\":\"Deprecated. Please use io.k8s.api.storage.v1.StorageClassList instead.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClassList\"},\"io.k8s.kubernetes.pkg.apis.storage.v1beta1.StorageClass\":{\"description\":\"Deprecated. Please use io.k8s.api.storage.v1beta1.StorageClass instead.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClass\"},\"io.k8s.kubernetes.pkg.apis.storage.v1beta1.StorageClassList\":{\"description\":\"Deprecated. Please use io.k8s.api.storage.v1beta1.StorageClassList instead.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClassList\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "test/integration/testdata/aggregator/openapi-2.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.14.0\"},\"paths\":{\"/apis/apiextensions.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions\"],\"operationId\":\"getApiextensionsAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apiextensions.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"getApiextensionsV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions\":{\"get\":{\"description\":\"list or watch objects of kind CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"listApiextensionsV1beta1CustomResourceDefinition\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"createApiextensionsV1beta1CustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"deleteApiextensionsV1beta1CollectionCustomResourceDefinition\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}\":{\"get\":{\"description\":\"read the specified CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"readApiextensionsV1beta1CustomResourceDefinition\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"replaceApiextensionsV1beta1CustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"deleteApiextensionsV1beta1CustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified CustomResourceDefinition\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"patchApiextensionsV1beta1CustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CustomResourceDefinition\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status\":{\"get\":{\"description\":\"read status of the specified CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"readApiextensionsV1beta1CustomResourceDefinitionStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"replaceApiextensionsV1beta1CustomResourceDefinitionStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified CustomResourceDefinition\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"patchApiextensionsV1beta1CustomResourceDefinitionStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CustomResourceDefinition\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions\":{\"get\":{\"description\":\"watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"watchApiextensionsV1beta1CustomResourceDefinitionList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"watchApiextensionsV1beta1CustomResourceDefinition\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CustomResourceDefinition\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/version/\":{\"get\":{\"description\":\"get the code version\",\"consumes\":[\"application/json\"],\"produces\":[\"application/json\"],\"schemes\":[\"https\"],\"tags\":[\"version\"],\"operationId\":\"getCodeVersion\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.version.Info\"}},\"401\":{\"description\":\"Unauthorized\"}}}}},\"definitions\":{\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"required\":[\"name\",\"type\",\"JSONPath\"],\"properties\":{\"JSONPath\":{\"description\":\"JSONPath is a simple JSON path, i.e. with array notation.\",\"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 more.\",\"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 higher priority.\",\"type\":\"integer\",\"format\":\"int32\"},\"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 more.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"required\":[\"strategy\"],\"properties\":{\"strategy\":{\"description\":\"`strategy` specifies the conversion strategy. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the CR. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.\",\"type\":\"string\"},\"webhookClientConfig\":{\"description\":\"`webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig\"}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec describes how the user wants the resources to appear\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"Status indicates the actual state of the CustomResourceDefinition\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList\":{\"description\":\"CustomResourceDefinitionList is a list of CustomResourceDefinition objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items individual CustomResourceDefinitions\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"plural\",\"kind\"],\"properties\":{\"categories\":{\"description\":\"Categories is a list of grouped resources custom resources belong to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"kind\":{\"description\":\"Kind is the serialized kind of the resource.  It is normally CamelCase and singular.\",\"type\":\"string\"},\"listKind\":{\"description\":\"ListKind is the serialized kind of the list for this resource.  Defaults to \\u003ckind\\u003eList.\",\"type\":\"string\"},\"plural\":{\"description\":\"Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration too: plural.group and it must be all lowercase.\",\"type\":\"string\"},\"shortNames\":{\"description\":\"ShortNames are short names for the resource.  It must be all lowercase.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"singular\":{\"description\":\"Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased \\u003ckind\\u003e\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"required\":[\"group\",\"names\",\"scope\"],\"properties\":{\"additionalPrinterColumns\":{\"description\":\"AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column. Optional, the global columns for all versions. Top-level and per-version columns are mutually exclusive.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition\"}},\"conversion\":{\"description\":\"`conversion` defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion\"},\"group\":{\"description\":\"Group is the group this resource belongs in\",\"type\":\"string\"},\"names\":{\"description\":\"Names are the names used to describe this custom resource\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames\"},\"scope\":{\"description\":\"Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced\",\"type\":\"string\"},\"subresources\":{\"description\":\"Subresources describes the subresources for CustomResource Optional, the global subresources for all versions. Top-level and per-version subresources are mutually exclusive.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources\"},\"validation\":{\"description\":\"Validation describes the validation methods for CustomResources Optional, the global validation schema for all versions. Top-level and per-version schemas are mutually exclusive.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation\"},\"version\":{\"description\":\"Version is the version this resource belongs in Should be always first item in Versions field if provided. Optional, but at least one of Version or Versions must be set. Deprecated: Please use `Versions`.\",\"type\":\"string\"},\"versions\":{\"description\":\"Versions is the list of all supported versions for this resource. If Version field is provided, this field is optional. Validation: All versions must use the same validation schema for now. i.e., top level Validation field is applied to all of these versions. Order: The version name will be used to compute the order. 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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"required\":[\"conditions\",\"acceptedNames\",\"storedVersions\"],\"properties\":{\"acceptedNames\":{\"description\":\"AcceptedNames are the names that are actually being used to serve discovery They may be different than the names in spec.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"Conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition\"}},\"storedVersions\":{\"description\":\"StoredVersions are 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 the migration controller can first finish a migration to another version (i.e. that no old objects are left in the storage), and then remove the rest of the versions from this list. None of the versions in this list can be removed from the spec.Versions field.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"required\":[\"name\",\"served\",\"storage\"],\"properties\":{\"additionalPrinterColumns\":{\"description\":\"AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column. 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) This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature. NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must be explicitly set to null\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition\"}},\"name\":{\"description\":\"Name is the version name, e.g. “v1”, “v2beta1”, etc.\",\"type\":\"string\"},\"schema\":{\"description\":\"Schema describes the schema for CustomResource used in validation, pruning, and defaulting. 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) This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation\"},\"served\":{\"description\":\"Served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\"},\"storage\":{\"description\":\"Storage flags the version as storage version. There must be exactly one flagged as storage version.\",\"type\":\"boolean\"},\"subresources\":{\"description\":\"Subresources describes the subresources for CustomResource 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) This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"properties\":{\"labelSelectorPath\":{\"description\":\"LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. Must be set to work with HPA. If there is no value under the given path in the CustomResource, the status label selector value in the /scale subresource will default to the empty string.\",\"type\":\"string\"},\"specReplicasPath\":{\"description\":\"SpecReplicasPath defines the JSON path inside of a CustomResource 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 CustomResource, the /scale subresource will return an error on GET.\",\"type\":\"string\"},\"statusReplicasPath\":{\"description\":\"StatusReplicasPath defines the JSON path inside of a CustomResource 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 CustomResource, the status replica value in the /scale subresource will default to 0.\",\"type\":\"string\"}}},\"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\"},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources\":{\"description\":\"CustomResourceSubresources defines the status and scale subresources for CustomResources.\",\"properties\":{\"scale\":{\"description\":\"Scale denotes the scale subresource for CustomResources\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale\"},\"status\":{\"description\":\"Status denotes the status subresource for CustomResources\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}}},\"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\"}}},\"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\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}},\"default\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON\"}},\"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\":{\"type\":\"string\"},\"id\":{\"type\":\"string\"},\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray\"},\"maxItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"title\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"uniqueItems\":{\"type\":\"boolean\"}}},\"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\",\"required\":[\"namespace\",\"name\"],\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook. It has the same field as admissionregistration.v1beta1.WebhookClientConfig.\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\\n\\nPort 443 will be used if it is open, otherwise it is an error.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference\"},\"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\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\":{\"description\":\"APIGroup contains the name, the supported versions, and the preferred version of a group.\",\"required\":[\"name\",\"versions\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"name\":{\"description\":\"name is the name of the group.\",\"type\":\"string\"},\"preferredVersion\":{\"description\":\"preferredVersion is the version preferred by the API server, which probably is the storage version.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\"}},\"versions\":{\"description\":\"versions are the versions supported in this group.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIGroup\",\"version\":\"v1\"}]},\"io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\":{\"description\":\"APIResource specifies the name of a resource and whether it is namespaced.\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"},\"verbs\":{\"description\":\"verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"}}},\"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.\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/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/api-conventions.md#types-kinds\",\"type\":\"string\"},\"resources\":{\"description\":\"resources contains the name of the resources and if they are namespaced.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"APIResourceList\",\"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/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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"DeleteOptions\",\"version\":\"v1\"},{\"group\":\"admission.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta1\"},{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1alpha1\"},{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta1\"},{\"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\":\"v1beta1\"},{\"group\":\"events.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta1\"},{\"group\":\"extensions\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta1\"},{\"group\":\"imagepolicy.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1alpha1\"},{\"group\":\"networking.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1\"},{\"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\":\"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.GroupVersionForDiscovery\":{\"description\":\"GroupVersion contains the \\\"group/version\\\" and \\\"version\\\" string of a version. It is made a struct to keep extensibility.\",\"required\":[\"groupVersion\",\"version\"],\"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\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Initializer\":{\"description\":\"Initializer is information about an initializer that has not yet completed.\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"name of the process that is responsible for initializing this object.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Initializers\":{\"description\":\"Initializers tracks the progress of initialization.\",\"required\":[\"pending\"],\"properties\":{\"pending\":{\"description\":\"Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializer\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"result\":{\"description\":\"If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}},\"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\"},\"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/api-conventions.md#concurrency-control-and-consistency\",\"type\":\"string\"},\"selfLink\":{\"description\":\"selfLink is a URL representing this object. Populated by the system. Read-only.\",\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"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\":{\"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/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"},\"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/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"initializers\":{\"description\":\"An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\\n\\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializers\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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/api-conventions.md#concurrency-control-and-consistency\",\"type\":\"string\"},\"selfLink\":{\"description\":\"SelfLink is a URL representing this object. Populated by the system. Read-only.\",\"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\"}}},\"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.\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. 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/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\"}}},\"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.\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\":{\"description\":\"Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\",\"properties\":{\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"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.\",\"required\":[\"clientCIDR\",\"serverAddress\"],\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"message\":{\"description\":\"A human-readable description of the status of this operation.\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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/api-conventions.md#spec-and-status\",\"type\":\"string\"}},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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/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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"type\":{\"type\":\"string\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"WatchEvent\",\"version\":\"v1\"},{\"group\":\"admission.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta1\"},{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1alpha1\"},{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta1\"},{\"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\":\"v1beta1\"},{\"group\":\"events.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta1\"},{\"group\":\"extensions\",\"kind\":\"WatchEvent\",\"version\":\"v1beta1\"},{\"group\":\"imagepolicy.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1alpha1\"},{\"group\":\"networking.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1\"},{\"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\":\"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.)\",\"required\":[\"Raw\"],\"properties\":{\"Raw\":{\"description\":\"Raw is the underlying serialization of this object.\",\"type\":\"string\",\"format\":\"byte\"}}},\"io.k8s.apimachinery.pkg.version.Info\":{\"description\":\"Info contains versioning information. how we'll want to distribute that information.\",\"required\":[\"major\",\"minor\",\"gitVersion\",\"gitCommit\",\"gitTreeState\",\"buildDate\",\"goVersion\",\"compiler\",\"platform\"],\"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\"}}}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "test/integration/testdata/aggregator/openapi.json",
    "content": "{\"swagger\":\"2.0\",\"info\":{\"title\":\"Kubernetes\",\"version\":\"v1.14.0\"},\"paths\":{\"/api/\":{\"get\":{\"description\":\"get available API versions\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core\"],\"operationId\":\"getCoreAPIVersions\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/api/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"getCoreV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/api/v1/componentstatuses\":{\"get\":{\"description\":\"list objects of kind ComponentStatus\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ComponentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatusList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ComponentStatus\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/componentstatuses/{name}\":{\"get\":{\"description\":\"read the specified ComponentStatus\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1ComponentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatus\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ComponentStatus\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ComponentStatus\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/configmaps\":{\"get\":{\"description\":\"list or watch objects of kind ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ConfigMapForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/endpoints\":{\"get\":{\"description\":\"list or watch objects of kind Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1EndpointsForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointsList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/events\":{\"get\":{\"description\":\"list or watch objects of kind Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1EventForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/limitranges\":{\"get\":{\"description\":\"list or watch objects of kind LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1LimitRangeForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/namespaces\":{\"get\":{\"description\":\"list or watch objects of kind Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1Namespace\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1Namespace\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/bindings\":{\"post\":{\"description\":\"create a Binding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Binding\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Binding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/configmaps\":{\"get\":{\"description\":\"list or watch objects of kind ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedConfigMap\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedConfigMap\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/configmaps/{name}\":{\"get\":{\"description\":\"read the specified ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedConfigMap\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ConfigMap\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ConfigMap\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedConfigMap\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ConfigMap\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/endpoints\":{\"get\":{\"description\":\"list or watch objects of kind Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedEndpoints\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointsList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"post\":{\"description\":\"create Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedEndpoints\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/endpoints/{name}\":{\"get\":{\"description\":\"read the specified Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedEndpoints\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete Endpoints\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Endpoints\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedEndpoints\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Endpoints\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/events\":{\"get\":{\"description\":\"list or watch objects of kind Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"post\":{\"description\":\"create an Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/events/{name}\":{\"get\":{\"description\":\"read the specified Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete an Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Event\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Event\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/limitranges\":{\"get\":{\"description\":\"list or watch objects of kind LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedLimitRange\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedLimitRange\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/limitranges/{name}\":{\"get\":{\"description\":\"read the specified LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedLimitRange\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a LimitRange\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified LimitRange\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedLimitRange\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the LimitRange\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims\":{\"get\":{\"description\":\"list or watch objects of kind PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedPersistentVolumeClaim\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}\":{\"get\":{\"description\":\"read the specified PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified PersistentVolumeClaim\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPersistentVolumeClaim\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolumeClaim\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status\":{\"get\":{\"description\":\"read status of the specified PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPersistentVolumeClaimStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPersistentVolumeClaimStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified PersistentVolumeClaim\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPersistentVolumeClaimStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolumeClaim\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods\":{\"get\":{\"description\":\"list or watch objects of kind Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedPod\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedPod\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}\":{\"get\":{\"description\":\"read the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPod\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Pod\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPod\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/attach\":{\"get\":{\"description\":\"connect GET requests to attach of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodAttach\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodAttachOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to attach of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodAttach\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodAttachOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\"name\":\"container\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodAttachOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.\",\"name\":\"stderr\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.\",\"name\":\"stdin\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.\",\"name\":\"stdout\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"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.\",\"name\":\"tty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/binding\":{\"post\":{\"description\":\"create binding of a Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPodBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Binding\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Binding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Binding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/eviction\":{\"post\":{\"description\":\"create eviction of a Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPodEviction\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.Eviction\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"Eviction\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Eviction\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/exec\":{\"get\":{\"description\":\"connect GET requests to exec of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodExec\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodExecOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to exec of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodExec\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodExecOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Command is the remote command to execute. argv array. Not executed within a shell.\",\"name\":\"command\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\"name\":\"container\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodExecOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Redirect the standard error stream of the pod for this call. Defaults to true.\",\"name\":\"stderr\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Redirect the standard input stream of the pod for this call. Defaults to false.\",\"name\":\"stdin\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Redirect the standard output stream of the pod for this call. Defaults to true.\",\"name\":\"stdout\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.\",\"name\":\"tty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/log\":{\"get\":{\"description\":\"read log of the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"text/plain\",\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPodLog\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The container for which to stream logs. Defaults to only container if there is one container in the pod.\",\"name\":\"container\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Follow the log stream of the pod. Defaults to false.\",\"name\":\"follow\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"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.\",\"name\":\"limitBytes\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Return previous terminated container logs. Defaults to false.\",\"name\":\"previous\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"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.\",\"name\":\"sinceSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"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\",\"name\":\"tailLines\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.\",\"name\":\"timestamps\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/portforward\":{\"get\":{\"description\":\"connect GET requests to portforward of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodPortforward\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodPortForwardOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to portforward of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodPortforward\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodPortForwardOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodPortForwardOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"List of ports to forward Required when using WebSockets\",\"name\":\"ports\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/proxy\":{\"get\":{\"description\":\"connect GET requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNamespacedPodProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Path is the URL path to use for the current proxy request to pod.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}\":{\"get\":{\"description\":\"connect GET requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNamespacedPodProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodProxyOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"path to the resource\",\"name\":\"path\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Path is the URL path to use for the current proxy request to pod.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/pods/{name}/status\":{\"get\":{\"description\":\"read status of the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPodStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPodStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified Pod\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPodStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/podtemplates\":{\"get\":{\"description\":\"list or watch objects of kind PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedPodTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedPodTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/podtemplates/{name}\":{\"get\":{\"description\":\"read the specified PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedPodTemplate\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified PodTemplate\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedPodTemplate\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodTemplate\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers\":{\"get\":{\"description\":\"list or watch objects of kind ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedReplicationController\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedReplicationController\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}\":{\"get\":{\"description\":\"read the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedReplicationController\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ReplicationController\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedReplicationController\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicationController\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedReplicationControllerScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace scale of the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedReplicationControllerScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update scale of the specified ReplicationController\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedReplicationControllerScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status\":{\"get\":{\"description\":\"read status of the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedReplicationControllerStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedReplicationControllerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified ReplicationController\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedReplicationControllerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicationController\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/resourcequotas\":{\"get\":{\"description\":\"list or watch objects of kind ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedResourceQuota\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedResourceQuota\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/resourcequotas/{name}\":{\"get\":{\"description\":\"read the specified ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedResourceQuota\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ResourceQuota\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedResourceQuota\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ResourceQuota\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/resourcequotas/{name}/status\":{\"get\":{\"description\":\"read status of the specified ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedResourceQuotaStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedResourceQuotaStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified ResourceQuota\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedResourceQuotaStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ResourceQuota\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/secrets\":{\"get\":{\"description\":\"list or watch objects of kind Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedSecret\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedSecret\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/secrets/{name}\":{\"get\":{\"description\":\"read the specified Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedSecret\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Secret\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedSecret\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Secret\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/serviceaccounts\":{\"get\":{\"description\":\"list or watch objects of kind ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedServiceAccount\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccountList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNamespacedServiceAccount\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/serviceaccounts/{name}\":{\"get\":{\"description\":\"read the specified ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedServiceAccount\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ServiceAccount\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedServiceAccount\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ServiceAccount\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services\":{\"get\":{\"description\":\"list or watch objects of kind Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1NamespacedService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1NamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services/{name}\":{\"get\":{\"description\":\"read the specified Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1NamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Service\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Service\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services/{name}/proxy\":{\"get\":{\"description\":\"connect GET requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNamespacedServiceProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ServiceProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"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.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}\":{\"get\":{\"description\":\"connect GET requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Service\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNamespacedServiceProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceProxyOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ServiceProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"path to the resource\",\"name\":\"path\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"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.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/namespaces/{namespace}/services/{name}/status\":{\"get\":{\"description\":\"read status of the specified Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespacedServiceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespacedServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified Service\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespacedServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Service\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{name}\":{\"get\":{\"description\":\"read the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1Namespace\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1Namespace\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1Namespace\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Namespace\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1Namespace\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Namespace\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{name}/finalize\":{\"put\":{\"description\":\"replace finalize of the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespaceFinalize\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Namespace\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/namespaces/{name}/status\":{\"get\":{\"description\":\"read status of the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NamespaceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified Namespace\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NamespaceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified Namespace\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NamespaceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Namespace\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/nodes\":{\"get\":{\"description\":\"list or watch objects of kind Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1Node\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1Node\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionNode\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/nodes/{name}\":{\"get\":{\"description\":\"read the specified Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1Node\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1Node\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1Node\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Node\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1Node\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Node\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/nodes/{name}/proxy\":{\"get\":{\"description\":\"connect GET requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNodeProxy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NodeProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Path is the URL path to use for the current proxy request to node.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/nodes/{name}/proxy/{path}\":{\"get\":{\"description\":\"connect GET requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1GetNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"put\":{\"description\":\"connect PUT requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PutNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"post\":{\"description\":\"connect POST requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PostNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"delete\":{\"description\":\"connect DELETE requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1DeleteNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"options\":{\"description\":\"connect OPTIONS requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1OptionsNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"head\":{\"description\":\"connect HEAD requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1HeadNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"patch\":{\"description\":\"connect PATCH requests to proxy of Node\",\"consumes\":[\"*/*\"],\"produces\":[\"*/*\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"connectCoreV1PatchNodeProxyWithPath\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"type\":\"string\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"connect\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"NodeProxyOptions\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NodeProxyOptions\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"path to the resource\",\"name\":\"path\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Path is the URL path to use for the current proxy request to node.\",\"name\":\"path\",\"in\":\"query\"}]},\"/api/v1/nodes/{name}/status\":{\"get\":{\"description\":\"read status of the specified Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1NodeStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified Node\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1NodeStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified Node\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1NodeStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Node\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/persistentvolumeclaims\":{\"get\":{\"description\":\"list or watch objects of kind PersistentVolumeClaim\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1PersistentVolumeClaimForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/persistentvolumes\":{\"get\":{\"description\":\"list or watch objects of kind PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1PersistentVolume\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"createCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1CollectionPersistentVolume\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/persistentvolumes/{name}\":{\"get\":{\"description\":\"read the specified PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1PersistentVolume\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"deleteCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified PersistentVolume\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1PersistentVolume\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolume\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/persistentvolumes/{name}/status\":{\"get\":{\"description\":\"read status of the specified PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"readCoreV1PersistentVolumeStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified PersistentVolume\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"replaceCoreV1PersistentVolumeStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified PersistentVolume\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"patchCoreV1PersistentVolumeStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolume\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/api/v1/pods\":{\"get\":{\"description\":\"list or watch objects of kind Pod\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1PodForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/podtemplates\":{\"get\":{\"description\":\"list or watch objects of kind PodTemplate\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1PodTemplateForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/replicationcontrollers\":{\"get\":{\"description\":\"list or watch objects of kind ReplicationController\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ReplicationControllerForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/resourcequotas\":{\"get\":{\"description\":\"list or watch objects of kind ResourceQuota\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ResourceQuotaForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/secrets\":{\"get\":{\"description\":\"list or watch objects of kind Secret\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1SecretForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/serviceaccounts\":{\"get\":{\"description\":\"list or watch objects of kind ServiceAccount\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ServiceAccountForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccountList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/services\":{\"get\":{\"description\":\"list or watch objects of kind Service\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"listCoreV1ServiceForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/configmaps\":{\"get\":{\"description\":\"watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ConfigMapListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/endpoints\":{\"get\":{\"description\":\"watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1EndpointsListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/events\":{\"get\":{\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1EventListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/limitranges\":{\"get\":{\"description\":\"watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1LimitRangeListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces\":{\"get\":{\"description\":\"watch individual changes to a list of Namespace. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespaceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/configmaps\":{\"get\":{\"description\":\"watch individual changes to a list of ConfigMap. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedConfigMapList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/configmaps/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedConfigMap\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ConfigMap\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ConfigMap\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/endpoints\":{\"get\":{\"description\":\"watch individual changes to a list of Endpoints. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedEndpointsList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/endpoints/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedEndpoints\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Endpoints\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/events\":{\"get\":{\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedEventList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/events/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedEvent\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Event\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/limitranges\":{\"get\":{\"description\":\"watch individual changes to a list of LimitRange. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedLimitRangeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/limitranges/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedLimitRange\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"LimitRange\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the LimitRange\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims\":{\"get\":{\"description\":\"watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPersistentVolumeClaimList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPersistentVolumeClaim\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolumeClaim\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/pods\":{\"get\":{\"description\":\"watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPodList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/pods/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPod\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Pod\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/podtemplates\":{\"get\":{\"description\":\"watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPodTemplateList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/podtemplates/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedPodTemplate\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodTemplate\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/replicationcontrollers\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedReplicationControllerList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedReplicationController\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicationController\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/resourcequotas\":{\"get\":{\"description\":\"watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedResourceQuotaList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedResourceQuota\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ResourceQuota\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/secrets\":{\"get\":{\"description\":\"watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedSecretList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/secrets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedSecret\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Secret\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/serviceaccounts\":{\"get\":{\"description\":\"watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedServiceAccountList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedServiceAccount\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ServiceAccount\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/services\":{\"get\":{\"description\":\"watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedServiceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{namespace}/services/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NamespacedService\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Service\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/namespaces/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1Namespace\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Namespace\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/nodes\":{\"get\":{\"description\":\"watch individual changes to a list of Node. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1NodeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/nodes/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1Node\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Node\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Node\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/persistentvolumeclaims\":{\"get\":{\"description\":\"watch individual changes to a list of PersistentVolumeClaim. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PersistentVolumeClaimListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/persistentvolumes\":{\"get\":{\"description\":\"watch individual changes to a list of PersistentVolume. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PersistentVolumeList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/persistentvolumes/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PersistentVolume\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PersistentVolume\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PersistentVolume\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/pods\":{\"get\":{\"description\":\"watch individual changes to a list of Pod. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PodListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Pod\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/podtemplates\":{\"get\":{\"description\":\"watch individual changes to a list of PodTemplate. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1PodTemplateListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/replicationcontrollers\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicationController. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ReplicationControllerListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ReplicationController\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/resourcequotas\":{\"get\":{\"description\":\"watch individual changes to a list of ResourceQuota. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ResourceQuotaListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/secrets\":{\"get\":{\"description\":\"watch individual changes to a list of Secret. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1SecretListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Secret\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/serviceaccounts\":{\"get\":{\"description\":\"watch individual changes to a list of ServiceAccount. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ServiceAccountListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/api/v1/watch/services\":{\"get\":{\"description\":\"watch individual changes to a list of Service. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"core_v1\"],\"operationId\":\"watchCoreV1ServiceListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"\",\"kind\":\"Service\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/\":{\"get\":{\"description\":\"get available API versions\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apis\"],\"operationId\":\"getAPIVersions\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/admissionregistration.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration\"],\"operationId\":\"getAdmissionregistrationAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/admissionregistration.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"getAdmissionregistrationV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations\":{\"get\":{\"description\":\"list or watch objects of kind MutatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"listAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a MutatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"createAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of MutatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"deleteAdmissionregistrationV1beta1CollectionMutatingWebhookConfiguration\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}\":{\"get\":{\"description\":\"read the specified MutatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"readAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified MutatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"replaceAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a MutatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"deleteAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified MutatingWebhookConfiguration\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"patchAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the MutatingWebhookConfiguration\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations\":{\"get\":{\"description\":\"list or watch objects of kind ValidatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"listAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a ValidatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"createAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of ValidatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"deleteAdmissionregistrationV1beta1CollectionValidatingWebhookConfiguration\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}\":{\"get\":{\"description\":\"read the specified ValidatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"readAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified ValidatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"replaceAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a ValidatingWebhookConfiguration\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"deleteAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified ValidatingWebhookConfiguration\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"patchAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ValidatingWebhookConfiguration\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations\":{\"get\":{\"description\":\"watch individual changes to a list of MutatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"watchAdmissionregistrationV1beta1MutatingWebhookConfigurationList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"watchAdmissionregistrationV1beta1MutatingWebhookConfiguration\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"MutatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the MutatingWebhookConfiguration\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations\":{\"get\":{\"description\":\"watch individual changes to a list of ValidatingWebhookConfiguration. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"watchAdmissionregistrationV1beta1ValidatingWebhookConfigurationList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"admissionregistration_v1beta1\"],\"operationId\":\"watchAdmissionregistrationV1beta1ValidatingWebhookConfiguration\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfiguration\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ValidatingWebhookConfiguration\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions\"],\"operationId\":\"getApiextensionsAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apiextensions.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"getApiextensionsV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions\":{\"get\":{\"description\":\"list or watch objects of kind CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"listApiextensionsV1beta1CustomResourceDefinition\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"createApiextensionsV1beta1CustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"deleteApiextensionsV1beta1CollectionCustomResourceDefinition\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}\":{\"get\":{\"description\":\"read the specified CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"readApiextensionsV1beta1CustomResourceDefinition\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"replaceApiextensionsV1beta1CustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"deleteApiextensionsV1beta1CustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified CustomResourceDefinition\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"patchApiextensionsV1beta1CustomResourceDefinition\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CustomResourceDefinition\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status\":{\"get\":{\"description\":\"read status of the specified CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"readApiextensionsV1beta1CustomResourceDefinitionStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified CustomResourceDefinition\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"replaceApiextensionsV1beta1CustomResourceDefinitionStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified CustomResourceDefinition\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"patchApiextensionsV1beta1CustomResourceDefinitionStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CustomResourceDefinition\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions\":{\"get\":{\"description\":\"watch individual changes to a list of CustomResourceDefinition. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"watchApiextensionsV1beta1CustomResourceDefinitionList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiextensions_v1beta1\"],\"operationId\":\"watchApiextensionsV1beta1CustomResourceDefinition\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiextensions.k8s.io\",\"kind\":\"CustomResourceDefinition\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CustomResourceDefinition\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration\"],\"operationId\":\"getApiregistrationAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apiregistration.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"getApiregistrationV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apiregistration.k8s.io/v1/apiservices\":{\"get\":{\"description\":\"list or watch objects of kind APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"listApiregistrationV1APIService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}},\"post\":{\"description\":\"create an APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"createApiregistrationV1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"deleteApiregistrationV1CollectionAPIService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1/apiservices/{name}\":{\"get\":{\"description\":\"read the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"readApiregistrationV1APIService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"replaceApiregistrationV1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete an APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"deleteApiregistrationV1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified APIService\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"patchApiregistrationV1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the APIService\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1/apiservices/{name}/status\":{\"get\":{\"description\":\"read status of the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"readApiregistrationV1APIServiceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"replaceApiregistrationV1APIServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified APIService\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"patchApiregistrationV1APIServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the APIService\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1/watch/apiservices\":{\"get\":{\"description\":\"watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"watchApiregistrationV1APIServiceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1/watch/apiservices/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1\"],\"operationId\":\"watchApiregistrationV1APIService\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the APIService\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"getApiregistrationV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apiregistration.k8s.io/v1beta1/apiservices\":{\"get\":{\"description\":\"list or watch objects of kind APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"listApiregistrationV1beta1APIService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create an APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"createApiregistrationV1beta1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"deleteApiregistrationV1beta1CollectionAPIService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}\":{\"get\":{\"description\":\"read the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"readApiregistrationV1beta1APIService\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"replaceApiregistrationV1beta1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete an APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"deleteApiregistrationV1beta1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified APIService\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"patchApiregistrationV1beta1APIService\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the APIService\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status\":{\"get\":{\"description\":\"read status of the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"readApiregistrationV1beta1APIServiceStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified APIService\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"replaceApiregistrationV1beta1APIServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified APIService\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"patchApiregistrationV1beta1APIServiceStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the APIService\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1beta1/watch/apiservices\":{\"get\":{\"description\":\"watch individual changes to a list of APIService. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"watchApiregistrationV1beta1APIServiceList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apiregistration_v1beta1\"],\"operationId\":\"watchApiregistrationV1beta1APIService\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the APIService\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps\"],\"operationId\":\"getAppsAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apps/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"getAppsV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apps/v1/controllerrevisions\":{\"get\":{\"description\":\"list or watch objects of kind ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1ControllerRevisionForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevisionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/daemonsets\":{\"get\":{\"description\":\"list or watch objects of kind DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1DaemonSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1DeploymentForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"description\":\"list or watch objects of kind ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1NamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevisionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"createAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1CollectionNamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"description\":\"read the specified ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ControllerRevision\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ControllerRevision\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/daemonsets\":{\"get\":{\"description\":\"list or watch objects of kind DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1NamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"createAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1CollectionNamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"description\":\"read the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified DaemonSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status\":{\"get\":{\"description\":\"read status of the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedDaemonSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified DaemonSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"createAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1CollectionNamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"description\":\"read the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedDeploymentScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update scale of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status\":{\"get\":{\"description\":\"read status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedDeploymentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/replicasets\":{\"get\":{\"description\":\"list or watch objects of kind ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1NamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"createAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1CollectionNamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"description\":\"read the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedReplicaSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace scale of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update scale of the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status\":{\"get\":{\"description\":\"read status of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedReplicaSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/statefulsets\":{\"get\":{\"description\":\"list or watch objects of kind StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1NamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"createAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1CollectionNamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"description\":\"read the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"deleteAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedStatefulSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace scale of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update scale of the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"Scale\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status\":{\"get\":{\"description\":\"read status of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"readAppsV1NamespacedStatefulSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"replaceAppsV1NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"patchAppsV1NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1/replicasets\":{\"get\":{\"description\":\"list or watch objects of kind ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1ReplicaSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/statefulsets\":{\"get\":{\"description\":\"list or watch objects of kind StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"listAppsV1StatefulSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/controllerrevisions\":{\"get\":{\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1ControllerRevisionListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/daemonsets\":{\"get\":{\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1DaemonSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1DeploymentListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedControllerRevisionList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedControllerRevision\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ControllerRevision\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/daemonsets\":{\"get\":{\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedDaemonSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedDaemonSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedDeploymentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedDeployment\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/replicasets\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedReplicaSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedReplicaSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/statefulsets\":{\"get\":{\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedStatefulSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1NamespacedStatefulSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/replicasets\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1ReplicaSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1/watch/statefulsets\":{\"get\":{\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1\"],\"operationId\":\"watchAppsV1StatefulSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"getAppsV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apps/v1beta1/controllerrevisions\":{\"get\":{\"description\":\"list or watch objects of kind ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"listAppsV1beta1ControllerRevisionForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"listAppsV1beta1DeploymentForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"description\":\"list or watch objects of kind ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"listAppsV1beta1NamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"createAppsV1beta1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"deleteAppsV1beta1CollectionNamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"description\":\"read the specified ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"deleteAppsV1beta1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified ControllerRevision\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ControllerRevision\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"listAppsV1beta1NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"createAppsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"deleteAppsV1beta1CollectionNamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"description\":\"read the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"deleteAppsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/rollback\":{\"post\":{\"description\":\"create rollback of a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"createAppsV1beta1NamespacedDeploymentRollback\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback\"}}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DeploymentRollback\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DeploymentRollback\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedDeploymentScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update scale of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/status\":{\"get\":{\"description\":\"read status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedDeploymentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/statefulsets\":{\"get\":{\"description\":\"list or watch objects of kind StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"listAppsV1beta1NamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"createAppsV1beta1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"deleteAppsV1beta1CollectionNamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"description\":\"read the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"deleteAppsV1beta1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedStatefulSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace scale of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update scale of the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/status\":{\"get\":{\"description\":\"read status of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"readAppsV1beta1NamespacedStatefulSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"replaceAppsV1beta1NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"patchAppsV1beta1NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/statefulsets\":{\"get\":{\"description\":\"list or watch objects of kind StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"listAppsV1beta1StatefulSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/controllerrevisions\":{\"get\":{\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1ControllerRevisionListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1DeploymentListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1NamespacedControllerRevisionList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1NamespacedControllerRevision\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ControllerRevision\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1NamespacedDeploymentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1NamespacedDeployment\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets\":{\"get\":{\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1NamespacedStatefulSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1NamespacedStatefulSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta1/watch/statefulsets\":{\"get\":{\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta1\"],\"operationId\":\"watchAppsV1beta1StatefulSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"getAppsV1beta2APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/apps/v1beta2/controllerrevisions\":{\"get\":{\"description\":\"list or watch objects of kind ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2ControllerRevisionForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevisionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/daemonsets\":{\"get\":{\"description\":\"list or watch objects of kind DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2DaemonSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2DeploymentForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"description\":\"list or watch objects of kind ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2NamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevisionList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"post\":{\"description\":\"create a ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"createAppsV1beta2NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete collection of ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2CollectionNamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"description\":\"read the specified ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedControllerRevision\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace the specified ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete a ControllerRevision\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update the specified ControllerRevision\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedControllerRevision\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ControllerRevision\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/daemonsets\":{\"get\":{\"description\":\"list or watch objects of kind DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2NamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"post\":{\"description\":\"create a DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"createAppsV1beta2NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete collection of DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2CollectionNamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"description\":\"read the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete a DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update the specified DaemonSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}/status\":{\"get\":{\"description\":\"read status of the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedDaemonSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace status of the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update status of the specified DaemonSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"post\":{\"description\":\"create a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"createAppsV1beta2NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete collection of Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2CollectionNamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"description\":\"read the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedDeploymentScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update scale of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status\":{\"get\":{\"description\":\"read status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedDeploymentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update status of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/replicasets\":{\"get\":{\"description\":\"list or watch objects of kind ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2NamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"post\":{\"description\":\"create a ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"createAppsV1beta2NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete collection of ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2CollectionNamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"description\":\"read the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete a ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedReplicaSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace scale of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update scale of the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status\":{\"get\":{\"description\":\"read status of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedReplicaSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace status of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update status of the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/statefulsets\":{\"get\":{\"description\":\"list or watch objects of kind StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2NamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"post\":{\"description\":\"create a StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"createAppsV1beta2NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete collection of StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2CollectionNamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"description\":\"read the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedStatefulSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"delete\":{\"description\":\"delete a StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"deleteAppsV1beta2NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedStatefulSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedStatefulSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace scale of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update scale of the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedStatefulSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status\":{\"get\":{\"description\":\"read status of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"readAppsV1beta2NamespacedStatefulSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"put\":{\"description\":\"replace status of the specified StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"replaceAppsV1beta2NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"patch\":{\"description\":\"partially update status of the specified StatefulSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"patchAppsV1beta2NamespacedStatefulSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/replicasets\":{\"get\":{\"description\":\"list or watch objects of kind ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2ReplicaSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/statefulsets\":{\"get\":{\"description\":\"list or watch objects of kind StatefulSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"listAppsV1beta2StatefulSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/controllerrevisions\":{\"get\":{\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2ControllerRevisionListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/daemonsets\":{\"get\":{\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2DaemonSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2DeploymentListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions\":{\"get\":{\"description\":\"watch individual changes to a list of ControllerRevision. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedControllerRevisionList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedControllerRevision\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ControllerRevision\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets\":{\"get\":{\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedDaemonSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedDaemonSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedDeploymentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedDeployment\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedReplicaSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedReplicaSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets\":{\"get\":{\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedStatefulSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2NamespacedStatefulSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StatefulSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/replicasets\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2ReplicaSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/apps/v1beta2/watch/statefulsets\":{\"get\":{\"description\":\"watch individual changes to a list of StatefulSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"apps_v1beta2\"],\"operationId\":\"watchAppsV1beta2StatefulSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/authentication.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authentication\"],\"operationId\":\"getAuthenticationAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/authentication.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authentication_v1\"],\"operationId\":\"getAuthenticationV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/authentication.k8s.io/v1/tokenreviews\":{\"post\":{\"description\":\"create a TokenReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authentication_v1\"],\"operationId\":\"createAuthenticationV1TokenReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authentication.k8s.io\",\"kind\":\"TokenReview\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authentication.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authentication_v1beta1\"],\"operationId\":\"getAuthenticationV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/authentication.k8s.io/v1beta1/tokenreviews\":{\"post\":{\"description\":\"create a TokenReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authentication_v1beta1\"],\"operationId\":\"createAuthenticationV1beta1TokenReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.TokenReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authentication.k8s.io\",\"kind\":\"TokenReview\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization\"],\"operationId\":\"getAuthorizationAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/authorization.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1\"],\"operationId\":\"getAuthorizationV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews\":{\"post\":{\"description\":\"create a LocalSubjectAccessReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1\"],\"operationId\":\"createAuthorizationV1NamespacedLocalSubjectAccessReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"LocalSubjectAccessReview\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1/selfsubjectaccessreviews\":{\"post\":{\"description\":\"create a SelfSubjectAccessReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1\"],\"operationId\":\"createAuthorizationV1SelfSubjectAccessReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"SelfSubjectAccessReview\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1/selfsubjectrulesreviews\":{\"post\":{\"description\":\"create a SelfSubjectRulesReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1\"],\"operationId\":\"createAuthorizationV1SelfSubjectRulesReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"SelfSubjectRulesReview\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1/subjectaccessreviews\":{\"post\":{\"description\":\"create a SubjectAccessReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1\"],\"operationId\":\"createAuthorizationV1SubjectAccessReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"SubjectAccessReview\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1beta1\"],\"operationId\":\"getAuthorizationV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews\":{\"post\":{\"description\":\"create a LocalSubjectAccessReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1beta1\"],\"operationId\":\"createAuthorizationV1beta1NamespacedLocalSubjectAccessReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"LocalSubjectAccessReview\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews\":{\"post\":{\"description\":\"create a SelfSubjectAccessReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1beta1\"],\"operationId\":\"createAuthorizationV1beta1SelfSubjectAccessReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"SelfSubjectAccessReview\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews\":{\"post\":{\"description\":\"create a SelfSubjectRulesReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1beta1\"],\"operationId\":\"createAuthorizationV1beta1SelfSubjectRulesReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"SelfSubjectRulesReview\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/authorization.k8s.io/v1beta1/subjectaccessreviews\":{\"post\":{\"description\":\"create a SubjectAccessReview\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"authorization_v1beta1\"],\"operationId\":\"createAuthorizationV1beta1SubjectAccessReview\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview\"}}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"authorization.k8s.io\",\"kind\":\"SubjectAccessReview\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling\"],\"operationId\":\"getAutoscalingAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/autoscaling/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"getAutoscalingV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/autoscaling/v1/horizontalpodautoscalers\":{\"get\":{\"description\":\"list or watch objects of kind HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers\":{\"get\":{\"description\":\"list or watch objects of kind HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"listAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"createAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}\":{\"get\":{\"description\":\"read the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"readAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"replaceAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"deleteAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified HorizontalPodAutoscaler\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"patchAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status\":{\"get\":{\"description\":\"read status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v1/watch/horizontalpodautoscalers\":{\"get\":{\"description\":\"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers\":{\"get\":{\"description\":\"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"watchAutoscalingV1NamespacedHorizontalPodAutoscalerList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v1\"],\"operationId\":\"watchAutoscalingV1NamespacedHorizontalPodAutoscaler\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"getAutoscalingV2beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/autoscaling/v2beta1/horizontalpodautoscalers\":{\"get\":{\"description\":\"list or watch objects of kind HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers\":{\"get\":{\"description\":\"list or watch objects of kind HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"listAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"post\":{\"description\":\"create a HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"createAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"delete\":{\"description\":\"delete collection of HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"deleteAutoscalingV2beta1CollectionNamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}\":{\"get\":{\"description\":\"read the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"readAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"put\":{\"description\":\"replace the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"delete\":{\"description\":\"delete a HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"deleteAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"patch\":{\"description\":\"partially update the specified HorizontalPodAutoscaler\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"patchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status\":{\"get\":{\"description\":\"read status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"readAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"put\":{\"description\":\"replace status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"patch\":{\"description\":\"partially update status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"patchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/watch/horizontalpodautoscalers\":{\"get\":{\"description\":\"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"watchAutoscalingV2beta1HorizontalPodAutoscalerListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers\":{\"get\":{\"description\":\"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"watchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta1\"],\"operationId\":\"watchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"getAutoscalingV2beta2APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/autoscaling/v2beta2/horizontalpodautoscalers\":{\"get\":{\"description\":\"list or watch objects of kind HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"listAutoscalingV2beta2HorizontalPodAutoscalerForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers\":{\"get\":{\"description\":\"list or watch objects of kind HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"listAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"post\":{\"description\":\"create a HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"createAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"delete\":{\"description\":\"delete collection of HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"deleteAutoscalingV2beta2CollectionNamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}\":{\"get\":{\"description\":\"read the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"readAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"put\":{\"description\":\"replace the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"delete\":{\"description\":\"delete a HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"deleteAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"patch\":{\"description\":\"partially update the specified HorizontalPodAutoscaler\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"patchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/namespaces/{namespace}/horizontalpodautoscalers/{name}/status\":{\"get\":{\"description\":\"read status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"readAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"put\":{\"description\":\"replace status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"replaceAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"patch\":{\"description\":\"partially update status of the specified HorizontalPodAutoscaler\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"patchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/watch/horizontalpodautoscalers\":{\"get\":{\"description\":\"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"watchAutoscalingV2beta2HorizontalPodAutoscalerListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers\":{\"get\":{\"description\":\"watch individual changes to a list of HorizontalPodAutoscaler. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"watchAutoscalingV2beta2NamespacedHorizontalPodAutoscalerList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/autoscaling/v2beta2/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"autoscaling_v2beta2\"],\"operationId\":\"watchAutoscalingV2beta2NamespacedHorizontalPodAutoscaler\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the HorizontalPodAutoscaler\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch\"],\"operationId\":\"getBatchAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/batch/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"getBatchV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/batch/v1/jobs\":{\"get\":{\"description\":\"list or watch objects of kind Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"listBatchV1JobForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/namespaces/{namespace}/jobs\":{\"get\":{\"description\":\"list or watch objects of kind Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"listBatchV1NamespacedJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"createBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"deleteBatchV1CollectionNamespacedJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1/namespaces/{namespace}/jobs/{name}\":{\"get\":{\"description\":\"read the specified Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"readBatchV1NamespacedJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"replaceBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"deleteBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Job\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"patchBatchV1NamespacedJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Job\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status\":{\"get\":{\"description\":\"read status of the specified Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"readBatchV1NamespacedJobStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified Job\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"replaceBatchV1NamespacedJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified Job\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"patchBatchV1NamespacedJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Job\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1/watch/jobs\":{\"get\":{\"description\":\"watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"watchBatchV1JobListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/watch/namespaces/{namespace}/jobs\":{\"get\":{\"description\":\"watch individual changes to a list of Job. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"watchBatchV1NamespacedJobList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1\"],\"operationId\":\"watchBatchV1NamespacedJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"Job\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Job\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"getBatchV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/batch/v1beta1/cronjobs\":{\"get\":{\"description\":\"list or watch objects of kind CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"listBatchV1beta1CronJobForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/namespaces/{namespace}/cronjobs\":{\"get\":{\"description\":\"list or watch objects of kind CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"listBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJobList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"createBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"deleteBatchV1beta1CollectionNamespacedCronJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}\":{\"get\":{\"description\":\"read the specified CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"readBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"replaceBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"deleteBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified CronJob\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"patchBatchV1beta1NamespacedCronJob\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CronJob\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status\":{\"get\":{\"description\":\"read status of the specified CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"readBatchV1beta1NamespacedCronJobStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified CronJob\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"replaceBatchV1beta1NamespacedCronJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified CronJob\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"patchBatchV1beta1NamespacedCronJobStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CronJob\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/watch/cronjobs\":{\"get\":{\"description\":\"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"watchBatchV1beta1CronJobListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs\":{\"get\":{\"description\":\"watch individual changes to a list of CronJob. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"watchBatchV1beta1NamespacedCronJobList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"batch_v1beta1\"],\"operationId\":\"watchBatchV1beta1NamespacedCronJob\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"batch\",\"kind\":\"CronJob\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CronJob\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/certificates.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates\"],\"operationId\":\"getCertificatesAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/certificates.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"getCertificatesV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/certificates.k8s.io/v1beta1/certificatesigningrequests\":{\"get\":{\"description\":\"list or watch objects of kind CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"listCertificatesV1beta1CertificateSigningRequest\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"createCertificatesV1beta1CertificateSigningRequest\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"deleteCertificatesV1beta1CollectionCertificateSigningRequest\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}\":{\"get\":{\"description\":\"read the specified CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"readCertificatesV1beta1CertificateSigningRequest\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"replaceCertificatesV1beta1CertificateSigningRequest\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"deleteCertificatesV1beta1CertificateSigningRequest\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified CertificateSigningRequest\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"patchCertificatesV1beta1CertificateSigningRequest\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CertificateSigningRequest\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval\":{\"put\":{\"description\":\"replace approval of the specified CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"replaceCertificatesV1beta1CertificateSigningRequestApproval\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CertificateSigningRequest\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status\":{\"get\":{\"description\":\"read status of the specified CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"readCertificatesV1beta1CertificateSigningRequestStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified CertificateSigningRequest\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"replaceCertificatesV1beta1CertificateSigningRequestStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified CertificateSigningRequest\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"patchCertificatesV1beta1CertificateSigningRequestStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CertificateSigningRequest\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests\":{\"get\":{\"description\":\"watch individual changes to a list of CertificateSigningRequest. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"watchCertificatesV1beta1CertificateSigningRequestList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"certificates_v1beta1\"],\"operationId\":\"watchCertificatesV1beta1CertificateSigningRequest\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the CertificateSigningRequest\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/coordination.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination\"],\"operationId\":\"getCoordinationAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/coordination.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"getCoordinationV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/coordination.k8s.io/v1beta1/leases\":{\"get\":{\"description\":\"list or watch objects of kind Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"listCoordinationV1beta1LeaseForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.LeaseList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases\":{\"get\":{\"description\":\"list or watch objects of kind Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"listCoordinationV1beta1NamespacedLease\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.LeaseList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"createCoordinationV1beta1NamespacedLease\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.Lease\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"deleteCoordinationV1beta1CollectionNamespacedLease\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/coordination.k8s.io/v1beta1/namespaces/{namespace}/leases/{name}\":{\"get\":{\"description\":\"read the specified Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"readCoordinationV1beta1NamespacedLease\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.Lease\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"replaceCoordinationV1beta1NamespacedLease\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.Lease\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a Lease\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"deleteCoordinationV1beta1NamespacedLease\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified Lease\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"patchCoordinationV1beta1NamespacedLease\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.Lease\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Lease\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/coordination.k8s.io/v1beta1/watch/leases\":{\"get\":{\"description\":\"watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"watchCoordinationV1beta1LeaseListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases\":{\"get\":{\"description\":\"watch individual changes to a list of Lease. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"watchCoordinationV1beta1NamespacedLeaseList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/coordination.k8s.io/v1beta1/watch/namespaces/{namespace}/leases/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"coordination_v1beta1\"],\"operationId\":\"watchCoordinationV1beta1NamespacedLease\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"coordination.k8s.io\",\"kind\":\"Lease\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Lease\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/events.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events\"],\"operationId\":\"getEventsAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/events.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"getEventsV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/events.k8s.io/v1beta1/events\":{\"get\":{\"description\":\"list or watch objects of kind Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"listEventsV1beta1EventForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.EventList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events\":{\"get\":{\"description\":\"list or watch objects of kind Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"listEventsV1beta1NamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.EventList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create an Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"createEventsV1beta1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.Event\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"deleteEventsV1beta1CollectionNamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}\":{\"get\":{\"description\":\"read the specified Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"readEventsV1beta1NamespacedEvent\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.Event\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"replaceEventsV1beta1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.Event\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete an Event\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"deleteEventsV1beta1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified Event\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"patchEventsV1beta1NamespacedEvent\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.Event\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Event\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/events.k8s.io/v1beta1/watch/events\":{\"get\":{\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"watchEventsV1beta1EventListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events\":{\"get\":{\"description\":\"watch individual changes to a list of Event. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"watchEventsV1beta1NamespacedEventList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"events_v1beta1\"],\"operationId\":\"watchEventsV1beta1NamespacedEvent\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"events.k8s.io\",\"kind\":\"Event\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Event\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions\"],\"operationId\":\"getExtensionsAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/extensions/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"getExtensionsV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/extensions/v1beta1/daemonsets\":{\"get\":{\"description\":\"list or watch objects of kind DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1DaemonSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1DeploymentForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/ingresses\":{\"get\":{\"description\":\"list or watch objects of kind Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1IngressForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets\":{\"get\":{\"description\":\"list or watch objects of kind DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1NamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1CollectionNamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"description\":\"read the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedDaemonSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified DaemonSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedDaemonSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status\":{\"get\":{\"description\":\"read status of the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedDaemonSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified DaemonSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified DaemonSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedDaemonSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"list or watch objects of kind Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1CollectionNamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"description\":\"read the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedDeployment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedDeployment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/rollback\":{\"post\":{\"description\":\"create rollback of a Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1NamespacedDeploymentRollback\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback\"}}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DeploymentRollback\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If IncludeUninitialized is specified, the object may be returned without completing initialization.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DeploymentRollback\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedDeploymentScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace scale of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update scale of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedDeploymentScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status\":{\"get\":{\"description\":\"read status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedDeploymentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified Deployment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified Deployment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedDeploymentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/ingresses\":{\"get\":{\"description\":\"list or watch objects of kind Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1NamespacedIngress\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create an Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1NamespacedIngress\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1CollectionNamespacedIngress\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}\":{\"get\":{\"description\":\"read the specified Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedIngress\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedIngress\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete an Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1NamespacedIngress\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified Ingress\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedIngress\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Ingress\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status\":{\"get\":{\"description\":\"read status of the specified Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedIngressStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified Ingress\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedIngressStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified Ingress\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedIngressStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Ingress\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies\":{\"get\":{\"description\":\"list or watch objects of kind NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1NamespacedNetworkPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1CollectionNamespacedNetworkPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies/{name}\":{\"get\":{\"description\":\"read the specified NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedNetworkPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified NetworkPolicy\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NetworkPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/replicasets\":{\"get\":{\"description\":\"list or watch objects of kind ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1NamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1CollectionNamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"description\":\"read the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedReplicaSet\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedReplicaSet\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedReplicaSetScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace scale of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update scale of the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedReplicaSetScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status\":{\"get\":{\"description\":\"read status of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedReplicaSetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified ReplicaSet\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedReplicaSetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/namespaces/{namespace}/replicationcontrollers/{name}/scale\":{\"get\":{\"description\":\"read scale of the specified ReplicationControllerDummy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1NamespacedReplicationControllerDummyScale\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace scale of the specified ReplicationControllerDummy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1NamespacedReplicationControllerDummyScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update scale of the specified ReplicationControllerDummy\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1NamespacedReplicationControllerDummyScale\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Scale\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/networkpolicies\":{\"get\":{\"description\":\"list or watch objects of kind NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1NetworkPolicyForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/podsecuritypolicies\":{\"get\":{\"description\":\"list or watch objects of kind PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1PodSecurityPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"createExtensionsV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1CollectionPodSecurityPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/podsecuritypolicies/{name}\":{\"get\":{\"description\":\"read the specified PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"readExtensionsV1beta1PodSecurityPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"replaceExtensionsV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"201\":{\"description\":\"Created\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"deleteExtensionsV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified PodSecurityPolicy\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"patchExtensionsV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodSecurityPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/replicasets\":{\"get\":{\"description\":\"list or watch objects of kind ReplicaSet\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"listExtensionsV1beta1ReplicaSetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/daemonsets\":{\"get\":{\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1DaemonSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1DeploymentListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/ingresses\":{\"get\":{\"description\":\"watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1IngressListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets\":{\"get\":{\"description\":\"watch individual changes to a list of DaemonSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedDaemonSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedDaemonSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the DaemonSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments\":{\"get\":{\"description\":\"watch individual changes to a list of Deployment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedDeploymentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedDeployment\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Deployment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses\":{\"get\":{\"description\":\"watch individual changes to a list of Ingress. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedIngressList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedIngress\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"Ingress\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Ingress\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies\":{\"get\":{\"description\":\"watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedNetworkPolicyList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedNetworkPolicy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NetworkPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedReplicaSetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NamespacedReplicaSet\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ReplicaSet\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/networkpolicies\":{\"get\":{\"description\":\"watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1NetworkPolicyListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/podsecuritypolicies\":{\"get\":{\"description\":\"watch individual changes to a list of PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1PodSecurityPolicyList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/podsecuritypolicies/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1PodSecurityPolicy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodSecurityPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/extensions/v1beta1/watch/replicasets\":{\"get\":{\"description\":\"watch individual changes to a list of ReplicaSet. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"extensions_v1beta1\"],\"operationId\":\"watchExtensionsV1beta1ReplicaSetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/networking.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking\"],\"operationId\":\"getNetworkingAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/networking.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"getNetworkingV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies\":{\"get\":{\"description\":\"list or watch objects of kind NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"listNetworkingV1NamespacedNetworkPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"createNetworkingV1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"deleteNetworkingV1CollectionNamespacedNetworkPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}\":{\"get\":{\"description\":\"read the specified NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"readNetworkingV1NamespacedNetworkPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"replaceNetworkingV1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"deleteNetworkingV1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified NetworkPolicy\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"patchNetworkingV1NamespacedNetworkPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NetworkPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/networking.k8s.io/v1/networkpolicies\":{\"get\":{\"description\":\"list or watch objects of kind NetworkPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"listNetworkingV1NetworkPolicyForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies\":{\"get\":{\"description\":\"watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"watchNetworkingV1NamespacedNetworkPolicyList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"watchNetworkingV1NamespacedNetworkPolicy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the NetworkPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/networking.k8s.io/v1/watch/networkpolicies\":{\"get\":{\"description\":\"watch individual changes to a list of NetworkPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"networking_v1\"],\"operationId\":\"watchNetworkingV1NetworkPolicyListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"networking.k8s.io\",\"kind\":\"NetworkPolicy\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/policy/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy\"],\"operationId\":\"getPolicyAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/policy/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"getPolicyV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets\":{\"get\":{\"description\":\"list or watch objects of kind PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"listPolicyV1beta1NamespacedPodDisruptionBudget\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"createPolicyV1beta1NamespacedPodDisruptionBudget\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"deletePolicyV1beta1CollectionNamespacedPodDisruptionBudget\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}\":{\"get\":{\"description\":\"read the specified PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"readPolicyV1beta1NamespacedPodDisruptionBudget\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"replacePolicyV1beta1NamespacedPodDisruptionBudget\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"deletePolicyV1beta1NamespacedPodDisruptionBudget\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified PodDisruptionBudget\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"patchPolicyV1beta1NamespacedPodDisruptionBudget\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodDisruptionBudget\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status\":{\"get\":{\"description\":\"read status of the specified PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"readPolicyV1beta1NamespacedPodDisruptionBudgetStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace status of the specified PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"replacePolicyV1beta1NamespacedPodDisruptionBudgetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update status of the specified PodDisruptionBudget\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodDisruptionBudget\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/poddisruptionbudgets\":{\"get\":{\"description\":\"list or watch objects of kind PodDisruptionBudget\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"listPolicyV1beta1PodDisruptionBudgetForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/podsecuritypolicies\":{\"get\":{\"description\":\"list or watch objects of kind PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"listPolicyV1beta1PodSecurityPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicyList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"createPolicyV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"deletePolicyV1beta1CollectionPodSecurityPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/podsecuritypolicies/{name}\":{\"get\":{\"description\":\"read the specified PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"readPolicyV1beta1PodSecurityPolicy\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"replacePolicyV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a PodSecurityPolicy\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"deletePolicyV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified PodSecurityPolicy\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"patchPolicyV1beta1PodSecurityPolicy\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodSecurityPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets\":{\"get\":{\"description\":\"watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"watchPolicyV1beta1NamespacedPodDisruptionBudgetList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"watchPolicyV1beta1NamespacedPodDisruptionBudget\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodDisruptionBudget\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/watch/poddisruptionbudgets\":{\"get\":{\"description\":\"watch individual changes to a list of PodDisruptionBudget. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"watchPolicyV1beta1PodDisruptionBudgetListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/watch/podsecuritypolicies\":{\"get\":{\"description\":\"watch individual changes to a list of PodSecurityPolicy. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"watchPolicyV1beta1PodSecurityPolicyList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/policy/v1beta1/watch/podsecuritypolicies/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"policy_v1beta1\"],\"operationId\":\"watchPolicyV1beta1PodSecurityPolicy\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"policy\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PodSecurityPolicy\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization\"],\"operationId\":\"getRbacAuthorizationAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/rbac.authorization.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"getRbacAuthorizationV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/rbac.authorization.k8s.io/v1/clusterrolebindings\":{\"get\":{\"description\":\"list or watch objects of kind ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"listRbacAuthorizationV1ClusterRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"createRbacAuthorizationV1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1CollectionClusterRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}\":{\"get\":{\"description\":\"read the specified ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"readRbacAuthorizationV1ClusterRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"replaceRbacAuthorizationV1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ClusterRoleBinding\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"patchRbacAuthorizationV1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/clusterroles\":{\"get\":{\"description\":\"list or watch objects of kind ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"listRbacAuthorizationV1ClusterRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"createRbacAuthorizationV1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRole\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1CollectionClusterRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}\":{\"get\":{\"description\":\"read the specified ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"readRbacAuthorizationV1ClusterRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRole\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"replaceRbacAuthorizationV1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRole\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified ClusterRole\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"patchRbacAuthorizationV1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRole\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRole\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings\":{\"get\":{\"description\":\"list or watch objects of kind RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"listRbacAuthorizationV1NamespacedRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBindingList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"createRbacAuthorizationV1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1CollectionNamespacedRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}\":{\"get\":{\"description\":\"read the specified RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"readRbacAuthorizationV1NamespacedRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"replaceRbacAuthorizationV1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified RoleBinding\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"patchRbacAuthorizationV1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the RoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles\":{\"get\":{\"description\":\"list or watch objects of kind Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"listRbacAuthorizationV1NamespacedRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"createRbacAuthorizationV1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Role\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1CollectionNamespacedRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}\":{\"get\":{\"description\":\"read the specified Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"readRbacAuthorizationV1NamespacedRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Role\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"replaceRbacAuthorizationV1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Role\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"deleteRbacAuthorizationV1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified Role\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"patchRbacAuthorizationV1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Role\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Role\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/rolebindings\":{\"get\":{\"description\":\"list or watch objects of kind RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"listRbacAuthorizationV1RoleBindingForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBindingList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/roles\":{\"get\":{\"description\":\"list or watch objects of kind Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"listRbacAuthorizationV1RoleForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings\":{\"get\":{\"description\":\"watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1ClusterRoleBindingList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1ClusterRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/clusterroles\":{\"get\":{\"description\":\"watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1ClusterRoleList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1ClusterRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRole\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings\":{\"get\":{\"description\":\"watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1NamespacedRoleBindingList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1NamespacedRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the RoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles\":{\"get\":{\"description\":\"watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1NamespacedRoleList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1NamespacedRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Role\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/rolebindings\":{\"get\":{\"description\":\"watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1RoleBindingListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1/watch/roles\":{\"get\":{\"description\":\"watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1\"],\"operationId\":\"watchRbacAuthorizationV1RoleListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"getRbacAuthorizationV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings\":{\"get\":{\"description\":\"list or watch objects of kind ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"listRbacAuthorizationV1beta1ClusterRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"createRbacAuthorizationV1beta1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1CollectionClusterRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}\":{\"get\":{\"description\":\"read the specified ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"readRbacAuthorizationV1beta1ClusterRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"replaceRbacAuthorizationV1beta1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a ClusterRoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified ClusterRoleBinding\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"patchRbacAuthorizationV1beta1ClusterRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/clusterroles\":{\"get\":{\"description\":\"list or watch objects of kind ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"listRbacAuthorizationV1beta1ClusterRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"createRbacAuthorizationV1beta1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1CollectionClusterRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}\":{\"get\":{\"description\":\"read the specified ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"readRbacAuthorizationV1beta1ClusterRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"replaceRbacAuthorizationV1beta1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a ClusterRole\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified ClusterRole\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"patchRbacAuthorizationV1beta1ClusterRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRole\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings\":{\"get\":{\"description\":\"list or watch objects of kind RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"listRbacAuthorizationV1beta1NamespacedRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"createRbacAuthorizationV1beta1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1CollectionNamespacedRoleBinding\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}\":{\"get\":{\"description\":\"read the specified RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"readRbacAuthorizationV1beta1NamespacedRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"replaceRbacAuthorizationV1beta1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified RoleBinding\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"patchRbacAuthorizationV1beta1NamespacedRoleBinding\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the RoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles\":{\"get\":{\"description\":\"list or watch objects of kind Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"listRbacAuthorizationV1beta1NamespacedRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"createRbacAuthorizationV1beta1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Role\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1CollectionNamespacedRole\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}\":{\"get\":{\"description\":\"read the specified Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"readRbacAuthorizationV1beta1NamespacedRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Role\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"replaceRbacAuthorizationV1beta1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Role\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"deleteRbacAuthorizationV1beta1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified Role\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"patchRbacAuthorizationV1beta1NamespacedRole\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Role\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Role\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/rolebindings\":{\"get\":{\"description\":\"list or watch objects of kind RoleBinding\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"listRbacAuthorizationV1beta1RoleBindingForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/roles\":{\"get\":{\"description\":\"list or watch objects of kind Role\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"listRbacAuthorizationV1beta1RoleForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings\":{\"get\":{\"description\":\"watch individual changes to a list of ClusterRoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1ClusterRoleBindingList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1ClusterRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles\":{\"get\":{\"description\":\"watch individual changes to a list of ClusterRole. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1ClusterRoleList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1ClusterRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"ClusterRole\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the ClusterRole\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings\":{\"get\":{\"description\":\"watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1NamespacedRoleBindingList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1NamespacedRoleBinding\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the RoleBinding\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles\":{\"get\":{\"description\":\"watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1NamespacedRoleList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1NamespacedRole\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the Role\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"object name and auth scope, such as for teams and projects\",\"name\":\"namespace\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings\":{\"get\":{\"description\":\"watch individual changes to a list of RoleBinding. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1RoleBindingListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"RoleBinding\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/rbac.authorization.k8s.io/v1beta1/watch/roles\":{\"get\":{\"description\":\"watch individual changes to a list of Role. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"rbacAuthorization_v1beta1\"],\"operationId\":\"watchRbacAuthorizationV1beta1RoleListForAllNamespaces\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"rbac.authorization.k8s.io\",\"kind\":\"Role\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/scheduling.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling\"],\"operationId\":\"getSchedulingAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/scheduling.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"getSchedulingV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/scheduling.k8s.io/v1beta1/priorityclasses\":{\"get\":{\"description\":\"list or watch objects of kind PriorityClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"listSchedulingV1beta1PriorityClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClassList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a PriorityClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"createSchedulingV1beta1PriorityClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of PriorityClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"deleteSchedulingV1beta1CollectionPriorityClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}\":{\"get\":{\"description\":\"read the specified PriorityClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"readSchedulingV1beta1PriorityClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified PriorityClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"replaceSchedulingV1beta1PriorityClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a PriorityClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"deleteSchedulingV1beta1PriorityClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified PriorityClass\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"patchSchedulingV1beta1PriorityClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PriorityClass\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses\":{\"get\":{\"description\":\"watch individual changes to a list of PriorityClass. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"watchSchedulingV1beta1PriorityClassList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"scheduling_v1beta1\"],\"operationId\":\"watchSchedulingV1beta1PriorityClass\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the PriorityClass\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/\":{\"get\":{\"description\":\"get information of a group\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage\"],\"operationId\":\"getStorageAPIGroup\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/storage.k8s.io/v1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"getStorageV1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/storage.k8s.io/v1/storageclasses\":{\"get\":{\"description\":\"list or watch objects of kind StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"listStorageV1StorageClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClassList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"createStorageV1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClass\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"deleteStorageV1CollectionStorageClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/storageclasses/{name}\":{\"get\":{\"description\":\"read the specified StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"readStorageV1StorageClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClass\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"replaceStorageV1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClass\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"deleteStorageV1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified StorageClass\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"patchStorageV1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClass\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StorageClass\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/volumeattachments\":{\"get\":{\"description\":\"list or watch objects of kind VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"listStorageV1VolumeAttachment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachmentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"post\":{\"description\":\"create a VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"createStorageV1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete collection of VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"deleteStorageV1CollectionVolumeAttachment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/volumeattachments/{name}\":{\"get\":{\"description\":\"read the specified VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"readStorageV1VolumeAttachment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace the specified VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"replaceStorageV1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"delete\":{\"description\":\"delete a VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"deleteStorageV1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update the specified VolumeAttachment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"patchStorageV1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the VolumeAttachment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/volumeattachments/{name}/status\":{\"get\":{\"description\":\"read status of the specified VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"readStorageV1VolumeAttachmentStatus\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"put\":{\"description\":\"replace status of the specified VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"replaceStorageV1VolumeAttachmentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"patch\":{\"description\":\"partially update status of the specified VolumeAttachment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"patchStorageV1VolumeAttachmentStatus\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the VolumeAttachment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/watch/storageclasses\":{\"get\":{\"description\":\"watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"watchStorageV1StorageClassList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/watch/storageclasses/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"watchStorageV1StorageClass\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StorageClass\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/watch/volumeattachments\":{\"get\":{\"description\":\"watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"watchStorageV1VolumeAttachmentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1/watch/volumeattachments/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1\"],\"operationId\":\"watchStorageV1VolumeAttachment\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the VolumeAttachment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/\":{\"get\":{\"description\":\"get available resources\",\"consumes\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"getStorageV1beta1APIResources\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList\"}},\"401\":{\"description\":\"Unauthorized\"}}}},\"/apis/storage.k8s.io/v1beta1/storageclasses\":{\"get\":{\"description\":\"list or watch objects of kind StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"listStorageV1beta1StorageClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClassList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"createStorageV1beta1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClass\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"deleteStorageV1beta1CollectionStorageClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/storageclasses/{name}\":{\"get\":{\"description\":\"read the specified StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"readStorageV1beta1StorageClass\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClass\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"replaceStorageV1beta1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClass\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a StorageClass\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"deleteStorageV1beta1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified StorageClass\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"patchStorageV1beta1StorageClass\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClass\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StorageClass\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/volumeattachments\":{\"get\":{\"description\":\"list or watch objects of kind VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"listStorageV1beta1VolumeAttachment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentList\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"list\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"post\":{\"description\":\"create a VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"createStorageV1beta1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"post\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete collection of VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"deleteStorageV1beta1CollectionVolumeAttachment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"deletecollection\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/volumeattachments/{name}\":{\"get\":{\"description\":\"read the specified VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"readStorageV1beta1VolumeAttachment\",\"parameters\":[{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should the export be exact.  Exact export maintains cluster-specific fields like 'Namespace'.\",\"name\":\"exact\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Should this value be exported.  Export strips fields that a user can not specify.\",\"name\":\"export\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"get\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"put\":{\"description\":\"replace the specified VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"replaceStorageV1beta1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"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\"}},\"x-kubernetes-action\":\"put\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"delete\":{\"description\":\"delete a VolumeAttachment\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"deleteStorageV1beta1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\"name\":\"gracePeriodSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\"name\":\"orphanDependents\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\"name\":\"propagationPolicy\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"202\":{\"description\":\"Accepted\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"delete\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"patch\":{\"description\":\"partially update the specified VolumeAttachment\",\"consumes\":[\"application/json-patch+json\",\"application/merge-patch+json\",\"application/strategic-merge-patch+json\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"patchStorageV1beta1VolumeAttachment\",\"parameters\":[{\"name\":\"body\",\"in\":\"body\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch\"}},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\"name\":\"dryRun\",\"in\":\"query\"}],\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"patch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the VolumeAttachment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/watch/storageclasses\":{\"get\":{\"description\":\"watch individual changes to a list of StorageClass. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"watchStorageV1beta1StorageClassList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/watch/storageclasses/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"watchStorageV1beta1StorageClass\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"StorageClass\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the StorageClass\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/watch/volumeattachments\":{\"get\":{\"description\":\"watch individual changes to a list of VolumeAttachment. deprecated: use the 'watch' parameter with a list operation instead.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"watchStorageV1beta1VolumeAttachmentList\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watchlist\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/apis/storage.k8s.io/v1beta1/watch/volumeattachments/{name}\":{\"get\":{\"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.\",\"consumes\":[\"*/*\"],\"produces\":[\"application/json\",\"application/yaml\",\"application/vnd.kubernetes.protobuf\",\"application/json;stream=watch\",\"application/vnd.kubernetes.protobuf;stream=watch\"],\"schemes\":[\"https\"],\"tags\":[\"storage_v1beta1\"],\"operationId\":\"watchStorageV1beta1VolumeAttachment\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\"}},\"401\":{\"description\":\"Unauthorized\"}},\"x-kubernetes-action\":\"watch\",\"x-kubernetes-group-version-kind\":{\"group\":\"storage.k8s.io\",\"kind\":\"VolumeAttachment\",\"version\":\"v1beta1\"}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\"name\":\"continue\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\"name\":\"fieldSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"If true, partially initialized resources are included in the response.\",\"name\":\"includeUninitialized\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\"name\":\"labelSelector\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\"name\":\"limit\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"name of the VolumeAttachment\",\"name\":\"name\",\"in\":\"path\",\"required\":true},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"If 'true', then the output is pretty printed.\",\"name\":\"pretty\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.\",\"name\":\"resourceVersion\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"integer\",\"description\":\"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\"name\":\"timeoutSeconds\",\"in\":\"query\"},{\"uniqueItems\":true,\"type\":\"boolean\",\"description\":\"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\"name\":\"watch\",\"in\":\"query\"}]},\"/logs/\":{\"get\":{\"schemes\":[\"https\"],\"tags\":[\"logs\"],\"operationId\":\"logFileListHandler\",\"responses\":{\"401\":{\"description\":\"Unauthorized\"}}}},\"/logs/{logpath}\":{\"get\":{\"schemes\":[\"https\"],\"tags\":[\"logs\"],\"operationId\":\"logFileHandler\",\"responses\":{\"401\":{\"description\":\"Unauthorized\"}}},\"parameters\":[{\"uniqueItems\":true,\"type\":\"string\",\"description\":\"path to the log\",\"name\":\"logpath\",\"in\":\"path\",\"required\":true}]},\"/version/\":{\"get\":{\"description\":\"get the code version\",\"consumes\":[\"application/json\"],\"produces\":[\"application/json\"],\"schemes\":[\"https\"],\"tags\":[\"version\"],\"operationId\":\"getCodeVersion\",\"responses\":{\"200\":{\"description\":\"OK\",\"schema\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.version.Info\"}},\"401\":{\"description\":\"Unauthorized\"}}}}},\"definitions\":{\"io.k8s.api.admissionregistration.v1beta1.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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"webhooks\":{\"description\":\"Webhooks is a list of webhooks and the affected resources and operations.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.Webhook\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of MutatingWebhookConfiguration.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.admissionregistration.v1beta1.ServiceReference\":{\"description\":\"ServiceReference holds a reference to Service.legacy.k8s.io\",\"required\":[\"namespace\",\"name\"],\"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\"}}},\"io.k8s.api.admissionregistration.v1beta1.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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"webhooks\":{\"description\":\"Webhooks is a list of webhooks and the affected resources and operations.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.Webhook\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of ValidatingWebhookConfiguration.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"ValidatingWebhookConfigurationList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.admissionregistration.v1beta1.Webhook\":{\"description\":\"Webhook describes an admission webhook and the resources and operations it applies to.\",\"required\":[\"name\",\"clientConfig\"],\"properties\":{\"clientConfig\":{\"description\":\"ClientConfig defines how to communicate with the hook. Required\",\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig\"},\"failurePolicy\":{\"description\":\"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.\",\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations\"}},\"sideEffects\":{\"description\":\"SideEffects states whether this webhookk 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\"}}},\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\\n\\nPort 443 will be used if it is open, otherwise it is an error.\",\"$ref\":\"#/definitions/io.k8s.api.admissionregistration.v1beta1.ServiceReference\"},\"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\"}}},\"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.\",\"required\":[\"revision\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"data\":{\"description\":\"Data is the serialized representation of the state.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"revision\":{\"description\":\"Revision indicates the revision of the state represented by Data.\",\"type\":\"integer\",\"format\":\"int64\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of ControllerRevisions\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ControllerRevision\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSetSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSetStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1.DaemonSetList\":{\"description\":\"DaemonSetList is a collection of daemon sets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"A list of daemon sets.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"selector\",\"template\"],\"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).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"updateStrategy\":{\"description\":\"An update strategy to replace existing DaemonSet pods with new pods.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy\"}}},\"io.k8s.api.apps.v1.DaemonSetStatus\":{\"description\":\"DaemonSetStatus represents the current status of a daemon set.\",\"required\":[\"currentNumberScheduled\",\"numberMisscheduled\",\"desiredNumberScheduled\",\"numberReady\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a DaemonSet's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DaemonSetCondition\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"The most recent generation observed by the daemon set controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"updatedNumberScheduled\":{\"description\":\"The total number of nodes that are running updated daemon pod\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1.DaemonSetUpdateStrategy\":{\"description\":\"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet\"},\"type\":{\"description\":\"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DeploymentSpec\"},\"status\":{\"description\":\"Most recently observed status of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DeploymentStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastUpdateTime\":{\"description\":\"The last time this condition was updated.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1.DeploymentList\":{\"description\":\"DeploymentList is a list of Deployments.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of Deployments.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.Deployment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"selector\",\"template\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"strategy\":{\"description\":\"The deployment strategy to use to replace existing pods with new ones.\",\"x-kubernetes-patch-strategy\":\"retainKeys\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DeploymentStrategy\"},\"template\":{\"description\":\"Template describes the pods that will be created.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a deployment's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.DeploymentCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"observedGeneration\":{\"description\":\"The generation observed by the deployment controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"Total number of ready pods targeted by this deployment.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"updatedReplicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1.DeploymentStrategy\":{\"description\":\"DeploymentStrategy describes how to replace existing pods with new ones.\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment\"},\"type\":{\"description\":\"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"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/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"The last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1.ReplicaSetList\":{\"description\":\"ReplicaSetList is a collection of ReplicaSets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"selector\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.apps.v1.ReplicaSetStatus\":{\"description\":\"ReplicaSetStatus represents the current status of a ReplicaSet.\",\"required\":[\"replicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a replica set's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"The number of ready replicas for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1.RollingUpdateDaemonSet\":{\"description\":\"Spec to control the desired behavior of daemon set rolling update.\",\"properties\":{\"maxUnavailable\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.apps.v1.RollingUpdateDeployment\":{\"description\":\"Spec to control the desired behavior of rolling update.\",\"properties\":{\"maxSurge\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"maxUnavailable\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the desired identities of pods in this set.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSetSpec\"},\"status\":{\"description\":\"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSetStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1.StatefulSetList\":{\"description\":\"StatefulSetList is a collection of StatefulSets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"selector\",\"template\",\"serviceName\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"updateStrategy\":{\"description\":\"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"io.k8s.api.apps.v1.StatefulSetStatus\":{\"description\":\"StatefulSetStatus represents the current state of a StatefulSet.\",\"required\":[\"replicas\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a statefulset's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1.StatefulSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"replicas is the number of Pods created by the StatefulSet controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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\":{\"description\":\"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\"},\"type\":{\"description\":\"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta1.ControllerRevision\":{\"description\":\"DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the release notes for more information. 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.\",\"required\":[\"revision\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"data\":{\"description\":\"Data is the serialized representation of the state.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"revision\":{\"description\":\"Revision indicates the revision of the state represented by Data.\",\"type\":\"integer\",\"format\":\"int64\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.ControllerRevisionList\":{\"description\":\"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of ControllerRevisions\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"ControllerRevisionList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.Deployment\":{\"description\":\"DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentSpec\"},\"status\":{\"description\":\"Most recently observed status of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.DeploymentCondition\":{\"description\":\"DeploymentCondition describes the state of a deployment at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastUpdateTime\":{\"description\":\"The last time this condition was updated.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1beta1.DeploymentList\":{\"description\":\"DeploymentList is a list of Deployments.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of Deployments.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"DeploymentList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.DeploymentRollback\":{\"description\":\"DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.\",\"required\":[\"name\",\"rollbackTo\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"name\":{\"description\":\"Required: This must match the Name of a deployment.\",\"type\":\"string\"},\"rollbackTo\":{\"description\":\"The config of this deployment rollback.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig\"},\"updatedAnnotations\":{\"description\":\"The annotations to be updated to a deployment\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"DeploymentRollback\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.DeploymentSpec\":{\"description\":\"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\"required\":[\"template\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"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 2.\",\"type\":\"integer\",\"format\":\"int32\"},\"rollbackTo\":{\"description\":\"DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig\"},\"selector\":{\"description\":\"Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"strategy\":{\"description\":\"The deployment strategy to use to replace existing pods with new ones.\",\"x-kubernetes-patch-strategy\":\"retainKeys\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentStrategy\"},\"template\":{\"description\":\"Template describes the pods that will be created.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.apps.v1beta1.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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a deployment's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"observedGeneration\":{\"description\":\"The generation observed by the deployment controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"Total number of ready pods targeted by this deployment.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"updatedReplicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta1.DeploymentStrategy\":{\"description\":\"DeploymentStrategy describes how to replace existing pods with new ones.\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateDeployment\"},\"type\":{\"description\":\"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta1.RollbackConfig\":{\"description\":\"DEPRECATED.\",\"properties\":{\"revision\":{\"description\":\"The revision to rollback to. If set to 0, rollback to the last revision.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.apps.v1beta1.RollingUpdateDeployment\":{\"description\":\"Spec to control the desired behavior of rolling update.\",\"properties\":{\"maxSurge\":{\"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 atmost 130% of desired pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"maxUnavailable\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\":{\"description\":\"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\"properties\":{\"partition\":{\"description\":\"Partition indicates the ordinal at which the StatefulSet should be partitioned.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta1.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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ScaleSpec\"},\"status\":{\"description\":\"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ScaleStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.ScaleSpec\":{\"description\":\"ScaleSpec describes the attributes of a scale subresource\",\"properties\":{\"replicas\":{\"description\":\"desired number of instances for the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta1.ScaleStatus\":{\"description\":\"ScaleStatus represents the current status of a scale subresource.\",\"required\":[\"replicas\"],\"properties\":{\"replicas\":{\"description\":\"actual number of observed instances of the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"description\":\"label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"targetSelector\":{\"description\":\"label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta1.StatefulSet\":{\"description\":\"DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the desired identities of pods in this set.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetSpec\"},\"status\":{\"description\":\"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.StatefulSetCondition\":{\"description\":\"StatefulSetCondition describes the state of a statefulset at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1beta1.StatefulSetList\":{\"description\":\"StatefulSetList is a collection of StatefulSets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"StatefulSetList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.apps.v1beta1.StatefulSetSpec\":{\"description\":\"A StatefulSetSpec is the specification of a StatefulSet.\",\"required\":[\"template\",\"serviceName\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"description\":\"selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"updateStrategy\":{\"description\":\"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"io.k8s.api.apps.v1beta1.StatefulSetStatus\":{\"description\":\"StatefulSetStatus represents the current state of a StatefulSet.\",\"required\":[\"replicas\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a statefulset's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"replicas is the number of Pods created by the StatefulSet controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta1.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\":{\"description\":\"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\"},\"type\":{\"description\":\"Type indicates the type of the StatefulSetUpdateStrategy.\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta2.ControllerRevision\":{\"description\":\"DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the release notes for more information. 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.\",\"required\":[\"revision\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"data\":{\"description\":\"Data is the serialized representation of the state.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"revision\":{\"description\":\"Revision indicates the revision of the state represented by Data.\",\"type\":\"integer\",\"format\":\"int64\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"ControllerRevision\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.ControllerRevisionList\":{\"description\":\"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of ControllerRevisions\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"ControllerRevisionList\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.DaemonSet\":{\"description\":\"DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSetSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"DaemonSet\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.DaemonSetCondition\":{\"description\":\"DaemonSetCondition describes the state of a DaemonSet at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1beta2.DaemonSetList\":{\"description\":\"DaemonSetList is a collection of daemon sets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"A list of daemon sets.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"DaemonSetList\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.DaemonSetSpec\":{\"description\":\"DaemonSetSpec is the specification of a daemon set.\",\"required\":[\"selector\",\"template\"],\"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).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"updateStrategy\":{\"description\":\"An update strategy to replace existing DaemonSet pods with new pods.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy\"}}},\"io.k8s.api.apps.v1beta2.DaemonSetStatus\":{\"description\":\"DaemonSetStatus represents the current status of a daemon set.\",\"required\":[\"currentNumberScheduled\",\"numberMisscheduled\",\"desiredNumberScheduled\",\"numberReady\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a DaemonSet's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DaemonSetCondition\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"The most recent generation observed by the daemon set controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"updatedNumberScheduled\":{\"description\":\"The total number of nodes that are running updated daemon pod\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy\":{\"description\":\"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet\"},\"type\":{\"description\":\"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta2.Deployment\":{\"description\":\"DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DeploymentSpec\"},\"status\":{\"description\":\"Most recently observed status of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DeploymentStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"Deployment\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.DeploymentCondition\":{\"description\":\"DeploymentCondition describes the state of a deployment at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastUpdateTime\":{\"description\":\"The last time this condition was updated.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1beta2.DeploymentList\":{\"description\":\"DeploymentList is a list of Deployments.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of Deployments.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.Deployment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"DeploymentList\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.DeploymentSpec\":{\"description\":\"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\"required\":[\"selector\",\"template\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"strategy\":{\"description\":\"The deployment strategy to use to replace existing pods with new ones.\",\"x-kubernetes-patch-strategy\":\"retainKeys\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DeploymentStrategy\"},\"template\":{\"description\":\"Template describes the pods that will be created.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.apps.v1beta2.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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a deployment's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.DeploymentCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"observedGeneration\":{\"description\":\"The generation observed by the deployment controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"Total number of ready pods targeted by this deployment.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"updatedReplicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta2.DeploymentStrategy\":{\"description\":\"DeploymentStrategy describes how to replace existing pods with new ones.\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateDeployment\"},\"type\":{\"description\":\"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta2.ReplicaSet\":{\"description\":\"DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"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/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.ReplicaSetCondition\":{\"description\":\"ReplicaSetCondition describes the state of a replica set at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"The last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1beta2.ReplicaSetList\":{\"description\":\"ReplicaSetList is a collection of ReplicaSets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"ReplicaSetList\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.ReplicaSetSpec\":{\"description\":\"ReplicaSetSpec is the specification of a ReplicaSet.\",\"required\":[\"selector\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.apps.v1beta2.ReplicaSetStatus\":{\"description\":\"ReplicaSetStatus represents the current status of a ReplicaSet.\",\"required\":[\"replicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a replica set's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"The number of ready replicas for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet\":{\"description\":\"Spec to control the desired behavior of daemon set rolling update.\",\"properties\":{\"maxUnavailable\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.apps.v1beta2.RollingUpdateDeployment\":{\"description\":\"Spec to control the desired behavior of rolling update.\",\"properties\":{\"maxSurge\":{\"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 atmost 130% of desired pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"maxUnavailable\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.apps.v1beta2.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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta2.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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ScaleSpec\"},\"status\":{\"description\":\"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.ScaleStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"Scale\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.ScaleSpec\":{\"description\":\"ScaleSpec describes the attributes of a scale subresource\",\"properties\":{\"replicas\":{\"description\":\"desired number of instances for the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta2.ScaleStatus\":{\"description\":\"ScaleStatus represents the current status of a scale subresource.\",\"required\":[\"replicas\"],\"properties\":{\"replicas\":{\"description\":\"actual number of observed instances of the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"description\":\"label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"targetSelector\":{\"description\":\"label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\"type\":\"string\"}}},\"io.k8s.api.apps.v1beta2.StatefulSet\":{\"description\":\"DEPRECATED - This group version of StatefulSet is deprecated by apps/v1/StatefulSet. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the desired identities of pods in this set.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSetSpec\"},\"status\":{\"description\":\"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"StatefulSet\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.StatefulSetCondition\":{\"description\":\"StatefulSetCondition describes the state of a statefulset at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.apps.v1beta2.StatefulSetList\":{\"description\":\"StatefulSetList is a collection of StatefulSets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apps\",\"kind\":\"StatefulSetList\",\"version\":\"v1beta2\"}]},\"io.k8s.api.apps.v1beta2.StatefulSetSpec\":{\"description\":\"A StatefulSetSpec is the specification of a StatefulSet.\",\"required\":[\"selector\",\"template\",\"serviceName\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"updateStrategy\":{\"description\":\"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSetUpdateStrategy\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}}}},\"io.k8s.api.apps.v1beta2.StatefulSetStatus\":{\"description\":\"StatefulSetStatus represents the current state of a StatefulSet.\",\"required\":[\"replicas\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a statefulset's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.StatefulSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"replicas is the number of Pods created by the StatefulSet controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.apps.v1beta2.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\":{\"description\":\"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy\"},\"type\":{\"description\":\"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\"type\":\"string\"}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request can be authenticated.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"token\":{\"description\":\"Token is the opaque bearer token.\",\"type\":\"string\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\":{\"description\":\"User is the UserInfo associated with the provided token.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.UserInfo\"}}},\"io.k8s.api.authentication.v1.UserInfo\":{\"description\":\"UserInfo holds the information about the user needed to implement the user.Info interface.\",\"properties\":{\"extra\":{\"description\":\"Any additional information provided by the authenticator.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"groups\":{\"description\":\"The names of groups this user is a part of.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request can be authenticated.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"token\":{\"description\":\"Token is the opaque bearer token.\",\"type\":\"string\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\":{\"description\":\"User is the UserInfo associated with the provided token.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.UserInfo\"}}},\"io.k8s.api.authentication.v1beta1.UserInfo\":{\"description\":\"UserInfo holds the information about the user needed to implement the user.Info interface.\",\"properties\":{\"extra\":{\"description\":\"Any additional information provided by the authenticator.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"groups\":{\"description\":\"The names of groups this user is a part of.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request is allowed or not\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"}},\"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\"}}},\"io.k8s.api.authorization.v1.NonResourceRule\":{\"description\":\"NonResourceRule holds information that describes a rule for the non-resource\",\"required\":[\"verbs\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"verbs\":{\"description\":\"Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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\"}}},\"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.\",\"required\":[\"verbs\"],\"properties\":{\"apiGroups\":{\"description\":\"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"resourceNames\":{\"description\":\"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"verbs\":{\"description\":\"Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated.  user and groups must be empty\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request is allowed or not\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"}},\"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\":{\"description\":\"NonResourceAttributes describes information for a non-resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes\"},\"resourceAttributes\":{\"description\":\"ResourceAuthorizationAttributes describes information for a resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.ResourceAttributes\"}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates the set of actions a user can perform.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus\"}},\"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\"}}},\"io.k8s.api.authorization.v1.SubjectAccessReview\":{\"description\":\"SubjectAccessReview checks whether or not a user or group can perform an action.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request is allowed or not\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"}},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"groups\":{\"description\":\"Groups is the groups you're testing for.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"nonResourceAttributes\":{\"description\":\"NonResourceAttributes describes information for a non-resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes\"},\"resourceAttributes\":{\"description\":\"ResourceAuthorizationAttributes describes information for a resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.ResourceAttributes\"},\"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\"}}},\"io.k8s.api.authorization.v1.SubjectAccessReviewStatus\":{\"description\":\"SubjectAccessReviewStatus\",\"required\":[\"allowed\"],\"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\"}}},\"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.\",\"required\":[\"resourceRules\",\"nonResourceRules\",\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.NonResourceRule\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.ResourceRule\"}}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request is allowed or not\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"}},\"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\"}}},\"io.k8s.api.authorization.v1beta1.NonResourceRule\":{\"description\":\"NonResourceRule holds information that describes a rule for the non-resource\",\"required\":[\"verbs\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"verbs\":{\"description\":\"Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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\"}}},\"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.\",\"required\":[\"verbs\"],\"properties\":{\"apiGroups\":{\"description\":\"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"resourceNames\":{\"description\":\"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"verbs\":{\"description\":\"Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated.  user and groups must be empty\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request is allowed or not\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"}},\"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\":{\"description\":\"NonResourceAttributes describes information for a non-resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes\"},\"resourceAttributes\":{\"description\":\"ResourceAuthorizationAttributes describes information for a resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes\"}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates the set of actions a user can perform.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus\"}},\"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\"}}},\"io.k8s.api.authorization.v1beta1.SubjectAccessReview\":{\"description\":\"SubjectAccessReview checks whether or not a user or group can perform an action.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec holds information about the request being evaluated\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec\"},\"status\":{\"description\":\"Status is filled in by the server and indicates whether the request is allowed or not\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"}},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"group\":{\"description\":\"Groups is the groups you're testing for.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"nonResourceAttributes\":{\"description\":\"NonResourceAttributes describes information for a non-resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes\"},\"resourceAttributes\":{\"description\":\"ResourceAuthorizationAttributes describes information for a resource access request\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes\"},\"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\"}}},\"io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\":{\"description\":\"SubjectAccessReviewStatus\",\"required\":[\"allowed\"],\"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\"}}},\"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.\",\"required\":[\"resourceRules\",\"nonResourceRules\",\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.NonResourceRule\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.ResourceRule\"}}}},\"io.k8s.api.autoscaling.v1.CrossVersionObjectReference\":{\"description\":\"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\"required\":[\"kind\",\"name\"],\"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/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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\"},\"status\":{\"description\":\"current information about the autoscaler.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v1\"}]},\"io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList\":{\"description\":\"list of horizontal pod autoscaler objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"list of horizontal pod autoscaler objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscalerList\",\"version\":\"v1\"}]},\"io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\":{\"description\":\"specification of a horizontal pod autoscaler.\",\"required\":[\"scaleTargetRef\",\"maxReplicas\"],\"properties\":{\"maxReplicas\":{\"description\":\"upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.\",\"type\":\"integer\",\"format\":\"int32\"},\"minReplicas\":{\"description\":\"lower limit for the number of pods that can be set by the autoscaler, default 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"scaleTargetRef\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\":{\"description\":\"current status of a horizontal pod autoscaler\",\"required\":[\"currentReplicas\",\"desiredReplicas\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"currentReplicas\":{\"description\":\"current number of replicas of pods managed by this autoscaler.\",\"type\":\"integer\",\"format\":\"int32\"},\"desiredReplicas\":{\"description\":\"desired number of replicas of pods managed by this autoscaler.\",\"type\":\"integer\",\"format\":\"int32\"},\"lastScaleTime\":{\"description\":\"last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"observedGeneration\":{\"description\":\"most recent generation observed by this autoscaler.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec\"},\"status\":{\"description\":\"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.autoscaling.v1.ScaleStatus\":{\"description\":\"ScaleStatus represents the current status of a scale subresource.\",\"required\":[\"replicas\"],\"properties\":{\"replicas\":{\"description\":\"actual number of observed instances of the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\":{\"description\":\"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\"required\":[\"kind\",\"name\"],\"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/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\"}}},\"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.\",\"required\":[\"metricName\"],\"properties\":{\"metricName\":{\"description\":\"metricName is the name of the metric in question.\",\"type\":\"string\"},\"metricSelector\":{\"description\":\"metricSelector is used to identify a specific time series within a given metric.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"targetAverageValue\":{\"description\":\"targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"targetValue\":{\"description\":\"targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus\":{\"description\":\"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\"required\":[\"metricName\",\"currentValue\"],\"properties\":{\"currentAverageValue\":{\"description\":\"currentAverageValue is the current value of metric averaged over autoscaled pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"currentValue\":{\"description\":\"currentValue is the current value of the metric (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"metricName\":{\"description\":\"metricName is the name of a metric used for autoscaling in metric system.\",\"type\":\"string\"},\"metricSelector\":{\"description\":\"metricSelector is used to identify a specific time series within a given metric.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec\"},\"status\":{\"description\":\"status is the current information about the autoscaler.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime is the last time the condition transitioned from one status to another\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList\":{\"description\":\"HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is the list of horizontal pod autoscaler objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"metadata is the standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"scaleTargetRef\",\"maxReplicas\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.MetricSpec\"}},\"minReplicas\":{\"description\":\"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod.\",\"type\":\"integer\",\"format\":\"int32\"},\"scaleTargetRef\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\"}}},\"io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus\":{\"description\":\"HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\",\"required\":[\"currentReplicas\",\"desiredReplicas\",\"conditions\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition\"}},\"currentMetrics\":{\"description\":\"currentMetrics is the last read state of the metrics used by this autoscaler.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.MetricStatus\"}},\"currentReplicas\":{\"description\":\"currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.\",\"type\":\"integer\",\"format\":\"int32\"},\"desiredReplicas\":{\"description\":\"desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.\",\"type\":\"integer\",\"format\":\"int32\"},\"lastScaleTime\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"observedGeneration\":{\"description\":\"observedGeneration is the most recent generation observed by this autoscaler.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"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).\",\"required\":[\"type\"],\"properties\":{\"external\":{\"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).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricSource\"},\"object\":{\"description\":\"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricSource\"},\"pods\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricSource\"},\"resource\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricSource\"},\"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\"}}},\"io.k8s.api.autoscaling.v2beta1.MetricStatus\":{\"description\":\"MetricStatus describes the last-read state of a single metric.\",\"required\":[\"type\"],\"properties\":{\"external\":{\"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).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus\"},\"object\":{\"description\":\"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus\"},\"pods\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricStatus\"},\"resource\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus\"},\"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\"}}},\"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).\",\"required\":[\"target\",\"metricName\",\"targetValue\"],\"properties\":{\"averageValue\":{\"description\":\"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"metricName\":{\"description\":\"metricName is the name of the metric in question.\",\"type\":\"string\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"target\":{\"description\":\"target is the described Kubernetes object.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\"},\"targetValue\":{\"description\":\"targetValue is the target value of the metric (as a quantity).\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"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).\",\"required\":[\"target\",\"metricName\",\"currentValue\"],\"properties\":{\"averageValue\":{\"description\":\"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"currentValue\":{\"description\":\"currentValue is the current value of the metric (as a quantity).\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"metricName\":{\"description\":\"metricName is the name of the metric in question.\",\"type\":\"string\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"target\":{\"description\":\"target is the described Kubernetes object.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\"}}},\"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.\",\"required\":[\"metricName\",\"targetAverageValue\"],\"properties\":{\"metricName\":{\"description\":\"metricName is the name of the metric in question\",\"type\":\"string\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"targetAverageValue\":{\"description\":\"targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"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).\",\"required\":[\"metricName\",\"currentAverageValue\"],\"properties\":{\"currentAverageValue\":{\"description\":\"currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"metricName\":{\"description\":\"metricName is the name of the metric in question\",\"type\":\"string\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}},\"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.\",\"required\":[\"name\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"targetAverageValue\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"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.\",\"required\":[\"name\",\"currentAverageValue\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"currentAverageValue\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"name\":{\"description\":\"name is the name of the resource in question.\",\"type\":\"string\"}}},\"io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\":{\"description\":\"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\"required\":[\"kind\",\"name\"],\"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/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\"}}},\"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).\",\"required\":[\"metric\",\"target\"],\"properties\":{\"metric\":{\"description\":\"metric identifies the target metric by name and selector\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier\"},\"target\":{\"description\":\"target specifies the target value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget\"}}},\"io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus\":{\"description\":\"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\"required\":[\"metric\",\"current\"],\"properties\":{\"current\":{\"description\":\"current contains the current value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus\"},\"metric\":{\"description\":\"metric identifies the target metric by name and selector\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec\"},\"status\":{\"description\":\"status is the current information about the autoscaler.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"autoscaling\",\"kind\":\"HorizontalPodAutoscaler\",\"version\":\"v2beta2\"}]},\"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition\":{\"description\":\"HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"lastTransitionTime is the last time the condition transitioned from one status to another\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerList\":{\"description\":\"HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is the list of horizontal pod autoscaler objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"metadata is the standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"scaleTargetRef\",\"maxReplicas\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricSpec\"}},\"minReplicas\":{\"description\":\"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod.\",\"type\":\"integer\",\"format\":\"int32\"},\"scaleTargetRef\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\"}}},\"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus\":{\"description\":\"HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\",\"required\":[\"currentReplicas\",\"desiredReplicas\",\"conditions\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition\"}},\"currentMetrics\":{\"description\":\"currentMetrics is the last read state of the metrics used by this autoscaler.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricStatus\"}},\"currentReplicas\":{\"description\":\"currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.\",\"type\":\"integer\",\"format\":\"int32\"},\"desiredReplicas\":{\"description\":\"desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.\",\"type\":\"integer\",\"format\":\"int32\"},\"lastScaleTime\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"observedGeneration\":{\"description\":\"observedGeneration is the most recent generation observed by this autoscaler.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.autoscaling.v2beta2.MetricIdentifier\":{\"description\":\"MetricIdentifier defines the name and optionally selector for a metric\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"name is the name of the given metric\",\"type\":\"string\"},\"selector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}},\"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).\",\"required\":[\"type\"],\"properties\":{\"external\":{\"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).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricSource\"},\"object\":{\"description\":\"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricSource\"},\"pods\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricSource\"},\"resource\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricSource\"},\"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\"}}},\"io.k8s.api.autoscaling.v2beta2.MetricStatus\":{\"description\":\"MetricStatus describes the last-read state of a single metric.\",\"required\":[\"type\"],\"properties\":{\"external\":{\"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).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus\"},\"object\":{\"description\":\"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus\"},\"pods\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.PodsMetricStatus\"},\"resource\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus\"},\"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\"}}},\"io.k8s.api.autoscaling.v2beta2.MetricTarget\":{\"description\":\"MetricTarget defines the target value, average value, or average utilization of a specific metric\",\"required\":[\"type\"],\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"averageValue\":{\"description\":\"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"type\":{\"description\":\"type represents whether the metric type is Utilization, Value, or AverageValue\",\"type\":\"string\"},\"value\":{\"description\":\"value is the target value of the metric (as a quantity).\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"averageValue\":{\"description\":\"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"value\":{\"description\":\"value is the current value of the metric (as a quantity).\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"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).\",\"required\":[\"describedObject\",\"target\",\"metric\"],\"properties\":{\"describedObject\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\"},\"metric\":{\"description\":\"metric identifies the target metric by name and selector\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier\"},\"target\":{\"description\":\"target specifies the target value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget\"}}},\"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).\",\"required\":[\"metric\",\"current\",\"describedObject\"],\"properties\":{\"current\":{\"description\":\"current contains the current value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus\"},\"describedObject\":{\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\"},\"metric\":{\"description\":\"metric identifies the target metric by name and selector\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier\"}}},\"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.\",\"required\":[\"metric\",\"target\"],\"properties\":{\"metric\":{\"description\":\"metric identifies the target metric by name and selector\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier\"},\"target\":{\"description\":\"target specifies the target value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget\"}}},\"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).\",\"required\":[\"metric\",\"current\"],\"properties\":{\"current\":{\"description\":\"current contains the current value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus\"},\"metric\":{\"description\":\"metric identifies the target metric by name and selector\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricIdentifier\"}}},\"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.\",\"required\":[\"name\",\"target\"],\"properties\":{\"name\":{\"description\":\"name is the name of the resource in question.\",\"type\":\"string\"},\"target\":{\"description\":\"target specifies the target value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricTarget\"}}},\"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.\",\"required\":[\"name\",\"current\"],\"properties\":{\"current\":{\"description\":\"current contains the current value for the given metric\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v2beta2.MetricValueStatus\"},\"name\":{\"description\":\"Name is the name of the resource in question.\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobSpec\"},\"status\":{\"description\":\"Current status of a job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"Last time the condition was checked.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transit from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.batch.v1.JobList\":{\"description\":\"JobList is a collection of jobs.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is the list of Jobs.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"template\"],\"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\",\"type\":\"integer\",\"format\":\"int64\"},\"backoffLimit\":{\"description\":\"Specifies the number of retries before marking this job failed. Defaults to 6\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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/\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.batch.v1.JobStatus\":{\"description\":\"JobStatus represents the current state of a Job.\",\"properties\":{\"active\":{\"description\":\"The number of actively running pods.\",\"type\":\"integer\",\"format\":\"int32\"},\"completionTime\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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/\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"failed\":{\"description\":\"The number of pods which reached phase Failed.\",\"type\":\"integer\",\"format\":\"int32\"},\"startTime\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"succeeded\":{\"description\":\"The number of pods which reached phase Succeeded.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJobSpec\"},\"status\":{\"description\":\"Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJobStatus\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is the list of CronJobs.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.CronJob\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"schedule\",\"jobTemplate\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"jobTemplate\":{\"description\":\"Specifies the job that will be created when executing a CronJob.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1beta1.JobTemplateSpec\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"suspend\":{\"description\":\"This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"}},\"lastScheduleTime\":{\"description\":\"Information when was the last time the job was successfully scheduled.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.batch.v1beta1.JobTemplateSpec\":{\"description\":\"JobTemplateSpec describes the data a Job should have when created from a template\",\"properties\":{\"metadata\":{\"description\":\"Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobSpec\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The certificate request itself and any additional information.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec\"},\"status\":{\"description\":\"Derived information about the request.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"certificates.k8s.io\",\"kind\":\"CertificateSigningRequest\",\"version\":\"v1beta1\"}]},\"io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition\":{\"required\":[\"type\"],\"properties\":{\"lastUpdateTime\":{\"description\":\"timestamp for the last update to this condition\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.certificates.v1beta1.CertificateSigningRequestList\":{\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"request\"],\"properties\":{\"extra\":{\"description\":\"Extra information about the requesting user. See user.Info interface for details.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"groups\":{\"description\":\"Group information about the requesting user. See user.Info interface for details.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"request\":{\"description\":\"Base64-encoded PKCS#10 CSR data\",\"type\":\"string\",\"format\":\"byte\"},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"username\":{\"description\":\"Information about the requesting user. See user.Info interface for details.\",\"type\":\"string\"}}},\"io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus\":{\"properties\":{\"certificate\":{\"description\":\"If request was approved, the controller will place the issued certificate here.\",\"type\":\"string\",\"format\":\"byte\"},\"conditions\":{\"description\":\"Conditions applied to the request, such as approval or denial.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition\"}}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.LeaseSpec\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of schema objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.coordination.v1beta1.Lease\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"description\":\"acquireTime is a time when the current lease was acquired.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"leaseTransitions\":{\"description\":\"leaseTransitions is the number of transitions of a lease between holders.\",\"type\":\"integer\",\"format\":\"int32\"},\"renewTime\":{\"description\":\"renewTime is a time when the current holder of a lease has last updated the lease.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"}}},\"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.\",\"required\":[\"volumeID\"],\"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).\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"io.k8s.api.core.v1.Affinity\":{\"description\":\"Affinity is a group of affinity scheduling rules.\",\"properties\":{\"nodeAffinity\":{\"description\":\"Describes node affinity scheduling rules for the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeAffinity\"},\"podAffinity\":{\"description\":\"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinity\"},\"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)).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAntiAffinity\"}}},\"io.k8s.api.core.v1.AttachedVolume\":{\"description\":\"AttachedVolume describes a volume attached to a node\",\"required\":[\"name\",\"devicePath\"],\"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\"}}},\"io.k8s.api.core.v1.AzureDiskVolumeSource\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"required\":[\"diskName\",\"diskURI\"],\"properties\":{\"cachingMode\":{\"description\":\"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\"}}},\"io.k8s.api.core.v1.AzureFilePersistentVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"required\":[\"secretName\",\"shareName\"],\"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\"}}},\"io.k8s.api.core.v1.AzureFileVolumeSource\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"required\":[\"secretName\",\"shareName\"],\"properties\":{\"readOnly\":{\"description\":\"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\"}}},\"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.\",\"required\":[\"target\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"target\":{\"description\":\"The target object that you want to bind to the standard object.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"}},\"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)\",\"required\":[\"driver\",\"volumeHandle\"],\"properties\":{\"controllerPublishSecretRef\":{\"description\":\"ControllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"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\":{\"description\":\"NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"nodeStageSecretRef\":{\"description\":\"NodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"readOnly\":{\"description\":\"Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).\",\"type\":\"boolean\"},\"volumeAttributes\":{\"description\":\"Attributes of the volume to publish.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"volumeHandle\":{\"description\":\"VolumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Capabilities\":{\"description\":\"Adds and removes POSIX capabilities from running containers.\",\"properties\":{\"add\":{\"description\":\"Added capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"drop\":{\"description\":\"Removed capabilities\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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.\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"user\":{\"description\":\"Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"required\":[\"monitors\"],\"properties\":{\"monitors\":{\"description\":\"Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"},\"secretRef\":{\"description\":\"Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"required\":[\"volumeID\"],\"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://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"Optional: points to a secret object containing parameters used to connect to OpenStack.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"volumeID\":{\"description\":\"volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\"type\":\"string\"}}},\"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.\",\"required\":[\"volumeID\"],\"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://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"Optional: points to a secret object containing parameters used to connect to OpenStack.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeID\":{\"description\":\"volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\"type\":\"string\"}}},\"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).\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ComponentCondition\":{\"description\":\"Information about the condition of a component.\",\"required\":[\"type\",\"status\"],\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"conditions\":{\"description\":\"List of component conditions observed\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentCondition\"},\"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/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of ComponentStatus objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatus\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"binaryData\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"format\":\"byte\"}},\"data\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}},\"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\"}}},\"io.k8s.api.core.v1.ConfigMapKeySelector\":{\"description\":\"Selects a key from a ConfigMap.\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key to select.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"Specify whether the ConfigMap or it's key must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.ConfigMapList\":{\"description\":\"ConfigMapList is a resource containing a list of ConfigMap objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of ConfigMaps.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"namespace\",\"name\",\"kubeletConfigKey\"],\"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\"}}},\"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 '..'.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"Specify whether the ConfigMap or it's keys must be defined\",\"type\":\"boolean\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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 '..'.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"Specify whether the ConfigMap or it's keys must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.Container\":{\"description\":\"A single application container that you want to run within a pod.\",\"required\":[\"name\"],\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"env\":{\"description\":\"List of environment variables to set in the container. Cannot be updated.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVar\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvFromSource\"}},\"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\":{\"description\":\"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Lifecycle\"},\"livenessProbe\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerPort\"},\"x-kubernetes-list-map-keys\":[\"containerPort\",\"protocol\"],\"x-kubernetes-list-type\":\"map\",\"x-kubernetes-patch-merge-key\":\"containerPort\",\"x-kubernetes-patch-strategy\":\"merge\"},\"readinessProbe\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"resources\":{\"description\":\"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"},\"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/\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecurityContext\"},\"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. This is a beta feature.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeDevice\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeMount\"},\"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\"}}},\"io.k8s.api.core.v1.ContainerImage\":{\"description\":\"Describe a container image\",\"required\":[\"names\"],\"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\\\"]\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"sizeBytes\":{\"description\":\"The size of the image in bytes.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.core.v1.ContainerPort\":{\"description\":\"ContainerPort represents a network port in a single container.\",\"required\":[\"containerPort\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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\":{\"description\":\"Details about a running container\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateRunning\"},\"terminated\":{\"description\":\"Details about a terminated container\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateTerminated\"},\"waiting\":{\"description\":\"Details about a waiting container\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateWaiting\"}}},\"io.k8s.api.core.v1.ContainerStateRunning\":{\"description\":\"ContainerStateRunning is a running state of a container.\",\"properties\":{\"startedAt\":{\"description\":\"Time at which the container was last (re-)started\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.api.core.v1.ContainerStateTerminated\":{\"description\":\"ContainerStateTerminated is a terminated state of a container.\",\"required\":[\"exitCode\"],\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"finishedAt\":{\"description\":\"Time at which the container last terminated\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"Message regarding the last termination of the container\",\"type\":\"string\"},\"reason\":{\"description\":\"(brief) reason from the last termination of the container\",\"type\":\"string\"},\"signal\":{\"description\":\"Signal from the last termination of the container\",\"type\":\"integer\",\"format\":\"int32\"},\"startedAt\":{\"description\":\"Time at which previous execution of the container started\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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\"}}},\"io.k8s.api.core.v1.ContainerStatus\":{\"description\":\"ContainerStatus contains details for the current status of this container.\",\"required\":[\"name\",\"ready\",\"restartCount\",\"image\",\"imageID\"],\"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\":{\"description\":\"Details about the container's last termination condition.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerState\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"state\":{\"description\":\"Details about the container's current condition.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerState\"}}},\"io.k8s.api.core.v1.DaemonEndpoint\":{\"description\":\"DaemonEndpoint contains information about a single Daemon endpoint.\",\"required\":[\"Port\"],\"properties\":{\"Port\":{\"description\":\"Port number of the given endpoint.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"io.k8s.api.core.v1.DownwardAPIVolumeFile\":{\"description\":\"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\"required\":[\"path\"],\"properties\":{\"fieldRef\":{\"description\":\"Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"path\":{\"description\":\"Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\"type\":\"string\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"items\":{\"description\":\"Items is a list of downward API volume file\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"}}}},\"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\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}},\"io.k8s.api.core.v1.EndpointAddress\":{\"description\":\"EndpointAddress is a tuple that describes single IP address.\",\"required\":[\"ip\"],\"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\":{\"description\":\"Reference to object providing the endpoint.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"}}},\"io.k8s.api.core.v1.EndpointPort\":{\"description\":\"EndpointPort is a tuple that describes a single port.\",\"required\":[\"port\"],\"properties\":{\"name\":{\"description\":\"The name of this port (corresponds to ServicePort.Name). Must be a DNS_LABEL. Optional only if one port is defined.\",\"type\":\"string\"},\"port\":{\"description\":\"The port number of the endpoint.\",\"type\":\"integer\",\"format\":\"int32\"},\"protocol\":{\"description\":\"The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\",\"type\":\"string\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointAddress\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointAddress\"}},\"ports\":{\"description\":\"Port numbers available on the related IP addresses.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointPort\"}}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointSubset\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Endpoints\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.EndpointsList\":{\"description\":\"EndpointsList is a list of endpoints.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of endpoints.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"description\":\"The ConfigMap to select from\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource\"},\"prefix\":{\"description\":\"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\"type\":\"string\"},\"secretRef\":{\"description\":\"The Secret to select from\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretEnvSource\"}}},\"io.k8s.api.core.v1.EnvVar\":{\"description\":\"EnvVar represents an environment variable present in a Container.\",\"required\":[\"name\"],\"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\":{\"description\":\"Source for the environment variable's value. Cannot be used if value is not empty.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVarSource\"}}},\"io.k8s.api.core.v1.EnvVarSource\":{\"description\":\"EnvVarSource represents a source for the value of an EnvVar.\",\"properties\":{\"configMapKeyRef\":{\"description\":\"Selects a key of a ConfigMap.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector\"},\"fieldRef\":{\"description\":\"Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"},\"resourceFieldRef\":{\"description\":\"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"},\"secretKeyRef\":{\"description\":\"Selects a key of a secret in the pod's namespace\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretKeySelector\"}}},\"io.k8s.api.core.v1.Event\":{\"description\":\"Event is a report of an event somewhere in the cluster.\",\"required\":[\"metadata\",\"involvedObject\"],\"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/api-conventions.md#resources\",\"type\":\"string\"},\"count\":{\"description\":\"The number of times this event has occurred.\",\"type\":\"integer\",\"format\":\"int32\"},\"eventTime\":{\"description\":\"Time when this Event was first observed.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"},\"firstTimestamp\":{\"description\":\"The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"involvedObject\":{\"description\":\"The object that this event is about.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"lastTimestamp\":{\"description\":\"The time at which the most recent occurrence of this event was recorded.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"message\":{\"description\":\"A human-readable description of the status of this operation.\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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\":{\"description\":\"Optional secondary object for more complex actions.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"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\":{\"description\":\"Data about the Event series this event represents or nil if it's a singleton Event.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventSeries\"},\"source\":{\"description\":\"The component reporting this event. Should be a short machine understandable string.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventSource\"},\"type\":{\"description\":\"Type of this event (Normal, Warning), new types could be added in the future\",\"type\":\"string\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Event\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.EventList\":{\"description\":\"EventList is a list of events.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of events\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"lastObservedTime\":{\"description\":\"Time of the last occurrence observed\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"},\"state\":{\"description\":\"State of this Series: Ongoing or Finished\",\"type\":\"string\"}}},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"wwids\":{\"description\":\"Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.core.v1.FlexPersistentVolumeSource\":{\"description\":\"FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"Driver is the name of the driver to use for this volume.\",\"type\":\"string\"},\"fsType\":{\"description\":\"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"Optional: Extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"readOnly\":{\"description\":\"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"}}},\"io.k8s.api.core.v1.FlexVolumeSource\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"Driver is the name of the driver to use for this volume.\",\"type\":\"string\"},\"fsType\":{\"description\":\"Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\"type\":\"string\"},\"options\":{\"description\":\"Optional: Extra command options if any.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"readOnly\":{\"description\":\"Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\"type\":\"boolean\"},\"secretRef\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"}}},\"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\"}}},\"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.\",\"required\":[\"pdName\"],\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"required\":[\"repository\"],\"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\"}}},\"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.\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\"},\"path\":{\"description\":\"Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"boolean\"}}},\"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.\",\"required\":[\"endpoints\",\"path\"],\"properties\":{\"endpoints\":{\"description\":\"EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"string\"},\"path\":{\"description\":\"Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.HTTPGetAction\":{\"description\":\"HTTPGetAction describes an action based on HTTP Get requests.\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\"type\":\"string\"},\"httpHeaders\":{\"description\":\"Custom headers to set in the request. HTTP allows repeated headers.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPHeader\"}},\"path\":{\"description\":\"Path to access on the HTTP server.\",\"type\":\"string\"},\"port\":{\"description\":\"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"scheme\":{\"description\":\"Scheme to use for connecting to the host. Defaults to HTTP.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.HTTPHeader\":{\"description\":\"HTTPHeader describes a custom header to be used in HTTP probes\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"The header field name\",\"type\":\"string\"},\"value\":{\"description\":\"The header field value\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Handler\":{\"description\":\"Handler defines a specific action that should be taken\",\"properties\":{\"exec\":{\"description\":\"One and only one of the following should be specified. Exec specifies the action to take.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ExecAction\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"ip\":{\"description\":\"IP address of the host file entry.\",\"type\":\"string\"}}},\"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.\",\"required\":[\"path\"],\"properties\":{\"path\":{\"description\":\"Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\"},\"type\":{\"description\":\"Type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"type\":\"string\"}}},\"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.\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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).\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"readOnly\":{\"description\":\"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"CHAP Secret for iSCSI target and initiator authentication\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"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\"}}},\"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.\",\"required\":[\"targetPortal\",\"iqn\",\"lun\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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).\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"readOnly\":{\"description\":\"ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"CHAP Secret for iSCSI target and initiator authentication\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"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\"}}},\"io.k8s.api.core.v1.KeyToPath\":{\"description\":\"Maps a string key to a path within a volume.\",\"required\":[\"key\",\"path\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Handler\"},\"preStop\":{\"description\":\"PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Handler\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeSpec\"}},\"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\":{\"description\":\"Default resource requirement limit value by resource name if resource limit is omitted.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"defaultRequest\":{\"description\":\"DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"max\":{\"description\":\"Max usage constraints on this kind by resource name.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"maxLimitRequestRatio\":{\"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\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"min\":{\"description\":\"Min usage constraints on this kind by resource name.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"type\":{\"description\":\"Type of resource that this limit applies to.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.LimitRangeList\":{\"description\":\"LimitRangeList is a list of LimitRange items.\",\"required\":[\"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/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/\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"limits\"],\"properties\":{\"limits\":{\"description\":\"Limits is the list of LimitRangeItem objects that are enforced.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeItem\"}}}},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LoadBalancerIngress\"}}}},\"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\"}}},\"io.k8s.api.core.v1.LocalVolumeSource\":{\"description\":\"Local represents directly-attached storage with node affinity (Beta feature)\",\"required\":[\"path\"],\"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\"}}},\"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.\",\"required\":[\"server\",\"path\"],\"properties\":{\"path\":{\"description\":\"Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"string\"},\"readOnly\":{\"description\":\"ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"boolean\"},\"server\":{\"description\":\"Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceSpec\"},\"status\":{\"description\":\"Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"Namespace\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.NamespaceList\":{\"description\":\"NamespaceList is a list of Namespaces.\",\"required\":[\"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/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/\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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/\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.core.v1.NamespaceStatus\":{\"description\":\"NamespaceStatus is information about the current status of a Namespace.\",\"properties\":{\"phase\":{\"description\":\"Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSpec\"},\"status\":{\"description\":\"Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeStatus\"}},\"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.\",\"required\":[\"type\",\"address\"],\"properties\":{\"address\":{\"description\":\"The node address.\",\"type\":\"string\"},\"type\":{\"description\":\"Node address type, one of Hostname, ExternalIP or InternalIP.\",\"type\":\"string\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm\"}},\"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 an update), the system may or may not try to eventually evict the pod from its node.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelector\"}}},\"io.k8s.api.core.v1.NodeCondition\":{\"description\":\"NodeCondition contains condition information for a node.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastHeartbeatTime\":{\"description\":\"Last time we got an update on a given condition.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transit from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"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\":{\"description\":\"ConfigMap is a reference to a Node's ConfigMap\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource\"}}},\"io.k8s.api.core.v1.NodeConfigStatus\":{\"description\":\"NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\",\"properties\":{\"active\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"},\"assigned\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"}}},\"io.k8s.api.core.v1.NodeDaemonEndpoints\":{\"description\":\"NodeDaemonEndpoints lists ports opened by daemons running on the Node.\",\"properties\":{\"kubeletEndpoint\":{\"description\":\"Endpoint on which Kubelet is listening.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DaemonEndpoint\"}}},\"io.k8s.api.core.v1.NodeList\":{\"description\":\"NodeList is the whole list of all Nodes which have been registered with master.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of nodes\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"nodeSelectorTerms\"],\"properties\":{\"nodeSelectorTerms\":{\"description\":\"Required. A list of node selector terms. The terms are ORed.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"}}}},\"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.\",\"required\":[\"key\",\"operator\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"}},\"matchFields\":{\"description\":\"A list of node selector requirements by node's fields.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"}}}},\"io.k8s.api.core.v1.NodeSpec\":{\"description\":\"NodeSpec describes the attributes that a node is created with.\",\"properties\":{\"configSource\":{\"description\":\"If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigSource\"},\"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\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Taint\"}},\"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\"}}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeAddress\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"allocatable\":{\"description\":\"Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"capacity\":{\"description\":\"Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"conditions\":{\"description\":\"Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"config\":{\"description\":\"Status of the config assigned to the node via the dynamic Kubelet config feature.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeConfigStatus\"},\"daemonEndpoints\":{\"description\":\"Endpoints of daemons running on the Node.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints\"},\"images\":{\"description\":\"List of container images on this node\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerImage\"}},\"nodeInfo\":{\"description\":\"Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSystemInfo\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.AttachedVolume\"}},\"volumesInUse\":{\"description\":\"List of attachable volumes in use (mounted) by the node.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.core.v1.NodeSystemInfo\":{\"description\":\"NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\",\"required\":[\"machineID\",\"systemUUID\",\"bootID\",\"kernelVersion\",\"osImage\",\"containerRuntimeVersion\",\"kubeletVersion\",\"kubeProxyVersion\",\"operatingSystem\",\"architecture\"],\"properties\":{\"architecture\":{\"description\":\"The Architecture reported by the node\",\"type\":\"string\"},\"bootID\":{\"description\":\"Boot ID reported by the node.\",\"type\":\"string\"},\"containerRuntimeVersion\":{\"description\":\"ContainerRuntime Version reported by the node through runtime remote API (e.g. 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\"}}},\"io.k8s.api.core.v1.ObjectFieldSelector\":{\"description\":\"ObjectFieldSelector selects an APIVersioned field of an object.\",\"required\":[\"fieldPath\"],\"properties\":{\"apiVersion\":{\"description\":\"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\"type\":\"string\"},\"fieldPath\":{\"description\":\"Path of the field to select in the specified API version.\",\"type\":\"string\"}}},\"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/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/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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec\"},\"status\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus\"}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"},\"status\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PersistentVolumeClaim\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PersistentVolumeClaimCondition\":{\"description\":\"PersistentVolumeClaimCondition contails details about state of pvc\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"Last time we probed the condition.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.core.v1.PersistentVolumeClaimList\":{\"description\":\"PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\",\"required\":[\"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/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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"dataSource\":{\"description\":\"This field requires the VolumeSnapshotDataSource alpha feature gate to be enabled and currently VolumeSnapshot is the only supported data source. If the provisioner can support VolumeSnapshot data source, it will create a new volume and data will be restored to the volume at the same time. If the provisioner does not support VolumeSnapshot data source, 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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference\"},\"resources\":{\"description\":\"Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"},\"selector\":{\"description\":\"A label query over volumes to consider for binding.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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. This is a beta feature.\",\"type\":\"string\"},\"volumeName\":{\"description\":\"VolumeName is the binding reference to the PersistentVolume backing this claim.\",\"type\":\"string\"}}},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"capacity\":{\"description\":\"Represents the actual resources of the underlying volume.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"conditions\":{\"description\":\"Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"phase\":{\"description\":\"Phase represents the current phase of PersistentVolumeClaim.\",\"type\":\"string\"}}},\"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).\",\"required\":[\"claimName\"],\"properties\":{\"claimName\":{\"description\":\"ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"type\":\"string\"},\"readOnly\":{\"description\":\"Will force the ReadOnly setting in VolumeMounts. Default false.\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.PersistentVolumeList\":{\"description\":\"PersistentVolumeList is a list of PersistentVolume items.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"awsElasticBlockStore\":{\"description\":\"AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"azureDisk\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"azureFile\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource\"},\"capacity\":{\"description\":\"A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"cephfs\":{\"description\":\"CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource\"},\"cinder\":{\"description\":\"Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CinderPersistentVolumeSource\"},\"claimRef\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"csi\":{\"description\":\"CSI represents storage that handled by an external CSI driver (Beta feature).\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource\"},\"fc\":{\"description\":\"FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"},\"flexVolume\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource\"},\"flocker\":{\"description\":\"Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"},\"gcePersistentDisk\":{\"description\":\"GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"glusterfs\":{\"description\":\"Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\"},\"hostPath\":{\"description\":\"HostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"},\"iscsi\":{\"description\":\"ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource\"},\"local\":{\"description\":\"Local represents directly-attached storage with node affinity\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalVolumeSource\"},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"nfs\":{\"description\":\"NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"},\"nodeAffinity\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity\"},\"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\":{\"description\":\"PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"portworxVolume\":{\"description\":\"PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"},\"quobyte\":{\"description\":\"Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"rbd\":{\"description\":\"RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource\"},\"scaleIO\":{\"description\":\"ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\"},\"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\":{\"description\":\"StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource\"},\"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. This is a beta feature.\",\"type\":\"string\"},\"vsphereVolume\":{\"description\":\"VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}}},\"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\"}}},\"io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\":{\"description\":\"Represents a Photon Controller persistent disk resource.\",\"required\":[\"pdID\"],\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodStatus\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"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\",\"required\":[\"topologyKey\"],\"properties\":{\"labelSelector\":{\"description\":\"A label query over a set of resources, in this case pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"namespaces\":{\"description\":\"namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \\\"this pod's namespace\\\"\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"}}}},\"io.k8s.api.core.v1.PodCondition\":{\"description\":\"PodCondition contains details for the current condition of this pod.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastProbeTime\":{\"description\":\"Last time we probed the condition.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodDNSConfigOption\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.core.v1.PodDNSConfigOption\":{\"description\":\"PodDNSConfigOption defines DNS resolver options of a pod.\",\"properties\":{\"name\":{\"description\":\"Required.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"}}},\"io.k8s.api.core.v1.PodList\":{\"description\":\"PodList is a list of Pods.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of pods. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"conditionType\"],\"properties\":{\"conditionType\":{\"description\":\"ConditionType refers to a condition in the pod's condition list with matching type.\",\"type\":\"string\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"integer\",\"format\":\"int64\"}},\"sysctls\":{\"description\":\"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Sysctl\"}}}},\"io.k8s.api.core.v1.PodSpec\":{\"description\":\"PodSpec is a description of a pod.\",\"required\":[\"containers\"],\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"affinity\":{\"description\":\"If specified, the pod's scheduling constraints\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Affinity\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Container\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"dnsConfig\":{\"description\":\"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodDNSConfig\"},\"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.\",\"type\":\"boolean\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostAlias\"},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"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, or Liveness 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/\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Container\"},\"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\":{\"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\",\"additionalProperties\":{\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodReadinessGate\"}},\"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://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md This is an alpha feature and may change in the future.\",\"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\":{\"description\":\"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSecurityContext\"},\"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. This field is beta-level and may be disabled with the PodShareProcessNamespace feature.\",\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"tolerations\":{\"description\":\"If specified, the pod's tolerations.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Toleration\"}},\"volumes\":{\"description\":\"List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Volume\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge,retainKeys\"}}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodCondition\"},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStatus\"}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStatus\"}},\"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\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"template\":{\"description\":\"Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"PodTemplate\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.PodTemplateList\":{\"description\":\"PodTemplateList is a list of PodTemplates.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of pod templates\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSpec\"}}},\"io.k8s.api.core.v1.PortworxVolumeSource\":{\"description\":\"PortworxVolumeSource represents a Portworx volume resource.\",\"required\":[\"volumeID\"],\"properties\":{\"fsType\":{\"description\":\"FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\"type\":\"string\"},\"readOnly\":{\"description\":\"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\"}}},\"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).\",\"required\":[\"weight\",\"preference\"],\"properties\":{\"preference\":{\"description\":\"A node selector term, associated with the corresponding weight.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"},\"weight\":{\"description\":\"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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\":{\"description\":\"One and only one of the following should be specified. Exec specifies the action to take.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ExecAction\"},\"failureThreshold\":{\"description\":\"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"httpGet\":{\"description\":\"HTTPGet specifies the http request to perform.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"},\"initialDelaySeconds\":{\"description\":\"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"},\"periodSeconds\":{\"description\":\"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"successThreshold\":{\"description\":\"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"tcpSocket\":{\"description\":\"TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"},\"timeoutSeconds\":{\"description\":\"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ProjectedVolumeSource\":{\"description\":\"Represents a projected volume source\",\"required\":[\"sources\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"sources\":{\"description\":\"list of volume projections\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeProjection\"}}}},\"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.\",\"required\":[\"registry\",\"volume\"],\"properties\":{\"group\":{\"description\":\"Group to map volume access to Default is no group\",\"type\":\"string\"},\"readOnly\":{\"description\":\"ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\"type\":\"boolean\"},\"registry\":{\"description\":\"Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\"type\":\"string\"},\"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\"}}},\"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.\",\"required\":[\"monitors\",\"image\"],\"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://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"pool\":{\"description\":\"The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"user\":{\"description\":\"The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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.\",\"required\":[\"monitors\",\"image\"],\"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://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"},\"monitors\":{\"description\":\"A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"pool\":{\"description\":\"The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/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://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"boolean\"},\"secretRef\":{\"description\":\"SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"user\":{\"description\":\"The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"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/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"The last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.core.v1.ReplicationControllerList\":{\"description\":\"ReplicationControllerList is a collection of replication controllers.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.core.v1.ReplicationControllerStatus\":{\"description\":\"ReplicationControllerStatus represents the current status of a replication controller.\",\"required\":[\"replicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"The number of available replicas (ready for at least minReadySeconds) for this replication controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a replication controller's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"ObservedGeneration reflects the generation of the most recently observed replication controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"The number of ready replicas for this replication controller.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.core.v1.ResourceFieldSelector\":{\"description\":\"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\"required\":[\"resource\"],\"properties\":{\"containerName\":{\"description\":\"Container name: required for volumes, optional for env vars\",\"type\":\"string\"},\"divisor\":{\"description\":\"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"},\"resource\":{\"description\":\"Required: resource to select\",\"type\":\"string\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec\"},\"status\":{\"description\":\"Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ResourceQuota\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ResourceQuotaList\":{\"description\":\"ResourceQuotaList is a list of ResourceQuota items.\",\"required\":[\"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/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/\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"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\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScopeSelector\"},\"scopes\":{\"description\":\"A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.core.v1.ResourceQuotaStatus\":{\"description\":\"ResourceQuotaStatus defines the enforced hard limits and observed use.\",\"properties\":{\"hard\":{\"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\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"used\":{\"description\":\"Used is the current observed total usage of the resource in the namespace.\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}}},\"io.k8s.api.core.v1.ResourceRequirements\":{\"description\":\"ResourceRequirements describes the compute resource requirements.\",\"properties\":{\"limits\":{\"description\":\"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}},\"requests\":{\"description\":\"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\",\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity\"}}}},\"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\"}}},\"io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\":{\"description\":\"ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"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\":{\"description\":\"SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretReference\"},\"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\"}}},\"io.k8s.api.core.v1.ScaleIOVolumeSource\":{\"description\":\"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\"required\":[\"gateway\",\"system\",\"secretRef\"],\"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\":{\"description\":\"SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement\"}}}},\"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.\",\"required\":[\"scopeName\",\"operator\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"data\":{\"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\",\"additionalProperties\":{\"type\":\"string\",\"format\":\"byte\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"stringData\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"type\":{\"description\":\"Used to facilitate programmatic handling of secret data.\",\"type\":\"string\"}},\"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\"}}},\"io.k8s.api.core.v1.SecretKeySelector\":{\"description\":\"SecretKeySelector selects a key of a Secret.\",\"required\":[\"key\"],\"properties\":{\"key\":{\"description\":\"The key of the secret to select from.  Must be a valid secret key.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"Specify whether the Secret or it's key must be defined\",\"type\":\"boolean\"}}},\"io.k8s.api.core.v1.SecretList\":{\"description\":\"SecretList is a list of Secret.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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 '..'.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"name\":{\"description\":\"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\"type\":\"string\"},\"optional\":{\"description\":\"Specify whether the Secret or its key must be defined\",\"type\":\"boolean\"}}},\"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\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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 '..'.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"}},\"optional\":{\"description\":\"Specify whether the Secret or it's 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\"}}},\"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\":{\"description\":\"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Capabilities\"},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"runAsNonRoot\":{\"description\":\"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"boolean\"},\"runAsUser\":{\"description\":\"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"type\":\"integer\",\"format\":\"int64\"},\"seLinuxOptions\":{\"description\":\"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceSpec\"},\"status\":{\"description\":\"Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceStatus\"}},\"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/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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ServiceAccount\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ServiceAccountList\":{\"description\":\"ServiceAccountList is a list of ServiceAccount objects\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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).\",\"required\":[\"path\"],\"properties\":{\"audience\":{\"description\":\"Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\"type\":\"string\"},\"expirationSeconds\":{\"description\":\"ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\"type\":\"integer\",\"format\":\"int64\"},\"path\":{\"description\":\"Path is the path relative to the mount point of the file to project the token into.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.ServiceList\":{\"description\":\"ServiceList holds a list of services.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of services\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"ServiceList\",\"version\":\"v1\"}]},\"io.k8s.api.core.v1.ServicePort\":{\"description\":\"ServicePort contains information on service's port.\",\"required\":[\"port\"],\"properties\":{\"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. This maps to the 'Name' field in EndpointPort objects. 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\",\"type\":\"integer\",\"format\":\"int32\"},\"port\":{\"description\":\"The port that will be exposed by this service.\",\"type\":\"integer\",\"format\":\"int32\"},\"protocol\":{\"description\":\"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\". Default is TCP.\",\"type\":\"string\"},\"targetPort\":{\"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\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServicePort\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"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\":{\"description\":\"sessionAffinityConfig contains the configurations of session affinity.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SessionAffinityConfig\"},\"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\"}}},\"io.k8s.api.core.v1.ServiceStatus\":{\"description\":\"ServiceStatus represents the current status of a service.\",\"properties\":{\"loadBalancer\":{\"description\":\"LoadBalancer contains the current status of the load-balancer, if one is present.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LoadBalancerStatus\"}}},\"io.k8s.api.core.v1.SessionAffinityConfig\":{\"description\":\"SessionAffinityConfig represents the configurations of session affinity.\",\"properties\":{\"clientIP\":{\"description\":\"clientIP contains the configurations of Client IP based session affinity.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ClientIPConfig\"}}},\"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\":{\"description\":\"SecretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"volumeName\":{\"description\":\"VolumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"VolumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"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\":{\"description\":\"SecretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"volumeName\":{\"description\":\"VolumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\"type\":\"string\"},\"volumeNamespace\":{\"description\":\"VolumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.Sysctl\":{\"description\":\"Sysctl defines a kernel parameter to be set\",\"required\":[\"name\",\"value\"],\"properties\":{\"name\":{\"description\":\"Name of a property to set\",\"type\":\"string\"},\"value\":{\"description\":\"Value of a property to set\",\"type\":\"string\"}}},\"io.k8s.api.core.v1.TCPSocketAction\":{\"description\":\"TCPSocketAction describes an action based on opening a socket\",\"required\":[\"port\"],\"properties\":{\"host\":{\"description\":\"Optional: Host name to connect to, defaults to the pod IP.\",\"type\":\"string\"},\"port\":{\"description\":\"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"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.\",\"required\":[\"key\",\"effect\"],\"properties\":{\"effect\":{\"description\":\"Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\",\"type\":\"string\"},\"key\":{\"description\":\"Required. The taint key to be applied to a node.\",\"type\":\"string\"},\"timeAdded\":{\"description\":\"TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"value\":{\"description\":\"Required. The taint value corresponding to the taint key.\",\"type\":\"string\"}}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"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\"}}},\"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.\",\"required\":[\"key\",\"values\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement\"}}}},\"io.k8s.api.core.v1.TypedLocalObjectReference\":{\"description\":\"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\"}}},\"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.\",\"required\":[\"name\"],\"properties\":{\"awsElasticBlockStore\":{\"description\":\"AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"azureDisk\":{\"description\":\"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"azureFile\":{\"description\":\"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource\"},\"cephfs\":{\"description\":\"CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CephFSVolumeSource\"},\"cinder\":{\"description\":\"Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CinderVolumeSource\"},\"configMap\":{\"description\":\"ConfigMap represents a configMap that should populate this volume\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource\"},\"downwardAPI\":{\"description\":\"DownwardAPI represents downward API about the pod that should populate this volume\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource\"},\"emptyDir\":{\"description\":\"EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource\"},\"fc\":{\"description\":\"FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"},\"flexVolume\":{\"description\":\"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlexVolumeSource\"},\"flocker\":{\"description\":\"Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"},\"gcePersistentDisk\":{\"description\":\"GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"gitRepo\":{\"description\":\"GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource\"},\"glusterfs\":{\"description\":\"Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource\"},\"hostPath\":{\"description\":\"HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"},\"iscsi\":{\"description\":\"ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource\"},\"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\":{\"description\":\"NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"},\"persistentVolumeClaim\":{\"description\":\"PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"},\"photonPersistentDisk\":{\"description\":\"PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"portworxVolume\":{\"description\":\"PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"},\"projected\":{\"description\":\"Items for all in one resources secrets, configmaps, and downward API\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource\"},\"quobyte\":{\"description\":\"Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"rbd\":{\"description\":\"RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.RBDVolumeSource\"},\"scaleIO\":{\"description\":\"ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource\"},\"secret\":{\"description\":\"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretVolumeSource\"},\"storageos\":{\"description\":\"StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource\"},\"vsphereVolume\":{\"description\":\"VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"}}},\"io.k8s.api.core.v1.VolumeDevice\":{\"description\":\"volumeDevice describes a mapping of a raw block device within a container.\",\"required\":[\"name\",\"devicePath\"],\"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\"}}},\"io.k8s.api.core.v1.VolumeMount\":{\"description\":\"VolumeMount describes a mounting of a Volume within a container.\",\"required\":[\"name\",\"mountPath\"],\"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\"}}},\"io.k8s.api.core.v1.VolumeNodeAffinity\":{\"description\":\"VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\",\"properties\":{\"required\":{\"description\":\"Required specifies hard node constraints that must be met.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelector\"}}},\"io.k8s.api.core.v1.VolumeProjection\":{\"description\":\"Projection that may be projected along with other supported volume types\",\"properties\":{\"configMap\":{\"description\":\"information about the configMap data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapProjection\"},\"downwardAPI\":{\"description\":\"information about the downwardAPI data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIProjection\"},\"secret\":{\"description\":\"information about the secret data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretProjection\"},\"serviceAccountToken\":{\"description\":\"information about the serviceAccountToken data to project\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccountTokenProjection\"}}},\"io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\":{\"description\":\"Represents a vSphere volume resource.\",\"required\":[\"volumePath\"],\"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\"}}},\"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)\",\"required\":[\"weight\",\"podAffinityTerm\"],\"properties\":{\"podAffinityTerm\":{\"description\":\"Required. A pod affinity term, associated with the corresponding weight.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"},\"weight\":{\"description\":\"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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.\",\"required\":[\"eventTime\"],\"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/api-conventions.md#resources\",\"type\":\"string\"},\"deprecatedCount\":{\"description\":\"Deprecated field assuring backward compatibility with core.v1 Event type\",\"type\":\"integer\",\"format\":\"int32\"},\"deprecatedFirstTimestamp\":{\"description\":\"Deprecated field assuring backward compatibility with core.v1 Event type\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deprecatedLastTimestamp\":{\"description\":\"Deprecated field assuring backward compatibility with core.v1 Event type\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deprecatedSource\":{\"description\":\"Deprecated field assuring backward compatibility with core.v1 Event type\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventSource\"},\"eventTime\":{\"description\":\"Required. Time when this Event was first observed.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"related\":{\"description\":\"Optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"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\":{\"description\":\"Data about the Event series this event represents or nil if it's a singleton Event.\",\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.EventSeries\"},\"type\":{\"description\":\"Type of this event (Normal, Warning), new types could be added in the future.\",\"type\":\"string\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of schema objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.events.v1beta1.Event\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"count\",\"lastObservedTime\",\"state\"],\"properties\":{\"count\":{\"description\":\"Number of occurrences in this series up to the last heartbeat time\",\"type\":\"integer\",\"format\":\"int32\"},\"lastObservedTime\":{\"description\":\"Time when last Event from the series was seen before last heartbeat.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\"},\"state\":{\"description\":\"Information whether this series is ongoing or finished.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.AllowedFlexVolume\":{\"description\":\"AllowedFlexVolume represents a single Flexvolume that is allowed to be used. Deprecated: use AllowedFlexVolume from policy API Group instead.\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the Flexvolume driver.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.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. Deprecated: use AllowedHostPath from policy API Group instead.\",\"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\"}}},\"io.k8s.api.extensions.v1beta1.DaemonSet\":{\"description\":\"DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"DaemonSet\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.DaemonSetCondition\":{\"description\":\"DaemonSetCondition describes the state of a DaemonSet at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.extensions.v1beta1.DaemonSetList\":{\"description\":\"DaemonSetList is a collection of daemon sets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"A list of daemon sets.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"DaemonSetList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.DaemonSetSpec\":{\"description\":\"DaemonSetSpec is the specification of a daemon set.\",\"required\":[\"template\"],\"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).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"description\":\"A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"templateGeneration\":{\"description\":\"DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.\",\"type\":\"integer\",\"format\":\"int64\"},\"updateStrategy\":{\"description\":\"An update strategy to replace existing DaemonSet pods with new pods.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy\"}}},\"io.k8s.api.extensions.v1beta1.DaemonSetStatus\":{\"description\":\"DaemonSetStatus represents the current status of a daemon set.\",\"required\":[\"currentNumberScheduled\",\"numberMisscheduled\",\"desiredNumberScheduled\",\"numberReady\"],\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a DaemonSet's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetCondition\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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/\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"The most recent generation observed by the daemon set controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"updatedNumberScheduled\":{\"description\":\"The total number of nodes that are running updated daemon pod\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy\":{\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet\"},\"type\":{\"description\":\"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is OnDelete.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.Deployment\":{\"description\":\"DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentSpec\"},\"status\":{\"description\":\"Most recently observed status of the Deployment.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"Deployment\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.DeploymentCondition\":{\"description\":\"DeploymentCondition describes the state of a deployment at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"lastUpdateTime\":{\"description\":\"The last time this condition was updated.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.extensions.v1beta1.DeploymentList\":{\"description\":\"DeploymentList is a list of Deployments.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of Deployments.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"DeploymentList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.DeploymentRollback\":{\"description\":\"DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.\",\"required\":[\"name\",\"rollbackTo\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"name\":{\"description\":\"Required: This must match the Name of a deployment.\",\"type\":\"string\"},\"rollbackTo\":{\"description\":\"The config of this deployment rollback.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig\"},\"updatedAnnotations\":{\"description\":\"The annotations to be updated to a deployment\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"DeploymentRollback\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.DeploymentSpec\":{\"description\":\"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\"required\":[\"template\"],\"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)\",\"type\":\"integer\",\"format\":\"int32\"},\"paused\":{\"description\":\"Indicates that the deployment is paused and will not be processed by the deployment controller.\",\"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. This is set to the max value of int32 (i.e. 2147483647) by default, which means \\\"no deadline\\\".\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\"type\":\"integer\",\"format\":\"int32\"},\"revisionHistoryLimit\":{\"description\":\"The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. This is set to the max value of int32 (i.e. 2147483647) by default, which means \\\"retaining all old RelicaSets\\\".\",\"type\":\"integer\",\"format\":\"int32\"},\"rollbackTo\":{\"description\":\"DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig\"},\"selector\":{\"description\":\"Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"strategy\":{\"description\":\"The deployment strategy to use to replace existing pods with new ones.\",\"x-kubernetes-patch-strategy\":\"retainKeys\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStrategy\"},\"template\":{\"description\":\"Template describes the pods that will be created.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.extensions.v1beta1.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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a deployment's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"},\"observedGeneration\":{\"description\":\"The generation observed by the deployment controller.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"Total number of ready pods targeted by this deployment.\",\"type\":\"integer\",\"format\":\"int32\"},\"replicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\"type\":\"integer\",\"format\":\"int32\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"updatedReplicas\":{\"description\":\"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.extensions.v1beta1.DeploymentStrategy\":{\"description\":\"DeploymentStrategy describes how to replace existing pods with new ones.\",\"properties\":{\"rollingUpdate\":{\"description\":\"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDeployment\"},\"type\":{\"description\":\"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions\":{\"description\":\"FSGroupStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use FSGroupStrategyOptions from policy API Group instead.\",\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate what FSGroup is used in the SecurityContext.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.HTTPIngressPath\":{\"description\":\"HTTPIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend.\",\"required\":[\"backend\"],\"properties\":{\"backend\":{\"description\":\"Backend defines the referenced service endpoint to which the traffic will be forwarded to.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend\"},\"path\":{\"description\":\"Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) 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 '/'. If unspecified, the path defaults to a catch all sending traffic to the backend.\",\"type\":\"string\"}}},\"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 '#'.\",\"required\":[\"paths\"],\"properties\":{\"paths\":{\"description\":\"A collection of paths that map requests to backends.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath\"}}}},\"io.k8s.api.extensions.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. Deprecated: use HostPortRange from policy API Group instead.\",\"required\":[\"min\",\"max\"],\"properties\":{\"max\":{\"description\":\"max is the end of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int32\"},\"min\":{\"description\":\"min is the start of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.extensions.v1beta1.IDRange\":{\"description\":\"IDRange provides a min/max of an allowed range of IDs. Deprecated: use IDRange from policy API Group instead.\",\"required\":[\"min\",\"max\"],\"properties\":{\"max\":{\"description\":\"max is the end of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int64\"},\"min\":{\"description\":\"min is the start of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.extensions.v1beta1.IPBlock\":{\"description\":\"DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock. IPBlock describes a particular CIDR (Ex. \\\"192.168.1.1/24\\\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.\",\"required\":[\"cidr\"],\"properties\":{\"cidr\":{\"description\":\"CIDR is a string representing the IP Block Valid examples are \\\"192.168.1.1/24\\\"\",\"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\\\" Except values will be rejected if they are outside the CIDR range\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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.\",\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec\"},\"status\":{\"description\":\"Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus\"}},\"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.\",\"required\":[\"serviceName\",\"servicePort\"],\"properties\":{\"serviceName\":{\"description\":\"Specifies the name of the referenced service.\",\"type\":\"string\"},\"servicePort\":{\"description\":\"Specifies the port of the referenced service.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.extensions.v1beta1.IngressList\":{\"description\":\"IngressList is a collection of Ingress.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of Ingress.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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 the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the\\n\\t  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.\",\"type\":\"string\"},\"http\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue\"}}},\"io.k8s.api.extensions.v1beta1.IngressSpec\":{\"description\":\"IngressSpec describes the Ingress the user wishes to exist.\",\"properties\":{\"backend\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressRule\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS\"}}}},\"io.k8s.api.extensions.v1beta1.IngressStatus\":{\"description\":\"IngressStatus describe the current state of the Ingress.\",\"properties\":{\"loadBalancer\":{\"description\":\"LoadBalancer contains the current status of the load-balancer.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LoadBalancerStatus\"}}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"}}},\"io.k8s.api.extensions.v1beta1.NetworkPolicy\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior for this NetworkPolicy.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicySpec\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"NetworkPolicy\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule. 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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPort\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\"}}}},\"io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule. This NetworkPolicyIngressRule matches traffic if and only if the traffic matches 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 on item, this rule allows traffic only if the traffic matches at least one item in the from list.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPort\"}}}},\"io.k8s.api.extensions.v1beta1.NetworkPolicyList\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList. Network Policy List is a list of NetworkPolicy objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of schema objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"NetworkPolicyList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.\",\"properties\":{\"ipBlock\":{\"description\":\"IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IPBlock\"},\"namespaceSelector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"podSelector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}},\"io.k8s.api.extensions.v1beta1.NetworkPolicyPort\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.\",\"properties\":{\"port\":{\"description\":\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"protocol\":{\"description\":\"Optional.  The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.NetworkPolicySpec\":{\"description\":\"DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.\",\"required\":[\"podSelector\"],\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule\"}},\"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 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).\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule\"}},\"podSelector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.extensions.v1beta1.PodSecurityPolicy\":{\"description\":\"PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated: use PodSecurityPolicy from policy API Group 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec defines the policy enforced.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicy\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.PodSecurityPolicyList\":{\"description\":\"PodSecurityPolicyList is a list of PodSecurityPolicy objects. Deprecated: use PodSecurityPolicyList from policy API Group instead.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is a list of schema objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"PodSecurityPolicyList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec\":{\"description\":\"PodSecurityPolicySpec defines the policy enforced. Deprecated: use PodSecurityPolicySpec from policy API Group instead.\",\"required\":[\"seLinux\",\"runAsUser\",\"supplementalGroups\",\"fsGroup\"],\"properties\":{\"allowPrivilegeEscalation\":{\"description\":\"allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.\",\"type\":\"boolean\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.AllowedFlexVolume\"}},\"allowedHostPaths\":{\"description\":\"allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.AllowedHostPath\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"fsGroup\":{\"description\":\"fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.HostPortRange\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"runAsGroup\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RunAsGroupStrategyOptions\"},\"runAsUser\":{\"description\":\"runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions\"},\"seLinux\":{\"description\":\"seLinux is the strategy that will dictate the allowable labels that may be set.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions\"},\"supplementalGroups\":{\"description\":\"supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions\"},\"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 '*'.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.extensions.v1beta1.ReplicaSet\":{\"description\":\"DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for more information. 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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"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/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetSpec\"},\"status\":{\"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/api-conventions.md#spec-and-status\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"ReplicaSet\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.ReplicaSetCondition\":{\"description\":\"ReplicaSetCondition describes the state of a replica set at a certain point.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"The last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.api.extensions.v1beta1.ReplicaSetList\":{\"description\":\"ReplicaSetList is a collection of ReplicaSets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"ReplicaSetList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.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)\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"description\":\"Selector is a label query over pods that should match the replica count. If the 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 replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"template\":{\"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\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"}}},\"io.k8s.api.extensions.v1beta1.ReplicaSetStatus\":{\"description\":\"ReplicaSetStatus represents the current status of a ReplicaSet.\",\"required\":[\"replicas\"],\"properties\":{\"availableReplicas\":{\"description\":\"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"conditions\":{\"description\":\"Represents the latest available observations of a replica set's current state.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetCondition\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\"type\":\"integer\",\"format\":\"int64\"},\"readyReplicas\":{\"description\":\"The number of ready replicas for this replica set.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.extensions.v1beta1.RollbackConfig\":{\"description\":\"DEPRECATED.\",\"properties\":{\"revision\":{\"description\":\"The revision to rollback to. If set to 0, rollback to the last revision.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet\":{\"description\":\"Spec to control the desired behavior of daemon set rolling update.\",\"properties\":{\"maxUnavailable\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.extensions.v1beta1.RollingUpdateDeployment\":{\"description\":\"Spec to control the desired behavior of rolling update.\",\"properties\":{\"maxSurge\":{\"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. By default, a value of 1 is used. Example: when this is set to 30%, the new RC 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 RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"maxUnavailable\":{\"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. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"}}},\"io.k8s.api.extensions.v1beta1.RunAsGroupStrategyOptions\":{\"description\":\"RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsGroupStrategyOptions from policy API Group instead.\",\"required\":[\"rule\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate the allowable RunAsGroup values that may be set.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions\":{\"description\":\"RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsUserStrategyOptions from policy API Group instead.\",\"required\":[\"rule\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate the allowable RunAsUser values that may be set.\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions\":{\"description\":\"SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use SELinuxStrategyOptions from policy API Group instead.\",\"required\":[\"rule\"],\"properties\":{\"rule\":{\"description\":\"rule is the strategy that will dictate the allowable labels that may be set.\",\"type\":\"string\"},\"seLinuxOptions\":{\"description\":\"seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"}}},\"io.k8s.api.extensions.v1beta1.Scale\":{\"description\":\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ScaleSpec\"},\"status\":{\"description\":\"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ScaleStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"extensions\",\"kind\":\"Scale\",\"version\":\"v1beta1\"}]},\"io.k8s.api.extensions.v1beta1.ScaleSpec\":{\"description\":\"describes the attributes of a scale subresource\",\"properties\":{\"replicas\":{\"description\":\"desired number of instances for the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.extensions.v1beta1.ScaleStatus\":{\"description\":\"represents the current status of a scale subresource.\",\"required\":[\"replicas\"],\"properties\":{\"replicas\":{\"description\":\"actual number of observed instances of the scaled object.\",\"type\":\"integer\",\"format\":\"int32\"},\"selector\":{\"description\":\"label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"targetSelector\":{\"description\":\"label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\"type\":\"string\"}}},\"io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions\":{\"description\":\"SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead.\",\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.\",\"type\":\"string\"}}},\"io.k8s.api.networking.v1.IPBlock\":{\"description\":\"IPBlock describes a particular CIDR (Ex. \\\"192.168.1.1/24\\\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.\",\"required\":[\"cidr\"],\"properties\":{\"cidr\":{\"description\":\"CIDR is a string representing the IP Block Valid examples are \\\"192.168.1.1/24\\\"\",\"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\\\" Except values will be rejected if they are outside the CIDR range\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior for this NetworkPolicy.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer\"}}}},\"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 on item, this rule allows traffic only if the traffic matches at least one item in the from list.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort\"}}}},\"io.k8s.api.networking.v1.NetworkPolicyList\":{\"description\":\"NetworkPolicyList is a list of NetworkPolicy objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of schema objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"description\":\"IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.IPBlock\"},\"namespaceSelector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"podSelector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}},\"io.k8s.api.networking.v1.NetworkPolicyPort\":{\"description\":\"NetworkPolicyPort describes a port to allow traffic on\",\"properties\":{\"port\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"protocol\":{\"description\":\"The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.\",\"type\":\"string\"}}},\"io.k8s.api.networking.v1.NetworkPolicySpec\":{\"description\":\"NetworkPolicySpec provides the specification of a NetworkPolicy\",\"required\":[\"podSelector\"],\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule\"}},\"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)\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule\"}},\"podSelector\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"},\"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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.policy.v1beta1.AllowedFlexVolume\":{\"description\":\"AllowedFlexVolume represents a single Flexvolume that is allowed to be used.\",\"required\":[\"driver\"],\"properties\":{\"driver\":{\"description\":\"driver is the name of the Flexvolume driver.\",\"type\":\"string\"}}},\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"deleteOptions\":{\"description\":\"DeleteOptions may be provided\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"ObjectMeta describes the pod that is being evicted.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate what FSGroup is used in the SecurityContext.\",\"type\":\"string\"}}},\"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.\",\"required\":[\"min\",\"max\"],\"properties\":{\"max\":{\"description\":\"max is the end of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int32\"},\"min\":{\"description\":\"min is the start of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"io.k8s.api.policy.v1beta1.IDRange\":{\"description\":\"IDRange provides a min/max of an allowed range of IDs.\",\"required\":[\"min\",\"max\"],\"properties\":{\"max\":{\"description\":\"max is the end of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int64\"},\"min\":{\"description\":\"min is the start of the range, inclusive.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired behavior of the PodDisruptionBudget.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec\"},\"status\":{\"description\":\"Most recently observed status of the PodDisruptionBudget.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"policy\",\"kind\":\"PodDisruptionBudget\",\"version\":\"v1beta1\"}]},\"io.k8s.api.policy.v1beta1.PodDisruptionBudgetList\":{\"description\":\"PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"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\\\".\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"minAvailable\":{\"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%\\\".\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString\"},\"selector\":{\"description\":\"Label query over pods whose evictions are managed by the disruption budget.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}},\"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.\",\"required\":[\"disruptionsAllowed\",\"currentHealthy\",\"desiredHealthy\",\"expectedPods\"],\"properties\":{\"currentHealthy\":{\"description\":\"current number of healthy pods\",\"type\":\"integer\",\"format\":\"int32\"},\"desiredHealthy\":{\"description\":\"minimum desired number of healthy pods\",\"type\":\"integer\",\"format\":\"int32\"},\"disruptedPods\":{\"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\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}},\"disruptionsAllowed\":{\"description\":\"Number of pod disruptions that are currently allowed.\",\"type\":\"integer\",\"format\":\"int32\"},\"expectedPods\":{\"description\":\"total number of pods counted by this disruption budget\",\"type\":\"integer\",\"format\":\"int32\"},\"observedGeneration\":{\"description\":\"Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and other status informatio is valid only if observedGeneration equals to PDB's object generation.\",\"type\":\"integer\",\"format\":\"int64\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"spec defines the policy enforced.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicySpec\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is a list of schema objects.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"policy\",\"kind\":\"PodSecurityPolicyList\",\"version\":\"v1beta1\"}]},\"io.k8s.api.policy.v1beta1.PodSecurityPolicySpec\":{\"description\":\"PodSecurityPolicySpec defines the policy enforced.\",\"required\":[\"seLinux\",\"runAsUser\",\"supplementalGroups\",\"fsGroup\"],\"properties\":{\"allowPrivilegeEscalation\":{\"description\":\"allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.\",\"type\":\"boolean\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.AllowedFlexVolume\"}},\"allowedHostPaths\":{\"description\":\"allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.AllowedHostPath\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"fsGroup\":{\"description\":\"fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.FSGroupStrategyOptions\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.HostPortRange\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"runAsGroup\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions\"},\"runAsUser\":{\"description\":\"runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions\"},\"seLinux\":{\"description\":\"seLinux is the strategy that will dictate the allowable labels that may be set.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.SELinuxStrategyOptions\"},\"supplementalGroups\":{\"description\":\"supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions\"},\"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 '*'.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.api.policy.v1beta1.RunAsGroupStrategyOptions\":{\"description\":\"RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.\",\"required\":[\"rule\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate the allowable RunAsGroup values that may be set.\",\"type\":\"string\"}}},\"io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions\":{\"description\":\"RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.\",\"required\":[\"rule\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate the allowable RunAsUser values that may be set.\",\"type\":\"string\"}}},\"io.k8s.api.policy.v1beta1.SELinuxStrategyOptions\":{\"description\":\"SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.\",\"required\":[\"rule\"],\"properties\":{\"rule\":{\"description\":\"rule is the strategy that will dictate the allowable labels that may be set.\",\"type\":\"string\"},\"seLinuxOptions\":{\"description\":\"seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.IDRange\"}},\"rule\":{\"description\":\"rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.\",\"type\":\"string\"}}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}}},\"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.\",\"required\":[\"rules\"],\"properties\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.AggregationRule\"},\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"rules\":{\"description\":\"Rules holds all the PolicyRules for this ClusterRole\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.PolicyRule\"}}},\"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.\",\"required\":[\"roleRef\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"roleRef\":{\"description\":\"RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleRef\"},\"subjects\":{\"description\":\"Subjects holds references to the objects the role applies to.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Subject\"}}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of ClusterRoleBindings\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of ClusterRoles\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.ClusterRole\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"verbs\"],\"properties\":{\"apiGroups\":{\"description\":\"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"nonResourceURLs\":{\"description\":\"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"),  but not both.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"resourceNames\":{\"description\":\"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"resources\":{\"description\":\"Resources is a list of resources this rule applies to.  ResourceAll represents all resources.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"verbs\":{\"description\":\"Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule.  VerbAll represents all kinds.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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.\",\"required\":[\"rules\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"rules\":{\"description\":\"Rules holds all the PolicyRules for this Role\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.PolicyRule\"}}},\"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.\",\"required\":[\"roleRef\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleRef\"},\"subjects\":{\"description\":\"Subjects holds references to the objects the role applies to.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Subject\"}}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of RoleBindings\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.RoleBinding\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of Roles\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1.Role\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"apiGroup\",\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\"}}},\"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.\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup holds the API group of the referenced subject. Defaults to \\\"\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io\\\" for User and Group subjects.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the object being referenced.\",\"type\":\"string\"},\"namespace\":{\"description\":\"Namespace of the referenced object.  If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\"type\":\"string\"}}},\"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\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\"}}}},\"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.\",\"required\":[\"rules\"],\"properties\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.AggregationRule\"},\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"rules\":{\"description\":\"Rules holds all the PolicyRules for this ClusterRole\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule\"}}},\"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.\",\"required\":[\"roleRef\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"roleRef\":{\"description\":\"RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleRef\"},\"subjects\":{\"description\":\"Subjects holds references to the objects the role applies to.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Subject\"}}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of ClusterRoleBindings\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of ClusterRoles\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"verbs\"],\"properties\":{\"apiGroups\":{\"description\":\"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"nonResourceURLs\":{\"description\":\"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"),  but not both.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"resourceNames\":{\"description\":\"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"resources\":{\"description\":\"Resources is a list of resources this rule applies to.  '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"verbs\":{\"description\":\"Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule.  VerbAll represents all kinds.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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.\",\"required\":[\"rules\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"rules\":{\"description\":\"Rules holds all the PolicyRules for this Role\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule\"}}},\"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.\",\"required\":[\"roleRef\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleRef\"},\"subjects\":{\"description\":\"Subjects holds references to the objects the role applies to.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Subject\"}}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of RoleBindings\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is a list of Roles\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Role\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"apiGroup\",\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup is the group for the resource being referenced\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is the type of resource being referenced\",\"type\":\"string\"},\"name\":{\"description\":\"Name is the name of resource being referenced\",\"type\":\"string\"}}},\"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.\",\"required\":[\"kind\",\"name\"],\"properties\":{\"apiGroup\":{\"description\":\"APIGroup holds the API group of the referenced subject. Defaults to \\\"\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io\\\" for User and Group subjects.\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the object being referenced.\",\"type\":\"string\"},\"namespace\":{\"description\":\"Namespace of the referenced object.  If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\"type\":\"string\"}}},\"io.k8s.api.scheduling.v1beta1.PriorityClass\":{\"description\":\"PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.\",\"required\":[\"value\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/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/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"items is the list of PriorityClasses\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"scheduling.k8s.io\",\"kind\":\"PriorityClassList\",\"version\":\"v1beta1\"}]},\"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.\",\"required\":[\"provisioner\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.TopologySelectorTerm\"}},\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"parameters\":{\"description\":\"Parameters holds the parameters for the provisioner that should create volumes of this storage class.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"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\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of StorageClasses\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClass\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSpec\"},\"status\":{\"description\":\"Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachmentStatus\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of VolumeAttachments\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"persistentVolumeName\":{\"description\":\"Name of the persistent volume to attach.\",\"type\":\"string\"}}},\"io.k8s.api.storage.v1.VolumeAttachmentSpec\":{\"description\":\"VolumeAttachmentSpec is the specification of a VolumeAttachment request.\",\"required\":[\"attacher\",\"source\",\"nodeName\"],\"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\":{\"description\":\"Source represents the volume that should be attached.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeAttachmentSource\"}}},\"io.k8s.api.storage.v1.VolumeAttachmentStatus\":{\"description\":\"VolumeAttachmentStatus is the status of a VolumeAttachment request.\",\"required\":[\"attached\"],\"properties\":{\"attachError\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeError\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"detachError\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.VolumeError\"}}},\"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\":{\"description\":\"Time the error was encountered.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"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.\",\"required\":[\"provisioner\"],\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.core.v1.TopologySelectorTerm\"}},\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"parameters\":{\"description\":\"Parameters holds the parameters for the provisioner that should create volumes of this storage class.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"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\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of StorageClasses\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClass\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSpec\"},\"status\":{\"description\":\"Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentStatus\"}},\"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.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items is the list of VolumeAttachments\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\":{\"persistentVolumeName\":{\"description\":\"Name of the persistent volume to attach.\",\"type\":\"string\"}}},\"io.k8s.api.storage.v1beta1.VolumeAttachmentSpec\":{\"description\":\"VolumeAttachmentSpec is the specification of a VolumeAttachment request.\",\"required\":[\"attacher\",\"source\",\"nodeName\"],\"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\":{\"description\":\"Source represents the volume that should be attached.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSource\"}}},\"io.k8s.api.storage.v1beta1.VolumeAttachmentStatus\":{\"description\":\"VolumeAttachmentStatus is the status of a VolumeAttachment request.\",\"required\":[\"attached\"],\"properties\":{\"attachError\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeError\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"detachError\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.VolumeError\"}}},\"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\":{\"description\":\"Time the error was encountered.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition\":{\"description\":\"CustomResourceColumnDefinition specifies a column for server side printing.\",\"required\":[\"name\",\"type\",\"JSONPath\"],\"properties\":{\"JSONPath\":{\"description\":\"JSONPath is a simple JSON path, i.e. with array notation.\",\"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 more.\",\"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 higher priority.\",\"type\":\"integer\",\"format\":\"int32\"},\"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 more.\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion\":{\"description\":\"CustomResourceConversion describes how to convert different versions of a CR.\",\"required\":[\"strategy\"],\"properties\":{\"strategy\":{\"description\":\"`strategy` specifies the conversion strategy. Allowed values are: - `None`: The converter only change the apiVersion and would not touch any other field in the CR. - `Webhook`: API Server will call to an external webhook to do the conversion. Additional information is needed for this option.\",\"type\":\"string\"},\"webhookClientConfig\":{\"description\":\"`webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig\"}}},\"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.\",\"required\":[\"spec\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec describes how the user wants the resources to appear\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec\"},\"status\":{\"description\":\"Status indicates the actual state of the CustomResourceDefinition\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus\"}},\"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.\",\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList\":{\"description\":\"CustomResourceDefinitionList is a list of CustomResourceDefinition objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"description\":\"Items individual CustomResourceDefinitions\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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\",\"required\":[\"plural\",\"kind\"],\"properties\":{\"categories\":{\"description\":\"Categories is a list of grouped resources custom resources belong to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"kind\":{\"description\":\"Kind is the serialized kind of the resource.  It is normally CamelCase and singular.\",\"type\":\"string\"},\"listKind\":{\"description\":\"ListKind is the serialized kind of the list for this resource.  Defaults to \\u003ckind\\u003eList.\",\"type\":\"string\"},\"plural\":{\"description\":\"Plural is the plural name of the resource to serve.  It must match the name of the CustomResourceDefinition-registration too: plural.group and it must be all lowercase.\",\"type\":\"string\"},\"shortNames\":{\"description\":\"ShortNames are short names for the resource.  It must be all lowercase.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"singular\":{\"description\":\"Singular is the singular name of the resource.  It must be all lowercase  Defaults to lowercased \\u003ckind\\u003e\",\"type\":\"string\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec\":{\"description\":\"CustomResourceDefinitionSpec describes how a user wants their resource to appear\",\"required\":[\"group\",\"names\",\"scope\"],\"properties\":{\"additionalPrinterColumns\":{\"description\":\"AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column. Optional, the global columns for all versions. Top-level and per-version columns are mutually exclusive.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition\"}},\"conversion\":{\"description\":\"`conversion` defines conversion settings for the CRD.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceConversion\"},\"group\":{\"description\":\"Group is the group this resource belongs in\",\"type\":\"string\"},\"names\":{\"description\":\"Names are the names used to describe this custom resource\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames\"},\"scope\":{\"description\":\"Scope indicates whether this resource is cluster or namespace scoped.  Default is namespaced\",\"type\":\"string\"},\"subresources\":{\"description\":\"Subresources describes the subresources for CustomResource Optional, the global subresources for all versions. Top-level and per-version subresources are mutually exclusive.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources\"},\"validation\":{\"description\":\"Validation describes the validation methods for CustomResources Optional, the global validation schema for all versions. Top-level and per-version schemas are mutually exclusive.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation\"},\"version\":{\"description\":\"Version is the version this resource belongs in Should be always first item in Versions field if provided. Optional, but at least one of Version or Versions must be set. Deprecated: Please use `Versions`.\",\"type\":\"string\"},\"versions\":{\"description\":\"Versions is the list of all supported versions for this resource. If Version field is provided, this field is optional. Validation: All versions must use the same validation schema for now. i.e., top level Validation field is applied to all of these versions. Order: The version name will be used to compute the order. 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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus\":{\"description\":\"CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition\",\"required\":[\"conditions\",\"acceptedNames\",\"storedVersions\"],\"properties\":{\"acceptedNames\":{\"description\":\"AcceptedNames are the names that are actually being used to serve discovery They may be different than the names in spec.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames\"},\"conditions\":{\"description\":\"Conditions indicate state for particular aspects of a CustomResourceDefinition\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition\"}},\"storedVersions\":{\"description\":\"StoredVersions are 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 the migration controller can first finish a migration to another version (i.e. that no old objects are left in the storage), and then remove the rest of the versions from this list. None of the versions in this list can be removed from the spec.Versions field.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion\":{\"description\":\"CustomResourceDefinitionVersion describes a version for CRD.\",\"required\":[\"name\",\"served\",\"storage\"],\"properties\":{\"additionalPrinterColumns\":{\"description\":\"AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column. 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) This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature. NOTE: CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an update that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must be explicitly set to null\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceColumnDefinition\"}},\"name\":{\"description\":\"Name is the version name, e.g. “v1”, “v2beta1”, etc.\",\"type\":\"string\"},\"schema\":{\"description\":\"Schema describes the schema for CustomResource used in validation, pruning, and defaulting. 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) This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation\"},\"served\":{\"description\":\"Served is a flag enabling/disabling this version from being served via REST APIs\",\"type\":\"boolean\"},\"storage\":{\"description\":\"Storage flags the version as storage version. There must be exactly one flagged as storage version.\",\"type\":\"boolean\"},\"subresources\":{\"description\":\"Subresources describes the subresources for CustomResource 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) This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale\":{\"description\":\"CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.\",\"required\":[\"specReplicasPath\",\"statusReplicasPath\"],\"properties\":{\"labelSelectorPath\":{\"description\":\"LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. Must be set to work with HPA. If there is no value under the given path in the CustomResource, the status label selector value in the /scale subresource will default to the empty string.\",\"type\":\"string\"},\"specReplicasPath\":{\"description\":\"SpecReplicasPath defines the JSON path inside of a CustomResource 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 CustomResource, the /scale subresource will return an error on GET.\",\"type\":\"string\"},\"statusReplicasPath\":{\"description\":\"StatusReplicasPath defines the JSON path inside of a CustomResource 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 CustomResource, the status replica value in the /scale subresource will default to 0.\",\"type\":\"string\"}}},\"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\"},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources\":{\"description\":\"CustomResourceSubresources defines the status and scale subresources for CustomResources.\",\"properties\":{\"scale\":{\"description\":\"Scale denotes the scale subresource for CustomResources\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale\"},\"status\":{\"description\":\"Status denotes the status subresource for CustomResources\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation\":{\"description\":\"CustomResourceValidation is a list of validation methods for CustomResources.\",\"properties\":{\"openAPIV3Schema\":{\"description\":\"OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}}},\"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\"}}},\"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\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}},\"anyOf\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}},\"default\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON\"},\"definitions\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}},\"dependencies\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray\"}},\"description\":{\"type\":\"string\"},\"enum\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON\"}},\"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\":{\"type\":\"string\"},\"id\":{\"type\":\"string\"},\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray\"},\"maxItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"maxProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"maximum\":{\"type\":\"number\",\"format\":\"double\"},\"minItems\":{\"type\":\"integer\",\"format\":\"int64\"},\"minLength\":{\"type\":\"integer\",\"format\":\"int64\"},\"minProperties\":{\"type\":\"integer\",\"format\":\"int64\"},\"minimum\":{\"type\":\"number\",\"format\":\"double\"},\"multipleOf\":{\"type\":\"number\",\"format\":\"double\"},\"not\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"},\"oneOf\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}},\"pattern\":{\"type\":\"string\"},\"patternProperties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}},\"properties\":{\"type\":\"object\",\"additionalProperties\":{\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps\"}},\"required\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"title\":{\"type\":\"string\"},\"type\":{\"type\":\"string\"},\"uniqueItems\":{\"type\":\"boolean\"}}},\"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\",\"required\":[\"namespace\",\"name\"],\"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\"}}},\"io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.WebhookClientConfig\":{\"description\":\"WebhookClientConfig contains the information to make a TLS connection with the webhook. It has the same field as admissionregistration.v1beta1.WebhookClientConfig.\",\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"service\":{\"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`.\\n\\nPort 443 will be used if it is open, otherwise it is an error.\",\"$ref\":\"#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ServiceReference\"},\"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\"}}},\"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 Int64() 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.\",\"required\":[\"name\",\"versions\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"name\":{\"description\":\"name is the name of the group.\",\"type\":\"string\"},\"preferredVersion\":{\"description\":\"preferredVersion is the version preferred by the API server, which probably is the storage version.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\"}},\"versions\":{\"description\":\"versions are the versions supported in this group.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\"}}},\"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.\",\"required\":[\"groups\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"groups\":{\"description\":\"groups is a list of APIGroup.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"}},\"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.\",\"required\":[\"name\",\"singularName\",\"namespaced\",\"kind\",\"verbs\"],\"properties\":{\"categories\":{\"description\":\"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"},\"verbs\":{\"description\":\"verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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\"}}},\"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.\",\"required\":[\"groupVersion\",\"resources\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/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/api-conventions.md#types-kinds\",\"type\":\"string\"},\"resources\":{\"description\":\"resources contains the name of the resources and if they are namespaced.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource\"}}},\"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.\",\"required\":[\"versions\",\"serverAddressByClientCIDRs\"],\"properties\":{\"apiVersion\":{\"description\":\"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\"}},\"versions\":{\"description\":\"versions are the api versions that are available.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"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/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\",\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"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.\",\"type\":\"integer\",\"format\":\"int64\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/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\":{\"description\":\"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\"},\"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\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"DeleteOptions\",\"version\":\"v1\"},{\"group\":\"admission.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta1\"},{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1alpha1\"},{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta1\"},{\"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\":\"v1beta1\"},{\"group\":\"events.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta1\"},{\"group\":\"extensions\",\"kind\":\"DeleteOptions\",\"version\":\"v1beta1\"},{\"group\":\"imagepolicy.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1alpha1\"},{\"group\":\"networking.k8s.io\",\"kind\":\"DeleteOptions\",\"version\":\"v1\"},{\"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\":\"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.GroupVersionForDiscovery\":{\"description\":\"GroupVersion contains the \\\"group/version\\\" and \\\"version\\\" string of a version. It is made a struct to keep extensibility.\",\"required\":[\"groupVersion\",\"version\"],\"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\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Initializer\":{\"description\":\"Initializer is information about an initializer that has not yet completed.\",\"required\":[\"name\"],\"properties\":{\"name\":{\"description\":\"name of the process that is responsible for initializing this object.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.Initializers\":{\"description\":\"Initializers tracks the progress of initialization.\",\"required\":[\"pending\"],\"properties\":{\"pending\":{\"description\":\"Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializer\"},\"x-kubernetes-patch-merge-key\":\"name\",\"x-kubernetes-patch-strategy\":\"merge\"},\"result\":{\"description\":\"If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\"}},\"matchLabels\":{\"description\":\"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}}}},\"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.\",\"required\":[\"key\",\"operator\"],\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"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\"},\"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/api-conventions.md#concurrency-control-and-consistency\",\"type\":\"string\"},\"selfLink\":{\"description\":\"selfLink is a URL representing this object. Populated by the system. Read-only.\",\"type\":\"string\"}}},\"io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\":{\"description\":\"MicroTime is version of Time with microsecond level precision.\",\"type\":\"string\",\"format\":\"date-time\"},\"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\":{\"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\",\"additionalProperties\":{\"type\":\"string\"}},\"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\":{\"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/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"deletionGracePeriodSeconds\":{\"description\":\"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"deletionTimestamp\":{\"description\":\"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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.\",\"type\":\"array\",\"items\":{\"type\":\"string\"},\"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/api-conventions.md#idempotency\",\"type\":\"string\"},\"generation\":{\"description\":\"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\"type\":\"integer\",\"format\":\"int64\"},\"initializers\":{\"description\":\"An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\\n\\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializers\"},\"labels\":{\"description\":\"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels\",\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\"},\"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/api-conventions.md#concurrency-control-and-consistency\",\"type\":\"string\"},\"selfLink\":{\"description\":\"SelfLink is a URL representing this object. Populated by the system. Read-only.\",\"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\"}}},\"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.\",\"required\":[\"apiVersion\",\"kind\",\"name\",\"uid\"],\"properties\":{\"apiVersion\":{\"description\":\"API version of the referent.\",\"type\":\"string\"},\"blockOwnerDeletion\":{\"description\":\"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. 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/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\"}}},\"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.\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\":{\"description\":\"Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\",\"properties\":{\"uid\":{\"description\":\"Specifies the target UID.\",\"type\":\"string\"}}},\"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.\",\"required\":[\"clientCIDR\",\"serverAddress\"],\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"code\":{\"description\":\"Suggested HTTP return code for this status, 0 if not set.\",\"type\":\"integer\",\"format\":\"int32\"},\"details\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"message\":{\"description\":\"A human-readable description of the status of this operation.\",\"type\":\"string\"},\"metadata\":{\"description\":\"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"},\"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/api-conventions.md#spec-and-status\",\"type\":\"string\"}},\"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\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause\"}},\"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/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.\",\"type\":\"integer\",\"format\":\"int32\"},\"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\"}}},\"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.\",\"type\":\"string\",\"format\":\"date-time\"},\"io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent\":{\"description\":\"Event represents a single event to a watched resource.\",\"required\":[\"type\",\"object\"],\"properties\":{\"object\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension\"},\"type\":{\"type\":\"string\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"\",\"kind\":\"WatchEvent\",\"version\":\"v1\"},{\"group\":\"admission.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta1\"},{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1alpha1\"},{\"group\":\"admissionregistration.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta1\"},{\"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\":\"v1beta1\"},{\"group\":\"events.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1beta1\"},{\"group\":\"extensions\",\"kind\":\"WatchEvent\",\"version\":\"v1beta1\"},{\"group\":\"imagepolicy.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1alpha1\"},{\"group\":\"networking.k8s.io\",\"kind\":\"WatchEvent\",\"version\":\"v1\"},{\"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\":\"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.)\",\"required\":[\"Raw\"],\"properties\":{\"Raw\":{\"description\":\"Raw is the underlying serialization of this object.\",\"type\":\"string\",\"format\":\"byte\"}}},\"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.\",\"type\":\"string\",\"format\":\"int-or-string\"},\"io.k8s.apimachinery.pkg.version.Info\":{\"description\":\"Info contains versioning information. how we'll want to distribute that information.\",\"required\":[\"major\",\"minor\",\"gitVersion\",\"gitCommit\",\"gitTreeState\",\"buildDate\",\"goVersion\",\"compiler\",\"platform\"],\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec contains information for locating and communicating with a server\",\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec\"},\"status\":{\"description\":\"Status contains derived information about an API server\",\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1\"}]},\"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition\":{\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList\":{\"description\":\"APIServiceList is a list of APIService objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"service\",\"groupPriorityMinimum\",\"versionPriority\"],\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\"}}},\"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/api-conventions.md#resources\",\"type\":\"string\"},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\"},\"spec\":{\"description\":\"Spec contains information for locating and communicating with a server\",\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec\"},\"status\":{\"description\":\"Status contains derived information about an API server\",\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus\"}},\"x-kubernetes-group-version-kind\":[{\"group\":\"apiregistration.k8s.io\",\"kind\":\"APIService\",\"version\":\"v1beta1\"}]},\"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition\":{\"required\":[\"type\",\"status\"],\"properties\":{\"lastTransitionTime\":{\"description\":\"Last time the condition transitioned from one status to another.\",\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time\"},\"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\"}}},\"io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList\":{\"description\":\"APIServiceList is a list of APIService objects.\",\"required\":[\"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/api-conventions.md#resources\",\"type\":\"string\"},\"items\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService\"}},\"kind\":{\"description\":\"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\",\"type\":\"string\"},\"metadata\":{\"$ref\":\"#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta\"}},\"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.\",\"required\":[\"service\",\"groupPriorityMinimum\",\"versionPriority\"],\"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.\",\"type\":\"string\",\"format\":\"byte\"},\"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\",\"type\":\"integer\",\"format\":\"int32\"},\"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\":{\"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.\",\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference\"},\"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.\",\"type\":\"integer\",\"format\":\"int32\"}}},\"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.\",\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition\"},\"x-kubernetes-patch-merge-key\":\"type\",\"x-kubernetes-patch-strategy\":\"merge\"}}},\"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\"}}},\"io.k8s.kubernetes.pkg.api.v1.AWSElasticBlockStoreVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.Affinity\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Affinity instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Affinity\"},\"io.k8s.kubernetes.pkg.api.v1.AttachedVolume\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.AttachedVolume instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AttachedVolume\"},\"io.k8s.kubernetes.pkg.api.v1.AzureDiskVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.AzureDiskVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.AzureFileVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.AzureFileVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.Binding\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Binding instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Binding\"},\"io.k8s.kubernetes.pkg.api.v1.Capabilities\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Capabilities instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Capabilities\"},\"io.k8s.kubernetes.pkg.api.v1.CephFSVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.CephFSVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CephFSVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.CinderVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.CinderVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.CinderVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.ComponentCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ComponentCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentCondition\"},\"io.k8s.kubernetes.pkg.api.v1.ComponentStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ComponentStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatus\"},\"io.k8s.kubernetes.pkg.api.v1.ComponentStatusList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ComponentStatusList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ComponentStatusList\"},\"io.k8s.kubernetes.pkg.api.v1.ConfigMap\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ConfigMap instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMap\"},\"io.k8s.kubernetes.pkg.api.v1.ConfigMapEnvSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ConfigMapEnvSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource\"},\"io.k8s.kubernetes.pkg.api.v1.ConfigMapKeySelector\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ConfigMapKeySelector instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector\"},\"io.k8s.kubernetes.pkg.api.v1.ConfigMapList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ConfigMapList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapList\"},\"io.k8s.kubernetes.pkg.api.v1.ConfigMapProjection\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ConfigMapProjection instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapProjection\"},\"io.k8s.kubernetes.pkg.api.v1.ConfigMapVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ConfigMapVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.Container\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Container instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Container\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerImage\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerImage instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerImage\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerPort\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerPort instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerPort\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerState\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerState instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerState\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerStateRunning\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerStateRunning instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateRunning\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerStateTerminated\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerStateTerminated instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateTerminated\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerStateWaiting\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerStateWaiting instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStateWaiting\"},\"io.k8s.kubernetes.pkg.api.v1.ContainerStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ContainerStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ContainerStatus\"},\"io.k8s.kubernetes.pkg.api.v1.DaemonEndpoint\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.DaemonEndpoint instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DaemonEndpoint\"},\"io.k8s.kubernetes.pkg.api.v1.DownwardAPIProjection\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.DownwardAPIProjection instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIProjection\"},\"io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeFile\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.DownwardAPIVolumeFile instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile\"},\"io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.DownwardAPIVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.EmptyDirVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EmptyDirVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.EndpointAddress\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EndpointAddress instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointAddress\"},\"io.k8s.kubernetes.pkg.api.v1.EndpointPort\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EndpointPort instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointPort\"},\"io.k8s.kubernetes.pkg.api.v1.EndpointSubset\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EndpointSubset instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointSubset\"},\"io.k8s.kubernetes.pkg.api.v1.Endpoints\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Endpoints instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Endpoints\"},\"io.k8s.kubernetes.pkg.api.v1.EndpointsList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EndpointsList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EndpointsList\"},\"io.k8s.kubernetes.pkg.api.v1.EnvFromSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EnvFromSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvFromSource\"},\"io.k8s.kubernetes.pkg.api.v1.EnvVar\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EnvVar instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVar\"},\"io.k8s.kubernetes.pkg.api.v1.EnvVarSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EnvVarSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EnvVarSource\"},\"io.k8s.kubernetes.pkg.api.v1.Event\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Event instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Event\"},\"io.k8s.kubernetes.pkg.api.v1.EventList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EventList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventList\"},\"io.k8s.kubernetes.pkg.api.v1.EventSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.EventSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.EventSource\"},\"io.k8s.kubernetes.pkg.api.v1.ExecAction\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ExecAction instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ExecAction\"},\"io.k8s.kubernetes.pkg.api.v1.FCVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.FCVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FCVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.FlexVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.FlexVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlexVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.FlockerVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.FlockerVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.FlockerVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.GCEPersistentDiskVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.GCEPersistentDiskVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.GitRepoVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.GitRepoVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.GlusterfsVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.GlusterfsVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.HTTPGetAction\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.HTTPGetAction instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPGetAction\"},\"io.k8s.kubernetes.pkg.api.v1.HTTPHeader\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.HTTPHeader instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HTTPHeader\"},\"io.k8s.kubernetes.pkg.api.v1.Handler\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Handler instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Handler\"},\"io.k8s.kubernetes.pkg.api.v1.HostAlias\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.HostAlias instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostAlias\"},\"io.k8s.kubernetes.pkg.api.v1.HostPathVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.HostPathVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.HostPathVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.ISCSIVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ISCSIVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.KeyToPath\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.KeyToPath instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.KeyToPath\"},\"io.k8s.kubernetes.pkg.api.v1.Lifecycle\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Lifecycle instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Lifecycle\"},\"io.k8s.kubernetes.pkg.api.v1.LimitRange\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LimitRange instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRange\"},\"io.k8s.kubernetes.pkg.api.v1.LimitRangeItem\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LimitRangeItem instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeItem\"},\"io.k8s.kubernetes.pkg.api.v1.LimitRangeList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LimitRangeList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeList\"},\"io.k8s.kubernetes.pkg.api.v1.LimitRangeSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LimitRangeSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LimitRangeSpec\"},\"io.k8s.kubernetes.pkg.api.v1.LoadBalancerIngress\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LoadBalancerIngress instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LoadBalancerIngress\"},\"io.k8s.kubernetes.pkg.api.v1.LoadBalancerStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LoadBalancerStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LoadBalancerStatus\"},\"io.k8s.kubernetes.pkg.api.v1.LocalObjectReference\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LocalObjectReference instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalObjectReference\"},\"io.k8s.kubernetes.pkg.api.v1.LocalVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.LocalVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.LocalVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.NFSVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NFSVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NFSVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.Namespace\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Namespace instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Namespace\"},\"io.k8s.kubernetes.pkg.api.v1.NamespaceList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NamespaceList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceList\"},\"io.k8s.kubernetes.pkg.api.v1.NamespaceSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NamespaceSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceSpec\"},\"io.k8s.kubernetes.pkg.api.v1.NamespaceStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NamespaceStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NamespaceStatus\"},\"io.k8s.kubernetes.pkg.api.v1.Node\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Node instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Node\"},\"io.k8s.kubernetes.pkg.api.v1.NodeAddress\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeAddress instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeAddress\"},\"io.k8s.kubernetes.pkg.api.v1.NodeAffinity\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeAffinity instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeAffinity\"},\"io.k8s.kubernetes.pkg.api.v1.NodeCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeCondition\"},\"io.k8s.kubernetes.pkg.api.v1.NodeDaemonEndpoints\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeDaemonEndpoints instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints\"},\"io.k8s.kubernetes.pkg.api.v1.NodeList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeList\"},\"io.k8s.kubernetes.pkg.api.v1.NodeSelector\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeSelector instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelector\"},\"io.k8s.kubernetes.pkg.api.v1.NodeSelectorRequirement\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeSelectorRequirement instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement\"},\"io.k8s.kubernetes.pkg.api.v1.NodeSelectorTerm\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeSelectorTerm instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSelectorTerm\"},\"io.k8s.kubernetes.pkg.api.v1.NodeSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSpec\"},\"io.k8s.kubernetes.pkg.api.v1.NodeStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeStatus\"},\"io.k8s.kubernetes.pkg.api.v1.NodeSystemInfo\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.NodeSystemInfo instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.NodeSystemInfo\"},\"io.k8s.kubernetes.pkg.api.v1.ObjectFieldSelector\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ObjectFieldSelector instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectFieldSelector\"},\"io.k8s.kubernetes.pkg.api.v1.ObjectReference\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ObjectReference instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ObjectReference\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolume\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolume instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolume\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaim\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaim instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeList\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec\"},\"io.k8s.kubernetes.pkg.api.v1.PersistentVolumeStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus\"},\"io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.Pod\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Pod instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Pod\"},\"io.k8s.kubernetes.pkg.api.v1.PodAffinity\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodAffinity instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinity\"},\"io.k8s.kubernetes.pkg.api.v1.PodAffinityTerm\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodAffinityTerm instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAffinityTerm\"},\"io.k8s.kubernetes.pkg.api.v1.PodAntiAffinity\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodAntiAffinity instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodAntiAffinity\"},\"io.k8s.kubernetes.pkg.api.v1.PodCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodCondition\"},\"io.k8s.kubernetes.pkg.api.v1.PodList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodList\"},\"io.k8s.kubernetes.pkg.api.v1.PodSecurityContext\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodSecurityContext instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSecurityContext\"},\"io.k8s.kubernetes.pkg.api.v1.PodSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodSpec\"},\"io.k8s.kubernetes.pkg.api.v1.PodStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodStatus\"},\"io.k8s.kubernetes.pkg.api.v1.PodTemplate\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodTemplate instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplate\"},\"io.k8s.kubernetes.pkg.api.v1.PodTemplateList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodTemplateList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateList\"},\"io.k8s.kubernetes.pkg.api.v1.PodTemplateSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PodTemplateSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PodTemplateSpec\"},\"io.k8s.kubernetes.pkg.api.v1.PortworxVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PortworxVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PortworxVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.PreferredSchedulingTerm\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.PreferredSchedulingTerm instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm\"},\"io.k8s.kubernetes.pkg.api.v1.Probe\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Probe instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Probe\"},\"io.k8s.kubernetes.pkg.api.v1.ProjectedVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ProjectedVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.QuobyteVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.QuobyteVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.RBDVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.RBDVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.RBDVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.ReplicationController\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ReplicationController instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationController\"},\"io.k8s.kubernetes.pkg.api.v1.ReplicationControllerCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition\"},\"io.k8s.kubernetes.pkg.api.v1.ReplicationControllerList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerList\"},\"io.k8s.kubernetes.pkg.api.v1.ReplicationControllerSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec\"},\"io.k8s.kubernetes.pkg.api.v1.ReplicationControllerStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus\"},\"io.k8s.kubernetes.pkg.api.v1.ResourceFieldSelector\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ResourceFieldSelector instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceFieldSelector\"},\"io.k8s.kubernetes.pkg.api.v1.ResourceQuota\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ResourceQuota instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuota\"},\"io.k8s.kubernetes.pkg.api.v1.ResourceQuotaList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ResourceQuotaList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaList\"},\"io.k8s.kubernetes.pkg.api.v1.ResourceQuotaSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ResourceQuotaSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec\"},\"io.k8s.kubernetes.pkg.api.v1.ResourceQuotaStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ResourceQuotaStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus\"},\"io.k8s.kubernetes.pkg.api.v1.ResourceRequirements\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ResourceRequirements instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ResourceRequirements\"},\"io.k8s.kubernetes.pkg.api.v1.SELinuxOptions\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SELinuxOptions instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SELinuxOptions\"},\"io.k8s.kubernetes.pkg.api.v1.ScaleIOVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ScaleIOVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.Secret\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Secret instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Secret\"},\"io.k8s.kubernetes.pkg.api.v1.SecretEnvSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SecretEnvSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretEnvSource\"},\"io.k8s.kubernetes.pkg.api.v1.SecretKeySelector\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SecretKeySelector instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretKeySelector\"},\"io.k8s.kubernetes.pkg.api.v1.SecretList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SecretList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretList\"},\"io.k8s.kubernetes.pkg.api.v1.SecretProjection\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SecretProjection instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretProjection\"},\"io.k8s.kubernetes.pkg.api.v1.SecretVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SecretVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecretVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.SecurityContext\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.SecurityContext instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.SecurityContext\"},\"io.k8s.kubernetes.pkg.api.v1.Service\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Service instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Service\"},\"io.k8s.kubernetes.pkg.api.v1.ServiceAccount\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ServiceAccount instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccount\"},\"io.k8s.kubernetes.pkg.api.v1.ServiceAccountList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ServiceAccountList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceAccountList\"},\"io.k8s.kubernetes.pkg.api.v1.ServiceList\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ServiceList instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceList\"},\"io.k8s.kubernetes.pkg.api.v1.ServicePort\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ServicePort instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServicePort\"},\"io.k8s.kubernetes.pkg.api.v1.ServiceSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ServiceSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceSpec\"},\"io.k8s.kubernetes.pkg.api.v1.ServiceStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.ServiceStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.ServiceStatus\"},\"io.k8s.kubernetes.pkg.api.v1.StorageOSPersistentVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.StorageOSPersistentVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.StorageOSVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.StorageOSVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.TCPSocketAction\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.TCPSocketAction instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.TCPSocketAction\"},\"io.k8s.kubernetes.pkg.api.v1.Taint\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Taint instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Taint\"},\"io.k8s.kubernetes.pkg.api.v1.Toleration\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Toleration instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Toleration\"},\"io.k8s.kubernetes.pkg.api.v1.Volume\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.Volume instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.Volume\"},\"io.k8s.kubernetes.pkg.api.v1.VolumeMount\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.VolumeMount instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeMount\"},\"io.k8s.kubernetes.pkg.api.v1.VolumeProjection\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.VolumeProjection instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VolumeProjection\"},\"io.k8s.kubernetes.pkg.api.v1.VsphereVirtualDiskVolumeSource\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\"},\"io.k8s.kubernetes.pkg.api.v1.WeightedPodAffinityTerm\":{\"description\":\"Deprecated. Please use io.k8s.api.core.v1.WeightedPodAffinityTerm instead.\",\"$ref\":\"#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevision\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.ControllerRevision instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevisionList\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.ControllerRevisionList instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.Deployment\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.Deployment instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Deployment\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentCondition\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentList\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentList instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentList\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentRollback\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentRollback instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentSpec\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentStrategy\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentStrategy instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.DeploymentStrategy\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollbackConfig\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.RollbackConfig instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollingUpdateDeployment\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.RollingUpdateDeployment instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateDeployment\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollingUpdateStatefulSetStrategy\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.Scale\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.Scale instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.Scale\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.ScaleSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.ScaleSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ScaleSpec\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.ScaleStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.ScaleStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.ScaleStatus\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSet\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSet instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSet\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetList\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetList instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetSpec\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetStatus\"},\"io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetUpdateStrategy\":{\"description\":\"Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy instead.\",\"$ref\":\"#/definitions/io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1.TokenReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenReview\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReviewSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1.TokenReviewSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReviewStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1.TokenReviewStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1.UserInfo\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1.UserInfo instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1.UserInfo\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1beta1.TokenReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.TokenReview\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReviewSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1beta1.TokenReviewSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReviewStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1beta1.TokenReviewStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus\"},\"io.k8s.kubernetes.pkg.apis.authentication.v1beta1.UserInfo\":{\"description\":\"Deprecated. Please use io.k8s.api.authentication.v1beta1.UserInfo instead.\",\"$ref\":\"#/definitions/io.k8s.api.authentication.v1beta1.UserInfo\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.LocalSubjectAccessReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.LocalSubjectAccessReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.NonResourceAttributes\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.NonResourceAttributes instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.ResourceAttributes\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.ResourceAttributes instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.ResourceAttributes\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.SelfSubjectAccessReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.SelfSubjectAccessReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.SelfSubjectAccessReviewSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.SubjectAccessReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReviewSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.SubjectAccessReviewSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReviewStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1.SubjectAccessReviewStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.LocalSubjectAccessReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.NonResourceAttributes\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.NonResourceAttributes instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.ResourceAttributes\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.ResourceAttributes instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SelfSubjectAccessReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SelfSubjectAccessReviewSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReview\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.SubjectAccessReview instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReviewSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec\"},\"io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReviewStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.CrossVersionObjectReference\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.CrossVersionObjectReference instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscaler\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerList\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.Scale\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.Scale instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.Scale\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.ScaleSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.ScaleSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec\"},\"io.k8s.kubernetes.pkg.apis.autoscaling.v1.ScaleStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.autoscaling.v1.ScaleStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus\"},\"io.k8s.kubernetes.pkg.apis.batch.v1.Job\":{\"description\":\"Deprecated. Please use io.k8s.api.batch.v1.Job instead.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.Job\"},\"io.k8s.kubernetes.pkg.apis.batch.v1.JobCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.batch.v1.JobCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobCondition\"},\"io.k8s.kubernetes.pkg.apis.batch.v1.JobList\":{\"description\":\"Deprecated. Please use io.k8s.api.batch.v1.JobList instead.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobList\"},\"io.k8s.kubernetes.pkg.apis.batch.v1.JobSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.batch.v1.JobSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobSpec\"},\"io.k8s.kubernetes.pkg.apis.batch.v1.JobStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.batch.v1.JobStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.batch.v1.JobStatus\"},\"io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequest\":{\"description\":\"Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequest instead.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"},\"io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition\"},\"io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestList\":{\"description\":\"Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestList instead.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList\"},\"io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec\"},\"io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSet\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSet instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetList\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetList instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetSpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetStatus\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetUpdateStrategy\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Deployment\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.Deployment instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Deployment\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentCondition\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentList\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentList instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentRollback\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentRollback instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentSpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStatus\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStrategy\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentStrategy instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStrategy\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.FSGroupStrategyOptions\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressPath\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.HTTPIngressPath instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressRuleValue\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HostPortRange\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.HostPortRange instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.HostPortRange\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IDRange\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IDRange instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IDRange\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Ingress\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.Ingress instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Ingress\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressBackend\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressBackend instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressList\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressList instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressList\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressRule\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressRule instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressRule\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressTLS\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressTLS instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicy\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicy instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyIngressRule\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyList\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyList instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyPeer\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyPeer instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyPort\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyPort instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPort\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicySpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicySpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicySpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicy\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.PodSecurityPolicy instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicyList\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.PodSecurityPolicyList instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicyList\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicySpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSet\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSet instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetCondition\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetCondition instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetCondition\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetList\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetList instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetSpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetStatus\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollbackConfig\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.RollbackConfig instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDaemonSet\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDeployment\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.RollingUpdateDeployment instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDeployment\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RunAsUserStrategyOptions\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.SELinuxStrategyOptions\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Scale\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.Scale instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.Scale\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ScaleSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ScaleSpec\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.ScaleStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.ScaleStatus\"},\"io.k8s.kubernetes.pkg.apis.extensions.v1beta1.SupplementalGroupsStrategyOptions\":{\"description\":\"Deprecated. Please use io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions instead.\",\"$ref\":\"#/definitions/io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions\"},\"io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicy\":{\"description\":\"Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicy instead.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicy\"},\"io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyIngressRule\":{\"description\":\"Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyIngressRule instead.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule\"},\"io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyList\":{\"description\":\"Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyList instead.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyList\"},\"io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyPeer\":{\"description\":\"Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyPeer instead.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer\"},\"io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyPort\":{\"description\":\"Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyPort instead.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort\"},\"io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicySpec\":{\"description\":\"Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicySpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec\"},\"io.k8s.kubernetes.pkg.apis.policy.v1beta1.Eviction\":{\"description\":\"Deprecated. Please use io.k8s.api.policy.v1beta1.Eviction instead.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.Eviction\"},\"io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudget\":{\"description\":\"Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudget instead.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget\"},\"io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetList\":{\"description\":\"Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudgetList instead.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList\"},\"io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetSpec\":{\"description\":\"Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec instead.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec\"},\"io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetStatus\":{\"description\":\"Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus instead.\",\"$ref\":\"#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRole\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRole instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleBinding\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRoleBinding instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleBindingList\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRoleBindingList instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleList\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRoleList instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.PolicyRule\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.PolicyRule instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.Role\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.Role instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Role\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleBinding\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleBinding instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleBindingList\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleBindingList instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleList\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleList instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleList\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleRef\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleRef instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.RoleRef\"},\"io.k8s.kubernetes.pkg.apis.rbac.v1beta1.Subject\":{\"description\":\"Deprecated. Please use io.k8s.api.rbac.v1beta1.Subject instead.\",\"$ref\":\"#/definitions/io.k8s.api.rbac.v1beta1.Subject\"},\"io.k8s.kubernetes.pkg.apis.storage.v1.StorageClass\":{\"description\":\"Deprecated. Please use io.k8s.api.storage.v1.StorageClass instead.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClass\"},\"io.k8s.kubernetes.pkg.apis.storage.v1.StorageClassList\":{\"description\":\"Deprecated. Please use io.k8s.api.storage.v1.StorageClassList instead.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1.StorageClassList\"},\"io.k8s.kubernetes.pkg.apis.storage.v1beta1.StorageClass\":{\"description\":\"Deprecated. Please use io.k8s.api.storage.v1beta1.StorageClass instead.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClass\"},\"io.k8s.kubernetes.pkg.apis.storage.v1beta1.StorageClassList\":{\"description\":\"Deprecated. Please use io.k8s.api.storage.v1beta1.StorageClassList instead.\",\"$ref\":\"#/definitions/io.k8s.api.storage.v1beta1.StorageClassList\"}},\"securityDefinitions\":{\"BearerToken\":{\"description\":\"Bearer Token authentication\",\"type\":\"apiKey\",\"name\":\"authorization\",\"in\":\"header\"}},\"security\":[{\"BearerToken\":[]}]}"
  },
  {
    "path": "test/integration/testdata/custom/v2.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage custom\n\nimport (\n\t\"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// +k8s:openapi-gen=true\ntype Bak struct{}\n\nfunc (_ Bak) OpenAPIDefinition() common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"integer\"},\n\t\t\t},\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "test/integration/testdata/custom/v3.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage custom\n\nimport (\n\t\"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// +k8s:openapi-gen=true\ntype Bal struct{}\n\nfunc (_ Bal) OpenAPIV3Definition() common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"string\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\n// +k8s:openapi-gen=true\ntype Bac struct{}\n\nfunc (_ Bac) OpenAPIV3Definition() common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc (_ Bac) OpenAPIDefinition() common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"string\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\n// +k8s:openapi-gen=true\ntype Bah struct{}\n\nfunc (_ Bah) OpenAPIV3Definition() common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc (_ Bah) OpenAPISchemaType() []string {\n\treturn []string{\"test-type\"}\n}\n\nfunc (_ Bah) OpenAPISchemaFormat() string {\n\treturn \"test-format\"\n}\n\n// FooV3OneOf has an OpenAPIV3OneOfTypes method\n// +k8s:openapi-gen=true\ntype FooV3OneOf struct{}\n\nfunc (FooV3OneOf) OpenAPIV3OneOfTypes() []string {\n\treturn []string{\"number\", \"string\"}\n}\nfunc (FooV3OneOf) OpenAPISchemaType() []string {\n\treturn []string{\"string\"}\n}\nfunc (FooV3OneOf) OpenAPISchemaFormat() string {\n\treturn \"string\"\n}\n"
  },
  {
    "path": "test/integration/testdata/defaults/default.go",
    "content": "package defaults\n\n// +k8s:openapi-gen=true\ntype Defaulted struct {\n\t// +default=\"bar\"\n\tField string `json:\"Field,omitempty\"`\n\t// +default=0\n\tOtherField int\n\t// +default=[\"foo\", \"bar\"]\n\tList []Item\n\t// +default={\"s\": \"foo\", \"i\": 5}\n\tSub *SubStruct\n\n\tOtherSub SubStruct\n\n\t// +default={\"foo\": \"bar\"}\n\tMap map[string]Item\n\n\t// +default=ref(ConstantValue)\n\tLocalSymbolReference string `json:\"localSymbolReference,omitempty\"`\n\t// +default=ref(k8s.io/kube-openapi/test/integration/testdata/defaults.ConstantValue)\n\tFullyQualifiedSymbolReference string `json:\"fullyQualifiedSymbolReference,omitempty\"`\n\t// +default=ref(k8s.io/kube-openapi/test/integration/testdata/enumtype.FruitApple)\n\tExternalSymbolReference string `json:\"externalSymbolReference,omitempty\"`\n\t// +default=ref(k8s.io/kube-openapi/test/integration/testdata/enumtype.FruitApple)\n\tPointerConversionSymbolReference *DefaultedItem `json:\"pointerConversionSymbolReference,omitempty\"`\n\tDefaultedAliasSymbolReference    DefaultedItem  `json:\"defaultedAliasSymbolReference,omitempty\"`\n}\n\nconst ConstantValue string = \"SymbolConstant\"\n\n// +default=ref(ConstantValue)\ntype DefaultedItem string\n\n// +k8s:openapi-gen=true\ntype Item string\n\n// +k8s:openapi-gen=true\ntype SubStruct struct {\n\tS string\n\t// +default=1\n\tI int `json:\"I,omitempty\"`\n}\n"
  },
  {
    "path": "test/integration/testdata/dummytype/alpha.go",
    "content": "// The package is intended for testing the openapi-gen API rule\n// checker. The API rule violations are in format of:\n//\n// `{rule-name},{package},{type},{(optional) field}`\n//\n// The checker should sort the violations before\n// reporting to a file or stderr.\n//\n// We have the dummytype package separately from the listtype\n// package to test the sorting behavior on package level, e.g.\n//\n//   -i \"./testdata/listtype,./testdata/dummytype\"\n//   -i \"./testdata/dummytype,./testdata/listtype\"\n//\n// The violations from dummytype should always come first in\n// report.\n\npackage dummytype\n\n// +k8s:openapi-gen=true\ntype Foo struct {\n\tSecond string\n\tFirst  int\n}\n\n// +k8s:openapi-gen=true\ntype Bar struct {\n\tViolationBehind bool\n\tViolation       bool\n}\n\n// +k8s:openapi-gen=true\ntype Baz struct {\n\tViolation       bool\n\tViolationBehind bool\n}\n\n// +k8s:openapi-gen=true\ntype StatusError struct {\n\tCode    int\n\tMessage string\n}\n"
  },
  {
    "path": "test/integration/testdata/dummytype/beta.go",
    "content": "// The package is intended for testing the openapi-gen API rule\n// checker. The API rule violations are in format of:\n//\n// `{rule-name},{package},{type},{(optional) field}`\n//\n// The checker should sort the violations before\n// reporting to a file or stderr.\n//\n// We have the dummytype package separately from the listtype\n// package to test the sorting behavior on package level, e.g.\n//\n//   -i \"./testdata/listtype,./testdata/dummytype\"\n//   -i \"./testdata/dummytype,./testdata/listtype\"\n//\n// The violations from dummytype should always come first in\n// report.\n\npackage dummytype\n\n// +k8s:openapi-gen=true\ntype Waldo struct {\n\tFirst  int\n\tSecond string\n}\n"
  },
  {
    "path": "test/integration/testdata/enumtype/enum.go",
    "content": "package enumtype\n\n// FruitType defines a kind of fruits.\n// +enum\ntype FruitType string\n\n// FruitApple is the Apple\nconst FruitApple FruitType = \"apple\"\n\n// FruitBanana is the Banana\nconst FruitBanana FruitType = \"banana\"\n\n// FruitRiceBall is the Rice ball that does not seem to belong to\n// a fruits basket but has a long comment that is so long that it spans\n// multiple lines\nconst FruitRiceBall FruitType = \"onigiri\"\n\n// FruitsBasket is the type that contains the enum type.\n// +k8s:openapi-gen=true\ntype FruitsBasket struct {\n\tContent FruitType `json:\"content\"`\n\n\t// +default=0\n\tCount int `json:\"count\"`\n}\n"
  },
  {
    "path": "test/integration/testdata/golden.v2.json",
    "content": "{\n  \"swagger\": \"2.0\",\n  \"info\": {\n   \"title\": \"Integration Test\",\n   \"version\": \"1.0\"\n  },\n  \"paths\": {\n   \"/test/custom\": {\n    \"post\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"create-custom.Bah\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/custom.Bah\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/custom/bac\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-custom.Bac\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/custom.Bac\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/custom/bah\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-custom.Bah\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/custom.Bah\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/custom/bak\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-custom.Bak\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/custom.Bak\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/custom/bal\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-custom.Bal\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/custom.Bal\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/defaults\": {\n    \"post\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"create-defaults.Defaulted\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/defaults.Defaulted\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/defaults/defaulted\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-defaults.Defaulted\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/defaults.Defaulted\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/dummytype\": {\n    \"post\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"create-dummytype.Waldo\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/dummytype.Waldo\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/dummytype.StatusError\"\n       }\n      }\n     }\n    }\n   },\n   \"/test/dummytype/bar\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-dummytype.Bar\",\n     \"responses\": {\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/dummytype.StatusError\"\n       }\n      }\n     }\n    }\n   },\n   \"/test/dummytype/baz\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-dummytype.Baz\",\n     \"responses\": {\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/dummytype.StatusError\"\n       }\n      }\n     }\n    }\n   },\n   \"/test/dummytype/foo\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-dummytype.Foo\",\n     \"responses\": {\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/dummytype.StatusError\"\n       }\n      }\n     }\n    }\n   },\n   \"/test/dummytype/waldo\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-dummytype.Waldo\",\n     \"responses\": {\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/dummytype.StatusError\"\n       }\n      }\n     }\n    }\n   },\n   \"/test/listtype\": {\n    \"post\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"create-listtype.SetList\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/listtype.SetList\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/listtype/atomiclist\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-listtype.AtomicList\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/listtype.AtomicList\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/listtype/maplist\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-listtype.MapList\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/listtype.MapList\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/listtype/setlist\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-listtype.SetList\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/listtype.SetList\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/maptype\": {\n    \"post\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"create-maptype.AtomicMap\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/maptype.AtomicMap\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/maptype/atomicmap\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-maptype.AtomicMap\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/maptype.AtomicMap\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/maptype/granularmap\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-maptype.GranularMap\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/maptype.GranularMap\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype\": {\n    \"post\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"create-structtype.DeclaredAtomicStruct\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/structtype.DeclaredAtomicStruct\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype/atomicstruct\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-structtype.AtomicStruct\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/structtype.AtomicStruct\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype/declaredatomicstruct\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-structtype.DeclaredAtomicStruct\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/structtype.DeclaredAtomicStruct\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype/fieldleveloverridestruct\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-structtype.FieldLevelOverrideStruct\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/structtype.FieldLevelOverrideStruct\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype/granularstruct\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-structtype.GranularStruct\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/structtype.GranularStruct\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/uniontype\": {\n    \"post\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"create-uniontype.InlinedUnion\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/uniontype.InlinedUnion\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/uniontype/inlinedunion\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-uniontype.InlinedUnion\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/uniontype.InlinedUnion\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/uniontype/toplevelunion\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-uniontype.TopLevelUnion\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/uniontype.TopLevelUnion\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation\": {\n    \"post\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"create-valuevalidation.Foo\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/valuevalidation.Foo\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-valuevalidation.Foo\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/valuevalidation.Foo\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo2\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-valuevalidation.Foo2\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/valuevalidation.Foo2\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo3\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-valuevalidation.Foo3\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/valuevalidation.Foo3\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo4\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-valuevalidation.Foo4\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/valuevalidation.Foo4\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo5\": {\n    \"get\": {\n     \"produces\": [\n      \"application/json\"\n     ],\n     \"schemes\": [\n      \"https\"\n     ],\n     \"operationId\": \"get-valuevalidation.Foo5\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"schema\": {\n        \"$ref\": \"#/definitions/valuevalidation.Foo5\"\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/responses/NotFound\"\n      }\n     }\n    }\n   }\n  },\n  \"definitions\": {\n   \"custom.Bac\": {\n    \"type\": \"string\"\n   },\n   \"custom.Bah\": {\n    \"type\": \"test-type\",\n    \"format\": \"test-format\"\n   },\n   \"custom.Bak\": {\n    \"type\": \"integer\"\n   },\n   \"custom.Bal\": {\n    \"type\": \"string\"\n   },\n   \"defaults.Defaulted\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"OtherField\",\n     \"List\",\n     \"Sub\",\n     \"OtherSub\",\n     \"Map\"\n    ],\n    \"properties\": {\n     \"Field\": {\n      \"type\": \"string\",\n      \"default\": \"bar\"\n     },\n     \"List\": {\n      \"type\": \"array\",\n      \"default\": [\n       \"foo\",\n       \"bar\"\n      ],\n      \"items\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     },\n     \"Map\": {\n      \"type\": \"object\",\n      \"default\": {\n       \"foo\": \"bar\"\n      },\n      \"additionalProperties\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     },\n     \"OtherField\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\",\n      \"default\": 0\n     },\n     \"OtherSub\": {\n      \"default\": {},\n      \"$ref\": \"#/definitions/defaults.SubStruct\"\n     },\n     \"Sub\": {\n      \"default\": {\n       \"i\": 5,\n       \"s\": \"foo\"\n      },\n      \"$ref\": \"#/definitions/defaults.SubStruct\"\n     },\n     \"defaultedAliasSymbolReference\": {\n      \"type\": \"string\",\n      \"default\": \"SymbolConstant\"\n     },\n     \"externalSymbolReference\": {\n      \"type\": \"string\",\n      \"default\": \"apple\"\n     },\n     \"fullyQualifiedSymbolReference\": {\n      \"type\": \"string\",\n      \"default\": \"SymbolConstant\"\n     },\n     \"localSymbolReference\": {\n      \"type\": \"string\",\n      \"default\": \"SymbolConstant\"\n     },\n     \"pointerConversionSymbolReference\": {\n      \"type\": \"string\",\n      \"default\": \"apple\"\n     }\n    }\n   },\n   \"defaults.SubStruct\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"S\"\n    ],\n    \"properties\": {\n     \"I\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\",\n      \"default\": 1\n     },\n     \"S\": {\n      \"type\": \"string\",\n      \"default\": \"\"\n     }\n    }\n   },\n   \"dummytype.Bar\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"ViolationBehind\",\n     \"Violation\"\n    ],\n    \"properties\": {\n     \"Violation\": {\n      \"type\": \"boolean\",\n      \"default\": false\n     },\n     \"ViolationBehind\": {\n      \"type\": \"boolean\",\n      \"default\": false\n     }\n    }\n   },\n   \"dummytype.Baz\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"Violation\",\n     \"ViolationBehind\"\n    ],\n    \"properties\": {\n     \"Violation\": {\n      \"type\": \"boolean\",\n      \"default\": false\n     },\n     \"ViolationBehind\": {\n      \"type\": \"boolean\",\n      \"default\": false\n     }\n    }\n   },\n   \"dummytype.Foo\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"Second\",\n     \"First\"\n    ],\n    \"properties\": {\n     \"First\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\",\n      \"default\": 0\n     },\n     \"Second\": {\n      \"type\": \"string\",\n      \"default\": \"\"\n     }\n    }\n   },\n   \"dummytype.StatusError\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"Code\",\n     \"Message\"\n    ],\n    \"properties\": {\n     \"Code\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\",\n      \"default\": 0\n     },\n     \"Message\": {\n      \"type\": \"string\",\n      \"default\": \"\"\n     }\n    }\n   },\n   \"dummytype.Waldo\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"First\",\n     \"Second\"\n    ],\n    \"properties\": {\n     \"First\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\",\n      \"default\": 0\n     },\n     \"Second\": {\n      \"type\": \"string\",\n      \"default\": \"\"\n     }\n    }\n   },\n   \"listtype.AtomicList\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"Field\"\n    ],\n    \"properties\": {\n     \"Field\": {\n      \"type\": \"array\",\n      \"items\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      },\n      \"x-kubernetes-list-type\": \"atomic\"\n     }\n    }\n   },\n   \"listtype.Item\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"Protocol\",\n     \"Port\"\n    ],\n    \"properties\": {\n     \"Port\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\",\n      \"default\": 0\n     },\n     \"Protocol\": {\n      \"type\": \"string\",\n      \"default\": \"\"\n     },\n     \"a\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\",\n      \"default\": 0\n     },\n     \"b\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\"\n     },\n     \"c\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\",\n      \"default\": 0\n     }\n    }\n   },\n   \"listtype.MapList\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"Field\"\n    ],\n    \"properties\": {\n     \"Field\": {\n      \"type\": \"array\",\n      \"items\": {\n       \"default\": {},\n       \"$ref\": \"#/definitions/listtype.Item\"\n      },\n      \"x-kubernetes-list-map-keys\": [\n       \"port\"\n      ],\n      \"x-kubernetes-list-type\": \"map\"\n     }\n    }\n   },\n   \"listtype.SetList\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"Field\"\n    ],\n    \"properties\": {\n     \"Field\": {\n      \"type\": \"array\",\n      \"items\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      },\n      \"x-kubernetes-list-type\": \"set\"\n     }\n    }\n   },\n   \"maptype.AtomicMap\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"KeyValue\"\n    ],\n    \"properties\": {\n     \"KeyValue\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      },\n      \"x-kubernetes-map-type\": \"atomic\"\n     }\n    }\n   },\n   \"maptype.GranularMap\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"KeyValue\"\n    ],\n    \"properties\": {\n     \"KeyValue\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      },\n      \"x-kubernetes-map-type\": \"granular\"\n     }\n    }\n   },\n   \"structtype.AtomicStruct\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"Field\",\n     \"OtherField\"\n    ],\n    \"properties\": {\n     \"Field\": {\n      \"default\": {},\n      \"$ref\": \"#/definitions/structtype.ContainedStruct\",\n      \"x-kubernetes-map-type\": \"atomic\"\n     },\n     \"OtherField\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\",\n      \"default\": 0\n     }\n    }\n   },\n   \"structtype.ContainedStruct\": {\n    \"type\": \"object\"\n   },\n   \"structtype.DeclaredAtomicStruct\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"Field\"\n    ],\n    \"properties\": {\n     \"Field\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\",\n      \"default\": 0\n     }\n    },\n    \"x-kubernetes-map-type\": \"atomic\"\n   },\n   \"structtype.FieldLevelOverrideStruct\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"Field\",\n     \"OtherField\"\n    ],\n    \"properties\": {\n     \"Field\": {\n      \"default\": {},\n      \"$ref\": \"#/definitions/structtype.DeclaredAtomicStruct\",\n      \"x-kubernetes-map-type\": \"atomic\"\n     },\n     \"OtherField\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\",\n      \"default\": 0\n     }\n    }\n   },\n   \"structtype.GranularStruct\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"Field\",\n     \"OtherField\"\n    ],\n    \"properties\": {\n     \"Field\": {\n      \"default\": {},\n      \"$ref\": \"#/definitions/structtype.ContainedStruct\",\n      \"x-kubernetes-map-type\": \"granular\"\n     },\n     \"OtherField\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\",\n      \"default\": 0\n     }\n    }\n   },\n   \"uniontype.InlinedUnion\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"name\",\n     \"type\"\n    ],\n    \"properties\": {\n     \"alpha\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\"\n     },\n     \"beta\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\"\n     },\n     \"field1\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\"\n     },\n     \"field2\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\"\n     },\n     \"fieldA\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\"\n     },\n     \"fieldB\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\"\n     },\n     \"name\": {\n      \"type\": \"string\",\n      \"default\": \"\"\n     },\n     \"type\": {\n      \"type\": \"string\",\n      \"default\": \"\"\n     },\n     \"unionType\": {\n      \"type\": \"string\",\n      \"default\": \"\"\n     }\n    },\n    \"x-kubernetes-unions\": [\n     {\n      \"discriminator\": \"unionType\",\n      \"fields-to-discriminateBy\": {\n       \"fieldA\": \"FieldA\",\n       \"fieldB\": \"FieldB\"\n      }\n     },\n     {\n      \"discriminator\": \"type\",\n      \"fields-to-discriminateBy\": {\n       \"alpha\": \"Alpha\",\n       \"beta\": \"Beta\"\n      }\n     },\n     {\n      \"fields-to-discriminateBy\": {\n       \"field1\": \"Field1\",\n       \"field2\": \"Field2\"\n      }\n     }\n    ]\n   },\n   \"uniontype.TopLevelUnion\": {\n    \"type\": \"object\",\n    \"required\": [\n     \"name\"\n    ],\n    \"properties\": {\n     \"fieldA\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\"\n     },\n     \"fieldB\": {\n      \"type\": \"integer\",\n      \"format\": \"int32\"\n     },\n     \"name\": {\n      \"type\": \"string\",\n      \"default\": \"\"\n     },\n     \"unionType\": {\n      \"type\": \"string\",\n      \"default\": \"\"\n     }\n    },\n    \"x-kubernetes-unions\": [\n     {\n      \"discriminator\": \"unionType\",\n      \"fields-to-discriminateBy\": {\n       \"fieldA\": \"FieldA\",\n       \"fieldB\": \"FieldB\"\n      }\n     }\n    ]\n   },\n   \"valuevalidation.Foo\": {\n    \"type\": \"object\",\n    \"maxProperties\": 5,\n    \"minProperties\": 1,\n    \"required\": [\n     \"StringValue\",\n     \"NumberValue\",\n     \"ArrayValue\",\n     \"MapValue\"\n    ],\n    \"properties\": {\n     \"ArrayValue\": {\n      \"type\": \"array\",\n      \"maxItems\": 5,\n      \"minItems\": 1,\n      \"uniqueItems\": true,\n      \"items\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     },\n     \"MapValue\": {\n      \"type\": \"object\",\n      \"maxProperties\": 5,\n      \"minProperties\": 1,\n      \"additionalProperties\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     },\n     \"NumberValue\": {\n      \"type\": \"number\",\n      \"format\": \"double\",\n      \"default\": 0,\n      \"maximum\": 5,\n      \"exclusiveMaximum\": true,\n      \"minimum\": 1,\n      \"exclusiveMinimum\": true,\n      \"multipleOf\": 2\n     },\n     \"StringValue\": {\n      \"type\": \"string\",\n      \"default\": \"\",\n      \"maxLength\": 5,\n      \"minLength\": 1,\n      \"pattern\": \"^a.*b$\"\n     },\n     \"celField\": {\n      \"type\": \"string\",\n      \"default\": \"\",\n      \"x-kubernetes-validations\": [\n       {\n        \"message\": \"string message\",\n        \"rule\": \"self.length() \\u003e 0\"\n       },\n       {\n        \"messageExpression\": \"self + ' hello'\",\n        \"rule\": \"self.length() % 2 == 0\"\n       }\n      ]\n     }\n    },\n    \"x-kubernetes-validations\": [\n     {\n      \"message\": \"foo\",\n      \"rule\": \"self == oldSelf\"\n     }\n    ]\n   },\n   \"valuevalidation.Foo2\": {\n    \"description\": \"This one has an open API v3 definition\",\n    \"type\": \"test-type\",\n    \"format\": \"test-format\",\n    \"maxProperties\": 5,\n    \"x-kubernetes-validations\": [\n     {\n      \"message\": \"foo2\",\n      \"rule\": \"self == oldSelf\"\n     }\n    ]\n   },\n   \"valuevalidation.Foo3\": {\n    \"description\": \"This one has a OneOf\",\n    \"type\": \"string\",\n    \"format\": \"string\",\n    \"maxProperties\": 5,\n    \"x-kubernetes-validations\": [\n     {\n      \"message\": \"foo3\",\n      \"rule\": \"self == oldSelf\"\n     }\n    ]\n   },\n   \"valuevalidation.Foo4\": {\n    \"type\": \"integer\"\n   },\n   \"valuevalidation.Foo5\": {\n    \"type\": \"test-type\",\n    \"format\": \"test-format\",\n    \"maxProperties\": 5,\n    \"minProperties\": 1,\n    \"x-kubernetes-validations\": [\n     {\n      \"message\": \"foo5\",\n      \"rule\": \"self == oldSelf\"\n     }\n    ]\n   }\n  },\n  \"responses\": {\n   \"NotFound\": {\n    \"description\": \"Entity not found.\"\n   }\n  }\n }"
  },
  {
    "path": "test/integration/testdata/golden.v2.report",
    "content": "API rule violation: list_type_missing,k8s.io/kube-openapi/test/integration/testdata/defaults,Defaulted,List\nAPI rule violation: list_type_missing,k8s.io/kube-openapi/test/integration/testdata/listtype,UntypedList,Field\nAPI rule violation: list_type_missing,k8s.io/kube-openapi/test/integration/testdata/valuevalidation,Foo,ArrayValue\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/defaults,Defaulted,Field\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/defaults,Defaulted,List\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/defaults,Defaulted,Map\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/defaults,Defaulted,OtherField\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/defaults,Defaulted,OtherSub\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/defaults,Defaulted,Sub\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/defaults,SubStruct,I\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/defaults,SubStruct,S\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/dummytype,Bar,Violation\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/dummytype,Bar,ViolationBehind\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/dummytype,Baz,Violation\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/dummytype,Baz,ViolationBehind\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/dummytype,Foo,First\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/dummytype,Foo,Second\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/dummytype,StatusError,Code\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/dummytype,StatusError,Message\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/dummytype,Waldo,First\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/dummytype,Waldo,Second\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/listtype,AtomicList,Field\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/listtype,Item,Port\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/listtype,Item,Protocol\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/listtype,MapList,Field\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/listtype,SetList,Field\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/listtype,UntypedList,Field\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/maptype,AtomicMap,KeyValue\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/maptype,GranularMap,KeyValue\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/structtype,AtomicStruct,Field\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/structtype,AtomicStruct,OtherField\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/structtype,DeclaredAtomicStruct,Field\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/structtype,FieldLevelOverrideStruct,Field\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/structtype,FieldLevelOverrideStruct,OtherField\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/structtype,GranularStruct,Field\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/structtype,GranularStruct,OtherField\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/valuevalidation,Foo,ArrayValue\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/valuevalidation,Foo,MapValue\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/valuevalidation,Foo,NumberValue\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/valuevalidation,Foo,StringValue\nAPI rule violation: omitempty_match_case,k8s.io/kube-openapi/test/integration/testdata/listtype,Item,C\n"
  },
  {
    "path": "test/integration/testdata/golden.v3.json",
    "content": "{\n  \"openapi\": \"3.0.0\",\n  \"info\": {\n   \"title\": \"Integration Test\",\n   \"version\": \"1.0\"\n  },\n  \"paths\": {\n   \"/test/custom\": {\n    \"post\": {\n     \"operationId\": \"create-custom.Bah\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/custom.Bah\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/custom/bac\": {\n    \"get\": {\n     \"operationId\": \"get-custom.Bac\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/custom.Bac\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/custom/bah\": {\n    \"get\": {\n     \"operationId\": \"get-custom.Bah\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/custom.Bah\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/custom/bak\": {\n    \"get\": {\n     \"operationId\": \"get-custom.Bak\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/custom.Bak\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/custom/bal\": {\n    \"get\": {\n     \"operationId\": \"get-custom.Bal\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/custom.Bal\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/defaults\": {\n    \"post\": {\n     \"operationId\": \"create-defaults.Defaulted\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/defaults.Defaulted\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/defaults/defaulted\": {\n    \"get\": {\n     \"operationId\": \"get-defaults.Defaulted\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/defaults.Defaulted\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/dummytype\": {\n    \"post\": {\n     \"operationId\": \"create-dummytype.Waldo\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/dummytype.Waldo\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/dummytype.StatusError\"\n         }\n        }\n       }\n      }\n     }\n    }\n   },\n   \"/test/dummytype/bar\": {\n    \"get\": {\n     \"operationId\": \"get-dummytype.Bar\",\n     \"responses\": {\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/dummytype.StatusError\"\n         }\n        }\n       }\n      }\n     }\n    }\n   },\n   \"/test/dummytype/baz\": {\n    \"get\": {\n     \"operationId\": \"get-dummytype.Baz\",\n     \"responses\": {\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/dummytype.StatusError\"\n         }\n        }\n       }\n      }\n     }\n    }\n   },\n   \"/test/dummytype/foo\": {\n    \"get\": {\n     \"operationId\": \"get-dummytype.Foo\",\n     \"responses\": {\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/dummytype.StatusError\"\n         }\n        }\n       }\n      }\n     }\n    }\n   },\n   \"/test/dummytype/waldo\": {\n    \"get\": {\n     \"operationId\": \"get-dummytype.Waldo\",\n     \"responses\": {\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/dummytype.StatusError\"\n         }\n        }\n       }\n      }\n     }\n    }\n   },\n   \"/test/listtype\": {\n    \"post\": {\n     \"operationId\": \"create-listtype.SetList\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/listtype.SetList\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/listtype/atomiclist\": {\n    \"get\": {\n     \"operationId\": \"get-listtype.AtomicList\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/listtype.AtomicList\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/listtype/maplist\": {\n    \"get\": {\n     \"operationId\": \"get-listtype.MapList\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/listtype.MapList\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/listtype/setlist\": {\n    \"get\": {\n     \"operationId\": \"get-listtype.SetList\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/listtype.SetList\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/maptype\": {\n    \"post\": {\n     \"operationId\": \"create-maptype.AtomicMap\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/maptype.AtomicMap\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/maptype/atomicmap\": {\n    \"get\": {\n     \"operationId\": \"get-maptype.AtomicMap\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/maptype.AtomicMap\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/maptype/granularmap\": {\n    \"get\": {\n     \"operationId\": \"get-maptype.GranularMap\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/maptype.GranularMap\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype\": {\n    \"post\": {\n     \"operationId\": \"create-structtype.DeclaredAtomicStruct\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/structtype.DeclaredAtomicStruct\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype/atomicstruct\": {\n    \"get\": {\n     \"operationId\": \"get-structtype.AtomicStruct\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/structtype.AtomicStruct\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype/declaredatomicstruct\": {\n    \"get\": {\n     \"operationId\": \"get-structtype.DeclaredAtomicStruct\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/structtype.DeclaredAtomicStruct\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype/fieldleveloverridestruct\": {\n    \"get\": {\n     \"operationId\": \"get-structtype.FieldLevelOverrideStruct\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/structtype.FieldLevelOverrideStruct\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype/granularstruct\": {\n    \"get\": {\n     \"operationId\": \"get-structtype.GranularStruct\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/structtype.GranularStruct\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/uniontype\": {\n    \"post\": {\n     \"operationId\": \"create-uniontype.InlinedUnion\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/uniontype.InlinedUnion\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/uniontype/inlinedunion\": {\n    \"get\": {\n     \"operationId\": \"get-uniontype.InlinedUnion\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/uniontype.InlinedUnion\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/uniontype/toplevelunion\": {\n    \"get\": {\n     \"operationId\": \"get-uniontype.TopLevelUnion\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/uniontype.TopLevelUnion\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation\": {\n    \"post\": {\n     \"operationId\": \"create-valuevalidation.Foo\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/valuevalidation.Foo\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo\": {\n    \"get\": {\n     \"operationId\": \"get-valuevalidation.Foo\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/valuevalidation.Foo\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo2\": {\n    \"get\": {\n     \"operationId\": \"get-valuevalidation.Foo2\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/valuevalidation.Foo2\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo3\": {\n    \"get\": {\n     \"operationId\": \"get-valuevalidation.Foo3\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/valuevalidation.Foo3\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo4\": {\n    \"get\": {\n     \"operationId\": \"get-valuevalidation.Foo4\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/valuevalidation.Foo4\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo5\": {\n    \"get\": {\n     \"operationId\": \"get-valuevalidation.Foo5\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/valuevalidation.Foo5\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   }\n  },\n  \"components\": {\n   \"schemas\": {\n    \"custom.Bac\": {\n     \"type\": \"object\"\n    },\n    \"custom.Bah\": {\n     \"type\": \"object\"\n    },\n    \"custom.Bak\": {\n     \"type\": \"integer\"\n    },\n    \"custom.Bal\": {\n     \"type\": \"string\"\n    },\n    \"defaults.Defaulted\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"OtherField\",\n      \"List\",\n      \"Sub\",\n      \"OtherSub\",\n      \"Map\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"type\": \"string\",\n       \"default\": \"bar\"\n      },\n      \"List\": {\n       \"type\": \"array\",\n       \"default\": [\n        \"foo\",\n        \"bar\"\n       ],\n       \"items\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       }\n      },\n      \"Map\": {\n       \"type\": \"object\",\n       \"default\": {\n        \"foo\": \"bar\"\n       },\n       \"additionalProperties\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       }\n      },\n      \"OtherField\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      },\n      \"OtherSub\": {\n       \"default\": {},\n       \"allOf\": [\n        {\n         \"$ref\": \"#/components/schemas/defaults.SubStruct\"\n        }\n       ]\n      },\n      \"Sub\": {\n       \"default\": {\n        \"i\": 5,\n        \"s\": \"foo\"\n       },\n       \"allOf\": [\n        {\n         \"$ref\": \"#/components/schemas/defaults.SubStruct\"\n        }\n       ]\n      },\n      \"defaultedAliasSymbolReference\": {\n       \"type\": \"string\",\n       \"default\": \"SymbolConstant\"\n      },\n      \"externalSymbolReference\": {\n       \"type\": \"string\",\n       \"default\": \"apple\"\n      },\n      \"fullyQualifiedSymbolReference\": {\n       \"type\": \"string\",\n       \"default\": \"SymbolConstant\"\n      },\n      \"localSymbolReference\": {\n       \"type\": \"string\",\n       \"default\": \"SymbolConstant\"\n      },\n      \"pointerConversionSymbolReference\": {\n       \"type\": \"string\",\n       \"default\": \"apple\"\n      }\n     }\n    },\n    \"defaults.SubStruct\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"S\"\n     ],\n     \"properties\": {\n      \"I\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 1\n      },\n      \"S\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     }\n    },\n    \"dummytype.Bar\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"ViolationBehind\",\n      \"Violation\"\n     ],\n     \"properties\": {\n      \"Violation\": {\n       \"type\": \"boolean\",\n       \"default\": false\n      },\n      \"ViolationBehind\": {\n       \"type\": \"boolean\",\n       \"default\": false\n      }\n     }\n    },\n    \"dummytype.Baz\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Violation\",\n      \"ViolationBehind\"\n     ],\n     \"properties\": {\n      \"Violation\": {\n       \"type\": \"boolean\",\n       \"default\": false\n      },\n      \"ViolationBehind\": {\n       \"type\": \"boolean\",\n       \"default\": false\n      }\n     }\n    },\n    \"dummytype.Foo\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Second\",\n      \"First\"\n     ],\n     \"properties\": {\n      \"First\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      },\n      \"Second\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     }\n    },\n    \"dummytype.StatusError\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Code\",\n      \"Message\"\n     ],\n     \"properties\": {\n      \"Code\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      },\n      \"Message\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     }\n    },\n    \"dummytype.Waldo\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"First\",\n      \"Second\"\n     ],\n     \"properties\": {\n      \"First\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      },\n      \"Second\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     }\n    },\n    \"listtype.AtomicList\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"type\": \"array\",\n       \"items\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       },\n       \"x-kubernetes-list-type\": \"atomic\"\n      }\n     }\n    },\n    \"listtype.Item\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Protocol\",\n      \"Port\"\n     ],\n     \"properties\": {\n      \"Port\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      },\n      \"Protocol\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      },\n      \"a\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      },\n      \"b\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"c\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      }\n     }\n    },\n    \"listtype.MapList\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"type\": \"array\",\n       \"items\": {\n        \"default\": {},\n        \"allOf\": [\n         {\n          \"$ref\": \"#/components/schemas/listtype.Item\"\n         }\n        ]\n       },\n       \"x-kubernetes-list-map-keys\": [\n        \"port\"\n       ],\n       \"x-kubernetes-list-type\": \"map\"\n      }\n     }\n    },\n    \"listtype.SetList\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"type\": \"array\",\n       \"items\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       },\n       \"x-kubernetes-list-type\": \"set\"\n      }\n     }\n    },\n    \"maptype.AtomicMap\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"KeyValue\"\n     ],\n     \"properties\": {\n      \"KeyValue\": {\n       \"type\": \"object\",\n       \"additionalProperties\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       },\n       \"x-kubernetes-map-type\": \"atomic\"\n      }\n     }\n    },\n    \"maptype.GranularMap\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"KeyValue\"\n     ],\n     \"properties\": {\n      \"KeyValue\": {\n       \"type\": \"object\",\n       \"additionalProperties\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       },\n       \"x-kubernetes-map-type\": \"granular\"\n      }\n     }\n    },\n    \"structtype.AtomicStruct\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\",\n      \"OtherField\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"default\": {},\n       \"allOf\": [\n        {\n         \"$ref\": \"#/components/schemas/structtype.ContainedStruct\"\n        }\n       ],\n       \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"OtherField\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      }\n     }\n    },\n    \"structtype.ContainedStruct\": {\n     \"type\": \"object\"\n    },\n    \"structtype.DeclaredAtomicStruct\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      }\n     },\n     \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"structtype.FieldLevelOverrideStruct\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\",\n      \"OtherField\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"default\": {},\n       \"allOf\": [\n        {\n         \"$ref\": \"#/components/schemas/structtype.DeclaredAtomicStruct\"\n        }\n       ],\n       \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"OtherField\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      }\n     }\n    },\n    \"structtype.GranularStruct\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\",\n      \"OtherField\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"default\": {},\n       \"allOf\": [\n        {\n         \"$ref\": \"#/components/schemas/structtype.ContainedStruct\"\n        }\n       ],\n       \"x-kubernetes-map-type\": \"granular\"\n      },\n      \"OtherField\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      }\n     }\n    },\n    \"uniontype.InlinedUnion\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"name\",\n      \"type\"\n     ],\n     \"properties\": {\n      \"alpha\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"beta\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"field1\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"field2\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"fieldA\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"fieldB\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"name\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      },\n      \"type\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      },\n      \"unionType\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     },\n     \"x-kubernetes-unions\": [\n      {\n       \"discriminator\": \"unionType\",\n       \"fields-to-discriminateBy\": {\n        \"fieldA\": \"FieldA\",\n        \"fieldB\": \"FieldB\"\n       }\n      },\n      {\n       \"discriminator\": \"type\",\n       \"fields-to-discriminateBy\": {\n        \"alpha\": \"Alpha\",\n        \"beta\": \"Beta\"\n       }\n      },\n      {\n       \"fields-to-discriminateBy\": {\n        \"field1\": \"Field1\",\n        \"field2\": \"Field2\"\n       }\n      }\n     ]\n    },\n    \"uniontype.TopLevelUnion\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"name\"\n     ],\n     \"properties\": {\n      \"fieldA\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"fieldB\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"name\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      },\n      \"unionType\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     },\n     \"x-kubernetes-unions\": [\n      {\n       \"discriminator\": \"unionType\",\n       \"fields-to-discriminateBy\": {\n        \"fieldA\": \"FieldA\",\n        \"fieldB\": \"FieldB\"\n       }\n      }\n     ]\n    },\n    \"valuevalidation.Foo\": {\n     \"type\": \"object\",\n     \"maxProperties\": 5,\n     \"minProperties\": 1,\n     \"required\": [\n      \"StringValue\",\n      \"NumberValue\",\n      \"ArrayValue\",\n      \"MapValue\"\n     ],\n     \"properties\": {\n      \"ArrayValue\": {\n       \"type\": \"array\",\n       \"maxItems\": 5,\n       \"minItems\": 1,\n       \"uniqueItems\": true,\n       \"items\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       }\n      },\n      \"MapValue\": {\n       \"type\": \"object\",\n       \"maxProperties\": 5,\n       \"minProperties\": 1,\n       \"additionalProperties\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       }\n      },\n      \"NumberValue\": {\n       \"type\": \"number\",\n       \"format\": \"double\",\n       \"default\": 0,\n       \"maximum\": 5,\n       \"exclusiveMaximum\": true,\n       \"minimum\": 1,\n       \"exclusiveMinimum\": true,\n       \"multipleOf\": 2\n      },\n      \"StringValue\": {\n       \"type\": \"string\",\n       \"default\": \"\",\n       \"maxLength\": 5,\n       \"minLength\": 1,\n       \"pattern\": \"^a.*b$\"\n      },\n      \"celField\": {\n       \"type\": \"string\",\n       \"default\": \"\",\n       \"x-kubernetes-validations\": [\n        {\n         \"message\": \"string message\",\n         \"rule\": \"self.length() \\u003e 0\"\n        },\n        {\n         \"messageExpression\": \"self + ' hello'\",\n         \"rule\": \"self.length() % 2 == 0\"\n        }\n       ]\n      }\n     },\n     \"x-kubernetes-validations\": [\n      {\n       \"message\": \"foo\",\n       \"rule\": \"self == oldSelf\"\n      }\n     ]\n    },\n    \"valuevalidation.Foo2\": {\n     \"type\": \"object\"\n    },\n    \"valuevalidation.Foo3\": {\n     \"description\": \"This one has a OneOf\",\n     \"format\": \"string\",\n     \"maxProperties\": 5,\n     \"oneOf\": [\n      {\n       \"type\": \"number\"\n      },\n      {\n       \"type\": \"string\"\n      }\n     ],\n     \"x-kubernetes-validations\": [\n      {\n       \"message\": \"foo3\",\n       \"rule\": \"self == oldSelf\"\n      }\n     ]\n    },\n    \"valuevalidation.Foo4\": {\n     \"type\": \"integer\"\n    },\n    \"valuevalidation.Foo5\": {\n     \"type\": \"object\"\n    }\n   },\n   \"responses\": {\n    \"NotFound\": {\n     \"description\": \"Entity not found.\"\n    }\n   }\n  }\n }"
  },
  {
    "path": "test/integration/testdata/listtype/atomic-list.go",
    "content": "package listtype\n\n// +k8s:openapi-gen=true\ntype AtomicList struct {\n\t// +listType=atomic\n\tField []string\n}\n"
  },
  {
    "path": "test/integration/testdata/listtype/map-list.go",
    "content": "package listtype\n\n// +k8s:openapi-gen=true\ntype MapList struct {\n\t// +listType=map\n\t// +listMapKey=port\n\tField []Item\n}\n\n// +k8s:openapi-gen=true\ntype Item struct {\n\tProtocol string\n\tPort     int\n\t// +optional\n\tA int `json:\"a\"`\n\t// +optional\n\tB int `json:\"b,omitempty\"`\n\t// +optional\n\tC int `json:\"c,omitEmpty\"`\n}\n"
  },
  {
    "path": "test/integration/testdata/listtype/set-list.go",
    "content": "package listtype\n\n// +k8s:openapi-gen=true\ntype SetList struct {\n\t// +listType=set\n\tField []string\n}\n"
  },
  {
    "path": "test/integration/testdata/listtype/untyped.go",
    "content": "package listtype\n\n// +k8s:openapi-gen=true\ntype UntypedList struct {\n\tField []string\n}\n"
  },
  {
    "path": "test/integration/testdata/maptype/atomic-map.go",
    "content": "package maptype\n\n// +k8s:openapi-gen=true\ntype AtomicMap struct {\n\t// +mapType=atomic\n\tKeyValue map[string]string\n}\n"
  },
  {
    "path": "test/integration/testdata/maptype/granular-map.go",
    "content": "package maptype\n\n// +k8s:openapi-gen=true\ntype GranularMap struct {\n\t// +mapType=granular\n\tKeyValue map[string]string\n}\n"
  },
  {
    "path": "test/integration/testdata/namedmodels/doc.go",
    "content": "// +k8s:openapi-gen=true\npackage namedmodels\n"
  },
  {
    "path": "test/integration/testdata/namedmodels/golden.v3.json",
    "content": "{\n  \"openapi\": \"3.0.0\",\n  \"info\": {\n   \"title\": \"Integration Test\",\n   \"version\": \"1.0\"\n  },\n  \"paths\": {\n   \"/test/custom\": {\n    \"post\": {\n     \"operationId\": \"create-custom.Bah\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/custom.Bah\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/custom/bac\": {\n    \"get\": {\n     \"operationId\": \"get-custom.Bac\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/custom.Bac\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/custom/bah\": {\n    \"get\": {\n     \"operationId\": \"get-custom.Bah\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/custom.Bah\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/custom/bak\": {\n    \"get\": {\n     \"operationId\": \"get-custom.Bak\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/custom.Bak\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/custom/bal\": {\n    \"get\": {\n     \"operationId\": \"get-custom.Bal\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/custom.Bal\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/defaults\": {\n    \"post\": {\n     \"operationId\": \"create-defaults.Defaulted\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/defaults.Defaulted\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/defaults/defaulted\": {\n    \"get\": {\n     \"operationId\": \"get-defaults.Defaulted\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/defaults.Defaulted\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/dummytype\": {\n    \"post\": {\n     \"operationId\": \"create-dummytype.Waldo\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/dummytype.Waldo\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/dummytype.StatusError\"\n         }\n        }\n       }\n      }\n     }\n    }\n   },\n   \"/test/dummytype/bar\": {\n    \"get\": {\n     \"operationId\": \"get-dummytype.Bar\",\n     \"responses\": {\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/dummytype.StatusError\"\n         }\n        }\n       }\n      }\n     }\n    }\n   },\n   \"/test/dummytype/baz\": {\n    \"get\": {\n     \"operationId\": \"get-dummytype.Baz\",\n     \"responses\": {\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/dummytype.StatusError\"\n         }\n        }\n       }\n      }\n     }\n    }\n   },\n   \"/test/dummytype/foo\": {\n    \"get\": {\n     \"operationId\": \"get-dummytype.Foo\",\n     \"responses\": {\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/dummytype.StatusError\"\n         }\n        }\n       }\n      }\n     }\n    }\n   },\n   \"/test/dummytype/waldo\": {\n    \"get\": {\n     \"operationId\": \"get-dummytype.Waldo\",\n     \"responses\": {\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      },\n      \"500\": {\n       \"description\": \"Internal Service Error\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/dummytype.StatusError\"\n         }\n        }\n       }\n      }\n     }\n    }\n   },\n   \"/test/listtype\": {\n    \"post\": {\n     \"operationId\": \"create-listtype.SetList\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/listtype.SetList\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/listtype/atomiclist\": {\n    \"get\": {\n     \"operationId\": \"get-listtype.AtomicList\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/listtype.AtomicList\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/listtype/maplist\": {\n    \"get\": {\n     \"operationId\": \"get-listtype.MapList\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/listtype.MapList\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/listtype/setlist\": {\n    \"get\": {\n     \"operationId\": \"get-listtype.SetList\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/listtype.SetList\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/maptype\": {\n    \"post\": {\n     \"operationId\": \"create-maptype.AtomicMap\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/maptype.AtomicMap\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/maptype/atomicmap\": {\n    \"get\": {\n     \"operationId\": \"get-maptype.AtomicMap\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/maptype.AtomicMap\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/maptype/granularmap\": {\n    \"get\": {\n     \"operationId\": \"get-maptype.GranularMap\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/maptype.GranularMap\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype\": {\n    \"post\": {\n     \"operationId\": \"create-structtype.DeclaredAtomicStruct\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/structtype.DeclaredAtomicStruct\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype/atomicstruct\": {\n    \"get\": {\n     \"operationId\": \"get-structtype.AtomicStruct\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/structtype.AtomicStruct\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype/declaredatomicstruct\": {\n    \"get\": {\n     \"operationId\": \"get-structtype.DeclaredAtomicStruct\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/structtype.DeclaredAtomicStruct\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype/fieldleveloverridestruct\": {\n    \"get\": {\n     \"operationId\": \"get-structtype.FieldLevelOverrideStruct\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/structtype.FieldLevelOverrideStruct\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/structtype/granularstruct\": {\n    \"get\": {\n     \"operationId\": \"get-structtype.GranularStruct\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/structtype.GranularStruct\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/uniontype\": {\n    \"post\": {\n     \"operationId\": \"create-uniontype.InlinedUnion\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/uniontype.InlinedUnion\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/uniontype/inlinedunion\": {\n    \"get\": {\n     \"operationId\": \"get-uniontype.InlinedUnion\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/uniontype.InlinedUnion\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/uniontype/toplevelunion\": {\n    \"get\": {\n     \"operationId\": \"get-uniontype.TopLevelUnion\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/uniontype.TopLevelUnion\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation\": {\n    \"post\": {\n     \"operationId\": \"create-valuevalidation.Foo\",\n     \"responses\": {\n      \"201\": {\n       \"description\": \"Created\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/valuevalidation.Foo\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo\": {\n    \"get\": {\n     \"operationId\": \"get-valuevalidation.Foo\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/valuevalidation.Foo\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo2\": {\n    \"get\": {\n     \"operationId\": \"get-valuevalidation.Foo2\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/valuevalidation.Foo2\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo3\": {\n    \"get\": {\n     \"operationId\": \"get-valuevalidation.Foo3\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/valuevalidation.Foo3\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo4\": {\n    \"get\": {\n     \"operationId\": \"get-valuevalidation.Foo4\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/valuevalidation.Foo4\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   },\n   \"/test/valuevalidation/foo5\": {\n    \"get\": {\n     \"operationId\": \"get-valuevalidation.Foo5\",\n     \"responses\": {\n      \"200\": {\n       \"description\": \"OK\",\n       \"content\": {\n        \"application/json\": {\n         \"schema\": {\n          \"$ref\": \"#/components/schemas/valuevalidation.Foo5\"\n         }\n        }\n       }\n      },\n      \"404\": {\n       \"$ref\": \"#/components/responses/NotFound\"\n      }\n     }\n    }\n   }\n  },\n  \"components\": {\n   \"schemas\": {\n    \"custom.Bac\": {\n     \"type\": \"object\"\n    },\n    \"custom.Bah\": {\n     \"type\": \"object\"\n    },\n    \"custom.Bak\": {\n     \"type\": \"integer\"\n    },\n    \"custom.Bal\": {\n     \"type\": \"string\"\n    },\n    \"defaults.Defaulted\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"OtherField\",\n      \"List\",\n      \"Sub\",\n      \"OtherSub\",\n      \"Map\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"type\": \"string\",\n       \"default\": \"bar\"\n      },\n      \"List\": {\n       \"type\": \"array\",\n       \"default\": [\n        \"foo\",\n        \"bar\"\n       ],\n       \"items\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       }\n      },\n      \"Map\": {\n       \"type\": \"object\",\n       \"default\": {\n        \"foo\": \"bar\"\n       },\n       \"additionalProperties\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       }\n      },\n      \"OtherField\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      },\n      \"OtherSub\": {\n       \"default\": {},\n       \"allOf\": [\n        {\n         \"$ref\": \"#/components/schemas/defaults.SubStruct\"\n        }\n       ]\n      },\n      \"Sub\": {\n       \"default\": {\n        \"i\": 5,\n        \"s\": \"foo\"\n       },\n       \"allOf\": [\n        {\n         \"$ref\": \"#/components/schemas/defaults.SubStruct\"\n        }\n       ]\n      },\n      \"defaultedAliasSymbolReference\": {\n       \"type\": \"string\",\n       \"default\": \"SymbolConstant\"\n      },\n      \"externalSymbolReference\": {\n       \"type\": \"string\",\n       \"default\": \"apple\"\n      },\n      \"fullyQualifiedSymbolReference\": {\n       \"type\": \"string\",\n       \"default\": \"SymbolConstant\"\n      },\n      \"localSymbolReference\": {\n       \"type\": \"string\",\n       \"default\": \"SymbolConstant\"\n      },\n      \"pointerConversionSymbolReference\": {\n       \"type\": \"string\",\n       \"default\": \"apple\"\n      }\n     }\n    },\n    \"defaults.SubStruct\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"S\"\n     ],\n     \"properties\": {\n      \"I\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 1\n      },\n      \"S\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     }\n    },\n    \"dummytype.Bar\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"ViolationBehind\",\n      \"Violation\"\n     ],\n     \"properties\": {\n      \"Violation\": {\n       \"type\": \"boolean\",\n       \"default\": false\n      },\n      \"ViolationBehind\": {\n       \"type\": \"boolean\",\n       \"default\": false\n      }\n     }\n    },\n    \"dummytype.Baz\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Violation\",\n      \"ViolationBehind\"\n     ],\n     \"properties\": {\n      \"Violation\": {\n       \"type\": \"boolean\",\n       \"default\": false\n      },\n      \"ViolationBehind\": {\n       \"type\": \"boolean\",\n       \"default\": false\n      }\n     }\n    },\n    \"dummytype.Foo\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Second\",\n      \"First\"\n     ],\n     \"properties\": {\n      \"First\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      },\n      \"Second\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     }\n    },\n    \"dummytype.StatusError\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Code\",\n      \"Message\"\n     ],\n     \"properties\": {\n      \"Code\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      },\n      \"Message\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     }\n    },\n    \"dummytype.Waldo\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"First\",\n      \"Second\"\n     ],\n     \"properties\": {\n      \"First\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      },\n      \"Second\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     }\n    },\n    \"listtype.AtomicList\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"type\": \"array\",\n       \"items\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       },\n       \"x-kubernetes-list-type\": \"atomic\"\n      }\n     }\n    },\n    \"listtype.Item\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Protocol\",\n      \"Port\"\n     ],\n     \"properties\": {\n      \"Port\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      },\n      \"Protocol\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      },\n      \"a\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      },\n      \"b\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"c\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      }\n     }\n    },\n    \"listtype.MapList\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"type\": \"array\",\n       \"items\": {\n        \"default\": {},\n        \"allOf\": [\n         {\n          \"$ref\": \"#/components/schemas/listtype.Item\"\n         }\n        ]\n       },\n       \"x-kubernetes-list-map-keys\": [\n        \"port\"\n       ],\n       \"x-kubernetes-list-type\": \"map\"\n      }\n     }\n    },\n    \"listtype.SetList\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"type\": \"array\",\n       \"items\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       },\n       \"x-kubernetes-list-type\": \"set\"\n      }\n     }\n    },\n    \"maptype.AtomicMap\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"KeyValue\"\n     ],\n     \"properties\": {\n      \"KeyValue\": {\n       \"type\": \"object\",\n       \"additionalProperties\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       },\n       \"x-kubernetes-map-type\": \"atomic\"\n      }\n     }\n    },\n    \"maptype.GranularMap\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"KeyValue\"\n     ],\n     \"properties\": {\n      \"KeyValue\": {\n       \"type\": \"object\",\n       \"additionalProperties\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       },\n       \"x-kubernetes-map-type\": \"granular\"\n      }\n     }\n    },\n    \"structtype.AtomicStruct\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\",\n      \"OtherField\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"default\": {},\n       \"allOf\": [\n        {\n         \"$ref\": \"#/components/schemas/structtype.ContainedStruct\"\n        }\n       ],\n       \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"OtherField\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      }\n     }\n    },\n    \"structtype.ContainedStruct\": {\n     \"type\": \"object\"\n    },\n    \"structtype.DeclaredAtomicStruct\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      }\n     },\n     \"x-kubernetes-map-type\": \"atomic\"\n    },\n    \"structtype.FieldLevelOverrideStruct\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\",\n      \"OtherField\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"default\": {},\n       \"allOf\": [\n        {\n         \"$ref\": \"#/components/schemas/structtype.DeclaredAtomicStruct\"\n        }\n       ],\n       \"x-kubernetes-map-type\": \"atomic\"\n      },\n      \"OtherField\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      }\n     }\n    },\n    \"structtype.GranularStruct\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"Field\",\n      \"OtherField\"\n     ],\n     \"properties\": {\n      \"Field\": {\n       \"default\": {},\n       \"allOf\": [\n        {\n         \"$ref\": \"#/components/schemas/structtype.ContainedStruct\"\n        }\n       ],\n       \"x-kubernetes-map-type\": \"granular\"\n      },\n      \"OtherField\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\",\n       \"default\": 0\n      }\n     }\n    },\n    \"uniontype.InlinedUnion\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"name\",\n      \"type\"\n     ],\n     \"properties\": {\n      \"alpha\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"beta\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"field1\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"field2\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"fieldA\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"fieldB\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"name\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      },\n      \"type\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      },\n      \"unionType\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     },\n     \"x-kubernetes-unions\": [\n      {\n       \"discriminator\": \"unionType\",\n       \"fields-to-discriminateBy\": {\n        \"fieldA\": \"FieldA\",\n        \"fieldB\": \"FieldB\"\n       }\n      },\n      {\n       \"discriminator\": \"type\",\n       \"fields-to-discriminateBy\": {\n        \"alpha\": \"Alpha\",\n        \"beta\": \"Beta\"\n       }\n      },\n      {\n       \"fields-to-discriminateBy\": {\n        \"field1\": \"Field1\",\n        \"field2\": \"Field2\"\n       }\n      }\n     ]\n    },\n    \"uniontype.TopLevelUnion\": {\n     \"type\": \"object\",\n     \"required\": [\n      \"name\"\n     ],\n     \"properties\": {\n      \"fieldA\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"fieldB\": {\n       \"type\": \"integer\",\n       \"format\": \"int32\"\n      },\n      \"name\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      },\n      \"unionType\": {\n       \"type\": \"string\",\n       \"default\": \"\"\n      }\n     },\n     \"x-kubernetes-unions\": [\n      {\n       \"discriminator\": \"unionType\",\n       \"fields-to-discriminateBy\": {\n        \"fieldA\": \"FieldA\",\n        \"fieldB\": \"FieldB\"\n       }\n      }\n     ]\n    },\n    \"valuevalidation.Foo\": {\n     \"type\": \"object\",\n     \"maxProperties\": 5,\n     \"minProperties\": 1,\n     \"required\": [\n      \"StringValue\",\n      \"NumberValue\",\n      \"ArrayValue\",\n      \"MapValue\"\n     ],\n     \"properties\": {\n      \"ArrayValue\": {\n       \"type\": \"array\",\n       \"maxItems\": 5,\n       \"minItems\": 1,\n       \"uniqueItems\": true,\n       \"items\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       }\n      },\n      \"MapValue\": {\n       \"type\": \"object\",\n       \"maxProperties\": 5,\n       \"minProperties\": 1,\n       \"additionalProperties\": {\n        \"type\": \"string\",\n        \"default\": \"\"\n       }\n      },\n      \"NumberValue\": {\n       \"type\": \"number\",\n       \"format\": \"double\",\n       \"default\": 0,\n       \"maximum\": 5,\n       \"exclusiveMaximum\": true,\n       \"minimum\": 1,\n       \"exclusiveMinimum\": true,\n       \"multipleOf\": 2\n      },\n      \"StringValue\": {\n       \"type\": \"string\",\n       \"default\": \"\",\n       \"maxLength\": 5,\n       \"minLength\": 1,\n       \"pattern\": \"^a.*b$\"\n      },\n      \"celField\": {\n       \"type\": \"string\",\n       \"default\": \"\",\n       \"x-kubernetes-validations\": [\n        {\n         \"message\": \"string message\",\n         \"rule\": \"self.length() \\u003e 0\"\n        },\n        {\n         \"messageExpression\": \"self + ' hello'\",\n         \"rule\": \"self.length() % 2 == 0\"\n        }\n       ]\n      }\n     },\n     \"x-kubernetes-validations\": [\n      {\n       \"message\": \"foo\",\n       \"rule\": \"self == oldSelf\"\n      }\n     ]\n    },\n    \"valuevalidation.Foo2\": {\n     \"type\": \"object\"\n    },\n    \"valuevalidation.Foo3\": {\n     \"description\": \"This one has a OneOf\",\n     \"format\": \"string\",\n     \"maxProperties\": 5,\n     \"oneOf\": [\n      {\n       \"type\": \"number\"\n      },\n      {\n       \"type\": \"string\"\n      }\n     ],\n     \"x-kubernetes-validations\": [\n      {\n       \"message\": \"foo3\",\n       \"rule\": \"self == oldSelf\"\n      }\n     ]\n    },\n    \"valuevalidation.Foo4\": {\n     \"type\": \"integer\"\n    },\n    \"valuevalidation.Foo5\": {\n     \"type\": \"object\"\n    }\n   },\n   \"responses\": {\n    \"NotFound\": {\n     \"description\": \"Entity not found.\"\n    }\n   }\n  }\n }"
  },
  {
    "path": "test/integration/testdata/namedmodels/golden.v3.report",
    "content": "API rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/namedmodels,AtomicStruct,Field\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/namedmodels,Struct,Field\nAPI rule violation: names_match,k8s.io/kube-openapi/test/integration/testdata/namedmodels,Struct,OtherField\n"
  },
  {
    "path": "test/integration/testdata/namedmodels/struct.go",
    "content": "package namedmodels\n\n// +k8s:openapi-model-package=io.k8s.kube-openapi.test.integration.testdata.namedmodels\ntype Struct struct { // The generator should see the +k8s:openapi-model-package and assume that a OpenAPIModelName is (or will be) generated.\n\tField      ContainedStruct\n\tOtherField int\n}\n\ntype ContainedStruct struct{} // The generator should use the go package name since there is no OpenAPIModelName declared.\n\ntype AtomicStruct struct { // The generator should respect a manually declared OpenAPIModelName.\n\tField int\n}\n\n// OpenAPIModelName returns the OpenAPI model name for this type.\nfunc (in AtomicStruct) OpenAPIModelName() string {\n\treturn \"io.k8s.kube-openapi.test.integration.testdata.namedmodels.AtomicStruct\"\n}\n"
  },
  {
    "path": "test/integration/testdata/namedmodels/zz_generated_model_name.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by openapi-gen. DO NOT EDIT.\n\npackage namedmodels\n\n// OpenAPIModelName returns the OpenAPI model name for this type.\nfunc (in Struct) OpenAPIModelName() string {\n\treturn \"io.k8s.kube-openapi.test.integration.testdata.namedmodels.Struct\"\n}\n"
  },
  {
    "path": "test/integration/testdata/structtype/atomic-struct.go",
    "content": "package structtype\n\n// +k8s:openapi-gen=true\ntype AtomicStruct struct {\n\t// +structType=atomic\n\tField      ContainedStruct\n\tOtherField int\n}\n\n// +k8s:openapi-gen=true\ntype ContainedStruct struct{}\n\n// +k8s:openapi-gen=true\n// +structType=atomic\ntype DeclaredAtomicStruct struct {\n\tField int\n}\n"
  },
  {
    "path": "test/integration/testdata/structtype/field-level-override.go",
    "content": "package structtype\n\n// +k8s:openapi-gen=true\ntype FieldLevelOverrideStruct struct {\n\t// +structType=atomic\n\tField DeclaredAtomicStruct\n\n\tOtherField int\n}\n"
  },
  {
    "path": "test/integration/testdata/structtype/granular-struct.go",
    "content": "package structtype\n\n// +k8s:openapi-gen=true\ntype GranularStruct struct {\n\t// +structType=granular\n\tField      ContainedStruct\n\tOtherField int\n}\n"
  },
  {
    "path": "test/integration/testdata/uniontype/union.go",
    "content": "package uniontype\n\n// +k8s:openapi-gen=true\ntype TopLevelUnion struct {\n\tName string `json:\"name\"`\n\n\tUnion `json:\",inline\"`\n}\n\n// +k8s:openapi-gen=true\n// +union\ntype Union struct {\n\t// +unionDiscriminator\n\t// +optional\n\tUnionType string `json:\"unionType\"`\n\n\tFieldA int `json:\"fieldA,omitempty\"`\n\tFieldB int `json:\"fieldB,omitempty\"`\n}\n\n// +k8s:openapi-gen=true\ntype Union2 struct {\n\t// +unionDiscriminator\n\tType string `json:\"type\"`\n\t// +unionDeprecated\n\tAlpha int `json:\"alpha,omitempty\"`\n\t// +unionDeprecated\n\tBeta int `json:\"beta,omitempty\"`\n}\n\n// +k8s:openapi-gen=true\ntype InlinedUnion struct {\n\tName string `json:\"name\"`\n\n\t// +unionDeprecated\n\t// +optional\n\tField1 *int `json:\"field1,omitempty\"`\n\t// +unionDeprecated\n\t// +optional\n\tField2 *int `json:\"field2,omitempty\"`\n\n\tUnion  `json:\",inline\"`\n\tUnion2 `json:\",inline\"`\n}\n"
  },
  {
    "path": "test/integration/testdata/valuevalidation/alpha.go",
    "content": "package valuevalidation\n\nimport (\n\t\"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Dummy type to test the openapi-gen API rule checker.\n// The API rule violations are in format of:\n// -> +k8s:validation:[validation rule]=[value]\n\n// +k8s:validation:maxProperties=5\n// +k8s:validation:minProperties=1\n// +k8s:openapi-gen=true\n// +k8s:validation:cel[0]:rule=\"self == oldSelf\"\n// +k8s:validation:cel[0]:message=\"foo\"\ntype Foo struct {\n\t// +k8s:validation:maxLength=5\n\t// +k8s:validation:minLength=1\n\t// +k8s:validation:pattern=\"^a.*b$\"\n\tStringValue string\n\n\t// +k8s:validation:maximum=5.0\n\t// +k8s:validation:minimum=1.0\n\t// +k8s:validation:exclusiveMinimum=true\n\t// +k8s:validation:exclusiveMaximum=true\n\t// +k8s:validation:multipleOf=2.0\n\tNumberValue float64\n\n\t// +k8s:validation:maxItems=5\n\t// +k8s:validation:minItems=1\n\t// +k8s:validation:uniqueItems=true\n\tArrayValue []string\n\n\t// +k8s:validation:minProperties=1\n\t// +k8s:validation:maxProperties=5\n\tMapValue map[string]string\n\n\t// +k8s:validation:cel[0]:rule=\"self.length() > 0\"\n\t// +k8s:validation:cel[0]:message=\"string message\"\n\t// +k8s:validation:cel[1]:rule=\"self.length() % 2 == 0\"\n\t// +k8s:validation:cel[1]:messageExpression=\"self + ' hello'\"\n\t// +optional\n\tCELField string `json:\"celField\"`\n}\n\n// This one has an open API v3 definition\n// +k8s:validation:maxProperties=5\n// +k8s:openapi-gen=true\n// +k8s:validation:cel[0]:rule=\"self == oldSelf\"\n// +k8s:validation:cel[0]:message=\"foo2\"\ntype Foo2 struct{}\n\nfunc (Foo2) OpenAPIV3Definition() common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc (Foo2) OpenAPISchemaType() []string {\n\treturn []string{\"test-type\"}\n}\n\nfunc (Foo2) OpenAPISchemaFormat() string {\n\treturn \"test-format\"\n}\n\n// This one has a OneOf\n// +k8s:openapi-gen=true\n// +k8s:validation:maxProperties=5\n// +k8s:openapi-gen=true\n// +k8s:validation:cel[0]:rule=\"self == oldSelf\"\n// +k8s:validation:cel[0]:message=\"foo3\"\ntype Foo3 struct{}\n\nfunc (Foo3) OpenAPIV3OneOfTypes() []string {\n\treturn []string{\"number\", \"string\"}\n}\nfunc (Foo3) OpenAPISchemaType() []string {\n\treturn []string{\"string\"}\n}\nfunc (Foo3) OpenAPISchemaFormat() string {\n\treturn \"string\"\n}\n\n// this one should ignore marker comments\n// +k8s:openapi-gen=true\n// +k8s:validation:maximum=6\n// +k8s:validation:cel[0]:rule=\"self == oldSelf\"\n// +k8s:validation:cel[0]:message=\"foo4\"\ntype Foo4 struct{}\n\nfunc (Foo4) OpenAPIDefinition() common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"integer\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\n// +k8s:openapi-gen=true\n// +k8s:validation:maxProperties=5\n// +k8s:validation:minProperties=1\n// +k8s:validation:cel[0]:rule=\"self == oldSelf\"\n// +k8s:validation:cel[0]:message=\"foo5\"\ntype Foo5 struct{}\n\nfunc (Foo5) OpenAPIV3Definition() common.OpenAPIDefinition {\n\treturn common.OpenAPIDefinition{\n\t\tSchema: spec.Schema{\n\t\t\tSchemaProps: spec.SchemaProps{\n\t\t\t\tType: []string{\"object\"},\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc (Foo5) OpenAPISchemaType() []string {\n\treturn []string{\"test-type\"}\n}\n\nfunc (Foo5) OpenAPISchemaFormat() string {\n\treturn \"test-format\"\n}\n"
  },
  {
    "path": "test/integration/testutil/testutil.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testutil\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/emicklei/go-restful/v3\"\n\t\"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\t\"k8s.io/kube-openapi/pkg/util\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// CreateOpenAPIBuilderConfig hard-codes some values in the API builder\n// config for testing.\nfunc CreateOpenAPIBuilderConfig() *common.Config {\n\treturn &common.Config{\n\t\tProtocolList:   []string{\"https\"},\n\t\tIgnorePrefixes: []string{\"/swaggerapi\"},\n\t\tInfo: &spec.Info{\n\t\t\tInfoProps: spec.InfoProps{\n\t\t\t\tTitle:   \"Integration Test\",\n\t\t\t\tVersion: \"1.0\",\n\t\t\t},\n\t\t},\n\t\tResponseDefinitions: map[string]spec.Response{\n\t\t\t\"NotFound\": {\n\t\t\t\tResponseProps: spec.ResponseProps{\n\t\t\t\t\tDescription: \"Entity not found.\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tCommonResponses: map[int]spec.Response{\n\t\t\t404: *spec.ResponseRef(\"#/responses/NotFound\"),\n\t\t},\n\t}\n}\n\nfunc CreateOpenAPIV3BuilderConfig() *common.OpenAPIV3Config {\n\treturn &common.OpenAPIV3Config{\n\t\tIgnorePrefixes: []string{\"/swaggerapi\"},\n\t\tInfo: &spec.Info{\n\t\t\tInfoProps: spec.InfoProps{\n\t\t\t\tTitle:   \"Integration Test\",\n\t\t\t\tVersion: \"1.0\",\n\t\t\t},\n\t\t},\n\t\tResponseDefinitions: map[string]*spec3.Response{\n\t\t\t\"NotFound\": {\n\t\t\t\tResponseProps: spec3.ResponseProps{\n\t\t\t\t\tDescription: \"Entity not found.\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tCommonResponses: map[int]*spec3.Response{\n\t\t\t404: {\n\t\t\t\tRefable: spec.Refable{Ref: spec.MustCreateRef(\"#/components/responses/NotFound\")},\n\t\t\t},\n\t\t},\n\t}\n\n}\n\n// CreateWebServices hard-codes a simple WebService which only defines a GET and POST paths\n// for testing.\nfunc CreateWebServices(includeV2SchemaAnnotation bool) []*restful.WebService {\n\tw := new(restful.WebService)\n\taddRoutes(w, buildRouteForType(w, \"dummytype\", \"Foo\")...)\n\taddRoutes(w, buildRouteForType(w, \"dummytype\", \"Bar\")...)\n\taddRoutes(w, buildRouteForType(w, \"dummytype\", \"Baz\")...)\n\taddRoutes(w, buildRouteForType(w, \"dummytype\", \"Waldo\")...)\n\taddRoutes(w, buildRouteForType(w, \"listtype\", \"AtomicList\")...)\n\taddRoutes(w, buildRouteForType(w, \"listtype\", \"MapList\")...)\n\taddRoutes(w, buildRouteForType(w, \"listtype\", \"SetList\")...)\n\taddRoutes(w, buildRouteForType(w, \"uniontype\", \"TopLevelUnion\")...)\n\taddRoutes(w, buildRouteForType(w, \"uniontype\", \"InlinedUnion\")...)\n\taddRoutes(w, buildRouteForType(w, \"custom\", \"Bal\")...)\n\taddRoutes(w, buildRouteForType(w, \"custom\", \"Bak\")...)\n\tif includeV2SchemaAnnotation {\n\t\taddRoutes(w, buildRouteForType(w, \"custom\", \"Bac\")...)\n\t\taddRoutes(w, buildRouteForType(w, \"custom\", \"Bah\")...)\n\t\taddRoutes(w, buildRouteForType(w, \"valuevalidation\", \"Foo2\")...)\n\t\taddRoutes(w, buildRouteForType(w, \"valuevalidation\", \"Foo3\")...)\n\t\taddRoutes(w, buildRouteForType(w, \"valuevalidation\", \"Foo4\")...)\n\t\taddRoutes(w, buildRouteForType(w, \"valuevalidation\", \"Foo5\")...)\n\t}\n\taddRoutes(w, buildRouteForType(w, \"maptype\", \"GranularMap\")...)\n\taddRoutes(w, buildRouteForType(w, \"maptype\", \"AtomicMap\")...)\n\taddRoutes(w, buildRouteForType(w, \"structtype\", \"GranularStruct\")...)\n\taddRoutes(w, buildRouteForType(w, \"structtype\", \"FieldLevelOverrideStruct\")...)\n\taddRoutes(w, buildRouteForType(w, \"structtype\", \"AtomicStruct\")...)\n\taddRoutes(w, buildRouteForType(w, \"structtype\", \"DeclaredAtomicStruct\")...)\n\taddRoutes(w, buildRouteForType(w, \"defaults\", \"Defaulted\")...)\n\taddRoutes(w, buildRouteForType(w, \"valuevalidation\", \"Foo\")...)\n\treturn []*restful.WebService{w}\n}\n\nfunc addRoutes(ws *restful.WebService, routes ...*restful.RouteBuilder) {\n\tfor _, r := range routes {\n\t\tws.Route(r)\n\t}\n}\n\n// Implements OpenAPICanonicalTypeNamer\nvar _ = util.OpenAPICanonicalTypeNamer(&typeNamer{})\n\ntype typeNamer struct {\n\tpkg  string\n\tname string\n}\n\nfunc (t *typeNamer) OpenAPICanonicalTypeName() string {\n\treturn fmt.Sprintf(\"k8s.io/kube-openapi/test/integration/testdata/%s.%s\", t.pkg, t.name)\n}\n\nfunc buildRouteForType(ws *restful.WebService, pkg, name string) []*restful.RouteBuilder {\n\tnamer := typeNamer{\n\t\tpkg:  pkg,\n\t\tname: name,\n\t}\n\n\troutes := []*restful.RouteBuilder{\n\t\tws.GET(fmt.Sprintf(\"/test/%s/%s\", pkg, strings.ToLower(name))).\n\t\t\tOperation(fmt.Sprintf(\"get-%s.%s\", pkg, name)).\n\t\t\tProduces(\"application/json\").\n\t\t\tTo(func(*restful.Request, *restful.Response) {}).\n\t\t\tWrites(&namer),\n\t\tws.POST(fmt.Sprintf(\"/test/%s\", pkg)).\n\t\t\tOperation(fmt.Sprintf(\"create-%s.%s\", pkg, name)).\n\t\t\tProduces(\"application/json\").\n\t\t\tTo(func(*restful.Request, *restful.Response) {}).\n\t\t\tReturns(201, \"Created\", &namer).\n\t\t\tWrites(&namer),\n\t}\n\n\tif pkg == \"dummytype\" {\n\t\tstatusErrType := typeNamer{\n\t\t\tpkg:  \"dummytype\",\n\t\t\tname: \"StatusError\",\n\t\t}\n\n\t\tfor _, route := range routes {\n\t\t\troute.Returns(500, \"Internal Service Error\", &statusErrType)\n\t\t}\n\t}\n\n\treturn routes\n}\n"
  }
]